summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--asm/rom6.s46211
-rw-r--r--asm/rom_81258BC.s45322
-rw-r--r--ld_script.txt2
-rw-r--r--src/save.c349
5 files changed, 45674 insertions, 46212 deletions
diff --git a/Makefile b/Makefile
index 09a6c3785..4d045d173 100644
--- a/Makefile
+++ b/Makefile
@@ -49,7 +49,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/rom5_part2.o asm/rom6.o\
asm/libgcnmultiboot.o asm/m4a_1.o asm/m4a_3.o asm/libagbsyscall.o \
asm/rom_8072DF8.o asm/rom_8065394.o asm/rom_803D1FC.o asm/rom_803BA2C.o \
-asm/rom_813BA94.o
+asm/rom_813BA94.o asm/rom_81258BC.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/rom6.s b/asm/rom6.s
index 64696cc17..84b091f22 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -52235,46215 +52235,4 @@ _08125188:
bx r1
thumb_func_end unref_sub_8125118
- thumb_func_start calls_flash_erase_block
-calls_flash_erase_block: @ 8125194
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _081251B4
-_0812519A:
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bls _0812519A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081251B4: .4byte EraseFlashSector
- thumb_func_end calls_flash_erase_block
-
- thumb_func_start sub_81251B8
-sub_81251B8: @ 81251B8
- ldr r0, _081251C8
- movs r1, 0
- str r1, [r0]
- ldr r0, _081251CC
- strh r1, [r0]
- ldr r0, _081251D0
- str r1, [r0]
- bx lr
- .align 2, 0
-_081251C8: .4byte gUnknown_03005EAC
-_081251CC: .4byte gUnknown_03005E9C
-_081251D0: .4byte gUnknown_03005EA8
- thumb_func_end sub_81251B8
-
- thumb_func_start sub_81251D4
-sub_81251D4: @ 81251D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- movs r4, 0
- cmp r0, 0x1
- beq _08125208
- cmp r0, 0x1
- bgt _081251EE
- cmp r0, 0
- beq _081251F4
- b _0812522C
-_081251EE:
- cmp r0, 0x2
- beq _0812521C
- b _0812522C
-_081251F4:
- ldr r2, _08125204
- movs r1, 0x1
- lsls r1, r3
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- b _0812522C
- .align 2, 0
-_08125204: .4byte gUnknown_03005EA8
-_08125208:
- ldr r2, _08125218
- adds r1, r0, 0
- lsls r1, r3
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- b _0812522C
- .align 2, 0
-_08125218: .4byte gUnknown_03005EA8
-_0812521C:
- ldr r0, _08125234
- movs r1, 0x1
- lsls r1, r3
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _0812522C
- movs r4, 0x1
-_0812522C:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08125234: .4byte gUnknown_03005EA8
- thumb_func_end sub_81251D4
-
- thumb_func_start save_write_to_flash
-save_write_to_flash: @ 8125238
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _0812525C
- ldr r0, _08125260
- str r0, [r1]
- ldr r0, _08125264
- cmp r2, r0
- beq _08125268
- adds r0, r2, 0
- adds r1, r7, 0
- bl sub_81252D8
- lsls r0, 24
- lsrs r5, r0, 24
- b _081252BA
- .align 2, 0
-_0812525C: .4byte gUnknown_03005EB0
-_08125260: .4byte 0x02000000
-_08125264: .4byte 0x0000ffff
-_08125268:
- ldr r1, _081252C4
- ldr r5, _081252C8
- ldrh r0, [r5]
- strh r0, [r1]
- ldr r1, _081252CC
- ldr r6, _081252D0
- ldr r4, [r6]
- str r4, [r1]
- adds r0, 0x1
- strh r0, [r5]
- ldrh r0, [r5]
- movs r1, 0xE
- bl __umodsi3
- strh r0, [r5]
- adds r4, 0x1
- str r4, [r6]
- movs r5, 0x1
- movs r4, 0
-_0812528E:
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_81252D8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xD
- bls _0812528E
- ldr r0, _081252D4
- ldr r0, [r0]
- cmp r0, 0
- beq _081252BA
- movs r5, 0xFF
- ldr r1, _081252C8
- ldr r0, _081252C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _081252D0
- ldr r0, _081252CC
- ldr r0, [r0]
- str r0, [r1]
-_081252BA:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081252C4: .4byte gUnknown_03005EA4
-_081252C8: .4byte gUnknown_03005E9C
-_081252CC: .4byte gUnknown_03005EA0
-_081252D0: .4byte gUnknown_03005EAC
-_081252D4: .4byte gUnknown_03005EA8
- thumb_func_end save_write_to_flash
-
- thumb_func_start sub_81252D8
-sub_81252D8: @ 81252D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _081253A4
- ldrh r0, [r0]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r5, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _081253A8
- ldr r1, [r2]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r6, 3
- adds r0, r4
- ldr r1, [r0]
- mov r10, r1
- ldrh r4, [r0, 0x4]
- movs r3, 0
- mov r9, r2
- ldr r2, _081253AC
- mov r12, r2
- mov r8, r12
- movs r2, 0
- ldr r1, _081253B0
-_0812532A:
- mov r7, r8
- ldr r0, [r7]
- adds r0, r3
- strb r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bls _0812532A
- mov r0, r12
- ldr r1, [r0]
- ldr r2, _081253B4
- adds r0, r1, r2
- strh r6, [r0]
- ldr r3, _081253B8
- adds r2, r1, r3
- ldr r0, _081253BC
- str r0, [r2]
- ldr r6, _081253C0
- adds r1, r6
- mov r7, r9
- ldr r0, [r7]
- str r0, [r1]
- movs r3, 0
- lsls r5, 24
- cmp r3, r4
- bcs _08125378
- mov r2, r12
-_08125362:
- ldr r1, [r2]
- adds r1, r3
- mov r6, r10
- adds r0, r6, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- bcc _08125362
-_08125378:
- mov r0, r10
- adds r1, r4, 0
- bl sub_8125C10
- ldr r1, _081253AC
- ldr r1, [r1]
- ldr r7, _081253C4
- adds r2, r1, r7
- strh r0, [r2]
- lsrs r0, r5, 24
- bl sub_8125440
- lsls r0, 24
- lsrs r0, 24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081253A4: .4byte gUnknown_03005E9C
-_081253A8: .4byte gUnknown_03005EAC
-_081253AC: .4byte gUnknown_03005EB0
-_081253B0: .4byte 0x00000fff
-_081253B4: .4byte 0x00000ff4
-_081253B8: .4byte 0x00000ff8
-_081253BC: .4byte 0x08012025 @ TODO: figure out what this represents
-_081253C0: .4byte 0x00000ffc
-_081253C4: .4byte 0x00000ff6
- thumb_func_end sub_81252D8
-
- thumb_func_start sub_81253C8
-sub_81253C8: @ 81253C8
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _0812542C
- movs r3, 0
- movs r6, 0
- ldr r1, _08125430
-_081253DC:
- adds r0, r4, r3
- strb r6, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bls _081253DC
- ldr r0, _08125434
- adds r1, r4, r0
- ldr r0, _08125438
- str r0, [r1]
- movs r3, 0
- cmp r3, r2
- bcs _0812540A
-_081253F8:
- adds r1, r4, r3
- adds r0, r5, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r2
- bcc _081253F8
-_0812540A:
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_8125C10
- ldr r2, _0812543C
- adds r1, r4, r2
- strh r0, [r1]
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_8125440
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0812542C: .4byte 0x02000000
-_08125430: .4byte 0x00000fff
-_08125434: .4byte 0x00000ff8
-_08125438: .4byte 0x08012025 @ TODO: figure out what this represents
-_0812543C: .4byte 0x00000ff4
- thumb_func_end sub_81253C8
-
- thumb_func_start sub_8125440
-sub_8125440: @ 8125440
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl ProgramFlashSectorAndVerify
- cmp r0, 0
- bne _0812545C
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_81251D4
- movs r0, 0x1
- b _08125466
-_0812545C:
- movs r0, 0
- adds r1, r4, 0
- bl sub_81251D4
- movs r0, 0xFF
-_08125466:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125440
-
- thumb_func_start sub_812546C
-sub_812546C: @ 812546C
- push {r4-r6,lr}
- ldr r1, _081254A8
- ldr r0, _081254AC
- str r0, [r1]
- ldr r1, _081254B0
- ldr r5, _081254B4
- ldrh r0, [r5]
- strh r0, [r1]
- ldr r1, _081254B8
- ldr r6, _081254BC
- ldr r4, [r6]
- str r4, [r1]
- adds r0, 0x1
- strh r0, [r5]
- ldrh r0, [r5]
- movs r1, 0xE
- bl __umodsi3
- strh r0, [r5]
- adds r4, 0x1
- str r4, [r6]
- ldr r1, _081254C0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _081254C4
- movs r0, 0
- str r0, [r1]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081254A8: .4byte gUnknown_03005EB0
-_081254AC: .4byte 0x02000000
-_081254B0: .4byte gUnknown_03005EA4
-_081254B4: .4byte gUnknown_03005E9C
-_081254B8: .4byte gUnknown_03005EA0
-_081254BC: .4byte gUnknown_03005EAC
-_081254C0: .4byte gUnknown_03005EB4
-_081254C4: .4byte gUnknown_03005EA8
- thumb_func_end sub_812546C
-
- thumb_func_start sub_81254C8
-sub_81254C8: @ 81254C8
- ldr r1, _081254EC
- ldr r0, _081254F0
- str r0, [r1]
- ldr r1, _081254F4
- ldr r0, _081254F8
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _081254FC
- ldr r0, _08125500
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _08125504
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08125508
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_081254EC: .4byte gUnknown_03005EB0
-_081254F0: .4byte 0x02000000
-_081254F4: .4byte gUnknown_03005EA4
-_081254F8: .4byte gUnknown_03005E9C
-_081254FC: .4byte gUnknown_03005EA0
-_08125500: .4byte gUnknown_03005EAC
-_08125504: .4byte gUnknown_03005EB4
-_08125508: .4byte gUnknown_03005EA8
- thumb_func_end sub_81254C8
-
- thumb_func_start sub_812550C
-sub_812550C: @ 812550C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _08125548
- ldrh r2, [r4]
- subs r0, 0x1
- cmp r2, r0
- bge _08125560
- movs r5, 0x1
- adds r0, r2, 0
- bl sub_81252D8
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldr r0, _0812554C
- ldr r0, [r0]
- cmp r0, 0
- beq _08125562
- movs r5, 0xFF
- ldr r1, _08125550
- ldr r0, _08125554
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08125558
- ldr r0, _0812555C
- ldr r0, [r0]
- str r0, [r1]
- b _08125562
- .align 2, 0
-_08125548: .4byte gUnknown_03005EB4
-_0812554C: .4byte gUnknown_03005EA8
-_08125550: .4byte gUnknown_03005E9C
-_08125554: .4byte gUnknown_03005EA4
-_08125558: .4byte gUnknown_03005EAC
-_0812555C: .4byte gUnknown_03005EA0
-_08125560:
- movs r5, 0xFF
-_08125562:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_812550C
-
- thumb_func_start sub_812556C
-sub_812556C: @ 812556C
- push {r4,lr}
- lsls r0, 16
- movs r4, 0x1
- ldr r2, _081255A0
- adds r0, r2
- lsrs r0, 16
- bl sub_81255B8
- ldr r0, _081255A4
- ldr r0, [r0]
- cmp r0, 0
- beq _08125596
- movs r4, 0xFF
- ldr r1, _081255A8
- ldr r0, _081255AC
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _081255B0
- ldr r0, _081255B4
- ldr r0, [r0]
- str r0, [r1]
-_08125596:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081255A0: .4byte 0xffff0000
-_081255A4: .4byte gUnknown_03005EA8
-_081255A8: .4byte gUnknown_03005E9C
-_081255AC: .4byte gUnknown_03005EA4
-_081255B0: .4byte gUnknown_03005EAC
-_081255B4: .4byte gUnknown_03005EA0
- thumb_func_end sub_812556C
-
- thumb_func_start sub_81255B8
-sub_81255B8: @ 81255B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08125684
- ldrh r0, [r0]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r5, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _08125688
- ldr r1, [r2]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r6, 3
- adds r0, r4
- ldr r1, [r0]
- mov r10, r1
- ldrh r3, [r0, 0x4]
- movs r4, 0
- mov r9, r2
- ldr r2, _0812568C
- mov r12, r2
- mov r8, r12
- movs r2, 0
- ldr r1, _08125690
-_0812560A:
- mov r7, r8
- ldr r0, [r7]
- adds r0, r4
- strb r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r1
- bls _0812560A
- mov r0, r12
- ldr r1, [r0]
- ldr r2, _08125694
- adds r0, r1, r2
- strh r6, [r0]
- ldr r6, _08125698
- adds r2, r1, r6
- ldr r0, _0812569C
- str r0, [r2]
- ldr r7, _081256A0
- adds r1, r7
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1]
- movs r4, 0
- lsls r6, r5, 24
- mov r8, r6
- cmp r4, r3
- bcs _0812565A
- mov r2, r12
-_08125644:
- ldr r1, [r2]
- adds r1, r4
- mov r7, r10
- adds r0, r7, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r3
- bcc _08125644
-_0812565A:
- mov r0, r10
- adds r1, r3, 0
- bl sub_8125C10
- ldr r1, _0812568C
- ldr r1, [r1]
- ldr r2, _081256A4
- adds r1, r2
- strh r0, [r1]
- ldr r0, _081256A8
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- movs r6, 0x1
- movs r4, 0
- ldr r7, _081256AC
- mov r9, r7
- ldr r7, _081256B0
- b _081256BA
- .align 2, 0
-_08125684: .4byte gUnknown_03005E9C
-_08125688: .4byte gUnknown_03005EAC
-_0812568C: .4byte gUnknown_03005EB0
-_08125690: .4byte 0x00000fff
-_08125694: .4byte 0x00000ff4
-_08125698: .4byte 0x00000ff8
-_0812569C: .4byte 0x08012025 @ TODO: figure out what this represents
-_081256A0: .4byte 0x00000ffc
-_081256A4: .4byte 0x00000ff6
-_081256A8: .4byte EraseFlashSector
-_081256AC: .4byte 0x00000ff7
-_081256B0: .4byte ProgramFlashByte
-_081256B4:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_081256BA:
- cmp r4, r9
- bhi _081256D8
- ldr r0, _081256E4
- ldr r0, [r0]
- adds r0, r4
- ldrb r2, [r0]
- ldr r3, [r7]
- adds r0, r5, 0
- adds r1, r4, 0
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- beq _081256B4
- movs r6, 0xFF
-_081256D8:
- cmp r6, 0xFF
- bne _081256E8
- mov r0, r8
- lsrs r1, r0, 24
- b _08125740
- .align 2, 0
-_081256E4: .4byte gUnknown_03005EB0
-_081256E8:
- movs r6, 0x1
- movs r4, 0
- ldr r1, _081256F4
- mov r9, r1
- ldr r7, _081256F8
- b _08125702
- .align 2, 0
-_081256F4: .4byte ProgramFlashByte
-_081256F8: .4byte 0x00000ff9
-_081256FC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08125702:
- cmp r4, 0x6
- bhi _08125724
- adds r1, r4, r7
- ldr r0, _08125738
- ldr r0, [r0]
- adds r0, r4, r0
- adds r0, r7
- ldrb r2, [r0]
- mov r0, r9
- ldr r3, [r0]
- adds r0, r5, 0
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- beq _081256FC
- movs r6, 0xFF
-_08125724:
- cmp r6, 0xFF
- beq _0812573C
- mov r2, r8
- lsrs r1, r2, 24
- movs r0, 0x1
- bl sub_81251D4
- movs r0, 0x1
- b _08125748
- .align 2, 0
-_08125738: .4byte gUnknown_03005EB0
-_0812573C:
- mov r6, r8
- lsrs r1, r6, 24
-_08125740:
- movs r0, 0
- bl sub_81251D4
- movs r0, 0xFF
-_08125748:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81255B8
-
- thumb_func_start sub_8125758
-sub_8125758: @ 8125758
- push {r4-r6,lr}
- lsls r0, 16
- ldr r6, _081257B4
- lsrs r0, 16
- ldrh r1, [r6]
- adds r0, r1
- subs r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, _081257B8
- ldr r1, [r5]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r3, _081257BC
- ldr r1, _081257C0
- ldr r0, _081257C4
- ldr r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- bne _081257C8
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_81251D4
- movs r0, 0x1
- b _081257E0
- .align 2, 0
-_081257B4: .4byte gUnknown_03005E9C
-_081257B8: .4byte gUnknown_03005EAC
-_081257BC: .4byte ProgramFlashByte
-_081257C0: .4byte 0x00000ff8
-_081257C4: .4byte gUnknown_03005EB0
-_081257C8:
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_81251D4
- ldr r0, _081257E8
- ldrh r0, [r0]
- strh r0, [r6]
- ldr r0, _081257EC
- ldr r0, [r0]
- str r0, [r5]
- movs r0, 0xFF
-_081257E0:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081257E8: .4byte gUnknown_03005EA4
-_081257EC: .4byte gUnknown_03005EA0
- thumb_func_end sub_8125758
-
- thumb_func_start sub_81257F0
-sub_81257F0: @ 81257F0
- push {r4-r6,lr}
- lsls r0, 16
- ldr r6, _08125844
- lsrs r0, 16
- ldrh r1, [r6]
- adds r0, r1
- subs r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, _08125848
- ldr r1, [r5]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0812584C
- ldr r1, _08125850
- ldr r3, [r0]
- adds r0, r4, 0
- movs r2, 0x25
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- bne _08125854
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_81251D4
- movs r0, 0x1
- b _0812586C
- .align 2, 0
-_08125844: .4byte gUnknown_03005E9C
-_08125848: .4byte gUnknown_03005EAC
-_0812584C: .4byte ProgramFlashByte
-_08125850: .4byte 0x00000ff8
-_08125854:
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_81251D4
- ldr r0, _08125874
- ldrh r0, [r0]
- strh r0, [r6]
- ldr r0, _08125878
- ldr r0, [r0]
- str r0, [r5]
- movs r0, 0xFF
-_0812586C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08125874: .4byte gUnknown_03005EA4
-_08125878: .4byte gUnknown_03005EA0
- thumb_func_end sub_81257F0
-
- thumb_func_start sub_812587C
-sub_812587C: @ 812587C
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _08125894
- ldr r0, _08125898
- str r0, [r1]
- ldr r0, _0812589C
- cmp r4, r0
- beq _081258A0
- movs r5, 0xFF
- b _081258B2
- .align 2, 0
-_08125894: .4byte gUnknown_03005EB0
-_08125898: .4byte 0x02000000
-_0812589C: .4byte 0x0000ffff
-_081258A0:
- adds r0, r6, 0
- bl sub_8125974
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_81258BC
-_081258B2:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_812587C
-
- thumb_func_start sub_81258BC
-sub_81258BC: @ 81258BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- ldr r0, _08125958
- ldr r1, [r0]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 17
- lsrs r7, r0, 16
- movs r5, 0
- ldr r6, _0812595C
-_081258D8:
- adds r0, r5, r7
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r6]
- bl sub_8125BF8
- ldr r0, [r6]
- ldr r1, _08125960
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- bne _081258F4
- ldr r0, _08125964
- strh r5, [r0]
-_081258F4:
- ldr r0, [r6]
- lsls r1, 3
- mov r2, r8
- adds r4, r1, r2
- ldrh r1, [r4, 0x4]
- bl sub_8125C10
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, [r6]
- ldr r1, _08125968
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, _0812596C
- adds r5, 0x1
- cmp r1, r0
- bne _08125944
- ldr r1, _08125970
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08125944
- movs r2, 0
- ldrh r0, [r4, 0x4]
- cmp r2, r0
- bcs _08125944
- adds r3, r4, 0
- ldr r4, _0812595C
-_0812592C:
- ldr r1, [r3]
- adds r1, r2
- ldr r0, [r4]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r1, [r3, 0x4]
- cmp r2, r1
- bcc _0812592C
-_08125944:
- lsls r0, r5, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _081258D8
- movs r0, 0x1
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08125958: .4byte gUnknown_03005EAC
-_0812595C: .4byte gUnknown_03005EB0
-_08125960: .4byte 0x00000ff4
-_08125964: .4byte gUnknown_03005E9C
-_08125968: .4byte 0x00000ff8
-_0812596C: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125970: .4byte 0x00000ff6
- thumb_func_end sub_81258BC
-
- thumb_func_start sub_8125974
-sub_8125974: @ 8125974
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0
- movs r5, 0
- movs r4, 0
- ldr r7, _08125A00
-_08125990:
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, [r7]
- bl sub_8125BF8
- ldr r2, [r7]
- ldr r1, _08125A04
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, _08125A08
- cmp r1, r0
- bne _081259E0
- movs r5, 0x1
- ldr r3, _08125A0C
- adds r0, r2, r3
- ldrh r0, [r0]
- lsls r0, 3
- add r0, r10
- ldrh r1, [r0, 0x4]
- adds r0, r2, 0
- bl sub_8125C10
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, [r7]
- ldr r3, _08125A10
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _081259E0
- ldr r2, _08125A14
- adds r0, r1, r2
- ldr r0, [r0]
- mov r8, r0
- subs r3, 0x2
- adds r1, r3
- adds r0, r5, 0
- ldrh r1, [r1]
- lsls r0, r1
- orrs r6, r0
-_081259E0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xD
- bls _08125990
- cmp r5, 0
- beq _08125A1C
- ldr r0, _08125A18
- movs r1, 0xFF
- str r1, [sp]
- cmp r6, r0
- bne _08125A20
- movs r2, 0x1
- str r2, [sp]
- b _08125A20
- .align 2, 0
-_08125A00: .4byte gUnknown_03005EB0
-_08125A04: .4byte 0x00000ff8
-_08125A08: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125A0C: .4byte 0x00000ff4
-_08125A10: .4byte 0x00000ff6
-_08125A14: .4byte 0x00000ffc
-_08125A18: .4byte 0x00003fff
-_08125A1C:
- movs r3, 0
- str r3, [sp]
-_08125A20:
- movs r6, 0
- movs r5, 0
- movs r4, 0
- ldr r7, _08125A98
-_08125A28:
- adds r0, r4, 0
- adds r0, 0xE
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r7]
- bl sub_8125BF8
- ldr r2, [r7]
- ldr r1, _08125A9C
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, _08125AA0
- cmp r1, r0
- bne _08125A7C
- movs r5, 0x1
- ldr r3, _08125AA4
- adds r0, r2, r3
- ldrh r0, [r0]
- lsls r0, 3
- add r0, r10
- ldrh r1, [r0, 0x4]
- adds r0, r2, 0
- bl sub_8125C10
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, [r7]
- ldr r3, _08125AA8
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _08125A7C
- ldr r2, _08125AAC
- adds r0, r1, r2
- ldr r0, [r0]
- mov r9, r0
- subs r3, 0x2
- adds r1, r3
- adds r0, r5, 0
- ldrh r1, [r1]
- lsls r0, r1
- orrs r6, r0
-_08125A7C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xD
- bls _08125A28
- cmp r5, 0
- beq _08125AB4
- ldr r0, _08125AB0
- movs r1, 0xFF
- cmp r6, r0
- bne _08125AB6
- movs r1, 0x1
- b _08125AB6
- .align 2, 0
-_08125A98: .4byte gUnknown_03005EB0
-_08125A9C: .4byte 0x00000ff8
-_08125AA0: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125AA4: .4byte 0x00000ff4
-_08125AA8: .4byte 0x00000ff6
-_08125AAC: .4byte 0x00000ffc
-_08125AB0: .4byte 0x00003fff
-_08125AB4:
- movs r1, 0
-_08125AB6:
- ldr r0, [sp]
- cmp r0, 0x1
- bne _08125B28
- cmp r1, 0x1
- bne _08125B18
- movs r0, 0x1
- negs r0, r0
- cmp r8, r0
- bne _08125ACE
- mov r1, r9
- cmp r1, 0
- beq _08125AD8
-_08125ACE:
- mov r2, r8
- cmp r2, 0
- bne _08125AFC
- cmp r9, r0
- bne _08125AFC
-_08125AD8:
- mov r1, r8
- adds r1, 0x1
- mov r0, r9
- adds r0, 0x1
- cmp r1, r0
- bcs _08125AF0
- ldr r0, _08125AEC
- mov r3, r9
- b _08125B10
- .align 2, 0
-_08125AEC: .4byte gUnknown_03005EAC
-_08125AF0:
- ldr r0, _08125AF8
- mov r1, r8
- str r1, [r0]
- b _08125B40
- .align 2, 0
-_08125AF8: .4byte gUnknown_03005EAC
-_08125AFC:
- cmp r8, r9
- bcs _08125B0C
- ldr r0, _08125B08
- mov r2, r9
- str r2, [r0]
- b _08125B40
- .align 2, 0
-_08125B08: .4byte gUnknown_03005EAC
-_08125B0C:
- ldr r0, _08125B14
- mov r3, r8
-_08125B10:
- str r3, [r0]
- b _08125B40
- .align 2, 0
-_08125B14: .4byte gUnknown_03005EAC
-_08125B18:
- ldr r0, _08125B24
- mov r2, r8
- str r2, [r0]
- cmp r1, 0xFF
- beq _08125B38
- b _08125B40
- .align 2, 0
-_08125B24: .4byte gUnknown_03005EAC
-_08125B28:
- cmp r1, 0x1
- bne _08125B44
- ldr r0, _08125B3C
- mov r3, r9
- str r3, [r0]
- ldr r0, [sp]
- cmp r0, 0xFF
- bne _08125B40
-_08125B38:
- movs r0, 0xFF
- b _08125B70
- .align 2, 0
-_08125B3C: .4byte gUnknown_03005EAC
-_08125B40:
- movs r0, 0x1
- b _08125B70
-_08125B44:
- ldr r2, [sp]
- cmp r2, 0
- bne _08125B64
- cmp r1, 0
- bne _08125B64
- ldr r0, _08125B5C
- str r1, [r0]
- ldr r0, _08125B60
- strh r1, [r0]
- movs r0, 0
- b _08125B70
- .align 2, 0
-_08125B5C: .4byte gUnknown_03005EAC
-_08125B60: .4byte gUnknown_03005E9C
-_08125B64:
- ldr r0, _08125B80
- movs r1, 0
- str r1, [r0]
- ldr r0, _08125B84
- strh r1, [r0]
- movs r0, 0x2
-_08125B70:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08125B80: .4byte gUnknown_03005EAC
-_08125B84: .4byte gUnknown_03005E9C
- thumb_func_end sub_8125974
-
- thumb_func_start sub_8125B88
-sub_8125B88: @ 8125B88
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- ldr r5, _08125BDC
- adds r1, r5, 0
- bl sub_8125BF8
- ldr r1, _08125BE0
- adds r0, r5, r1
- ldr r1, [r0]
- ldr r0, _08125BE4
- cmp r1, r0
- bne _08125BF0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8125C10
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08125BE8
- adds r1, r5, r2
- ldrh r1, [r1]
- cmp r1, r0
- bne _08125BEC
- movs r2, 0
- cmp r2, r4
- bcs _08125BD6
-_08125BC4:
- adds r1, r6, r2
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r4
- bcc _08125BC4
-_08125BD6:
- movs r0, 0x1
- b _08125BF2
- .align 2, 0
-_08125BDC: .4byte 0x02000000
-_08125BE0: .4byte 0x00000ff8
-_08125BE4: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125BE8: .4byte 0x00000ff4
-_08125BEC:
- movs r0, 0x2
- b _08125BF2
-_08125BF0:
- movs r0, 0
-_08125BF2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8125B88
-
- thumb_func_start sub_8125BF8
-sub_8125BF8: @ 8125BF8
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- bl ReadFlash
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8125BF8
-
- thumb_func_start sub_8125C10
-sub_8125C10: @ 8125C10
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 16
- movs r2, 0
- movs r3, 0
- lsrs r1, 18
- cmp r2, r1
- bcs _08125C2E
-_08125C20:
- ldm r4!, {r0}
- adds r2, r0
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _08125C20
-_08125C2E:
- lsrs r0, r2, 16
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125C10
-
- thumb_func_start sub_8125C3C
-sub_8125C3C: @ 8125C3C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _08125CB6
- lsls r0, 2
- ldr r1, _08125C50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08125C50: .4byte _08125C54
- .align 2, 0
-_08125C54:
- .4byte _08125CB6
- .4byte _08125CD8
- .4byte _08125CF8
- .4byte _08125C82
- .4byte _08125D0C
- .4byte _08125C6C
-_08125C6C:
- movs r4, 0x1C
- ldr r5, _08125CC4
-_08125C70:
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08125C70
-_08125C82:
- movs r0, 0xA
- bl sub_8053108
- ldr r1, _08125CC8
- cmp r0, r1
- bhi _08125C94
- movs r0, 0xA
- bl sav12_xor_increment
-_08125C94:
- movs r4, 0
- ldr r5, _08125CCC
-_08125C98:
- adds r0, r4, 0
- adds r0, 0x1C
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r4, 3
- adds r2, r5
- ldr r1, [r2]
- ldrh r2, [r2, 0x4]
- bl sub_81253C8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _08125C98
-_08125CB6:
- bl save_serialize_game
- ldr r0, _08125CD0
- ldr r1, _08125CD4
- bl save_write_to_flash
- b _08125D2E
- .align 2, 0
-_08125CC4: .4byte EraseFlashSector
-_08125CC8: .4byte 0x000003e6
-_08125CCC: .4byte gHallOfFameSaveSectionLocations
-_08125CD0: .4byte 0x0000ffff
-_08125CD4: .4byte gSaveSectionLocations
-_08125CD8:
- bl save_serialize_game
- movs r4, 0
-_08125CDE:
- adds r0, r4, 0
- ldr r1, _08125CF4
- bl save_write_to_flash
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08125CDE
- b _08125D2E
- .align 2, 0
-_08125CF4: .4byte gSaveSectionLocations
-_08125CF8:
- bl save_serialize_game
- ldr r1, _08125D08
- movs r0, 0
- bl save_write_to_flash
- b _08125D2E
- .align 2, 0
-_08125D08: .4byte gSaveSectionLocations
-_08125D0C:
- movs r4, 0x1C
- ldr r5, _08125D38
-_08125D10:
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08125D10
- bl save_serialize_game
- ldr r0, _08125D3C
- ldr r1, _08125D40
- bl save_write_to_flash
-_08125D2E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08125D38: .4byte EraseFlashSector
-_08125D3C: .4byte 0x0000ffff
-_08125D40: .4byte gSaveSectionLocations
- thumb_func_end sub_8125C3C
-
- thumb_func_start sub_8125D44
-sub_8125D44: @ 8125D44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08125D58
- ldr r0, [r0]
- cmp r0, 0x1
- beq _08125D5C
- movs r0, 0xFF
- b _08125D7A
- .align 2, 0
-_08125D58: .4byte gUnknown_3004820
-_08125D5C:
- adds r0, r4, 0
- bl sub_8125C3C
- ldr r0, _08125D74
- ldr r0, [r0]
- cmp r0, 0
- beq _08125D78
- adds r0, r4, 0
- bl fullscreen_save_activate
- movs r0, 0xFF
- b _08125D7A
- .align 2, 0
-_08125D74: .4byte gUnknown_03005EA8
-_08125D78:
- movs r0, 0x1
-_08125D7A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125D44
-
- thumb_func_start sub_8125D80
-sub_8125D80: @ 8125D80
- push {lr}
- ldr r0, _08125D98
- ldr r0, [r0]
- cmp r0, 0x1
- bne _08125DA0
- bl save_serialize_game
- ldr r0, _08125D9C
- bl sub_812546C
- movs r0, 0
- b _08125DA2
- .align 2, 0
-_08125D98: .4byte gUnknown_3004820
-_08125D9C: .4byte gSaveSectionLocations
-_08125DA0:
- movs r0, 0x1
-_08125DA2:
- pop {r1}
- bx r1
- thumb_func_end sub_8125D80
-
- thumb_func_start sub_8125DA8
-sub_8125DA8: @ 8125DA8
- push {r4,lr}
- ldr r1, _08125DCC
- movs r0, 0xE
- bl sub_812550C
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08125DD0
- ldr r0, [r0]
- cmp r0, 0
- beq _08125DC4
- movs r0, 0
- bl fullscreen_save_activate
-_08125DC4:
- cmp r4, 0xFF
- beq _08125DD4
- movs r0, 0
- b _08125DD6
- .align 2, 0
-_08125DCC: .4byte gSaveSectionLocations
-_08125DD0: .4byte gUnknown_03005EA8
-_08125DD4:
- movs r0, 0x1
-_08125DD6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125DA8
-
- thumb_func_start sub_8125DDC
-sub_8125DDC: @ 8125DDC
- push {lr}
- ldr r1, _08125DFC
- movs r0, 0xE
- bl sub_812556C
- ldr r0, _08125E00
- ldr r0, [r0]
- cmp r0, 0
- beq _08125DF4
- movs r0, 0
- bl fullscreen_save_activate
-_08125DF4:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08125DFC: .4byte gSaveSectionLocations
-_08125E00: .4byte gUnknown_03005EA8
- thumb_func_end sub_8125DDC
-
- thumb_func_start sub_8125E04
-sub_8125E04: @ 8125E04
- push {lr}
- ldr r1, _08125E24
- movs r0, 0xE
- bl sub_8125758
- ldr r0, _08125E28
- ldr r0, [r0]
- cmp r0, 0
- beq _08125E1C
- movs r0, 0
- bl fullscreen_save_activate
-_08125E1C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08125E24: .4byte gSaveSectionLocations
-_08125E28: .4byte gUnknown_03005EA8
- thumb_func_end sub_8125E04
-
- thumb_func_start sub_8125E2C
-sub_8125E2C: @ 8125E2C
- push {r4,lr}
- ldr r0, _08125E58
- ldr r0, [r0]
- cmp r0, 0x1
- bne _08125E64
- bl save_serialize_game
- ldr r4, _08125E5C
- adds r0, r4, 0
- bl sub_81254C8
- ldr r0, _08125E60
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl sub_812556C
- movs r0, 0
- b _08125E66
- .align 2, 0
-_08125E58: .4byte gUnknown_3004820
-_08125E5C: .4byte gSaveSectionLocations
-_08125E60: .4byte gUnknown_03005EB4
-_08125E64:
- movs r0, 0x1
-_08125E66:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125E2C
-
- thumb_func_start sub_8125E6C
-sub_8125E6C: @ 8125E6C
- push {r4-r6,lr}
- movs r6, 0
- ldr r0, _08125E98
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r0, r1, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bhi _08125EA0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _08125E9C
- adds r1, r4, 0
- bl sub_812556C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81257F0
- b _08125EAA
- .align 2, 0
-_08125E98: .4byte gUnknown_03005EB4
-_08125E9C: .4byte gSaveSectionLocations
-_08125EA0:
- ldr r1, _08125EC0
- adds r0, r5, 0
- bl sub_81257F0
- movs r6, 0x1
-_08125EAA:
- ldr r0, _08125EC4
- ldr r0, [r0]
- cmp r0, 0
- beq _08125EB8
- movs r0, 0x1
- bl fullscreen_save_activate
-_08125EB8:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08125EC0: .4byte gSaveSectionLocations
-_08125EC4: .4byte gUnknown_03005EA8
- thumb_func_end sub_8125E6C
-
- thumb_func_start sub_8125EC8
-sub_8125EC8: @ 8125EC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08125EE0
- ldr r0, [r0]
- cmp r0, 0x1
- beq _08125EE8
- ldr r1, _08125EE4
- movs r0, 0x4
- strh r0, [r1]
- movs r0, 0xFF
- b _08125F40
- .align 2, 0
-_08125EE0: .4byte gUnknown_3004820
-_08125EE4: .4byte gSaveFileStatus
-_08125EE8:
- cmp r1, 0
- beq _08125EF0
- cmp r1, 0x3
- beq _08125F1C
-_08125EF0:
- ldr r0, _08125F0C
- ldr r1, _08125F10
- bl sub_812587C
- lsls r0, 24
- lsrs r4, r0, 24
- bl save_deserialize_game
- ldr r0, _08125F14
- strh r4, [r0]
- ldr r1, _08125F18
- movs r0, 0
- str r0, [r1]
- b _08125F3E
- .align 2, 0
-_08125F0C: .4byte 0x0000ffff
-_08125F10: .4byte gSaveSectionLocations
-_08125F14: .4byte gSaveFileStatus
-_08125F18: .4byte gUnknown_03005EBC
-_08125F1C:
- ldr r5, _08125F48
- ldr r1, [r5]
- ldrh r2, [r5, 0x4]
- movs r0, 0x1C
- bl sub_8125B88
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08125F3E
- ldr r1, [r5, 0x8]
- ldrh r2, [r5, 0xC]
- movs r0, 0x1D
- bl sub_8125B88
- lsls r0, 24
- lsrs r4, r0, 24
-_08125F3E:
- adds r0, r4, 0
-_08125F40:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08125F48: .4byte gHallOfFameSaveSectionLocations
- thumb_func_end sub_8125EC8
-
- thumb_func_start unref_sub_8125F4C
-unref_sub_8125F4C: @ 8125F4C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- movs r1, 0
- ldr r6, _08125F88
- movs r5, 0
- ldr r3, _08125F8C
-_08125F5A:
- adds r0, r2, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08125F5A
- ldrb r0, [r6]
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- adds r2, r4, 0
- bl ReadFlash
- ldr r1, _08125F90
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _08125F94
- cmp r1, r0
- bne _08125F98
- movs r0, 0x1
- b _08125F9A
- .align 2, 0
-_08125F88: .4byte gUnknown_08401E24
-_08125F8C: .4byte 0x00000fff
-_08125F90: .4byte 0x00000ff4
-_08125F94: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125F98:
- movs r0, 0
-_08125F9A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8125F4C
-
- thumb_func_start unref_sub_8125FA0
-unref_sub_8125FA0: @ 8125FA0
- push {r4-r7,lr}
- movs r0, 0
- bl sub_8125D44
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r7, _08125FD0
- ldr r6, _08125FD4
-_08125FB2:
- adds r0, r4, r6
- ldrb r0, [r0]
- ldr r1, [r7]
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08125FB2
- cmp r5, 0xFF
- bne _08125FD8
- movs r0, 0x3
- b _08125FE8
- .align 2, 0
-_08125FD0: .4byte EraseFlashSector
-_08125FD4: .4byte gUnknown_08401E24
-_08125FD8:
- cmp r5, 0x3
- beq _08125FE6
- movs r0, 0
- bl sub_8125EC8
- movs r0, 0x1
- b _08125FE8
-_08125FE6:
- movs r0, 0x2
-_08125FE8:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8125FA0
-
- thumb_func_start unref_sub_8125FF0
-unref_sub_8125FF0: @ 8125FF0
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- ldr r4, _08126048
- movs r2, 0
- ldr r7, _0812604C
- movs r5, 0
- ldr r1, _08126050
-_08126002:
- adds r0, r4, r2
- strb r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r1
- bls _08126002
- ldr r0, _08126054
- adds r1, r4, r0
- ldr r0, _08126058
- str r0, [r1]
- movs r2, 0
- cmp r2, r3
- bcs _08126030
-_0812601E:
- adds r1, r4, r2
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bcc _0812601E
-_08126030:
- ldrb r0, [r7]
- movs r2, 0x80
- lsls r2, 5
- adds r1, r4, 0
- bl ProgramFlashSectorAndVerifyNBytes
- ldr r1, _0812605C
- str r0, [r1]
- cmp r0, 0
- bne _08126060
- movs r0, 0x1
- b _08126062
- .align 2, 0
-_08126048: .4byte 0x02000000
-_0812604C: .4byte gUnknown_08401E24
-_08126050: .4byte 0x00000fff
-_08126054: .4byte 0x00000ff4
-_08126058: .4byte 0x08012025 @ TODO: figure out what this represents
-_0812605C: .4byte gUnknown_02039284
-_08126060:
- movs r0, 0xFF
-_08126062:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8125FF0
-
- thumb_func_start unref_sub_8126068
-unref_sub_8126068: @ 8126068
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl ProgramFlashSectorAndVerify
- cmp r0, 0
- bne _0812607A
- movs r0, 0x1
- b _0812607C
-_0812607A:
- movs r0, 0xFF
-_0812607C:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8126068
-
- thumb_func_start unref_sub_8126080
-unref_sub_8126080: @ 8126080
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- bl ReadFlash
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8126080
-
- thumb_func_start sub_8126098
-sub_8126098: @ 8126098
- push {r4,lr}
- adds r4, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- lsrs r2, 16
- movs r3, 0x2
- ands r0, r3
- cmp r0, 0
- beq _081260C6
- ands r1, r3
- cmp r1, 0
- beq _081260C6
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081260C6
- movs r0, 0x80
- .ifdef SAPPHIRE
- lsls r0, 1 @ unknown difference
- .endif
- ands r0, r4
- cmp r0, 0
- beq _081260C6
- movs r0, 0x1
- b _081260C8
-_081260C6:
- movs r0, 0
-_081260C8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8126098
-
- thumb_func_start sub_81260D0
-sub_81260D0: @ 81260D0
- push {lr}
- ldr r0, _081260E4
- ldr r1, _081260E8
- bl StringExpandPlaceholders
- movs r0, 0x3
- bl sub_8126160
- pop {r0}
- bx r0
- .align 2, 0
-_081260E4: .4byte gStringVar4
-_081260E8: .4byte gOtherText_DataCannotUseVersion
- thumb_func_end sub_81260D0
-
- thumb_func_start sub_81260EC
-sub_81260EC: @ 81260EC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _08126114
- ldr r2, _08126118
- bl InitScriptContext
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetupBytecodeScript
- str r5, [r4, 0x64]
- movs r0, 0
- str r0, [r4, 0x68]
- str r0, [r4, 0x6C]
- str r0, [r4, 0x70]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08126114: .4byte gScriptFuncs
-_08126118: .4byte gScriptFuncs_End
- thumb_func_end sub_81260EC
-
- thumb_func_start sub_812611C
-sub_812611C: @ 812611C
- push {r4,lr}
- adds r4, r0, 0
- bl RunScript
- lsls r0, 24
- cmp r0, 0
- beq _08126134
- ldr r0, [r4, 0x70]
- cmp r0, 0
- beq _08126134
- movs r0, 0x1
- b _08126136
-_08126134:
- movs r0, 0
-_08126136:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812611C
-
- thumb_func_start sub_812613C
-sub_812613C: @ 812613C
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, _0812615C
- adds r0, r4, 0
- bl sub_81260EC
-_08126148:
- adds r0, r4, 0
- bl sub_812611C
- cmp r0, 0
- bne _08126148
- ldr r0, [r4, 0x6C]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812615C: .4byte gUnknown_02039288
- thumb_func_end sub_812613C
-
- thumb_func_start sub_8126160
-sub_8126160: @ 8126160
- ldr r1, _08126168
- str r0, [r1, 0x6C]
- bx lr
- .align 2, 0
-_08126168: .4byte gUnknown_02039288
- thumb_func_end sub_8126160
-
- thumb_func_start sub_812616C
-sub_812616C: @ 812616C
- push {r4,lr}
- adds r4, r0, 0
- movs r3, 0
- movs r2, 0
- cmp r3, r1
- bcs _08126184
-_08126178:
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r3, r0
- adds r2, 0x1
- cmp r2, r1
- bcc _08126178
-_08126184:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812616C
-
- thumb_func_start sub_812618C
-sub_812618C: @ 812618C
- adds r2, r0, 0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- orrs r0, r1
- bx lr
- thumb_func_end sub_812618C
-
- thumb_func_start sub_81261A4
-sub_81261A4: @ 81261A4
- strb r1, [r0]
- lsrs r2, r1, 8
- strb r2, [r0, 0x1]
- lsrs r2, r1, 16
- strb r2, [r0, 0x2]
- lsrs r1, 24
- strb r1, [r0, 0x3]
- bx lr
- thumb_func_end sub_81261A4
-
- thumb_func_start unref_sub_81261B4
-unref_sub_81261B4: @ 81261B4
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08126204
- ldrb r0, [r5, 0x11]
- cmp r0, 0xF
- bne _08126204
- adds r6, r5, 0
- adds r6, 0x12
- adds r0, r6, 0
- bl sub_812618C
- cmp r0, 0
- bne _08126204
- adds r0, r5, 0
- adds r0, 0x16
- bl sub_812618C
- adds r4, r0, 0
- subs r4, r7
- adds r4, r5
- adds r0, r5, 0
- adds r0, 0x1A
- bl sub_812618C
- adds r1, r0, 0
- subs r1, r7
- adds r1, r5
- subs r1, r4
- adds r0, r4, 0
- bl sub_812616C
- adds r1, r0, 0
- adds r0, r6, 0
- bl sub_81261A4
- movs r0, 0x1
- b _08126206
-_08126204:
- movs r0, 0
-_08126206:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_81261B4
-
- thumb_func_start unref_sub_812620C
-unref_sub_812620C: @ 812620C
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08126260
- ldrb r0, [r5, 0x11]
- cmp r0, 0x10
- bne _08126260
- adds r6, r5, 0
- adds r6, 0x12
- adds r0, r6, 0
- bl sub_812618C
- cmp r0, 0
- bne _08126260
- adds r0, r5, 0
- adds r0, 0x16
- bl sub_812618C
- adds r4, r0, 0
- subs r4, r7
- adds r4, r5
- adds r0, r5, 0
- adds r0, 0x1A
- bl sub_812618C
- adds r1, r0, 0
- subs r1, r7
- adds r1, r5
- subs r1, r4
- adds r0, r4, 0
- bl sub_8041174
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r6, 0
- bl sub_81261A4
- movs r0, 0x1
- b _08126262
-_08126260:
- movs r0, 0
-_08126262:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_812620C
-
- thumb_func_start sub_8126268
-sub_8126268: @ 8126268
- push {lr}
- movs r2, 0
- ldr r3, _08126284
- movs r1, 0
-_08126270:
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r0
- adds r1, 0x1
- cmp r1, 0xB
- bls _08126270
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08126284: .4byte gSaveBlock1 + 0x3A80
- thumb_func_end sub_8126268
-
- thumb_func_start sub_8126288
-sub_8126288: @ 8126288
- push {r4,lr}
- ldr r4, _081262B4
- bl sub_8126268
- adds r1, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _081262B0
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _081262B0
- ldrh r0, [r4, 0x2]
- cmp r0, 0
- beq _081262B0
- cmp r1, 0
- beq _081262B0
- subs r0, r4, 0x4
- ldr r0, [r0]
- cmp r1, r0
- beq _081262B8
-_081262B0:
- movs r0, 0
- b _081262BA
- .align 2, 0
-_081262B4: .4byte gSaveBlock1 + 0x3A80
-_081262B8:
- movs r0, 0x1
-_081262BA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8126288
-
- thumb_func_start sub_81262C0
-sub_81262C0: @ 81262C0
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _081262DC
- ldr r2, _081262E0
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081262DC: .4byte gSaveBlock1 + 0x3A7C
-_081262E0: .4byte 0x01000008
- thumb_func_end sub_81262C0
-
- thumb_func_start sub_81262E4
-sub_81262E4: @ 81262E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- lsls r2, 16
- lsrs r2, 16
- adds r6, r2, 0
- cmp r3, 0
- beq _08126304
- cmp r1, 0
- beq _08126304
- cmp r2, 0
- bne _0812630A
-_08126304:
- bl sub_81262C0
- b _0812632A
-_0812630A:
- ldr r4, _08126330
- movs r1, 0xEA
- lsls r1, 6
- adds r0, r4, r1
- strb r3, [r0]
- adds r1, 0x1
- adds r0, r4, r1
- strb r5, [r0]
- adds r1, 0x1
- adds r0, r4, r1
- strh r6, [r0]
- bl sub_8126268
- ldr r1, _08126334
- adds r4, r1
- str r0, [r4]
-_0812632A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08126330: .4byte gSaveBlock1
-_08126334: .4byte 0x00003a7c
- thumb_func_end sub_81262E4
-
- thumb_func_start sub_8126338
-sub_8126338: @ 8126338
- push {r4,r5,lr}
- ldr r4, _0812634C
- bl sub_8126288
- cmp r0, 0
- bne _08126350
- bl sub_81262C0
- movs r0, 0
- b _0812636E
- .align 2, 0
-_0812634C: .4byte gSaveBlock1 + 0x3A80
-_08126350:
- ldrh r5, [r4, 0x2]
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _08126364
- bl sub_81262C0
- b _0812636C
-_08126364:
- bl sub_8126268
- subs r1, r4, 0x4
- str r0, [r1]
-_0812636C:
- adds r0, r5, 0
-_0812636E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8126338
-
- thumb_func_start script_status_stop_and_ret_1
-script_status_stop_and_ret_1: @ 8126374
- push {lr}
- bl StopScript
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end script_status_stop_and_ret_1
-
- thumb_func_start sub_8126380
-sub_8126380: @ 8126380
- push {r4-r7,lr}
- adds r7, r0, 0
- bl ScriptReadWord
- str r0, [r7, 0x68]
- adds r0, r7, 0
- bl ScriptReadHalfword
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r7, 0
- bl ScriptReadWord
- adds r6, r0, 0
- adds r0, r7, 0
- bl ScriptReadHalfword
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- bl ScriptReadWord
- adds r3, r0, 0
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_8126098
- cmp r0, 0x1
- bne _081263C4
- str r0, [r7, 0x70]
- b _081263C8
-_081263C4:
- bl sub_81260D0
-_081263C8:
- movs r0, 0x1
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126380
-
- thumb_func_start sub_81263D0
-sub_81263D0: @ 81263D0
- movs r0, 0
- bx lr
- thumb_func_end sub_81263D0
-
- thumb_func_start sub_81263D4
-sub_81263D4: @ 81263D4
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- str r2, [r0, 0x6C]
- movs r0, 0
- bx lr
- thumb_func_end sub_81263D4
-
- thumb_func_start sub_81263E4
-sub_81263E4: @ 81263E4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r5, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- ldr r1, [r4, 0x68]
- subs r0, r1
- ldr r1, [r4, 0x64]
- adds r1, r0, r1
- cmp r5, 0xFF
- beq _08126408
- ldr r0, [r4, 0x6C]
- cmp r5, r0
- bne _0812640E
-_08126408:
- ldr r0, _08126418
- bl StringExpandPlaceholders
-_0812640E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126418: .4byte gStringVar4
- thumb_func_end sub_81263E4
-
- thumb_func_start sub_812641C
-sub_812641C: @ 812641C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldr r1, [r4, 0x68]
- subs r0, r1
- ldr r1, [r4, 0x64]
- adds r0, r1
- bl ScriptContext2_RunNewScript
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812641C
-
- thumb_func_start sub_8126438
-sub_8126438: @ 8126438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- bl sub_80B4940
- mov r8, r0
- adds r0, r7, 0
- bl ScriptReadWord
- adds r4, r0, 0
- ldr r0, [r7, 0x68]
- subs r4, r0
- ldr r0, [r7, 0x64]
- adds r4, r0
- ldr r6, _08126484
- ldr r5, _08126488
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl StringCopyN
- adds r0, r4, 0
- bl sub_80B48A8
- ldr r4, _0812648C
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl StringCopyN
- mov r0, r8
- cmp r0, 0
- bne _08126498
- ldr r0, _08126490
- ldr r1, _08126494
- b _081264B8
- .align 2, 0
-_08126484: .4byte gStringVar1
-_08126488: .4byte gSaveBlock1 + 0x3160
-_0812648C: .4byte gStringVar2
-_08126490: .4byte gStringVar4
-_08126494: .4byte gOtherText_BerryObtainedDadHasIt
-_08126498:
- adds r0, r6, 0
- adds r1, r4, 0
- bl StringCompare
- cmp r0, 0
- beq _081264B4
- ldr r0, _081264AC
- ldr r1, _081264B0
- b _081264B8
- .align 2, 0
-_081264AC: .4byte gStringVar4
-_081264B0: .4byte gOtherText_BerryTransformed
-_081264B4:
- ldr r0, _081264D4
- ldr r1, _081264D8
-_081264B8:
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r7, 0x6C]
- bl sub_80B4940
- cmp r0, 0x1
- bne _081264E0
- ldr r0, _081264DC
- movs r1, 0x1
- bl VarSet
- b _081264E4
- .align 2, 0
-_081264D4: .4byte gStringVar4
-_081264D8: .4byte gOtherText_BerryAlreadyObtained
-_081264DC: .4byte 0x0000402d
-_081264E0:
- movs r0, 0x1
- str r0, [r7, 0x6C]
-_081264E4:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126438
-
- thumb_func_start sub_81264F0
-sub_81264F0: @ 81264F0
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r0, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl sub_80C5C38
- ldr r0, _0812651C
- ldr r1, _08126520
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812651C: .4byte gStringVar4
-_08126520: .4byte gOtherText_SpecialRibbonReceived
- thumb_func_end sub_81264F0
-
- thumb_func_start sub_8126524
-sub_8126524: @ 8126524
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r4, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- adds r5, r0, 0
- ldr r0, [r4, 0x68]
- subs r5, r0
- ldr r0, [r4, 0x64]
- adds r5, r0
- adds r0, r4, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r4, 0x68]
- subs r1, r0
- ldr r0, [r4, 0x64]
- adds r1, r0
- subs r1, r5
- lsls r1, 16
- lsrs r1, 16
- str r6, [sp]
- adds r0, r5, 0
- mov r2, r9
- mov r3, r8
- bl InitRamScript
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8126524
-
- thumb_func_start sub_812658C
-sub_812658C: @ 812658C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80690F0
- ldr r0, _081265A8
- ldr r1, _081265AC
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081265A8: .4byte gStringVar4
-_081265AC: .4byte gOtherText_DexUpgraded
- thumb_func_end sub_812658C
-
- thumb_func_start sub_81265B0
-sub_81265B0: @ 81265B0
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, [r4, 0x8]
- ldrb r0, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- bl sub_80EB890
- ldr r0, _081265D4
- ldr r1, _081265D8
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081265D4: .4byte gStringVar4
-_081265D8: .4byte gOtherText_RareWordAdded
- thumb_func_end sub_81265B0
-
- thumb_func_start sub_81265DC
-sub_81265DC: @ 81265DC
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81262E4
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81265DC
-
- thumb_func_start sub_8126608
-sub_8126608: @ 8126608
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x88
- adds r6, r0, 0
- bl ScriptReadWord
- ldr r1, [r6, 0x68]
- subs r0, r1
- ldr r1, [r6, 0x64]
- adds r5, r0, r1
- movs r0, 0x64
- adds r0, r5
- mov r8, r0
- add r4, sp, 0x24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _08126658
- ldr r0, _08126650
- ldr r1, _08126654
- movs r2, 0xB
- bl StringCopyN
- b _08126662
- .align 2, 0
-_08126650: .4byte gStringVar1
-_08126654: .4byte gSystemText_Egg
-_08126658:
- ldr r0, _08126678
- ldr r1, _0812667C
- movs r2, 0xB
- bl StringCopyN
-_08126662:
- ldr r0, _08126680
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0812668C
- ldr r0, _08126684
- ldr r1, _08126688
- bl StringExpandPlaceholders
- movs r0, 0x3
- b _081266F6
- .align 2, 0
-_08126678: .4byte gStringVar1
-_0812667C: .4byte gSystemText_Pokemon2
-_08126680: .4byte gPlayerPartyCount
-_08126684: .4byte gStringVar4
-_08126688: .4byte gOtherText_PartyIsFull
-_0812668C:
- ldr r7, _08126708
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- mov r0, sp
- mov r1, r8
- movs r2, 0x24
- bl memcpy
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081266C6
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8090D90
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8090D90
-_081266C6:
- adds r0, r7, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _081266E4
- adds r0, r7, 0
- mov r1, sp
- bl sub_80A2D88
-_081266E4:
- bl party_compaction
- bl CalculatePlayerPartyCount
- ldr r0, _0812670C
- ldr r1, _08126710
- bl StringExpandPlaceholders
- movs r0, 0x2
-_081266F6:
- str r0, [r6, 0x6C]
- movs r0, 0
- add sp, 0x88
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08126708: .4byte gUnknown_03004554
-_0812670C: .4byte gStringVar4
-_08126710: .4byte gOtherText_PokeWasSentOver
- thumb_func_end sub_8126608
-
- thumb_func_start sub_8126714
-sub_8126714: @ 8126714
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r4, 0x68]
- subs r1, r0
- ldr r0, [r4, 0x64]
- adds r1, r0
- ldr r0, _08126748
- movs r2, 0xBC
- bl memcpy
- bl sub_813601C
- ldr r0, _0812674C
- ldr r1, _08126750
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126748: .4byte gSaveBlock2 + 0x498
-_0812674C: .4byte gStringVar4
-_08126750: .4byte gOtherText_NewTrainerInHoenn
- thumb_func_end sub_8126714
-
- thumb_func_start sub_8126754
-sub_8126754: @ 8126754
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80691BC
- ldr r0, _08126770
- ldr r1, _08126774
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126770: .4byte gStringVar4
-_08126774: .4byte gSystemText_ClockAdjustmentUsable
- thumb_func_end sub_8126754
-
- thumb_func_start sub_8126778
-sub_8126778: @ 8126778
- push {r4-r6,lr}
- adds r6, r0, 0
- bl ScriptReadWord
- adds r5, r0, 0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r4, r0, 0
- ldr r0, [r6, 0x68]
- subs r4, r0
- ldr r0, [r6, 0x64]
- adds r4, r0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r6, 0x68]
- subs r1, r0
- ldr r0, [r6, 0x64]
- adds r1, r0
- subs r1, r4
- adds r0, r4, 0
- bl sub_812616C
- cmp r5, r0
- beq _081267B6
- movs r0, 0
- str r0, [r6, 0x70]
- movs r0, 0x1
- str r0, [r6, 0x6C]
-_081267B6:
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8126778
-
- thumb_func_start sub_81267C0
-sub_81267C0: @ 81267C0
- push {r4-r6,lr}
- adds r6, r0, 0
- bl ScriptReadWord
- adds r5, r0, 0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r4, r0, 0
- ldr r0, [r6, 0x68]
- subs r4, r0
- ldr r0, [r6, 0x64]
- adds r4, r0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r6, 0x68]
- subs r1, r0
- ldr r0, [r6, 0x64]
- adds r1, r0
- subs r1, r4
- adds r0, r4, 0
- bl sub_8041174
- lsls r0, 16
- lsrs r0, 16
- cmp r5, r0
- beq _08126802
- movs r0, 0
- str r0, [r6, 0x70]
- movs r0, 0x1
- str r0, [r6, 0x6C]
-_08126802:
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81267C0
-
- thumb_func_start SetUpReflection
-SetUpReflection: @ 812680C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- adds r0, r4, 0
- movs r3, 0x98
- bl obj_unfreeze
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _081268BC
- adds r7, r1, r0
- ldr r0, _081268C0
- str r0, [r7, 0x1C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xC
- orrs r1, r0
- strb r1, [r7, 0x5]
- ldr r2, _081268C4
- lsrs r0, r1, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- movs r1, 0x3F
- adds r1, r7
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x40
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- ldr r0, _081268C8
- str r0, [r7, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _081268CC
- str r0, [r7, 0x10]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x8
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r2, r7, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x2E]
- strh r0, [r7, 0x2E]
- ldrb r0, [r6, 0x8]
- strh r0, [r7, 0x30]
- strh r5, [r7, 0x3C]
- adds r0, r6, 0
- adds r1, r7, 0
- bl npc_pal_op
- cmp r5, 0
- bne _081268B2
- ldrb r0, [r7, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r7, 0x1]
-_081268B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081268BC: .4byte gSprites
-_081268C0: .4byte sub_81269E0
-_081268C4: .4byte gUnknown_0830FD14
-_081268C8: .4byte gDummySpriteAnimTable
-_081268CC: .4byte gDummySpriteAffineAnimTable
- thumb_func_end SetUpReflection
-
- thumb_func_start sub_81268D0
-sub_81268D0: @ 81268D0
- push {lr}
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrh r0, [r0, 0xA]
- subs r0, 0x2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81268D0
-
- thumb_func_start npc_pal_op
-npc_pal_op: @ 81268E4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _0812693C
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08126940
- ldrb r0, [r5, 0x1F]
- bl sub_8057450
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08126926
- ldrb r0, [r5, 0x1E]
- bl sub_8057450
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08126940
-_08126926:
- subs r0, 0x1
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_A
- b _0812694A
- .align 2, 0
-_0812693C: .4byte gUnknown_08401E2C
-_08126940:
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_B
-_0812694A:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op
-
- thumb_func_start npc_pal_op_B
-npc_pal_op_B: @ 8126954
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _08126980
- cmp r1, r0
- beq _081269A8
- ldrb r0, [r2, 0xC]
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- bne _08126984
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl npc_load_two_palettes__no_record
- b _081269A2
- .align 2, 0
-_08126980: .4byte 0x000011ff
-_08126984:
- cmp r1, 0xA
- bne _08126992
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl npc_load_two_palettes__and_record
- b _081269A2
-_08126992:
- adds r0, r4, 0
- bl npc_paltag_by_palslot
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl pal_patch_for_npc
-_081269A2:
- adds r0, r4, 0
- bl sub_807D78C
-_081269A8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op_B
-
- thumb_func_start npc_pal_op_A
-npc_pal_op_A: @ 81269B0
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _081269DC
- cmp r1, r0
- beq _081269D4
- adds r0, r1, 0
- adds r1, r4, 0
- bl pal_patch_for_npc
- adds r0, r4, 0
- bl sub_807D78C
-_081269D4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081269DC: .4byte 0x000011ff
- thumb_func_end npc_pal_op_A
-
- thumb_func_start sub_81269E0
-sub_81269E0: @ 81269E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126A28
- adds r7, r0, r1
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126A2C
- adds r5, r0, r1
- ldr r0, [r7]
- ldr r1, _08126A30
- ands r0, r1
- cmp r0, r1
- bne _08126A18
- ldrb r1, [r7, 0x8]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _08126A34
-_08126A18:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _08126B3E
- .align 2, 0
-_08126A28: .4byte gMapObjects
-_08126A2C: .4byte gSprites
-_08126A30: .4byte 0x00020001
-_08126A34:
- ldr r1, _08126B4C
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r4, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrb r1, [r5, 0x1]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r5, 0x3]
- lsrs r0, 6
- lsls r0, 6
- ldrb r2, [r4, 0x3]
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r2, 0x10
- orrs r0, r2
- lsls r0, 1
- subs r2, 0x4F
- mov r9, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldrh r2, [r4, 0x4]
- ldr r0, _08126B50
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, [r5, 0x18]
- str r0, [r4, 0x18]
- adds r0, r5, 0
- adds r0, 0x42
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 26
- adds r2, r4, 0
- adds r2, 0x42
- ands r3, r0
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- movs r0, 0x3E
- adds r0, r5
- mov r8, r0
- ldrb r0, [r0]
- adds r6, r4, 0
- adds r6, 0x3E
- movs r1, 0x4
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- adds r0, r7, 0
- bl sub_81268D0
- ldrh r1, [r5, 0x22]
- adds r0, r1
- ldrh r1, [r4, 0x32]
- adds r1, r0
- strh r1, [r4, 0x22]
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x28
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x29
- strb r0, [r1]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x2
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08126B3E
- ldrb r0, [r4, 0x3]
- mov r2, r9
- ands r2, r0
- strb r2, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08126B3E
- movs r1, 0x2
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r4, 0x3]
-_08126B3E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126B4C: .4byte gUnknown_0830FD14
-_08126B50: .4byte 0xfffffc00
- thumb_func_end sub_81269E0
-
- thumb_func_start sub_8126B54
-sub_8126B54: @ 8126B54
- push {r4,lr}
- ldr r0, _08126B9C
- ldr r0, [r0, 0x20]
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r0, 0x40
- beq _08126B92
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08126BA0
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- orrs r0, r3
- strb r0, [r1]
-_08126B92:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126B9C: .4byte gFieldEffectObjectTemplatePointers
-_08126BA0: .4byte gSprites
- thumb_func_end sub_8126B54
-
- thumb_func_start objid_set_invisible
-objid_set_invisible: @ 8126BA4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08126BC0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08126BC0: .4byte gSprites
- thumb_func_end objid_set_invisible
-
- thumb_func_start sub_8126BC4
-sub_8126BC4: @ 8126BC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _08126C68
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08126C0E
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _08126C0E
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- beq _08126C5A
-_08126C0E:
- lsls r0, r7, 16
- asrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- mov r4, sp
- adds r4, 0x2
- mov r2, sp
- adds r3, r4, 0
- bl sub_80603CC
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _08126C68
- adds r2, r0, r1
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x8
- strh r0, [r2, 0x20]
- ldrh r0, [r4]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- strh r7, [r2, 0x2E]
- strh r6, [r2, 0x30]
- mov r1, r8
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
-_08126C5A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126C68: .4byte gSprites
- thumb_func_end sub_8126BC4
-
- thumb_func_start oei_shadow
-oei_shadow: @ 8126C6C
- push {r4,r5,lr}
- ldr r5, _08126CF8
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08126CFC
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- ldr r2, _08126D00
- ldr r1, _08126D04
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08126CF0
- ldr r0, _08126D08
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldr r0, [r5]
- strh r0, [r2, 0x2E]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- ldr r3, _08126D0C
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x34]
-_08126CF0:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126CF8: .4byte gUnknown_0202FF84
-_08126CFC: .4byte gMapObjects
-_08126D00: .4byte gFieldEffectObjectTemplatePointers
-_08126D04: .4byte gUnknown_08401E32
-_08126D08: .4byte gSprites
-_08126D0C: .4byte gUnknown_08401E36
- thumb_func_end oei_shadow
-
- thumb_func_start oamc_shadow
-oamc_shadow: @ 8126D10
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08126D3E
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
- b _08126DC4
-_08126D3E:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126DCC
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08126DD0
- adds r1, r0
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, 0x5]
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x34]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, [r4]
- ldr r1, _08126DD4
- ands r0, r1
- cmp r0, r1
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl sub_8056E14
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- beq _08126DC4
-_08126DBC:
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
-_08126DC4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08126DCC: .4byte gMapObjects
-_08126DD0: .4byte gSprites
-_08126DD4: .4byte 0x00400001
- thumb_func_end oamc_shadow
-
- thumb_func_start oei_grass_normal
-oei_grass_normal: @ 8126DD8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08126E70
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08126E74
- ldr r0, [r0, 0x10]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08126E64
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126E78
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r3, 0x2E]
- ldr r0, [r5]
- strh r0, [r3, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r3, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r3, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r3, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r3, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _08126E64
- adds r0, r3, 0
- movs r1, 0x4
- bl SeekSpriteAnim
-_08126E64:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126E70: .4byte gUnknown_0202FF84
-_08126E74: .4byte gFieldEffectObjectTemplatePointers
-_08126E78: .4byte gSprites
- thumb_func_end oei_grass_normal
-
- thumb_func_start unc_grass_normal
-unc_grass_normal: @ 8126E7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, _08126F24
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08126EC6
- ldr r2, _08126F28
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _08126EAC
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r7
- beq _08126EC6
-_08126EAC:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_08126EC6:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08126F1A
- adds r0, r6, 0
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _08126F1A
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08126F2C
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08126F2C
-_08126F1A:
- adds r0, r5, 0
- movs r1, 0x4
- bl FieldEffectStop
- b _08126F70
- .align 2, 0
-_08126F24: .4byte gUnknown_0202E844
-_08126F28: .4byte gSaveBlock1
-_08126F2C:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126F7C
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _08126F4C
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _08126F4C
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08126F4C:
- movs r6, 0
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- bne _08126F5A
- movs r6, 0x4
-_08126F5A:
- adds r0, r5, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_812882C
-_08126F70:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126F7C: .4byte gMapObjects
- thumb_func_end unc_grass_normal
-
- thumb_func_start sub_8126F80
-sub_8126F80: @ 8126F80
- push {r4,lr}
- ldr r4, _08126FE4
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _08126FE8
- ldr r0, [r0, 0x28]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08126FDC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08126FEC
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xC
- strh r0, [r2, 0x30]
-_08126FDC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126FE4: .4byte gUnknown_0202FF84
-_08126FE8: .4byte gFieldEffectObjectTemplatePointers
-_08126FEC: .4byte gSprites
- thumb_func_end sub_8126F80
-
- thumb_func_start sub_8126FF0
-sub_8126FF0: @ 8126FF0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r5, 0
- ldr r0, _08127060
- mov r8, r0
- lsls r3, 16
- asrs r3, 16
- lsls r4, 16
- asrs r4, 16
-_08127014:
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- mov r1, r8
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08127068
- ldr r1, [r2, 0x1C]
- ldr r0, _08127064
- cmp r1, r0
- bne _08127068
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r3, r0
- bne _08127068
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r4, r0
- bne _08127068
- ldrh r1, [r2, 0x34]
- lsrs r0, r1, 8
- cmp r12, r0
- bne _08127068
- movs r0, 0xFF
- ands r0, r1
- cmp r7, r0
- bne _08127068
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r6, r0
- bne _08127068
- adds r0, r5, 0
- b _08127074
- .align 2, 0
-_08127060: .4byte gSprites
-_08127064: .4byte unc_grass_normal
-_08127068:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3F
- bls _08127014
- movs r0, 0x40
-_08127074:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126FF0
-
- thumb_func_start sub_8127080
-sub_8127080: @ 8127080
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0812711C
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127120
- ldr r0, [r0, 0x3C]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08127110
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127124
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r5, 0x8]
- bl ZCoordToPriority
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldr r0, [r5]
- strh r0, [r4, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r4, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r4, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _08127110
- adds r0, r4, 0
- movs r1, 0x6
- bl SeekSpriteAnim
-_08127110:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0812711C: .4byte gUnknown_0202FF84
-_08127120: .4byte gFieldEffectObjectTemplatePointers
-_08127124: .4byte gSprites
- thumb_func_end sub_8127080
-
- thumb_func_start unc_grass_tall
-unc_grass_tall: @ 8127128
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r7, r0, 8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _081271D0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08127172
- ldr r2, _081271D4
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r7
- bne _08127158
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r6
- beq _08127172
-_08127158:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_08127172:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081271C6
- adds r0, r4, 0
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _081271C6
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081271D8
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081271D8
-_081271C6:
- adds r0, r5, 0
- movs r1, 0x11
- bl FieldEffectStop
- b _0812720E
- .align 2, 0
-_081271D0: .4byte gUnknown_0202E844
-_081271D4: .4byte gSaveBlock1
-_081271D8:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812721C
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _081271F8
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _081271F8
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_081271F8:
- adds r0, r5, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl sub_812882C
-_0812720E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812721C: .4byte gMapObjects
- thumb_func_end unc_grass_tall
-
- thumb_func_start sub_8127220
-sub_8127220: @ 8127220
- push {r4,lr}
- ldr r4, _08127284
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127288
- ldr r0, [r0, 0x40]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812727C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0812728C
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x12
- strh r0, [r2, 0x30]
-_0812727C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127284: .4byte gUnknown_0202FF84
-_08127288: .4byte gFieldEffectObjectTemplatePointers
-_0812728C: .4byte gSprites
- thumb_func_end sub_8127220
-
- thumb_func_start sub_8127290
-sub_8127290: @ 8127290
- push {r4-r6,lr}
- ldr r6, _08127324
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127328
- adds r5, r1, r0
- ldr r0, _0812732C
- ldr r0, [r0, 0x78]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812731C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _08127330
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_0812731C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08127324: .4byte gUnknown_0202FF84
-_08127328: .4byte gMapObjects
-_0812732C: .4byte gFieldEffectObjectTemplatePointers
-_08127330: .4byte gSprites
- thumb_func_end sub_8127290
-
- thumb_func_start sub_8127334
-sub_8127334: @ 8127334
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127372
- ldr r5, _0812737C
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 29
- cmp r0, 0
- blt _08127380
-_08127372:
- adds r0, r4, 0
- movs r1, 0x29
- bl FieldEffectStop
- b _08127416
- .align 2, 0
-_0812737C: .4byte gMapObjects
-_08127380:
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r8, r0
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127424
- adds r6, r0, r1
- ldrh r5, [r6, 0x22]
- ldrh r7, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _081273BC
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _081273D6
-_081273BC:
- strh r7, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081273D6
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_081273D6:
- strh r7, [r4, 0x20]
- strh r5, [r4, 0x22]
- mov r1, r8
- ldrh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x8
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r0, [r6, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r6, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl sub_806487C
-_08127416:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08127424: .4byte gSprites
- thumb_func_end sub_8127334
-
- thumb_func_start sub_8127428
-sub_8127428: @ 8127428
- push {r4,lr}
- ldr r4, _08127490
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127494
- ldr r0, [r0, 0x2C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08127486
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127498
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0xD
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08127486:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127490: .4byte gUnknown_0202FF84
-_08127494: .4byte gFieldEffectObjectTemplatePointers
-_08127498: .4byte gSprites
- thumb_func_end sub_8127428
-
- thumb_func_start sub_812749C
-sub_812749C: @ 812749C
- push {r4,r5,lr}
- ldr r4, _08127504
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127508
- ldr r0, [r0, 0x5C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _081274FC
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812750C
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x18
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_081274FC:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127504: .4byte gUnknown_0202FF84
-_08127508: .4byte gFieldEffectObjectTemplatePointers
-_0812750C: .4byte gSprites
- thumb_func_end sub_812749C
-
- thumb_func_start sub_8127510
-sub_8127510: @ 8127510
- push {r4,r5,lr}
- ldr r4, _08127578
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _0812757C
- ldr r0, [r0, 0x6C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _08127570
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127580
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x23
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08127570:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127578: .4byte gUnknown_0202FF84
-_0812757C: .4byte gFieldEffectObjectTemplatePointers
-_08127580: .4byte gSprites
- thumb_func_end sub_8127510
-
- thumb_func_start sub_8127584
-sub_8127584: @ 8127584
- push {lr}
- ldr r2, _0812759C
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_0812759C: .4byte gUnknown_08401E40
- thumb_func_end sub_8127584
-
- thumb_func_start sub_81275A0
-sub_81275A0: @ 81275A0
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _081275B6
- movs r0, 0x1
- strh r0, [r1, 0x2E]
-_081275B6:
- adds r0, r1, 0
- movs r1, 0
- bl sub_806487C
- pop {r0}
- bx r0
- thumb_func_end sub_81275A0
-
- thumb_func_start sub_81275C4
-sub_81275C4: @ 81275C4
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- ldrb r1, [r3]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl sub_806487C
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x38
- ble _08127608
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
-_08127608:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81275C4
-
- thumb_func_start sub_8127610
-sub_8127610: @ 8127610
- push {r4-r6,lr}
- ldr r6, _081276A4
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081276A8
- adds r5, r1, r0
- ldr r0, _081276AC
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _0812769A
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- ldr r4, _081276B0
- adds r3, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- ldrb r2, [r5, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r4, [r3, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r2
- strb r1, [r3, 0x5]
- ldr r1, [r6]
- strh r1, [r3, 0x2E]
- ldr r1, [r6, 0x4]
- strh r1, [r3, 0x30]
- ldr r1, [r6, 0x8]
- strh r1, [r3, 0x32]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x4
- strh r0, [r3, 0x26]
- movs r0, 0x46
- bl PlaySE
-_0812769A:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081276A4: .4byte gUnknown_0202FF84
-_081276A8: .4byte gMapObjects
-_081276AC: .4byte gFieldEffectObjectTemplatePointers
-_081276B0: .4byte gSprites
- thumb_func_end sub_8127610
-
- thumb_func_start sub_81276B4
-sub_81276B4: @ 81276B4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081276E4
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _081276EE
-_081276E4:
- adds r0, r4, 0
- movs r1, 0xF
- bl FieldEffectStop
- b _0812772E
-_081276EE:
- ldr r3, _08127738
- ldr r2, _0812773C
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
-_0812772E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127738: .4byte gSprites
-_0812773C: .4byte gMapObjects
- thumb_func_end sub_81276B4
-
- thumb_func_start sub_8127740
-sub_8127740: @ 8127740
- push {r4,lr}
- ldr r4, _081277A4
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _081277A8
- ldr r0, [r0, 0x38]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812779C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081277AC
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x10
- strh r0, [r2, 0x30]
-_0812779C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081277A4: .4byte gUnknown_0202FF84
-_081277A8: .4byte gFieldEffectObjectTemplatePointers
-_081277AC: .4byte gSprites
- thumb_func_end sub_8127740
-
- thumb_func_start oei_water_drop_tall
-oei_water_drop_tall: @ 81277B0
- push {r4,lr}
- ldr r4, _08127814
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127818
- ldr r0, [r0, 0x30]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812780C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0812781C
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xE
- strh r0, [r2, 0x30]
-_0812780C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127814: .4byte gUnknown_0202FF84
-_08127818: .4byte gFieldEffectObjectTemplatePointers
-_0812781C: .4byte gSprites
- thumb_func_end oei_water_drop_tall
-
- thumb_func_start sub_8127820
-sub_8127820: @ 8127820
- push {r4-r7,lr}
- ldr r7, _081278C0
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081278C4
- adds r6, r1, r0
- ldr r0, _081278C8
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _081278B6
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r3, _081278CC
- adds r0, r3
- ldr r1, _081278D0
- str r1, [r0, 0x1C]
- adds r5, r0, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r5]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldr r1, _081278D4
- strh r1, [r0, 0x34]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x36]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0x1
- bl StartSpriteAnim
-_081278B6:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081278C0: .4byte gUnknown_0202FF84
-_081278C4: .4byte gMapObjects
-_081278C8: .4byte gFieldEffectObjectTemplatePointers
-_081278CC: .4byte gSprites
-_081278D0: .4byte sub_81278D8
-_081278D4: .4byte 0x0000ffff
- thumb_func_end sub_8127820
-
- thumb_func_start sub_81278D8
-sub_81278D8: @ 81278D8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127912
- ldr r2, _0812791C
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- ldrb r0, [r5, 0x2]
- lsls r0, 28
- cmp r0, 0
- blt _08127920
-_08127912:
- adds r0, r4, 0
- movs r1, 0x22
- bl FieldEffectStop
- b _0812796A
- .align 2, 0
-_0812791C: .4byte gMapObjects
-_08127920:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127974
- adds r0, r1
- ldrh r1, [r0, 0x20]
- strh r1, [r4, 0x20]
- ldrh r1, [r0, 0x22]
- strh r1, [r4, 0x22]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldr r1, [r5, 0x10]
- ldr r0, [r4, 0x34]
- cmp r1, r0
- beq _0812796A
- ldrh r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x12]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0812796A
- movs r0, 0x46
- bl PlaySE
-_0812796A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08127974: .4byte gSprites
- thumb_func_end sub_81278D8
-
- thumb_func_start oei_ripples
-oei_ripples: @ 8127978
- push {r4,lr}
- ldr r0, _081279CC
- ldr r0, [r0, 0x14]
- ldr r4, _081279D0
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081279C4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081279D4
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x5
- strh r0, [r2, 0x2E]
-_081279C4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081279CC: .4byte gFieldEffectObjectTemplatePointers
-_081279D0: .4byte gUnknown_0202FF84
-_081279D4: .4byte gSprites
- thumb_func_end oei_ripples
-
- thumb_func_start sub_81279D8
-sub_81279D8: @ 81279D8
- push {r4-r6,lr}
- ldr r6, _08127A6C
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127A70
- adds r5, r1, r0
- ldr r0, _08127A74
- ldr r0, [r0, 0x7C]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127A64
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _08127A78
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_08127A64:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08127A6C: .4byte gUnknown_0202FF84
-_08127A70: .4byte gMapObjects
-_08127A74: .4byte gFieldEffectObjectTemplatePointers
-_08127A78: .4byte gSprites
- thumb_func_end sub_81279D8
-
- thumb_func_start sub_8127A7C
-sub_8127A7C: @ 8127A7C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127AB6
- ldr r5, _08127AC0
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 26
- cmp r0, 0
- blt _08127AC4
-_08127AB6:
- adds r0, r4, 0
- movs r1, 0x2A
- bl FieldEffectStop
- b _08127B08
- .align 2, 0
-_08127AC0: .4byte gMapObjects
-_08127AC4:
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _08127B10
- adds r1, r2
- ldrh r2, [r1, 0x20]
- strh r2, [r4, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r2, [r1, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r4, 0x22]
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
-_08127B08:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08127B10: .4byte gSprites
- thumb_func_end sub_8127A7C
-
- thumb_func_start sub_8127B14
-sub_8127B14: @ 8127B14
- push {r4,lr}
- ldr r4, _08127B74
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127B78
- ldr r0, [r0, 0x44]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127B6C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127B7C
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x13
- strh r0, [r2, 0x2E]
-_08127B6C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127B74: .4byte gUnknown_0202FF84
-_08127B78: .4byte gFieldEffectObjectTemplatePointers
-_08127B7C: .4byte gSprites
- thumb_func_end sub_8127B14
-
- thumb_func_start sub_8127B80
-sub_8127B80: @ 8127B80
- push {r4,lr}
- ldr r4, _08127BE0
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127BE4
- ldr r0, [r0, 0x48]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127BD8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127BE8
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x14
- strh r0, [r2, 0x2E]
-_08127BD8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127BE0: .4byte gUnknown_0202FF84
-_08127BE4: .4byte gFieldEffectObjectTemplatePointers
-_08127BE8: .4byte gSprites
- thumb_func_end sub_8127B80
-
- thumb_func_start sub_8127BEC
-sub_8127BEC: @ 8127BEC
- push {r4,lr}
- ldr r4, _08127C4C
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127C50
- ldr r0, [r0, 0x4C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127C44
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127C54
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x15
- strh r0, [r2, 0x2E]
-_08127C44:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127C4C: .4byte gUnknown_0202FF84
-_08127C50: .4byte gFieldEffectObjectTemplatePointers
-_08127C54: .4byte gSprites
- thumb_func_end sub_8127BEC
-
- thumb_func_start sub_8127C58
-sub_8127C58: @ 8127C58
- push {r4,lr}
- ldr r4, _08127CB8
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127CBC
- ldr r0, [r0, 0x50]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127CB0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127CC0
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x16
- strh r0, [r2, 0x2E]
-_08127CB0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127CB8: .4byte gUnknown_0202FF84
-_08127CBC: .4byte gFieldEffectObjectTemplatePointers
-_08127CC0: .4byte gSprites
- thumb_func_end sub_8127C58
-
- thumb_func_start ash
-ash: @ 8127CC4
- push {r4,lr}
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _08127CF4
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- lsls r1, 16
- asrs r1, 16
- str r1, [r4, 0x4]
- movs r0, 0x52
- str r0, [r4, 0x8]
- movs r0, 0x1
- str r0, [r4, 0xC]
- str r2, [r4, 0x10]
- lsls r3, 16
- asrs r3, 16
- str r3, [r4, 0x14]
- movs r0, 0x7
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127CF4: .4byte gUnknown_0202FF84
- thumb_func_end ash
-
- thumb_func_start oei_ash
-oei_ash: @ 8127CF8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08127D78
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127D7C
- ldr r0, [r0, 0x18]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- ldrb r3, [r5, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127D6E
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127D80
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r5]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r2, 0x36]
-_08127D6E:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127D78: .4byte gUnknown_0202FF84
-_08127D7C: .4byte gFieldEffectObjectTemplatePointers
-_08127D80: .4byte gSprites
- thumb_func_end oei_ash
-
- thumb_func_start sub_8127D84
-sub_8127D84: @ 8127D84
- push {lr}
- ldr r2, _08127D9C
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08127D9C: .4byte gUnknown_08401E48
- thumb_func_end sub_8127D84
-
- thumb_func_start sub_8127DA0
-sub_8127DA0: @ 8127DA0
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08127DCA
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_08127DCA:
- pop {r0}
- bx r0
- thumb_func_end sub_8127DA0
-
- thumb_func_start sub_8127DD0
-sub_8127DD0: @ 8127DD0
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x34]
- bl MapGridSetMetatileIdAt
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldr r2, _08127E28
- ldr r0, _08127E2C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127E28: .4byte gMapObjects
-_08127E2C: .4byte gPlayerAvatar
- thumb_func_end sub_8127DD0
-
- thumb_func_start sub_8127E30
-sub_8127E30: @ 8127E30
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_806487C
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08127E50
- adds r0, r4, 0
- movs r1, 0x7
- bl FieldEffectStop
-_08127E50:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127E30
-
- thumb_func_start sub_8127E58
-sub_8127E58: @ 8127E58
- push {r4,r5,lr}
- ldr r4, _08127EC0
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127EC4
- ldr r0, [r0, 0x1C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x96
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r0, 0x40
- beq _08127EB2
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127EC8
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r1, 0x32]
- ldr r0, _08127ECC
- strh r0, [r1, 0x34]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x3A]
- strh r0, [r1, 0x3C]
-_08127EB2:
- movs r0, 0x8
- bl FieldEffectActiveListRemove
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127EC0: .4byte gUnknown_0202FF84
-_08127EC4: .4byte gFieldEffectObjectTemplatePointers
-_08127EC8: .4byte gSprites
-_08127ECC: .4byte 0x0000ffff
- thumb_func_end sub_8127E58
-
- thumb_func_start sub_8127ED0
-sub_8127ED0: @ 8127ED0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08127EF8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0x10
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 24
- orrs r0, r3
- strh r0, [r2, 0x2E]
- bx lr
- .align 2, 0
-_08127EF8: .4byte gSprites
- thumb_func_end sub_8127ED0
-
- thumb_func_start sub_8127EFC
-sub_8127EFC: @ 8127EFC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08127F24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0xF1
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 20
- orrs r3, r0
- strh r3, [r2, 0x2E]
- bx lr
- .align 2, 0
-_08127F24: .4byte gSprites
- thumb_func_end sub_8127EFC
-
- thumb_func_start sub_8127F28
-sub_8127F28: @ 8127F28
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r4, _08127F54
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrh r0, [r3, 0x2E]
- ldr r4, _08127F58
- ands r4, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 16
- orrs r4, r0
- strh r4, [r3, 0x2E]
- strh r2, [r3, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127F54: .4byte gSprites
-_08127F58: .4byte 0xfffff0ff
- thumb_func_end sub_8127F28
-
- thumb_func_start sub_8127F5C
-sub_8127F5C: @ 8127F5C
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- bx lr
- thumb_func_end sub_8127F5C
-
- thumb_func_start sub_8127F64
-sub_8127F64: @ 8127F64
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- ands r0, r1
- lsrs r0, 4
- bx lr
- thumb_func_end sub_8127F64
-
- thumb_func_start sub_8127F70
-sub_8127F70: @ 8127F70
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- lsls r0, 4
- ands r0, r1
- lsrs r0, 8
- bx lr
- thumb_func_end sub_8127F70
-
- thumb_func_start sub_8127F7C
-sub_8127F7C: @ 8127F7C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08127FCC
- adds r4, r0
- ldrb r0, [r4, 0x4]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r0, _08127FD0
- adds r5, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8127FD4
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_812800C
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_81280A0
- ldrb r0, [r5, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08127FCC: .4byte gMapObjects
-_08127FD0: .4byte gSprites
- thumb_func_end sub_8127F7C
-
- thumb_func_start sub_8127FD4
-sub_8127FD4: @ 8127FD4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _08128008
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- bl sub_8127F64
- lsls r0, 24
- cmp r0, 0
- bne _08128000
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
-_08128000:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08128008: .4byte gUnknown_08401E54
- thumb_func_end sub_8127FD4
-
- thumb_func_start sub_812800C
-sub_812800C: @ 812800C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r1, 0
- ldrh r2, [r0, 0x10]
- mov r1, sp
- strh r2, [r1]
- ldrh r1, [r0, 0x12]
- mov r0, sp
- adds r0, 0x2
- strh r1, [r0]
- movs r2, 0x26
- ldrsh r3, [r4, r2]
- mov r8, r0
- cmp r3, 0
- bne _08128094
- mov r0, sp
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r2, r0
- bne _08128048
- lsls r0, r1, 16
- asrs r0, 16
- movs r5, 0x3C
- ldrsh r1, [r4, r5]
- cmp r0, r1
- beq _08128094
-_08128048:
- strh r3, [r4, 0x38]
- strh r2, [r4, 0x3A]
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- strh r0, [r4, 0x3C]
- movs r5, 0x1
- mov r7, r8
- mov r6, sp
-_0812805A:
- adds r0, r5, 0
- mov r1, sp
- adds r2, r7, 0
- bl MoveCoords
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08128080
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _08128094
-_08128080:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3A]
- strh r0, [r6]
- ldrh r0, [r4, 0x3C]
- mov r1, r8
- strh r0, [r1]
- cmp r5, 0x4
- bls _0812805A
-_08128094:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812800C
-
- thumb_func_start sub_81280A0
-sub_81280A0: @ 81280A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r1, _08128104
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- bl sub_8127F5C
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- cmp r2, 0
- beq _0812811A
- ldrh r1, [r4, 0x36]
- adds r1, 0x1
- strh r1, [r4, 0x36]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081280E0
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
-_081280E0:
- ldrh r1, [r4, 0x36]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081280F0
- ldrh r0, [r4, 0x34]
- negs r0, r0
- strh r0, [r4, 0x34]
-_081280F0:
- cmp r2, 0x2
- beq _0812811A
- adds r0, r4, 0
- bl sub_8127F70
- lsls r0, 24
- cmp r0, 0
- bne _08128108
- ldrh r0, [r4, 0x26]
- b _0812810E
- .align 2, 0
-_08128104: .4byte gUnknown_08401E5A
-_08128108:
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x30]
- adds r0, r3
-_0812810E:
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_0812811A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81280A0
-
- thumb_func_start sub_8128124
-sub_8128124: @ 8128124
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08128168
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, _0812816C
- adds r2, r1
- ldr r1, _08128170
- str r1, [r2, 0x1C]
- movs r1, 0x3E
- adds r1, r2
- mov r12, r1
- ldrb r1, [r1]
- movs r3, 0x4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- strh r4, [r2, 0x2E]
- movs r1, 0x1
- strh r1, [r2, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128168: .4byte gDummySpriteTemplate
-_0812816C: .4byte gSprites
-_08128170: .4byte sub_8128174
- thumb_func_end sub_8128124
-
- thumb_func_start sub_8128174
-sub_8128174: @ 8128174
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081281B0
- adds r3, r0, r1
- ldrh r1, [r2, 0x32]
- adds r0, r1, 0x1
- strh r0, [r2, 0x32]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0812819C
- ldrh r0, [r2, 0x30]
- ldrh r1, [r3, 0x26]
- adds r0, r1
- strh r0, [r3, 0x26]
-_0812819C:
- ldrh r1, [r2, 0x32]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081281AC
- ldrh r0, [r2, 0x30]
- negs r0, r0
- strh r0, [r2, 0x30]
-_081281AC:
- pop {r0}
- bx r0
- .align 2, 0
-_081281B0: .4byte gSprites
- thumb_func_end sub_8128174
-
- thumb_func_start sub_81281B4
-sub_81281B4: @ 81281B4
- push {r4,lr}
- ldr r4, _08128218
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _0812821C
- ldr r0, [r0, 0x24]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08128210
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08128220
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xA
- strh r0, [r2, 0x30]
-_08128210:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128218: .4byte gUnknown_0202FF84
-_0812821C: .4byte gFieldEffectObjectTemplatePointers
-_08128220: .4byte gSprites
- thumb_func_end sub_81281B4
-
- thumb_func_start sub_8128224
-sub_8128224: @ 8128224
- push {r4-r7,lr}
- ldr r7, _081282D0
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081282D4
- adds r6, r1, r0
- ldr r0, _081282D8
- ldr r0, [r0, 0x74]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _081282C8
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r5, r0, 0
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r4, _081282DC
- adds r0, r4
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x34]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x36]
- ldrh r1, [r5, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x2
- strh r1, [r0, 0x26]
- movs r1, 0x2
- bl SeekSpriteAnim
-_081282C8:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081282D0: .4byte gUnknown_0202FF84
-_081282D4: .4byte gMapObjects
-_081282D8: .4byte gFieldEffectObjectTemplatePointers
-_081282DC: .4byte gSprites
- thumb_func_end sub_8128224
-
- thumb_func_start sub_81282E0
-sub_81282E0: @ 81282E0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0812831A
- ldr r2, _08128324
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x2]
- lsls r0, 27
- cmp r0, 0
- blt _08128328
-_0812831A:
- adds r0, r4, 0
- movs r1, 0x27
- bl FieldEffectStop
- b _0812839A
- .align 2, 0
-_08128324: .4byte gMapObjects
-_08128328:
- ldr r2, _081283A4
- ldrb r1, [r1, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r5, [r0, 0x22]
- ldrh r6, [r0, 0x20]
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08128350
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0812836A
-_08128350:
- strh r6, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812836A
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_0812836A:
- strh r6, [r4, 0x20]
- strh r5, [r4, 0x22]
- ldr r3, _081283A4
- ldr r2, _081283A8
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
-_0812839A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081283A4: .4byte gSprites
-_081283A8: .4byte gMapObjects
- thumb_func_end sub_81282E0
-
- thumb_func_start sub_81283AC
-sub_81283AC: @ 81283AC
- push {r4,lr}
- ldr r4, _08128404
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0
- bl sub_8060470
- ldr r0, _08128408
- adds r0, 0x88
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081283FC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0812840C
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_081283FC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128404: .4byte gUnknown_0202FF84
-_08128408: .4byte gFieldEffectObjectTemplatePointers
-_0812840C: .4byte gSprites
- thumb_func_end sub_81283AC
-
- thumb_func_start sub_8128410
-sub_8128410: @ 8128410
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r4, 0x3E]
- ldr r0, _0812844C
- ands r0, r1
- cmp r0, 0
- beq _08128444
- adds r0, r4, 0
- movs r1, 0x35
- bl FieldEffectStop
-_08128444:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812844C: .4byte 0x00001004
- thumb_func_end sub_8128410
-
- thumb_func_start sub_8128450
-sub_8128450: @ 8128450
- push {r4,lr}
- ldr r4, _081284B8
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_8060470
- ldr r0, _081284BC
- ldr r0, [r0, 0x58]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081284B0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081284C0
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x50
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x17
- strh r0, [r2, 0x2E]
-_081284B0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081284B8: .4byte gUnknown_0202FF84
-_081284BC: .4byte gFieldEffectObjectTemplatePointers
-_081284C0: .4byte gSprites
- thumb_func_end sub_8128450
-
- thumb_func_start ShowTreeDisguiseFieldEffect
-ShowTreeDisguiseFieldEffect: @ 81284C4
- push {lr}
- movs r0, 0x1C
- movs r1, 0x18
- movs r2, 0x4
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowTreeDisguiseFieldEffect
-
- thumb_func_start ShowMountainDisguiseFieldEffect
-ShowMountainDisguiseFieldEffect: @ 81284D4
- push {lr}
- movs r0, 0x1D
- movs r1, 0x19
- movs r2, 0x3
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowMountainDisguiseFieldEffect
-
- thumb_func_start ShowSandDisguiseFieldEffect
-ShowSandDisguiseFieldEffect: @ 81284E4
- push {lr}
- movs r0, 0x24
- movs r1, 0x1C
- movs r2, 0x2
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowSandDisguiseFieldEffect
-
- thumb_func_start ShowDisguiseFieldEffect
-ShowDisguiseFieldEffect: @ 81284F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r5, _08128528
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _0812852C
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- movs r0, 0x40
- b _08128598
- .align 2, 0
-_08128528: .4byte gUnknown_0202FF84
-_0812852C:
- ldr r1, _081285A4
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- mov r1, sp
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08128594
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081285A8
- adds r2, r0
- movs r0, 0x3E
- adds r0, r2
- mov r12, r0
- ldrb r3, [r0]
- lsls r1, r3, 30
- lsrs r1, 31
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- lsls r3, r7, 4
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
- mov r0, r8
- strh r0, [r2, 0x30]
- ldr r0, [r5]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x36]
-_08128594:
- mov r0, sp
- ldrb r0, [r0]
-_08128598:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081285A4: .4byte gFieldEffectObjectTemplatePointers
-_081285A8: .4byte gSprites
- thumb_func_end ShowDisguiseFieldEffect
-
- thumb_func_start sub_81285AC
-sub_81285AC: @ 81285AC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x34]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x36]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _081285DC
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_081285DC:
- ldr r4, _08128694
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r1, _08128698
- adds r2, r1
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r3, 0x3E
- adds r3, r5
- mov r12, r3
- movs r3, 0x4
- ands r3, r1
- mov r1, r12
- ldrb r4, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- ldrh r1, [r2, 0x20]
- strh r1, [r5, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r1, [r2, 0x22]
- adds r0, r1
- subs r0, 0x10
- strh r0, [r5, 0x22]
- adds r2, 0x43
- ldrb r0, [r2]
- subs r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- bne _0812865C
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_0812865C:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- ldrh r2, [r5, 0x2E]
- cmp r0, 0x2
- bne _08128678
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08128678
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08128678:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0812868C
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_0812868C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08128694: .4byte gMapObjects
-_08128698: .4byte gSprites
- thumb_func_end sub_81285AC
-
- thumb_func_start sub_812869C
-sub_812869C: @ 812869C
- push {lr}
- adds r1, r0, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081286BA
- ldr r2, _081286C0
- ldrb r1, [r1, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
-_081286BA:
- pop {r0}
- bx r0
- .align 2, 0
-_081286C0: .4byte gSprites
- thumb_func_end sub_812869C
-
- thumb_func_start sub_81286C4
-sub_81286C4: @ 81286C4
- push {lr}
- adds r2, r0, 0
- adds r2, 0x21
- ldrb r1, [r2]
- cmp r1, 0x2
- beq _081286FA
- cmp r1, 0
- beq _081286FA
- ldrb r1, [r0, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081286EC
- adds r1, r0, r1
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _081286F0
- movs r0, 0
- b _081286FC
- .align 2, 0
-_081286EC: .4byte gSprites
-_081286F0:
- movs r0, 0x2
- strb r0, [r2]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_081286FA:
- movs r0, 0x1
-_081286FC:
- pop {r1}
- bx r1
- thumb_func_end sub_81286C4
-
- thumb_func_start sub_8128700
-sub_8128700: @ 8128700
- push {r4,lr}
- ldr r4, _08128768
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- str r0, [r4, 0x4]
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _0812876C
- adds r0, 0x8C
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08128760
- ldr r0, _08128770
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r0, 0x3
- ldrb r2, [r4, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
-_08128760:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128768: .4byte gUnknown_0202FF84
-_0812876C: .4byte gFieldEffectObjectTemplatePointers
-_08128770: .4byte gSprites
- thumb_func_end sub_8128700
-
- thumb_func_start sub_8128774
-sub_8128774: @ 8128774
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081287A8
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081287A0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_081287A0:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _081287BE
-_081287A8:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x22
- ble _081287BE
- adds r0, r2, 0
- movs r1, 0x36
- bl FieldEffectStop
-_081287BE:
- pop {r0}
- bx r0
- thumb_func_end sub_8128774
-
- thumb_func_start sub_81287C4
-sub_81287C4: @ 81287C4
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081287E2
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
- b _081287F8
-_081287E2:
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0
- bl SetObjectSubpriorityByZCoord
-_081287F8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81287C4
-
- thumb_func_start sub_8128800
-sub_8128800: @ 8128800
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812881E
- ldrh r1, [r2, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl FieldEffectStop
- b _08128826
-_0812881E:
- adds r0, r2, 0
- movs r1, 0
- bl sub_806487C
-_08128826:
- pop {r0}
- bx r0
- thumb_func_end sub_8128800
-
- thumb_func_start sub_812882C
-sub_812882C: @ 812882C
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, 0
- bl SetObjectSubpriorityByZCoord
- movs r7, 0
-_08128842:
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 2
- ldr r1, _081288DC
- adds r4, r0, r1
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _081288E4
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081288E0
- adds r5, r0, r1
- adds r0, r6, 0
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r6, 0x20]
- adds r1, r0, r2
- subs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x20
- ldrsh r2, [r5, r0]
- cmp r1, r2
- bge _081288E4
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r2
- ble _081288E4
- adds r0, r5, 0
- adds r0, 0x29
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r2, [r5, 0x22]
- adds r2, r3
- ldrh r4, [r5, 0x22]
- adds r0, r6, 0
- adds r0, 0x29
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r6, 0x22]
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- adds r3, r0, r3
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- cmp r2, r3
- blt _081288BC
- cmp r2, r0
- bge _081288E4
-_081288BC:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- ble _081288E4
- adds r2, r6, 0
- adds r2, 0x43
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r1, [r0]
- ldrb r0, [r2]
- cmp r0, r1
- bhi _081288E4
- adds r0, r1, 0x2
- strb r0, [r2]
- b _081288EE
- .align 2, 0
-_081288DC: .4byte gMapObjects
-_081288E0: .4byte gSprites
-_081288E4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _08128842
-_081288EE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812882C
-
- thumb_func_start sub_81288F4
-sub_81288F4: @ 81288F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0812893C
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x44
- bl memset
- movs r3, 0x64
- adds r2, r4, 0
- movs r1, 0x3
- adds r0, r2, 0
- adds r0, 0x8
-_08128910:
- strb r3, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _08128910
- adds r3, r2, 0
- adds r3, 0x41
- movs r1, 0
- strb r5, [r3]
- adds r0, r2, 0
- adds r0, 0x40
- strb r1, [r0]
- ldr r1, _08128940
- ldrb r0, [r3]
- lsls r0, 6
- adds r1, 0x18
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2, 0x14]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812893C: .4byte 0x020192e4
-_08128940: .4byte gUnknown_02038570
- thumb_func_end sub_81288F4
-
- thumb_func_start sub_8128944
-sub_8128944: @ 8128944
- push {r4-r6,lr}
- ldr r1, _081289A8
- ldr r0, [r1, 0x14]
- cmp r0, 0
- beq _08128974
- adds r4, r1, 0
- movs r5, 0
-_08128952:
- ldr r0, [r4, 0x14]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08128962
- strb r5, [r4]
- bl sub_81289AC
-_08128962:
- ldr r1, [r4, 0x14]
- lsrs r1, 1
- str r1, [r4, 0x14]
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
- strb r5, [r4, 0x4]
- cmp r1, 0
- bne _08128952
-_08128974:
- movs r6, 0x3
- ldr r5, _081289A8
-_08128978:
- bl Random
- adds r4, r0, 0
- ands r4, r6
- adds r3, r5, 0x5
- adds r0, r4, r3
- ldrb r2, [r0]
- movs r1, 0
- ldrb r0, [r5, 0x5]
- cmp r2, r0
- bcc _0812899C
-_0812898E:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _0812899C
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcs _0812898E
-_0812899C:
- cmp r1, 0x4
- bne _08128978
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081289A8: .4byte 0x020192e4
- thumb_func_end sub_8128944
-
- thumb_func_start sub_81289AC
-sub_81289AC: @ 81289AC
- push {r4-r6,lr}
- ldr r1, _081289F4
- ldrb r0, [r1]
- adds r2, r1, 0
- cmp r0, 0x2
- beq _08128A76
- adds r4, r1, 0
- ldr r5, _081289F8
- ldr r6, _081289FC
-_081289BE:
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08128A0E
- cmp r0, 0x1
- bgt _08128A6E
- cmp r0, 0
- bne _08128A6E
- ldr r1, _08128A00
- ldrb r0, [r4, 0x10]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r5]
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r1, 0
- cmp r0, 0
- bne _08128A04
- strh r0, [r4, 0x2]
- b _08128A06
- .align 2, 0
-_081289F4: .4byte 0x020192e4
-_081289F8: .4byte gUnknown_02039238
-_081289FC: .4byte gUnknown_0203858E
-_08128A00: .4byte gContestAIs
-_08128A04:
- strh r1, [r4, 0x2]
-_08128A06:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08128A6E
-_08128A0E:
- ldrh r1, [r1, 0x2]
- cmp r1, 0
- beq _08128A2C
- ldr r1, _08128A28
- ldr r0, [r5]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- b _08128A3C
- .align 2, 0
-_08128A28: .4byte gUnknown_08401E60
-_08128A2C:
- adds r0, r4, 0x5
- ldrb r2, [r4, 0x4]
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r4, 0x9]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r4, 0x9]
-_08128A3C:
- ldr r2, _08128A5C
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08128A6E
- ldrb r0, [r2, 0x4]
- adds r0, 0x1
- movs r1, 0
- strb r0, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _08128A60
- strb r1, [r2]
- b _08128A66
- .align 2, 0
-_08128A5C: .4byte 0x020192e4
-_08128A60:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_08128A66:
- ldrb r1, [r4, 0x9]
- movs r0, 0xFE
- ands r0, r1
- strb r0, [r4, 0x9]
-_08128A6E:
- adds r1, r2, 0
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _081289BE
-_08128A76:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81289AC
-
- thumb_func_start sub_8128A7C
-sub_8128A7C: @ 8128A7C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _08128AA4
- ldrb r0, [r3]
- cmp r0, r2
- beq _08128A9A
-_08128A8C:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _08128A9A
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08128A8C
-_08128A9A:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08128AA4: .4byte 0x020192d0
- thumb_func_end sub_8128A7C
-
- thumb_func_start sub_8128AA8
-sub_8128AA8: @ 8128AA8
- push {lr}
- ldr r2, _08128AD0
- adds r1, r2, 0x5
- ldrb r0, [r2, 0x4]
- adds r1, r0
- ldr r3, _08128AD4
- ldr r0, [r3]
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08128AD8
- movs r1, 0xFF
- b _08128ADE
- .align 2, 0
-_08128AD0: .4byte 0x020192e4
-_08128AD4: .4byte gUnknown_02039238
-_08128AD8:
- cmp r0, 0
- bge _08128ADE
- movs r1, 0
-_08128ADE:
- adds r0, r2, 0x5
- ldrb r2, [r2, 0x4]
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, 0x2
- str r0, [r3]
- pop {r0}
- bx r0
- thumb_func_end sub_8128AA8
-
- thumb_func_start contest_ai_get_turn
-contest_ai_get_turn: @ 8128AF0
- ldr r1, _08128B04
- adds r0, r1, 0
- subs r0, 0xE0
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x18]
- ldr r1, _08128B08
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128B04: .4byte 0x020192e4
-_08128B08: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_turn
-
- thumb_func_start sub_8128B0C
-sub_8128B0C: @ 8128B0C
- push {lr}
- bl contest_ai_get_turn
- ldr r0, _08128B3C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128B40
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128B44
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128B48
- .align 2, 0
-_08128B3C: .4byte 0x020192e4
-_08128B40: .4byte gUnknown_02039238
-_08128B44:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128B48:
- pop {r0}
- bx r0
- thumb_func_end sub_8128B0C
-
- thumb_func_start sub_8128B4C
-sub_8128B4C: @ 8128B4C
- push {lr}
- bl contest_ai_get_turn
- ldr r0, _08128B7C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128B80
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128B84
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128B88
- .align 2, 0
-_08128B7C: .4byte 0x020192e4
-_08128B80: .4byte gUnknown_02039238
-_08128B84:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128B88:
- pop {r0}
- bx r0
- thumb_func_end sub_8128B4C
-
- thumb_func_start sub_8128B8C
-sub_8128B8C: @ 8128B8C
- push {lr}
- bl contest_ai_get_turn
- ldr r0, _08128BBC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128BC0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128BC4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128BC8
- .align 2, 0
-_08128BBC: .4byte 0x020192e4
-_08128BC0: .4byte gUnknown_02039238
-_08128BC4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128BC8:
- pop {r0}
- bx r0
- thumb_func_end sub_8128B8C
-
- thumb_func_start sub_8128BCC
-sub_8128BCC: @ 8128BCC
- push {lr}
- bl contest_ai_get_turn
- ldr r0, _08128BFC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128C00
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128C04
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128C08
- .align 2, 0
-_08128BFC: .4byte 0x020192e4
-_08128C00: .4byte gUnknown_02039238
-_08128C04:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128C08:
- pop {r0}
- bx r0
- thumb_func_end sub_8128BCC
-
- thumb_func_start contest_ai_get_excitement
-contest_ai_get_excitement: @ 8128C0C
- ldr r1, _08128C24
- adds r0, r1, 0
- subs r0, 0xE0
- ldrb r0, [r0, 0x13]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x18]
- ldr r1, _08128C28
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128C24: .4byte 0x020192e4
-_08128C28: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_excitement
-
- thumb_func_start sub_8128C2C
-sub_8128C2C: @ 8128C2C
- push {lr}
- bl contest_ai_get_excitement
- ldr r0, _08128C5C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128C60
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128C64
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128C68
- .align 2, 0
-_08128C5C: .4byte 0x020192e4
-_08128C60: .4byte gUnknown_02039238
-_08128C64:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128C68:
- pop {r0}
- bx r0
- thumb_func_end sub_8128C2C
-
- thumb_func_start sub_8128C6C
-sub_8128C6C: @ 8128C6C
- push {lr}
- bl contest_ai_get_excitement
- ldr r0, _08128C9C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128CA0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128CA4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128CA8
- .align 2, 0
-_08128C9C: .4byte 0x020192e4
-_08128CA0: .4byte gUnknown_02039238
-_08128CA4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128CA8:
- pop {r0}
- bx r0
- thumb_func_end sub_8128C6C
-
- thumb_func_start sub_8128CAC
-sub_8128CAC: @ 8128CAC
- push {lr}
- bl contest_ai_get_excitement
- ldr r0, _08128CDC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128CE0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128CE4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128CE8
- .align 2, 0
-_08128CDC: .4byte 0x020192e4
-_08128CE0: .4byte gUnknown_02039238
-_08128CE4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128CE8:
- pop {r0}
- bx r0
- thumb_func_end sub_8128CAC
-
- thumb_func_start sub_8128CEC
-sub_8128CEC: @ 8128CEC
- push {lr}
- bl contest_ai_get_excitement
- ldr r0, _08128D1C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128D20
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128D24
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128D28
- .align 2, 0
-_08128D1C: .4byte 0x020192e4
-_08128D20: .4byte gUnknown_02039238
-_08128D24:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128D28:
- pop {r0}
- bx r0
- thumb_func_end sub_8128CEC
-
- thumb_func_start contest_ai_get_user_order
-contest_ai_get_user_order: @ 8128D2C
- ldr r1, _08128D48
- adds r2, r1, 0
- adds r2, 0x41
- adds r0, r1, 0
- subs r0, 0x14
- ldrb r2, [r2]
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1, 0x18]
- ldr r1, _08128D4C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128D48: .4byte 0x020192e4
-_08128D4C: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_user_order
-
- thumb_func_start sub_8128D50
-sub_8128D50: @ 8128D50
- push {lr}
- bl contest_ai_get_user_order
- ldr r0, _08128D80
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128D84
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128D88
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128D8C
- .align 2, 0
-_08128D80: .4byte 0x020192e4
-_08128D84: .4byte gUnknown_02039238
-_08128D88:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128D8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128D50
-
- thumb_func_start sub_8128D90
-sub_8128D90: @ 8128D90
- push {lr}
- bl contest_ai_get_user_order
- ldr r0, _08128DC0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128DC4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128DC8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128DCC
- .align 2, 0
-_08128DC0: .4byte 0x020192e4
-_08128DC4: .4byte gUnknown_02039238
-_08128DC8:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128DCC:
- pop {r0}
- bx r0
- thumb_func_end sub_8128D90
-
- thumb_func_start sub_8128DD0
-sub_8128DD0: @ 8128DD0
- push {lr}
- bl contest_ai_get_user_order
- ldr r0, _08128E00
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128E04
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128E08
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128E0C
- .align 2, 0
-_08128E00: .4byte 0x020192e4
-_08128E04: .4byte gUnknown_02039238
-_08128E08:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128E0C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128DD0
-
- thumb_func_start sub_8128E10
-sub_8128E10: @ 8128E10
- push {lr}
- bl contest_ai_get_user_order
- ldr r0, _08128E40
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128E44
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128E48
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128E4C
- .align 2, 0
-_08128E40: .4byte 0x020192e4
-_08128E44: .4byte gUnknown_02039238
-_08128E48:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128E4C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128E10
-
- thumb_func_start contest_ai_get_user_condition_maybe
-contest_ai_get_user_condition_maybe: @ 8128E50
- push {r4,lr}
- ldr r4, _08128E88
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r0, r1
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08128E8C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08128E88: .4byte 0x020192e4
-_08128E8C: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_user_condition_maybe
-
- thumb_func_start sub_8128E90
-sub_8128E90: @ 8128E90
- push {lr}
- bl contest_ai_get_user_condition_maybe
- ldr r0, _08128EC0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128EC4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128EC8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128ECC
- .align 2, 0
-_08128EC0: .4byte 0x020192e4
-_08128EC4: .4byte gUnknown_02039238
-_08128EC8:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128ECC:
- pop {r0}
- bx r0
- thumb_func_end sub_8128E90
-
- thumb_func_start sub_8128ED0
-sub_8128ED0: @ 8128ED0
- push {lr}
- bl contest_ai_get_user_condition_maybe
- ldr r0, _08128F00
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F04
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128F08
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128F0C
- .align 2, 0
-_08128F00: .4byte 0x020192e4
-_08128F04: .4byte gUnknown_02039238
-_08128F08:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F0C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128ED0
-
- thumb_func_start sub_8128F10
-sub_8128F10: @ 8128F10
- push {lr}
- bl contest_ai_get_user_condition_maybe
- ldr r0, _08128F40
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F44
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128F48
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128F4C
- .align 2, 0
-_08128F40: .4byte 0x020192e4
-_08128F44: .4byte gUnknown_02039238
-_08128F48:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F4C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128F10
-
- thumb_func_start sub_8128F50
-sub_8128F50: @ 8128F50
- push {lr}
- bl contest_ai_get_user_condition_maybe
- ldr r0, _08128F80
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F84
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128F88
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08128F8C
- .align 2, 0
-_08128F80: .4byte 0x020192e4
-_08128F84: .4byte gUnknown_02039238
-_08128F88:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128F50
-
- thumb_func_start sub_8128F90
-sub_8128F90: @ 8128F90
- ldr r2, _08128FB4
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r2, 0
- subs r1, 0x84
- adds r0, r1
- ldrh r0, [r0, 0x4]
- strh r0, [r2, 0x18]
- ldr r1, _08128FB8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128FB4: .4byte 0x020192e4
-_08128FB8: .4byte gUnknown_02039238
- thumb_func_end sub_8128F90
-
- thumb_func_start sub_8128FBC
-sub_8128FBC: @ 8128FBC
- push {r4,r5,lr}
- bl sub_8128F90
- ldr r2, _08128FF4
- ldr r4, _08128FF8
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _08128FFC
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08129000
- .align 2, 0
-_08128FF4: .4byte 0x020192e4
-_08128FF8: .4byte gUnknown_02039238
-_08128FFC:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129000:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8128FBC
-
- thumb_func_start sub_8129008
-sub_8129008: @ 8129008
- push {r4,r5,lr}
- bl sub_8128F90
- ldr r2, _08129040
- ldr r4, _08129044
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- ble _08129048
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812904C
- .align 2, 0
-_08129040: .4byte 0x020192e4
-_08129044: .4byte gUnknown_02039238
-_08129048:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812904C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8129008
-
- thumb_func_start sub_8129054
-sub_8129054: @ 8129054
- push {r4,r5,lr}
- bl sub_8128F90
- ldr r2, _0812908C
- ldr r4, _08129090
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _08129094
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08129098
- .align 2, 0
-_0812908C: .4byte 0x020192e4
-_08129090: .4byte gUnknown_02039238
-_08129094:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129098:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8129054
-
- thumb_func_start sub_81290A0
-sub_81290A0: @ 81290A0
- push {r4,r5,lr}
- bl sub_8128F90
- ldr r2, _081290D8
- ldr r4, _081290DC
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- beq _081290E0
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081290E4
- .align 2, 0
-_081290D8: .4byte 0x020192e4
-_081290DC: .4byte gUnknown_02039238
-_081290E0:
- adds r0, r3, 0x6
- str r0, [r4]
-_081290E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81290A0
-
- thumb_func_start sub_81290EC
-sub_81290EC: @ 81290EC
- ldr r2, _08129108
- ldr r1, _0812910C
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x18]
- ldr r1, _08129110
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129108: .4byte 0x020192e4
-_0812910C: .4byte gUnknown_02038670
-_08129110: .4byte gUnknown_02039238
- thumb_func_end sub_81290EC
-
- thumb_func_start sub_8129114
-sub_8129114: @ 8129114
- push {r4,r5,lr}
- bl sub_81290EC
- ldr r2, _0812914C
- ldr r4, _08129150
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _08129154
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08129158
- .align 2, 0
-_0812914C: .4byte 0x020192e4
-_08129150: .4byte gUnknown_02039238
-_08129154:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129158:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8129114
-
- thumb_func_start sub_8129160
-sub_8129160: @ 8129160
- push {r4,r5,lr}
- bl sub_81290EC
- ldr r2, _08129198
- ldr r4, _0812919C
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- ble _081291A0
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081291A4
- .align 2, 0
-_08129198: .4byte 0x020192e4
-_0812919C: .4byte gUnknown_02039238
-_081291A0:
- adds r0, r3, 0x6
- str r0, [r4]
-_081291A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8129160
-
- thumb_func_start sub_81291AC
-sub_81291AC: @ 81291AC
- push {r4,r5,lr}
- bl sub_81290EC
- ldr r2, _081291E4
- ldr r4, _081291E8
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _081291EC
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081291F0
- .align 2, 0
-_081291E4: .4byte 0x020192e4
-_081291E8: .4byte gUnknown_02039238
-_081291EC:
- adds r0, r3, 0x6
- str r0, [r4]
-_081291F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81291AC
-
- thumb_func_start sub_81291F8
-sub_81291F8: @ 81291F8
- push {r4,r5,lr}
- bl sub_81290EC
- ldr r2, _08129230
- ldr r4, _08129234
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- beq _08129238
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812923C
- .align 2, 0
-_08129230: .4byte 0x020192e4
-_08129234: .4byte gUnknown_02039238
-_08129238:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812923C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81291F8
-
- thumb_func_start contest_ai_get_contest_type
-contest_ai_get_contest_type: @ 8129244
- ldr r1, _08129258
- ldr r0, _0812925C
- ldrh r0, [r0]
- strh r0, [r1, 0x18]
- ldr r1, _08129260
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129258: .4byte 0x020192e4
-_0812925C: .4byte gUnknown_0203869C
-_08129260: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_contest_type
-
- thumb_func_start sub_8129264
-sub_8129264: @ 8129264
- push {lr}
- bl contest_ai_get_contest_type
- ldr r0, _08129294
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129298
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812929C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081292A0
- .align 2, 0
-_08129294: .4byte 0x020192e4
-_08129298: .4byte gUnknown_02039238
-_0812929C:
- adds r0, r2, 0x5
- str r0, [r3]
-_081292A0:
- pop {r0}
- bx r0
- thumb_func_end sub_8129264
-
- thumb_func_start sub_81292A4
-sub_81292A4: @ 81292A4
- push {lr}
- bl contest_ai_get_contest_type
- ldr r0, _081292D4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081292D8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081292DC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081292E0
- .align 2, 0
-_081292D4: .4byte 0x020192e4
-_081292D8: .4byte gUnknown_02039238
-_081292DC:
- adds r0, r2, 0x5
- str r0, [r3]
-_081292E0:
- pop {r0}
- bx r0
- thumb_func_end sub_81292A4
-
- thumb_func_start contest_ai_get_move_excitement
-contest_ai_get_move_excitement: @ 81292E4
- push {r4,lr}
- ldr r2, _08129318
- ldr r4, _0812931C
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl contest_get_move_excitement
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08129320
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129318: .4byte gUnknown_02038570
-_0812931C: .4byte 0x020192e4
-_08129320: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_move_excitement
-
- thumb_func_start sub_8129324
-sub_8129324: @ 8129324
- push {r4,lr}
- bl contest_ai_get_move_excitement
- ldr r0, _08129354
- ldr r3, _08129358
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bge _0812935C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129360
- .align 2, 0
-_08129354: .4byte 0x020192e4
-_08129358: .4byte gUnknown_02039238
-_0812935C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129360:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8129324
-
- thumb_func_start sub_8129368
-sub_8129368: @ 8129368
- push {r4,lr}
- bl contest_ai_get_move_excitement
- ldr r0, _08129398
- ldr r3, _0812939C
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- ble _081293A0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081293A4
- .align 2, 0
-_08129398: .4byte 0x020192e4
-_0812939C: .4byte gUnknown_02039238
-_081293A0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081293A4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8129368
-
- thumb_func_start sub_81293AC
-sub_81293AC: @ 81293AC
- push {r4,lr}
- bl contest_ai_get_move_excitement
- ldr r0, _081293DC
- ldr r3, _081293E0
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _081293E4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081293E8
- .align 2, 0
-_081293DC: .4byte 0x020192e4
-_081293E0: .4byte gUnknown_02039238
-_081293E4:
- adds r0, r2, 0x5
- str r0, [r3]
-_081293E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81293AC
-
- thumb_func_start sub_81293F0
-sub_81293F0: @ 81293F0
- push {r4,lr}
- bl contest_ai_get_move_excitement
- ldr r0, _08129420
- ldr r3, _08129424
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- beq _08129428
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812942C
- .align 2, 0
-_08129420: .4byte 0x020192e4
-_08129424: .4byte gUnknown_02039238
-_08129428:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812942C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81293F0
-
- thumb_func_start contest_ai_get_move_effect
-contest_ai_get_move_effect: @ 8129434
- ldr r2, _08129460
- ldr r3, _08129464
- ldrb r1, [r3, 0x4]
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r1, _08129468
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r3, 0x18]
- ldr r1, _0812946C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129460: .4byte gUnknown_02038570
-_08129464: .4byte 0x020192e4
-_08129468: .4byte gContestMoves
-_0812946C: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_move_effect
-
- thumb_func_start sub_8129470
-sub_8129470: @ 8129470
- push {lr}
- bl contest_ai_get_move_effect
- ldr r0, _081294A0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081294A4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081294A8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081294AC
- .align 2, 0
-_081294A0: .4byte 0x020192e4
-_081294A4: .4byte gUnknown_02039238
-_081294A8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081294AC:
- pop {r0}
- bx r0
- thumb_func_end sub_8129470
-
- thumb_func_start sub_81294B0
-sub_81294B0: @ 81294B0
- push {lr}
- bl contest_ai_get_move_effect
- ldr r0, _081294E0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081294E4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081294E8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081294EC
- .align 2, 0
-_081294E0: .4byte 0x020192e4
-_081294E4: .4byte gUnknown_02039238
-_081294E8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081294EC:
- pop {r0}
- bx r0
- thumb_func_end sub_81294B0
-
- thumb_func_start contest_ai_get_move_effect_type
-contest_ai_get_move_effect_type: @ 81294F0
- ldr r2, _08129524
- ldr r3, _08129528
- ldrb r1, [r3, 0x4]
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _0812952C
- ldr r1, _08129530
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r3, 0x18]
- ldr r1, _08129534
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129524: .4byte gUnknown_02038570
-_08129528: .4byte 0x020192e4
-_0812952C: .4byte gContestEffects
-_08129530: .4byte gContestMoves
-_08129534: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_move_effect_type
-
- thumb_func_start sub_8129538
-sub_8129538: @ 8129538
- push {lr}
- bl contest_ai_get_move_effect_type
- ldr r0, _08129568
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812956C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129570
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129574
- .align 2, 0
-_08129568: .4byte 0x020192e4
-_0812956C: .4byte gUnknown_02039238
-_08129570:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129574:
- pop {r0}
- bx r0
- thumb_func_end sub_8129538
-
- thumb_func_start sub_8129578
-sub_8129578: @ 8129578
- push {lr}
- bl contest_ai_get_move_effect_type
- ldr r0, _081295A8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081295AC
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081295B0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081295B4
- .align 2, 0
-_081295A8: .4byte 0x020192e4
-_081295AC: .4byte gUnknown_02039238
-_081295B0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081295B4:
- pop {r0}
- bx r0
- thumb_func_end sub_8129578
-
- thumb_func_start contest_ai_check_move_has_highest_appeal
-contest_ai_check_move_has_highest_appeal: @ 81295B8
- push {r4-r7,lr}
- ldr r2, _08129610
- ldr r3, _08129614
- ldrb r0, [r3, 0x4]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x41
- ldrb r1, [r1]
- lsls r1, 6
- adds r0, r1
- adds r2, 0x1E
- adds r0, r2
- ldrh r0, [r0]
- ldr r4, _08129618
- ldr r5, _0812961C
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r7, [r0, 0x1]
- movs r6, 0
- ldr r0, _08129620
- mov r12, r0
- adds r1, r2
-_081295EA:
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129600
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x1]
- cmp r7, r0
- bcc _08129608
-_08129600:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _081295EA
-_08129608:
- cmp r6, 0x4
- bne _08129624
- movs r0, 0x1
- b _08129626
- .align 2, 0
-_08129610: .4byte gUnknown_02038570
-_08129614: .4byte 0x020192e4
-_08129618: .4byte gContestEffects
-_0812961C: .4byte gContestMoves
-_08129620: .4byte gUnknown_02039238
-_08129624:
- movs r0, 0
-_08129626:
- strh r0, [r3, 0x18]
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end contest_ai_check_move_has_highest_appeal
-
- thumb_func_start sub_8129638
-sub_8129638: @ 8129638
- push {lr}
- bl contest_ai_check_move_has_highest_appeal
- ldr r0, _08129664
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812966C
- ldr r3, _08129668
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129674
- .align 2, 0
-_08129664: .4byte 0x020192e4
-_08129668: .4byte gUnknown_02039238
-_0812966C:
- ldr r1, _08129678
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129674:
- pop {r0}
- bx r0
- .align 2, 0
-_08129678: .4byte gUnknown_02039238
- thumb_func_end sub_8129638
-
- thumb_func_start sub_812967C
-sub_812967C: @ 812967C
- push {r4-r7,lr}
- ldr r2, _081296D4
- ldr r3, _081296D8
- ldrb r0, [r3, 0x4]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x41
- ldrb r1, [r1]
- lsls r1, 6
- adds r0, r1
- adds r2, 0x1E
- adds r0, r2
- ldrh r0, [r0]
- ldr r4, _081296DC
- ldr r5, _081296E0
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r7, [r0, 0x2]
- movs r6, 0
- ldr r0, _081296E4
- mov r12, r0
- adds r1, r2
-_081296AE:
- ldrh r0, [r1]
- cmp r0, 0
- beq _081296C4
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x2]
- cmp r7, r0
- bcc _081296CC
-_081296C4:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _081296AE
-_081296CC:
- cmp r6, 0x4
- bne _081296E8
- movs r0, 0x1
- b _081296EA
- .align 2, 0
-_081296D4: .4byte gUnknown_02038570
-_081296D8: .4byte 0x020192e4
-_081296DC: .4byte gContestEffects
-_081296E0: .4byte gContestMoves
-_081296E4: .4byte gUnknown_02039238
-_081296E8:
- movs r0, 0
-_081296EA:
- strh r0, [r3, 0x18]
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812967C
-
- thumb_func_start sub_81296FC
-sub_81296FC: @ 81296FC
- push {lr}
- bl sub_812967C
- ldr r0, _08129728
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129730
- ldr r3, _0812972C
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129738
- .align 2, 0
-_08129728: .4byte 0x020192e4
-_0812972C: .4byte gUnknown_02039238
-_08129730:
- ldr r1, _0812973C
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08129738:
- pop {r0}
- bx r0
- .align 2, 0
-_0812973C: .4byte gUnknown_02039238
- thumb_func_end sub_81296FC
-
- thumb_func_start sub_8129740
-sub_8129740: @ 8129740
- push {r4,lr}
- ldr r2, _08129784
- ldr r4, _08129788
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _0812978C
- ldr r1, _08129790
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08129794
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129784: .4byte gUnknown_02038570
-_08129788: .4byte 0x020192e4
-_0812978C: .4byte gContestEffects
-_08129790: .4byte gContestMoves
-_08129794: .4byte gUnknown_02039238
- thumb_func_end sub_8129740
-
- thumb_func_start sub_8129798
-sub_8129798: @ 8129798
- push {lr}
- bl sub_8129740
- ldr r0, _081297C8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081297CC
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _081297D0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081297D4
- .align 2, 0
-_081297C8: .4byte 0x020192e4
-_081297CC: .4byte gUnknown_02039238
-_081297D0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081297D4:
- pop {r0}
- bx r0
- thumb_func_end sub_8129798
-
- thumb_func_start sub_81297D8
-sub_81297D8: @ 81297D8
- push {lr}
- bl sub_8129740
- ldr r0, _08129808
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812980C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129810
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129814
- .align 2, 0
-_08129808: .4byte 0x020192e4
-_0812980C: .4byte gUnknown_02039238
-_08129810:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129814:
- pop {r0}
- bx r0
- thumb_func_end sub_81297D8
-
- thumb_func_start sub_8129818
-sub_8129818: @ 8129818
- push {lr}
- bl sub_8129740
- ldr r0, _08129848
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812984C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129850
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129854
- .align 2, 0
-_08129848: .4byte 0x020192e4
-_0812984C: .4byte gUnknown_02039238
-_08129850:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129854:
- pop {r0}
- bx r0
- thumb_func_end sub_8129818
-
- thumb_func_start sub_8129858
-sub_8129858: @ 8129858
- push {lr}
- bl sub_8129740
- ldr r0, _08129888
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812988C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129890
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129894
- .align 2, 0
-_08129888: .4byte 0x020192e4
-_0812988C: .4byte gUnknown_02039238
-_08129890:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129894:
- pop {r0}
- bx r0
- thumb_func_end sub_8129858
-
- thumb_func_start sub_8129898
-sub_8129898: @ 8129898
- push {r4,lr}
- ldr r2, _081298DC
- ldr r4, _081298E0
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _081298E4
- ldr r1, _081298E8
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _081298EC
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081298DC: .4byte gUnknown_02038570
-_081298E0: .4byte 0x020192e4
-_081298E4: .4byte gContestEffects
-_081298E8: .4byte gContestMoves
-_081298EC: .4byte gUnknown_02039238
- thumb_func_end sub_8129898
-
- thumb_func_start sub_81298F0
-sub_81298F0: @ 81298F0
- push {lr}
- bl sub_8129898
- ldr r0, _08129920
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129924
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129928
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812992C
- .align 2, 0
-_08129920: .4byte 0x020192e4
-_08129924: .4byte gUnknown_02039238
-_08129928:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812992C:
- pop {r0}
- bx r0
- thumb_func_end sub_81298F0
-
- thumb_func_start sub_8129930
-sub_8129930: @ 8129930
- push {lr}
- bl sub_8129898
- ldr r0, _08129960
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129964
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129968
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812996C
- .align 2, 0
-_08129960: .4byte 0x020192e4
-_08129964: .4byte gUnknown_02039238
-_08129968:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812996C:
- pop {r0}
- bx r0
- thumb_func_end sub_8129930
-
- thumb_func_start sub_8129970
-sub_8129970: @ 8129970
- push {lr}
- bl sub_8129898
- ldr r0, _081299A0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081299A4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081299A8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081299AC
- .align 2, 0
-_081299A0: .4byte 0x020192e4
-_081299A4: .4byte gUnknown_02039238
-_081299A8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081299AC:
- pop {r0}
- bx r0
- thumb_func_end sub_8129970
-
- thumb_func_start sub_81299B0
-sub_81299B0: @ 81299B0
- push {lr}
- bl sub_8129898
- ldr r0, _081299E0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081299E4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081299E8
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081299EC
- .align 2, 0
-_081299E0: .4byte 0x020192e4
-_081299E4: .4byte gUnknown_02039238
-_081299E8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081299EC:
- pop {r0}
- bx r0
- thumb_func_end sub_81299B0
-
- thumb_func_start contest_ai_get_move_used_count
-contest_ai_get_move_used_count: @ 81299F0
- push {r4,lr}
- ldr r3, _08129A20
- ldr r4, _08129A24
- ldrb r0, [r4, 0x4]
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r1, r2, 6
- adds r0, r1
- adds r3, 0x1E
- adds r0, r3
- ldrh r3, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r0, r1
- ldrh r1, [r0, 0x8]
- cmp r3, r1
- beq _08129A28
- movs r0, 0
- b _08129A30
- .align 2, 0
-_08129A20: .4byte gUnknown_02038570
-_08129A24: .4byte 0x020192e4
-_08129A28:
- ldrb r0, [r0, 0xB]
- lsls r0, 25
- lsrs r0, 29
- adds r0, 0x1
-_08129A30:
- strh r0, [r4, 0x18]
- ldr r1, _08129A40
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129A40: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_move_used_count
-
- thumb_func_start sub_8129A44
-sub_8129A44: @ 8129A44
- push {lr}
- bl contest_ai_get_move_used_count
- ldr r0, _08129A74
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129A78
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129A7C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129A80
- .align 2, 0
-_08129A74: .4byte 0x020192e4
-_08129A78: .4byte gUnknown_02039238
-_08129A7C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129A80:
- pop {r0}
- bx r0
- thumb_func_end sub_8129A44
-
- thumb_func_start sub_8129A84
-sub_8129A84: @ 8129A84
- push {lr}
- bl contest_ai_get_move_used_count
- ldr r0, _08129AB4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129AB8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129ABC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129AC0
- .align 2, 0
-_08129AB4: .4byte 0x020192e4
-_08129AB8: .4byte gUnknown_02039238
-_08129ABC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129AC0:
- pop {r0}
- bx r0
- thumb_func_end sub_8129A84
-
- thumb_func_start sub_8129AC4
-sub_8129AC4: @ 8129AC4
- push {lr}
- bl contest_ai_get_move_used_count
- ldr r0, _08129AF4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129AF8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129AFC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129B00
- .align 2, 0
-_08129AF4: .4byte 0x020192e4
-_08129AF8: .4byte gUnknown_02039238
-_08129AFC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129B00:
- pop {r0}
- bx r0
- thumb_func_end sub_8129AC4
-
- thumb_func_start sub_8129B04
-sub_8129B04: @ 8129B04
- push {lr}
- bl contest_ai_get_move_used_count
- ldr r0, _08129B34
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129B38
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129B3C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129B40
- .align 2, 0
-_08129B34: .4byte 0x020192e4
-_08129B38: .4byte gUnknown_02039238
-_08129B3C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129B40:
- pop {r0}
- bx r0
- thumb_func_end sub_8129B04
-
- thumb_func_start contest_ai_check_combo_starter
-contest_ai_check_combo_starter: @ 8129B44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r3, _08129BAC
- ldr r2, _08129BB0
- ldrb r1, [r2, 0x4]
- lsls r1, 1
- adds r2, 0x41
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r3, 0x1E
- adds r1, r3
- ldrh r6, [r1]
- movs r4, 0
- mov r8, r2
- adds r7, r3, 0
-_08129B68:
- lsls r0, r4, 1
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r7
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129B8A
- adds r1, r0, 0
- adds r0, r6, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08129B94
-_08129B8A:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08129B68
- cmp r5, 0
- beq _08129B96
-_08129B94:
- movs r5, 0x1
-_08129B96:
- ldr r0, _08129BB0
- strh r5, [r0, 0x18]
- ldr r1, _08129BB4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08129BAC: .4byte gUnknown_02038570
-_08129BB0: .4byte 0x020192e4
-_08129BB4: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_combo_starter
-
- thumb_func_start sub_8129BB8
-sub_8129BB8: @ 8129BB8
- push {lr}
- bl contest_ai_check_combo_starter
- ldr r0, _08129BE4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129BEC
- ldr r3, _08129BE8
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129BF4
- .align 2, 0
-_08129BE4: .4byte 0x020192e4
-_08129BE8: .4byte gUnknown_02039238
-_08129BEC:
- ldr r1, _08129BF8
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129BF4:
- pop {r0}
- bx r0
- .align 2, 0
-_08129BF8: .4byte gUnknown_02039238
- thumb_func_end sub_8129BB8
-
- thumb_func_start sub_8129BFC
-sub_8129BFC: @ 8129BFC
- push {lr}
- bl contest_ai_check_combo_starter
- ldr r0, _08129C28
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129C30
- ldr r3, _08129C2C
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129C38
- .align 2, 0
-_08129C28: .4byte 0x020192e4
-_08129C2C: .4byte gUnknown_02039238
-_08129C30:
- ldr r1, _08129C3C
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129C38:
- pop {r0}
- bx r0
- .align 2, 0
-_08129C3C: .4byte gUnknown_02039238
- thumb_func_end sub_8129BFC
-
- thumb_func_start contest_ai_check_combo_finisher
-contest_ai_check_combo_finisher: @ 8129C40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r3, _08129CA8
- ldr r2, _08129CAC
- ldrb r1, [r2, 0x4]
- lsls r1, 1
- adds r2, 0x41
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r3, 0x1E
- adds r1, r3
- ldrh r6, [r1]
- movs r4, 0
- mov r8, r2
- adds r7, r3, 0
-_08129C64:
- lsls r0, r4, 1
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r7
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129C84
- adds r1, r6, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08129C8E
-_08129C84:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08129C64
- cmp r5, 0
- beq _08129C90
-_08129C8E:
- movs r5, 0x1
-_08129C90:
- ldr r0, _08129CAC
- strh r5, [r0, 0x18]
- ldr r1, _08129CB0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08129CA8: .4byte gUnknown_02038570
-_08129CAC: .4byte 0x020192e4
-_08129CB0: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_combo_finisher
-
- thumb_func_start sub_8129CB4
-sub_8129CB4: @ 8129CB4
- push {lr}
- bl contest_ai_check_combo_finisher
- ldr r0, _08129CE0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129CE8
- ldr r3, _08129CE4
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129CF0
- .align 2, 0
-_08129CE0: .4byte 0x020192e4
-_08129CE4: .4byte gUnknown_02039238
-_08129CE8:
- ldr r1, _08129CF4
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129CF0:
- pop {r0}
- bx r0
- .align 2, 0
-_08129CF4: .4byte gUnknown_02039238
- thumb_func_end sub_8129CB4
-
- thumb_func_start sub_8129CF8
-sub_8129CF8: @ 8129CF8
- push {lr}
- bl contest_ai_check_combo_finisher
- ldr r0, _08129D24
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129D2C
- ldr r3, _08129D28
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129D34
- .align 2, 0
-_08129D24: .4byte 0x020192e4
-_08129D28: .4byte gUnknown_02039238
-_08129D2C:
- ldr r1, _08129D38
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129D34:
- pop {r0}
- bx r0
- .align 2, 0
-_08129D38: .4byte gUnknown_02039238
- thumb_func_end sub_8129CF8
-
- thumb_func_start contest_ai_check_would_finish_combo
-contest_ai_check_would_finish_combo: @ 8129D3C
- push {r4,r5,lr}
- movs r5, 0
- ldr r3, _08129D8C
- ldr r4, _08129D90
- ldrb r0, [r4, 0x4]
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r1, r2, 6
- adds r0, r1
- adds r3, 0x1E
- adds r0, r3
- ldrh r3, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r1, r0, r1
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- beq _08129D74
- adds r1, r3, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
-_08129D74:
- cmp r5, 0
- beq _08129D7A
- movs r5, 0x1
-_08129D7A:
- strh r5, [r4, 0x18]
- ldr r1, _08129D94
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08129D8C: .4byte gUnknown_02038570
-_08129D90: .4byte 0x020192e4
-_08129D94: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_would_finish_combo
-
- thumb_func_start sub_8129D98
-sub_8129D98: @ 8129D98
- push {lr}
- bl contest_ai_check_would_finish_combo
- ldr r0, _08129DC4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129DCC
- ldr r3, _08129DC8
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129DD4
- .align 2, 0
-_08129DC4: .4byte 0x020192e4
-_08129DC8: .4byte gUnknown_02039238
-_08129DCC:
- ldr r1, _08129DD8
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129DD4:
- pop {r0}
- bx r0
- .align 2, 0
-_08129DD8: .4byte gUnknown_02039238
- thumb_func_end sub_8129D98
-
- thumb_func_start sub_8129DDC
-sub_8129DDC: @ 8129DDC
- push {lr}
- bl contest_ai_check_would_finish_combo
- ldr r0, _08129E08
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129E10
- ldr r3, _08129E0C
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129E18
- .align 2, 0
-_08129E08: .4byte 0x020192e4
-_08129E0C: .4byte gUnknown_02039238
-_08129E10:
- ldr r1, _08129E1C
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129E18:
- pop {r0}
- bx r0
- .align 2, 0
-_08129E1C: .4byte gUnknown_02039238
- thumb_func_end sub_8129DDC
-
- thumb_func_start contest_ai_get_condition
-contest_ai_get_condition: @ 8129E20
- push {r4,r5,lr}
- ldr r4, _08129E5C
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08129E60
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r5, 0
- subs r0, 0x84
- adds r1, r0
- movs r0, 0xD
- ldrsb r0, [r1, r0]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08129E5C: .4byte gUnknown_02039238
-_08129E60: .4byte 0x020192e4
- thumb_func_end contest_ai_get_condition
-
- thumb_func_start sub_8129E64
-sub_8129E64: @ 8129E64
- push {lr}
- bl contest_ai_get_condition
- ldr r0, _08129E94
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129E98
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129E9C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129EA0
- .align 2, 0
-_08129E94: .4byte 0x020192e4
-_08129E98: .4byte gUnknown_02039238
-_08129E9C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129EA0:
- pop {r0}
- bx r0
- thumb_func_end sub_8129E64
-
- thumb_func_start sub_8129EA4
-sub_8129EA4: @ 8129EA4
- push {lr}
- bl contest_ai_get_condition
- ldr r0, _08129ED4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129ED8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129EDC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129EE0
- .align 2, 0
-_08129ED4: .4byte 0x020192e4
-_08129ED8: .4byte gUnknown_02039238
-_08129EDC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129EE0:
- pop {r0}
- bx r0
- thumb_func_end sub_8129EA4
-
- thumb_func_start sub_8129EE4
-sub_8129EE4: @ 8129EE4
- push {lr}
- bl contest_ai_get_condition
- ldr r0, _08129F14
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129F18
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129F1C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129F20
- .align 2, 0
-_08129F14: .4byte 0x020192e4
-_08129F18: .4byte gUnknown_02039238
-_08129F1C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129F20:
- pop {r0}
- bx r0
- thumb_func_end sub_8129EE4
-
- thumb_func_start sub_8129F24
-sub_8129F24: @ 8129F24
- push {lr}
- bl contest_ai_get_condition
- ldr r0, _08129F54
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129F58
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129F5C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129F60
- .align 2, 0
-_08129F54: .4byte 0x020192e4
-_08129F58: .4byte gUnknown_02039238
-_08129F5C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129F60:
- pop {r0}
- bx r0
- thumb_func_end sub_8129F24
-
- thumb_func_start contest_ai_get_used_combo_starter
-contest_ai_get_used_combo_starter: @ 8129F64
- push {r4-r6,lr}
- movs r6, 0
- ldr r5, _08129FAC
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B214C
- lsls r0, 24
- cmp r0, 0
- beq _08129F9C
- ldr r2, _08129FB0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _08129FB4
- adds r0, r1
- ldrh r0, [r0, 0x8]
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x2]
- negs r0, r1
- orrs r0, r1
- lsrs r6, r0, 31
-_08129F9C:
- ldr r0, _08129FB8
- strh r6, [r0, 0x18]
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08129FAC: .4byte gUnknown_02039238
-_08129FB0: .4byte gContestMoves
-_08129FB4: .4byte 0x02019260
-_08129FB8: .4byte 0x020192e4
- thumb_func_end contest_ai_get_used_combo_starter
-
- thumb_func_start sub_8129FBC
-sub_8129FBC: @ 8129FBC
- push {lr}
- bl contest_ai_get_used_combo_starter
- ldr r0, _08129FEC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129FF0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129FF4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129FF8
- .align 2, 0
-_08129FEC: .4byte 0x020192e4
-_08129FF0: .4byte gUnknown_02039238
-_08129FF4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129FF8:
- pop {r0}
- bx r0
- thumb_func_end sub_8129FBC
-
- thumb_func_start sub_8129FFC
-sub_8129FFC: @ 8129FFC
- push {lr}
- bl contest_ai_get_used_combo_starter
- ldr r0, _0812A02C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A030
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A034
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A038
- .align 2, 0
-_0812A02C: .4byte 0x020192e4
-_0812A030: .4byte gUnknown_02039238
-_0812A034:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A038:
- pop {r0}
- bx r0
- thumb_func_end sub_8129FFC
-
- thumb_func_start sub_812A03C
-sub_812A03C: @ 812A03C
- push {lr}
- bl contest_ai_get_used_combo_starter
- ldr r0, _0812A06C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A070
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A074
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A078
- .align 2, 0
-_0812A06C: .4byte 0x020192e4
-_0812A070: .4byte gUnknown_02039238
-_0812A074:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A078:
- pop {r0}
- bx r0
- thumb_func_end sub_812A03C
-
- thumb_func_start sub_812A07C
-sub_812A07C: @ 812A07C
- push {lr}
- bl contest_ai_get_used_combo_starter
- ldr r0, _0812A0AC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A0B0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A0B4
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A0B8
- .align 2, 0
-_0812A0AC: .4byte 0x020192e4
-_0812A0B0: .4byte gUnknown_02039238
-_0812A0B4:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A0B8:
- pop {r0}
- bx r0
- thumb_func_end sub_812A07C
-
- thumb_func_start contest_ai_check_can_participate
-contest_ai_check_can_participate: @ 812A0BC
- push {lr}
- ldr r0, _0812A0DC
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- beq _0812A0E4
- ldr r1, _0812A0E0
- movs r0, 0
- b _0812A0E8
- .align 2, 0
-_0812A0DC: .4byte gUnknown_02039238
-_0812A0E0: .4byte 0x020192e4
-_0812A0E4:
- ldr r1, _0812A0F8
- movs r0, 0x1
-_0812A0E8:
- strh r0, [r1, 0x18]
- ldr r1, _0812A0FC
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0812A0F8: .4byte 0x020192e4
-_0812A0FC: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_can_participate
-
- thumb_func_start sub_812A100
-sub_812A100: @ 812A100
- push {lr}
- bl contest_ai_check_can_participate
- ldr r0, _0812A12C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A134
- ldr r3, _0812A130
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A13C
- .align 2, 0
-_0812A12C: .4byte 0x020192e4
-_0812A130: .4byte gUnknown_02039238
-_0812A134:
- ldr r1, _0812A140
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A13C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A140: .4byte gUnknown_02039238
- thumb_func_end sub_812A100
-
- thumb_func_start sub_812A144
-sub_812A144: @ 812A144
- push {lr}
- bl contest_ai_check_can_participate
- ldr r0, _0812A170
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A178
- ldr r3, _0812A174
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A180
- .align 2, 0
-_0812A170: .4byte 0x020192e4
-_0812A174: .4byte gUnknown_02039238
-_0812A178:
- ldr r1, _0812A184
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A180:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A184: .4byte gUnknown_02039238
- thumb_func_end sub_812A144
-
- thumb_func_start contest_ai_get_val_812A188
-contest_ai_get_val_812A188: @ 812A188
- push {r4,lr}
- ldr r4, _0812A1BC
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812A1C0
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r2, 0
- subs r0, 0x84
- adds r1, r0
- ldrb r0, [r1, 0x15]
- lsls r0, 28
- lsrs r0, 31
- strh r0, [r2, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A1BC: .4byte gUnknown_02039238
-_0812A1C0: .4byte 0x020192e4
- thumb_func_end contest_ai_get_val_812A188
-
- thumb_func_start sub_812A1C4
-sub_812A1C4: @ 812A1C4
- push {lr}
- bl contest_ai_get_val_812A188
- ldr r0, _0812A1F0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A1F8
- ldr r3, _0812A1F4
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A200
- .align 2, 0
-_0812A1F0: .4byte 0x020192e4
-_0812A1F4: .4byte gUnknown_02039238
-_0812A1F8:
- ldr r1, _0812A204
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A200:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A204: .4byte gUnknown_02039238
- thumb_func_end sub_812A1C4
-
- thumb_func_start sub_812A208
-sub_812A208: @ 812A208
- push {lr}
- bl contest_ai_get_val_812A188
- ldr r0, _0812A234
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A23C
- ldr r3, _0812A238
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A244
- .align 2, 0
-_0812A234: .4byte 0x020192e4
-_0812A238: .4byte gUnknown_02039238
-_0812A23C:
- ldr r1, _0812A248
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A244:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A248: .4byte gUnknown_02039238
- thumb_func_end sub_812A208
-
- thumb_func_start sub_812A24C
-sub_812A24C: @ 812A24C
- push {r4,r5,lr}
- ldr r5, _0812A28C
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0812A290
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, r3, 0
- subs r4, 0x84
- adds r1, r4
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r2, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r3, 0x18]
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A28C: .4byte gUnknown_02039238
-_0812A290: .4byte 0x020192e4
- thumb_func_end sub_812A24C
-
- thumb_func_start sub_812A294
-sub_812A294: @ 812A294
- push {lr}
- bl sub_812A24C
- ldr r0, _0812A2C0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0812A2C8
- ldr r3, _0812A2C4
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A2D0
- .align 2, 0
-_0812A2C0: .4byte 0x020192e4
-_0812A2C4: .4byte gUnknown_02039238
-_0812A2C8:
- ldr r1, _0812A2D4
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A2D0:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A2D4: .4byte gUnknown_02039238
- thumb_func_end sub_812A294
-
- thumb_func_start sub_812A2D8
-sub_812A2D8: @ 812A2D8
- push {lr}
- bl sub_812A24C
- ldr r0, _0812A304
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _0812A30C
- ldr r3, _0812A308
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A314
- .align 2, 0
-_0812A304: .4byte 0x020192e4
-_0812A308: .4byte gUnknown_02039238
-_0812A30C:
- ldr r1, _0812A318
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A314:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A318: .4byte gUnknown_02039238
- thumb_func_end sub_812A2D8
-
- thumb_func_start sub_812A31C
-sub_812A31C: @ 812A31C
- push {lr}
- bl sub_812A24C
- ldr r0, _0812A348
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A350
- ldr r3, _0812A34C
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A358
- .align 2, 0
-_0812A348: .4byte 0x020192e4
-_0812A34C: .4byte gUnknown_02039238
-_0812A350:
- ldr r1, _0812A35C
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A358:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A35C: .4byte gUnknown_02039238
- thumb_func_end sub_812A31C
-
- thumb_func_start sub_812A360
-sub_812A360: @ 812A360
- push {lr}
- bl sub_812A24C
- ldr r0, _0812A38C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A394
- ldr r3, _0812A390
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A39C
- .align 2, 0
-_0812A38C: .4byte 0x020192e4
-_0812A390: .4byte gUnknown_02039238
-_0812A394:
- ldr r1, _0812A3A0
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A39C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A3A0: .4byte gUnknown_02039238
- thumb_func_end sub_812A360
-
- thumb_func_start sub_812A3A4
-sub_812A3A4: @ 812A3A4
- push {r4,lr}
- ldr r4, _0812A3D8
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- ldr r3, _0812A3DC
- ldr r2, _0812A3E0
- lsrs r0, 23
- adds r0, r2
- adds r1, r3, 0
- adds r1, 0x41
- ldrb r1, [r1]
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r3, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A3D8: .4byte gUnknown_02039238
-_0812A3DC: .4byte 0x020192e4
-_0812A3E0: .4byte gUnknown_02038670
- thumb_func_end sub_812A3A4
-
- thumb_func_start sub_812A3E4
-sub_812A3E4: @ 812A3E4
- push {lr}
- bl sub_812A3A4
- ldr r0, _0812A410
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0812A418
- ldr r3, _0812A414
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A420
- .align 2, 0
-_0812A410: .4byte 0x020192e4
-_0812A414: .4byte gUnknown_02039238
-_0812A418:
- ldr r1, _0812A424
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A420:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A424: .4byte gUnknown_02039238
- thumb_func_end sub_812A3E4
-
- thumb_func_start sub_812A428
-sub_812A428: @ 812A428
- push {lr}
- bl sub_812A3A4
- ldr r0, _0812A454
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _0812A45C
- ldr r3, _0812A458
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A464
- .align 2, 0
-_0812A454: .4byte 0x020192e4
-_0812A458: .4byte gUnknown_02039238
-_0812A45C:
- ldr r1, _0812A468
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A464:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A468: .4byte gUnknown_02039238
- thumb_func_end sub_812A428
-
- thumb_func_start sub_812A46C
-sub_812A46C: @ 812A46C
- push {lr}
- bl sub_812A3A4
- ldr r0, _0812A498
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A4A0
- ldr r3, _0812A49C
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A4A8
- .align 2, 0
-_0812A498: .4byte 0x020192e4
-_0812A49C: .4byte gUnknown_02039238
-_0812A4A0:
- ldr r1, _0812A4AC
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A4A8:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A4AC: .4byte gUnknown_02039238
- thumb_func_end sub_812A46C
-
- thumb_func_start sub_812A4B0
-sub_812A4B0: @ 812A4B0
- push {lr}
- bl sub_812A3A4
- ldr r0, _0812A4DC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A4E4
- ldr r3, _0812A4E0
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A4EC
- .align 2, 0
-_0812A4DC: .4byte 0x020192e4
-_0812A4E0: .4byte gUnknown_02039238
-_0812A4E4:
- ldr r1, _0812A4F0
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A4EC:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A4F0: .4byte gUnknown_02039238
- thumb_func_end sub_812A4B0
-
- thumb_func_start sub_812A4F4
-sub_812A4F4: @ 812A4F4
- push {r4,lr}
- ldr r4, _0812A52C
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldr r2, _0812A530
- lsrs r0, 23
- lsls r1, 3
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldrh r0, [r0]
- adds r2, 0xE0
- ldr r1, _0812A534
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2, 0x18]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A52C: .4byte gUnknown_02039238
-_0812A530: .4byte 0x02019204
-_0812A534: .4byte gContestMoves
- thumb_func_end sub_812A4F4
-
- thumb_func_start sub_812A538
-sub_812A538: @ 812A538
- push {lr}
- bl sub_812A4F4
- ldr r0, _0812A568
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A56C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _0812A570
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A574
- .align 2, 0
-_0812A568: .4byte 0x020192e4
-_0812A56C: .4byte gUnknown_02039238
-_0812A570:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A574:
- pop {r0}
- bx r0
- thumb_func_end sub_812A538
-
- thumb_func_start sub_812A578
-sub_812A578: @ 812A578
- push {lr}
- bl sub_812A4F4
- ldr r0, _0812A5A8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A5AC
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A5B0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A5B4
- .align 2, 0
-_0812A5A8: .4byte 0x020192e4
-_0812A5AC: .4byte gUnknown_02039238
-_0812A5B0:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A5B4:
- pop {r0}
- bx r0
- thumb_func_end sub_812A578
-
- thumb_func_start sub_812A5B8
-sub_812A5B8: @ 812A5B8
- push {lr}
- bl sub_812A4F4
- ldr r0, _0812A5E8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A5EC
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A5F0
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A5F4
- .align 2, 0
-_0812A5E8: .4byte 0x020192e4
-_0812A5EC: .4byte gUnknown_02039238
-_0812A5F0:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A5F4:
- pop {r0}
- bx r0
- thumb_func_end sub_812A5B8
-
- thumb_func_start sub_812A5F8
-sub_812A5F8: @ 812A5F8
- push {lr}
- bl sub_812A4F4
- ldr r0, _0812A628
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A62C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A630
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A634
- .align 2, 0
-_0812A628: .4byte 0x020192e4
-_0812A62C: .4byte gUnknown_02039238
-_0812A630:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A634:
- pop {r0}
- bx r0
- thumb_func_end sub_812A5F8
-
- thumb_func_start sub_812A638
-sub_812A638: @ 812A638
- push {r4,lr}
- ldr r4, _0812A66C
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldr r2, _0812A670
- lsls r1, 2
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x44
- adds r0, r1
- adds r2, 0xE0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r2, 0x18]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A66C: .4byte gUnknown_02039238
-_0812A670: .4byte 0x02019204
- thumb_func_end sub_812A638
-
- thumb_func_start sub_812A674
-sub_812A674: @ 812A674
- push {lr}
- bl sub_812A638
- ldr r0, _0812A6A4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A6A8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _0812A6AC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A6B0
- .align 2, 0
-_0812A6A4: .4byte 0x020192e4
-_0812A6A8: .4byte gUnknown_02039238
-_0812A6AC:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A6B0:
- pop {r0}
- bx r0
- thumb_func_end sub_812A674
-
- thumb_func_start sub_812A6B4
-sub_812A6B4: @ 812A6B4
- push {lr}
- bl sub_812A638
- ldr r0, _0812A6E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A6E8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A6EC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A6F0
- .align 2, 0
-_0812A6E4: .4byte 0x020192e4
-_0812A6E8: .4byte gUnknown_02039238
-_0812A6EC:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A6F0:
- pop {r0}
- bx r0
- thumb_func_end sub_812A6B4
-
- thumb_func_start sub_812A6F4
-sub_812A6F4: @ 812A6F4
- push {lr}
- bl sub_812A638
- ldr r0, _0812A724
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A728
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A72C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A730
- .align 2, 0
-_0812A724: .4byte 0x020192e4
-_0812A728: .4byte gUnknown_02039238
-_0812A72C:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A730:
- pop {r0}
- bx r0
- thumb_func_end sub_812A6F4
-
- thumb_func_start sub_812A734
-sub_812A734: @ 812A734
- push {lr}
- bl sub_812A638
- ldr r0, _0812A764
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A768
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A76C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A770
- .align 2, 0
-_0812A764: .4byte 0x020192e4
-_0812A768: .4byte gUnknown_02039238
-_0812A76C:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A770:
- pop {r0}
- bx r0
- thumb_func_end sub_812A734
-
- thumb_func_start sub_812A774
-sub_812A774: @ 812A774
- push {r4,r5,lr}
- ldr r5, _0812A7B4
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldr r2, _0812A7B8
- lsrs r0, 23
- lsls r1, 3
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldrh r0, [r0]
- adds r2, 0xE0
- ldr r4, _0812A7BC
- ldr r1, _0812A7C0
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- strh r0, [r2, 0x18]
- adds r3, 0x3
- str r3, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A7B4: .4byte gUnknown_02039238
-_0812A7B8: .4byte 0x02019204
-_0812A7BC: .4byte gContestEffects
-_0812A7C0: .4byte gContestMoves
- thumb_func_end sub_812A774
-
- thumb_func_start sub_812A7C4
-sub_812A7C4: @ 812A7C4
- push {lr}
- bl sub_812A774
- ldr r0, _0812A7F4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A7F8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A7FC
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A800
- .align 2, 0
-_0812A7F4: .4byte 0x020192e4
-_0812A7F8: .4byte gUnknown_02039238
-_0812A7FC:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A800:
- pop {r0}
- bx r0
- thumb_func_end sub_812A7C4
-
- thumb_func_start sub_812A804
-sub_812A804: @ 812A804
- push {lr}
- bl sub_812A774
- ldr r0, _0812A834
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A838
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A83C
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A840
- .align 2, 0
-_0812A834: .4byte 0x020192e4
-_0812A838: .4byte gUnknown_02039238
-_0812A83C:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A840:
- pop {r0}
- bx r0
- thumb_func_end sub_812A804
-
- thumb_func_start sub_812A844
-sub_812A844: @ 812A844
- push {r4,lr}
- ldr r3, _0812A864
- ldr r4, _0812A868
- ldr r2, [r4]
- ldrb r0, [r2, 0x1]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x1A
- adds r0, r1
- ldrh r1, [r3, 0x18]
- strh r1, [r0]
- adds r2, 0x2
- str r2, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A864: .4byte 0x020192e4
-_0812A868: .4byte gUnknown_02039238
- thumb_func_end sub_812A844
-
- thumb_func_start sub_812A86C
-sub_812A86C: @ 812A86C
- push {r4,lr}
- ldr r0, _0812A890
- ldr r4, _0812A894
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- lsls r2, 1
- adds r0, 0x1A
- adds r2, r0
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- adds r3, 0x4
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A890: .4byte 0x020192e4
-_0812A894: .4byte gUnknown_02039238
- thumb_func_end sub_812A86C
-
- thumb_func_start sub_812A898
-sub_812A898: @ 812A898
- push {r4,lr}
- ldr r0, _0812A8C4
- ldr r4, _0812A8C8
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- lsls r2, 1
- adds r0, 0x1A
- adds r2, r0
- movs r1, 0x2
- ldrsb r1, [r3, r1]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- adds r1, r0
- strh r1, [r2]
- adds r3, 0x4
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A8C4: .4byte 0x020192e4
-_0812A8C8: .4byte gUnknown_02039238
- thumb_func_end sub_812A898
-
- thumb_func_start sub_812A8CC
-sub_812A8CC: @ 812A8CC
- push {r4,lr}
- ldr r2, _0812A8F4
- ldr r4, _0812A8F8
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A8F4: .4byte 0x020192e4
-_0812A8F8: .4byte gUnknown_02039238
- thumb_func_end sub_812A8CC
-
- thumb_func_start sub_812A8FC
-sub_812A8FC: @ 812A8FC
- push {r4,lr}
- ldr r2, _0812A924
- ldr r4, _0812A928
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A924: .4byte 0x020192e4
-_0812A928: .4byte gUnknown_02039238
- thumb_func_end sub_812A8FC
-
- thumb_func_start sub_812A92C
-sub_812A92C: @ 812A92C
- push {r4,lr}
- ldr r1, _0812A964
- ldr r4, _0812A968
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- bge _0812A96C
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812A972
- .align 2, 0
-_0812A964: .4byte 0x020192e4
-_0812A968: .4byte gUnknown_02039238
-_0812A96C:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812A972:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812A92C
-
- thumb_func_start sub_812A978
-sub_812A978: @ 812A978
- push {r4,lr}
- ldr r1, _0812A9B0
- ldr r4, _0812A9B4
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- ble _0812A9B8
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812A9BE
- .align 2, 0
-_0812A9B0: .4byte 0x020192e4
-_0812A9B4: .4byte gUnknown_02039238
-_0812A9B8:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812A9BE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812A978
-
- thumb_func_start sub_812A9C4
-sub_812A9C4: @ 812A9C4
- push {r4,lr}
- ldr r1, _0812A9FC
- ldr r4, _0812AA00
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- bne _0812AA04
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AA0A
- .align 2, 0
-_0812A9FC: .4byte 0x020192e4
-_0812AA00: .4byte gUnknown_02039238
-_0812AA04:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812AA0A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812A9C4
-
- thumb_func_start sub_812AA10
-sub_812AA10: @ 812AA10
- push {r4,lr}
- ldr r1, _0812AA48
- ldr r4, _0812AA4C
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- beq _0812AA50
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AA56
- .align 2, 0
-_0812AA48: .4byte 0x020192e4
-_0812AA4C: .4byte gUnknown_02039238
-_0812AA50:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812AA56:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AA10
-
- thumb_func_start sub_812AA5C
-sub_812AA5C: @ 812AA5C
- push {r4,lr}
- ldr r2, _0812AA98
- ldr r4, _0812AA9C
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bge _0812AAA0
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AAA4
- .align 2, 0
-_0812AA98: .4byte 0x020192e4
-_0812AA9C: .4byte gUnknown_02039238
-_0812AAA0:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AAA4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AA5C
-
- thumb_func_start sub_812AAAC
-sub_812AAAC: @ 812AAAC
- push {r4,lr}
- ldr r2, _0812AAE8
- ldr r4, _0812AAEC
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- ble _0812AAF0
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AAF4
- .align 2, 0
-_0812AAE8: .4byte 0x020192e4
-_0812AAEC: .4byte gUnknown_02039238
-_0812AAF0:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AAF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AAAC
-
- thumb_func_start sub_812AAFC
-sub_812AAFC: @ 812AAFC
- push {r4,lr}
- ldr r2, _0812AB38
- ldr r4, _0812AB3C
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _0812AB40
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AB44
- .align 2, 0
-_0812AB38: .4byte 0x020192e4
-_0812AB3C: .4byte gUnknown_02039238
-_0812AB40:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AB44:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AAFC
-
- thumb_func_start sub_812AB4C
-sub_812AB4C: @ 812AB4C
- push {r4,lr}
- ldr r2, _0812AB88
- ldr r4, _0812AB8C
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- beq _0812AB90
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AB94
- .align 2, 0
-_0812AB88: .4byte 0x020192e4
-_0812AB8C: .4byte gUnknown_02039238
-_0812AB90:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AB94:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AB4C
-
- thumb_func_start sub_812AB9C
-sub_812AB9C: @ 812AB9C
- push {r4,lr}
- bl Random
- movs r2, 0xFF
- ands r2, r0
- ldr r1, _0812ABD4
- ldr r4, _0812ABD8
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r2, r0
- bge _0812ABDC
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812ABE0
- .align 2, 0
-_0812ABD4: .4byte 0x020192e4
-_0812ABD8: .4byte gUnknown_02039238
-_0812ABDC:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812ABE0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AB9C
-
- thumb_func_start sub_812ABE8
-sub_812ABE8: @ 812ABE8
- push {r4,lr}
- bl Random
- movs r2, 0xFF
- ands r2, r0
- ldr r1, _0812AC20
- ldr r4, _0812AC24
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r2, r0
- ble _0812AC28
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AC2C
- .align 2, 0
-_0812AC20: .4byte 0x020192e4
-_0812AC24: .4byte gUnknown_02039238
-_0812AC28:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812AC2C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812ABE8
-
- thumb_func_start sub_812AC34
-sub_812AC34: @ 812AC34
- ldr r3, _0812AC50
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_0812AC50: .4byte gUnknown_02039238
- thumb_func_end sub_812AC34
-
- thumb_func_start sub_812AC54
-sub_812AC54: @ 812AC54
- push {r4,lr}
- ldr r4, _0812AC80
- ldr r0, [r4]
- adds r0, 0x5
- bl sub_812ACA4
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AC80: .4byte gUnknown_02039238
- thumb_func_end sub_812AC54
-
- thumb_func_start sub_812AC84
-sub_812AC84: @ 812AC84
- push {lr}
- bl sub_812ACC8
- lsls r0, 24
- cmp r0, 0
- bne _0812AC9A
- ldr r2, _0812ACA0
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
-_0812AC9A:
- pop {r0}
- bx r0
- .align 2, 0
-_0812ACA0: .4byte 0x020192e4
- thumb_func_end sub_812AC84
-
- thumb_func_start sub_812ACA4
-sub_812ACA4: @ 812ACA4
- push {r4,lr}
- ldr r3, _0812ACC4
- adds r4, r3, 0
- adds r4, 0x40
- ldrb r1, [r4]
- adds r2, r1, 0x1
- strb r2, [r4]
- lsls r1, 24
- lsrs r1, 22
- adds r3, 0x20
- adds r1, r3
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812ACC4: .4byte 0x020192e4
- thumb_func_end sub_812ACA4
-
- thumb_func_start sub_812ACC8
-sub_812ACC8: @ 812ACC8
- push {lr}
- ldr r1, _0812ACDC
- adds r3, r1, 0
- adds r3, 0x40
- ldrb r0, [r3]
- cmp r0, 0
- bne _0812ACE0
- movs r0, 0
- b _0812ACF4
- .align 2, 0
-_0812ACDC: .4byte 0x020192e4
-_0812ACE0:
- subs r0, 0x1
- strb r0, [r3]
- ldr r2, _0812ACF8
- ldrb r0, [r3]
- lsls r0, 2
- adds r1, 0x20
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- movs r0, 0x1
-_0812ACF4:
- pop {r1}
- bx r1
- .align 2, 0
-_0812ACF8: .4byte gUnknown_02039238
- thumb_func_end sub_812ACC8
-
- thumb_func_start contest_ai_check_for_exciting_move
-contest_ai_check_for_exciting_move: @ 812ACFC
- push {r4-r7,lr}
- movs r5, 0
- movs r4, 0
- ldr r7, _0812AD28
- ldr r6, _0812AD2C
-_0812AD06:
- lsls r0, r4, 1
- ldrb r1, [r7]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r6
- ldrh r0, [r1]
- cmp r0, 0
- beq _0812AD30
- bl contest_get_move_excitement
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0812AD30
- movs r5, 0x1
- b _0812AD36
- .align 2, 0
-_0812AD28: .4byte 0x02019325
-_0812AD2C: .4byte gUnknown_0203858E
-_0812AD30:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812AD06
-_0812AD36:
- ldr r0, _0812AD48
- strh r5, [r0, 0x18]
- ldr r1, _0812AD4C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AD48: .4byte 0x020192e4
-_0812AD4C: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_for_exciting_move
-
- thumb_func_start sub_812AD50
-sub_812AD50: @ 812AD50
- push {lr}
- bl contest_ai_check_for_exciting_move
- ldr r0, _0812AD7C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812AD84
- ldr r3, _0812AD80
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812AD8C
- .align 2, 0
-_0812AD7C: .4byte 0x020192e4
-_0812AD80: .4byte gUnknown_02039238
-_0812AD84:
- ldr r1, _0812AD90
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812AD8C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AD90: .4byte gUnknown_02039238
- thumb_func_end sub_812AD50
-
- thumb_func_start sub_812AD94
-sub_812AD94: @ 812AD94
- push {lr}
- bl contest_ai_check_for_exciting_move
- ldr r0, _0812ADC0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812ADC8
- ldr r3, _0812ADC4
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812ADD0
- .align 2, 0
-_0812ADC0: .4byte 0x020192e4
-_0812ADC4: .4byte gUnknown_02039238
-_0812ADC8:
- ldr r1, _0812ADD4
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812ADD0:
- pop {r0}
- bx r0
- .align 2, 0
-_0812ADD4: .4byte gUnknown_02039238
- thumb_func_end sub_812AD94
-
- thumb_func_start sub_812ADD8
-sub_812ADD8: @ 812ADD8
- push {r4-r7,lr}
- movs r6, 0
- ldr r2, _0812AE08
- ldr r0, [r2]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r4, r0
- movs r3, 0
- ldr r0, _0812AE0C
- mov r12, r0
- ldr r5, _0812AE10
- adds r0, r5, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- mov r1, r12
- adds r1, 0x1E
- adds r0, r1
- ldrh r0, [r0]
- adds r7, r2, 0
- mov r2, r12
- mov r12, r5
- b _0812AE2E
- .align 2, 0
-_0812AE08: .4byte gUnknown_02039238
-_0812AE0C: .4byte gUnknown_02038570
-_0812AE10: .4byte 0x020192e4
-_0812AE14:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0812AE34
- lsls r1, r3, 1
- mov r0, r12
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x1E
- adds r1, r0
- ldrh r0, [r1]
-_0812AE2E:
- cmp r0, r4
- bne _0812AE14
- movs r6, 0x1
-_0812AE34:
- mov r0, r12
- strh r6, [r0, 0x18]
- ldr r0, [r7]
- adds r0, 0x3
- str r0, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812ADD8
-
- thumb_func_start sub_812AE44
-sub_812AE44: @ 812AE44
- push {lr}
- bl sub_812ADD8
- ldr r0, _0812AE70
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812AE78
- ldr r3, _0812AE74
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812AE80
- .align 2, 0
-_0812AE70: .4byte 0x020192e4
-_0812AE74: .4byte gUnknown_02039238
-_0812AE78:
- ldr r1, _0812AE84
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812AE80:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AE84: .4byte gUnknown_02039238
- thumb_func_end sub_812AE44
-
- thumb_func_start sub_812AE88
-sub_812AE88: @ 812AE88
- push {lr}
- bl sub_812ADD8
- ldr r0, _0812AEB4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812AEBC
- ldr r3, _0812AEB8
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812AEC4
- .align 2, 0
-_0812AEB4: .4byte 0x020192e4
-_0812AEB8: .4byte gUnknown_02039238
-_0812AEBC:
- ldr r1, _0812AEC8
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812AEC4:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AEC8: .4byte gUnknown_02039238
- thumb_func_end sub_812AE88
-
- thumb_func_start unref_sub_812AECC
-unref_sub_812AECC: @ 812AECC
- push {lr}
- bl sub_812613C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _0812AEEA
- cmp r0, 0x1
- ble _0812AF08
- cmp r1, 0x2
- beq _0812AEF4
- cmp r1, 0x3
- beq _0812AEFA
- b _0812AF08
-_0812AEEA:
- movs r0, 0x16
- bl PlaySE
- movs r0, 0x1
- b _0812AF0A
-_0812AEF4:
- bl sub_812AF10
- b _0812AF08
-_0812AEFA:
- movs r0, 0x16
- bl PlaySE
- bl sub_812AF10
- movs r0, 0x1
- b _0812AF0A
-_0812AF08:
- movs r0, 0
-_0812AF0A:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_812AECC
-
- thumb_func_start sub_812AF10
-sub_812AF10: @ 812AF10
- push {lr}
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0812AF2C
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0812AF2C: .4byte gStringVar4
- thumb_func_end sub_812AF10
-
- thumb_func_start sub_812AF30
-sub_812AF30: @ 812AF30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0812AF8C
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- adds r6, r1
- ldr r1, _0812AF90
- ldrh r0, [r1]
- strh r0, [r6, 0x8]
- ldrh r0, [r1, 0x2]
- strh r0, [r6, 0xA]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x3F
- bl sub_8076F98
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_807712C
- strh r4, [r6, 0xC]
- strh r5, [r6, 0xE]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r6, 0x10]
- movs r0, 0xA
- strh r0, [r6, 0x1C]
- ldr r0, _0812AF94
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AF8C: .4byte gTasks
-_0812AF90: .4byte gUnknown_03004B00
-_0812AF94: .4byte sub_812AF98
- thumb_func_end sub_812AF30
-
- thumb_func_start sub_812AF98
-sub_812AF98: @ 812AF98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812AFC8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r5, [r4, 0xC]
- ldrb r6, [r4, 0x10]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- bne _0812AFD0
- movs r0, 0x5
- strh r0, [r4, 0x1C]
- strh r1, [r4, 0x1E]
- ldr r0, _0812AFCC
- str r0, [r4]
- b _0812AFFE
- .align 2, 0
-_0812AFC8: .4byte gTasks
-_0812AFCC: .4byte sub_812B004
-_0812AFD0:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _0812AFEA
- strh r1, [r4, 0x1C]
- ldrh r0, [r4, 0x8]
- lsls r1, r5, 24
- asrs r1, 24
- bl PlaySE12WithPanning
-_0812AFEA:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r5, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_8077104
- strh r0, [r4, 0xC]
-_0812AFFE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812AF98
-
- thumb_func_start sub_812B004
-sub_812B004: @ 812B004
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812B054
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0812B04C
- movs r0, 0
- strh r0, [r4, 0x1C]
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- ldrh r0, [r4, 0xA]
- lsls r1, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0812B04C
- adds r0, r5, 0
- bl move_anim_related_task_del
-_0812B04C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B054: .4byte gTasks
- thumb_func_end sub_812B004
-
- thumb_func_start sub_812B058
-sub_812B058: @ 812B058
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0812B0FC
- ldrh r1, [r0]
- str r1, [sp]
- ldrb r5, [r0, 0x4]
- ldrb r6, [r0, 0x6]
- ldrb r3, [r0, 0x8]
- mov r10, r3
- ldrb r7, [r0, 0xA]
- ldrb r1, [r0, 0xC]
- mov r9, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl sub_8076F98
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_807712C
- ldr r2, _0812B100
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- mov r6, sp
- ldrh r6, [r6]
- strh r6, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r10
- strh r0, [r1, 0x10]
- strh r7, [r1, 0x12]
- mov r3, r9
- strh r3, [r1, 0x14]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- strh r3, [r1, 0x20]
- ldr r2, _0812B104
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B0FC: .4byte gUnknown_03004B00
-_0812B100: .4byte gTasks
-_0812B104: .4byte sub_812B108
- thumb_func_end sub_812B058
-
- thumb_func_start sub_812B108
-sub_812B108: @ 812B108
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812B14C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x20]
- adds r1, r0, 0x1
- strh r1, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812B150
- movs r0, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x8]
- movs r1, 0x1E
- ldrsb r1, [r4, r1]
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0812B150
- adds r0, r5, 0
- bl move_anim_related_task_del
- b _0812B182
- .align 2, 0
-_0812B14C: .4byte gTasks
-_0812B150:
- ldr r1, _0812B188
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812B182
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xE]
- ldrh r1, [r4, 0x1E]
- adds r0, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_8077104
- strh r0, [r4, 0x1E]
-_0812B182:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B188: .4byte gTasks
- thumb_func_end sub_812B108
-
- thumb_func_start sub_812B18C
-sub_812B18C: @ 812B18C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812B1CC
- ldr r0, _0812B1BC
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812B1C4
- ldr r0, _0812B1C0
- ldrh r4, [r0]
- b _0812B272
- .align 2, 0
-_0812B1BC: .4byte gUnknown_03004B00
-_0812B1C0: .4byte 0x02019348
-_0812B1C4:
- adds r0, r5, 0
- bl move_anim_task_del
- b _0812B272
-_0812B1CC:
- ldr r0, _0812B1E0
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _0812B1E8
- ldr r0, _0812B1E4
- ldrb r4, [r0]
- b _0812B20E
- .align 2, 0
-_0812B1E0: .4byte gUnknown_03004B00
-_0812B1E4: .4byte gUnknown_0202F7C8
-_0812B1E8:
- cmp r1, 0x1
- bne _0812B1F8
- ldr r0, _0812B1F4
- ldrb r4, [r0]
- b _0812B20E
- .align 2, 0
-_0812B1F4: .4byte gUnknown_0202F7C9
-_0812B1F8:
- cmp r1, 0x2
- bne _0812B204
- ldr r0, _0812B200
- b _0812B206
- .align 2, 0
-_0812B200: .4byte gUnknown_0202F7C8
-_0812B204:
- ldr r0, _0812B230
-_0812B206:
- ldrb r1, [r0]
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r1
-_0812B20E:
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _0812B21A
- cmp r0, 0x3
- bne _0812B234
-_0812B21A:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _0812B234
- adds r0, r5, 0
- bl move_anim_task_del
- b _0812B2B0
- .align 2, 0
-_0812B230: .4byte gUnknown_0202F7C9
-_0812B234:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812B258
- ldr r1, _0812B250
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812B254
- b _0812B266
- .align 2, 0
-_0812B250: .4byte gUnknown_02024A6A
-_0812B254: .4byte gEnemyParty
-_0812B258:
- ldr r1, _0812B290
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812B294
-_0812B266:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_0812B272:
- cmp r4, 0
- beq _0812B2AA
- ldr r0, _0812B298
- ldrh r2, [r0, 0x2]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- bne _0812B29C
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r4, 0
- bl PlayCry1
- b _0812B2AA
- .align 2, 0
-_0812B290: .4byte gUnknown_02024A6A
-_0812B294: .4byte gPlayerParty
-_0812B298: .4byte gUnknown_03004B00
-_0812B29C:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl PlayCry3
-_0812B2AA:
- adds r0, r5, 0
- bl move_anim_task_del
-_0812B2B0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812B18C
-
- thumb_func_start sub_812B2B8
-sub_812B2B8: @ 812B2B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812B2DC
- ldr r0, _0812B2D8
- b _0812B2E6
- .align 2, 0
-_0812B2D8: .4byte 0x02019348
-_0812B2DC:
- ldr r1, _0812B304
- ldr r0, _0812B308
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
-_0812B2E6:
- ldrh r0, [r0]
- cmp r0, 0
- beq _0812B2F6
- lsls r1, r4, 24
- asrs r1, 24
- movs r2, 0x4
- bl PlayCry3
-_0812B2F6:
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B304: .4byte gUnknown_0202F7CA
-_0812B308: .4byte gUnknown_0202F7C8
- thumb_func_end sub_812B2B8
-
- thumb_func_start sub_812B30C
-sub_812B30C: @ 812B30C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812B33C
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE1WithPanning
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B33C: .4byte gUnknown_03004B00
- thumb_func_end sub_812B30C
-
- thumb_func_start sub_812B340
-sub_812B340: @ 812B340
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812B370
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE2WithPanning
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B370: .4byte gUnknown_03004B00
- thumb_func_end sub_812B340
-
- thumb_func_start sub_812B374
-sub_812B374: @ 812B374
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0812B3F8
- ldrb r5, [r0, 0x2]
- ldrb r6, [r0, 0x4]
- ldrh r1, [r0, 0x6]
- mov r9, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl sub_8076F98
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_807712C
- ldr r2, _0812B3FC
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r9
- strh r0, [r1, 0x12]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- ldr r2, _0812B400
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B3F8: .4byte gUnknown_03004B00
-_0812B3FC: .4byte gTasks
-_0812B400: .4byte sub_812B404
- thumb_func_end sub_812B374
-
- thumb_func_start sub_812B404
-sub_812B404: @ 812B404
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812B45C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r2, [r4, 0xE]
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0812B43E
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r0, r2, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_8077104
- strh r0, [r4, 0x1E]
-_0812B43E:
- ldr r1, _0812B460
- ldrh r0, [r4, 0x1E]
- strb r0, [r1]
- movs r3, 0x1E
- ldrsh r1, [r4, r3]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0812B456
- adds r0, r5, 0
- bl move_anim_task_del
-_0812B456:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B45C: .4byte gTasks
-_0812B460: .4byte gUnknown_0202F7D2
- thumb_func_end sub_812B404
-
- thumb_func_start unref_sub_812B464
-unref_sub_812B464: @ 812B464
- bx lr
- thumb_func_end unref_sub_812B464
-
- thumb_func_start sub_812B468
-sub_812B468: @ 812B468
- ldr r1, _0812B478
- ldr r0, _0812B47C
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B480
- str r1, [r0]
- bx lr
- .align 2, 0
-_0812B478: .4byte gUnknown_03004330
-_0812B47C: .4byte gUnknown_02024A60
-_0812B480: .4byte sub_812B484
- thumb_func_end sub_812B468
-
- thumb_func_start sub_812B484
-sub_812B484: @ 812B484
- push {lr}
- ldr r2, _0812B4B8
- ldr r1, _0812B4BC
- ldr r0, _0812B4C0
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0812B4D0
- ldr r0, _0812B4C4
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0812B4CC
- ldr r0, _0812B4C8
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0812B4D0
- .align 2, 0
-_0812B4B8: .4byte gUnknown_02024A64
-_0812B4BC: .4byte gBitTable
-_0812B4C0: .4byte gUnknown_02024A60
-_0812B4C4: .4byte gUnknown_02023A60
-_0812B4C8: .4byte gUnknown_08402080
-_0812B4CC:
- bl dp01_tbl6_exec_completed
-_0812B4D0:
- pop {r0}
- bx r0
- thumb_func_end sub_812B484
-
- thumb_func_start bx_battle_menu_t6_2
-bx_battle_menu_t6_2: @ 812B4D4
- push {r4,r5,lr}
- ldr r0, _0812B508
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0812B546
- movs r0, 0x5
- bl PlaySE
- bl sub_814A7FC
- ldr r1, _0812B50C
- ldr r0, _0812B510
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0812B524
- cmp r0, 0x1
- bgt _0812B514
- cmp r0, 0
- beq _0812B51E
- b _0812B540
- .align 2, 0
-_0812B508: .4byte gMain
-_0812B50C: .4byte gUnknown_02024E60
-_0812B510: .4byte gUnknown_02024A60
-_0812B514:
- cmp r0, 0x2
- beq _0812B52A
- cmp r0, 0x3
- beq _0812B536
- b _0812B540
-_0812B51E:
- movs r0, 0x1
- movs r1, 0x5
- b _0812B52E
-_0812B524:
- movs r0, 0x1
- movs r1, 0x6
- b _0812B52E
-_0812B52A:
- movs r0, 0x1
- movs r1, 0x7
-_0812B52E:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _0812B540
-_0812B536:
- movs r0, 0x1
- movs r1, 0x8
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_0812B540:
- bl dp01_tbl6_exec_completed
- b _0812B64E
-_0812B546:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812B584
- ldr r5, _0812B57C
- ldr r4, _0812B580
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0812B5F2
- .align 2, 0
-_0812B57C: .4byte gUnknown_02024E60
-_0812B580: .4byte gUnknown_02024A60
-_0812B584:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812B5C0
- ldr r5, _0812B5B8
- ldr r4, _0812B5BC
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0812B5F2
- .align 2, 0
-_0812B5B8: .4byte gUnknown_02024E60
-_0812B5BC: .4byte gUnknown_02024A60
-_0812B5C0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0812B60C
- ldr r5, _0812B604
- ldr r4, _0812B608
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_0812B5F2:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0812B64E
- .align 2, 0
-_0812B604: .4byte gUnknown_02024E60
-_0812B608: .4byte gUnknown_02024A60
-_0812B60C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- ldr r5, _0812B654
- ldr r4, _0812B658
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
-_0812B64E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B654: .4byte gUnknown_02024E60
-_0812B658: .4byte gUnknown_02024A60
- thumb_func_end bx_battle_menu_t6_2
-
- thumb_func_start sub_812B65C
-sub_812B65C: @ 812B65C
- push {lr}
- ldr r2, _0812B684
- ldr r1, _0812B688
- ldr r0, _0812B68C
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0812B690
- cmp r1, r0
- bne _0812B680
- bl dp01_tbl6_exec_completed
-_0812B680:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B684: .4byte gSprites
-_0812B688: .4byte gUnknown_02024BE0
-_0812B68C: .4byte gUnknown_02024A60
-_0812B690: .4byte SpriteCallbackDummy
- thumb_func_end sub_812B65C
-
- thumb_func_start sub_812B694
-sub_812B694: @ 812B694
- push {lr}
- ldr r0, _0812B6A8
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0812B6A2
- bl dp01_tbl6_exec_completed
-_0812B6A2:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B6A8: .4byte gUnknown_03004210
- thumb_func_end sub_812B694
-
- thumb_func_start sub_812B6AC
-sub_812B6AC: @ 812B6AC
- push {lr}
- ldr r0, _0812B6DC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B6D6
- ldr r2, _0812B6E0
- ldr r0, _0812B6E4
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0812B6E8
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0812B6D6:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B6DC: .4byte gPaletteFade
-_0812B6E0: .4byte gMain
-_0812B6E4: .4byte 0x0000043d
-_0812B6E8: .4byte gUnknown_030042D0
- thumb_func_end sub_812B6AC
-
- thumb_func_start bx_wait_t6
-bx_wait_t6: @ 812B6EC
- push {lr}
- ldr r0, _0812B718
- ldrb r0, [r0]
- cmp r0, 0
- beq _0812B70E
- ldr r0, _0812B71C
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B720
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0812B712
-_0812B70E:
- bl dp01_tbl6_exec_completed
-_0812B712:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B718: .4byte gUnknown_02024E6D
-_0812B71C: .4byte gUnknown_02024A60
-_0812B720: .4byte 0x02017810
- thumb_func_end bx_wait_t6
-
- thumb_func_start sub_812B724
-sub_812B724: @ 812B724
- push {lr}
- ldr r0, _0812B748
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B744
- ldr r1, _0812B74C
- ldr r0, _0812B750
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B754
- str r1, [r0]
- bl sub_810BADC
-_0812B744:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B748: .4byte gPaletteFade
-_0812B74C: .4byte gUnknown_03004330
-_0812B750: .4byte gUnknown_02024A60
-_0812B754: .4byte sub_812B758
- thumb_func_end sub_812B724
-
- thumb_func_start sub_812B758
-sub_812B758: @ 812B758
- push {lr}
- ldr r0, _0812B784
- ldr r1, [r0, 0x4]
- ldr r0, _0812B788
- cmp r1, r0
- bne _0812B77E
- ldr r0, _0812B78C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B77E
- ldr r0, _0812B790
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl6_exec_completed
-_0812B77E:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B784: .4byte gMain
-_0812B788: .4byte sub_800F808
-_0812B78C: .4byte gPaletteFade
-_0812B790: .4byte word_203855E
- thumb_func_end sub_812B758
-
- thumb_func_start sub_812B794
-sub_812B794: @ 812B794
- push {lr}
- ldr r0, _0812B7B8
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B7BC
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0812B7B2
- bl dp01_tbl6_exec_completed
-_0812B7B2:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B7B8: .4byte gUnknown_02024A60
-_0812B7BC: .4byte 0x02017810
- thumb_func_end sub_812B794
-
- thumb_func_start dp01_tbl6_exec_completed
-dp01_tbl6_exec_completed: @ 812B7C0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0812B800
- ldr r4, _0812B804
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B808
- str r1, [r0]
- ldr r0, _0812B80C
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812B814
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0812B810
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0812B826
- .align 2, 0
-_0812B800: .4byte gUnknown_03004330
-_0812B804: .4byte gUnknown_02024A60
-_0812B808: .4byte sub_812B484
-_0812B80C: .4byte gUnknown_020239F8
-_0812B810: .4byte gUnknown_02023A60
-_0812B814:
- ldr r2, _0812B830
- ldr r1, _0812B834
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0812B826:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B830: .4byte gUnknown_02024A64
-_0812B834: .4byte gBitTable
- thumb_func_end dp01_tbl6_exec_completed
-
- thumb_func_start unref_sub_812B838
-unref_sub_812B838: @ 812B838
- push {lr}
- ldr r0, _0812B85C
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B860
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0812B856
- bl dp01_tbl6_exec_completed
-_0812B856:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B85C: .4byte gUnknown_02024A60
-_0812B860: .4byte 0x02017810
- thumb_func_end unref_sub_812B838
-
- thumb_func_start sub_812B864
-sub_812B864: @ 812B864
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B864
-
- thumb_func_start sub_812B870
-sub_812B870: @ 812B870
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B870
-
- thumb_func_start sub_812B87C
-sub_812B87C: @ 812B87C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B87C
-
- thumb_func_start sub_812B888
-sub_812B888: @ 812B888
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B888
-
- thumb_func_start sub_812B894
-sub_812B894: @ 812B894
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B894
-
- thumb_func_start sub_812B8A0
-sub_812B8A0: @ 812B8A0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B8A0
-
- thumb_func_start sub_812B8AC
-sub_812B8AC: @ 812B8AC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B8AC
-
- thumb_func_start sub_812B8B8
-sub_812B8B8: @ 812B8B8
- push {r4-r6,lr}
- ldr r4, _0812B96C
- ldrb r0, [r4, 0x8]
- ldr r5, _0812B970
- ldrb r1, [r5]
- bl sub_8031AF4
- ldrb r6, [r4, 0x8]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0812B974
- ldr r2, _0812B978
- ldrb r1, [r4, 0x8]
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _0812B97C
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, _0812B980
- ldrb r3, [r5]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0812B984
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0812B988
- str r1, [r0]
- ldr r1, _0812B98C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B990
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B96C: .4byte gSaveBlock2
-_0812B970: .4byte gUnknown_02024A60
-_0812B974: .4byte gUnknown_02024E8C
-_0812B978: .4byte gTrainerBackPicCoords
-_0812B97C: .4byte gUnknown_02024BE0
-_0812B980: .4byte gSprites
-_0812B984: .4byte 0x0000fffe
-_0812B988: .4byte sub_80313A0
-_0812B98C: .4byte gUnknown_03004330
-_0812B990: .4byte sub_812B65C
- thumb_func_end sub_812B8B8
-
- thumb_func_start sub_812B994
-sub_812B994: @ 812B994
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B994
-
- thumb_func_start sub_812B9A0
-sub_812B9A0: @ 812B9A0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B9A0
-
- thumb_func_start sub_812B9AC
-sub_812B9AC: @ 812B9AC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B9AC
-
- thumb_func_start sub_812B9B8
-sub_812B9B8: @ 812B9B8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B9B8
-
- thumb_func_start sub_812B9C4
-sub_812B9C4: @ 812B9C4
- push {r4,r5,lr}
- ldr r1, _0812BA00
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _0812BA04
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _0812BA08
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _0812BA0C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BA10
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BA00: .4byte 0x02017840
-_0812BA04: .4byte gUnknown_02024E6D
-_0812BA08: .4byte gUnknown_02024A60
-_0812BA0C: .4byte gUnknown_03004330
-_0812BA10: .4byte bx_wait_t6
- thumb_func_end sub_812B9C4
-
- thumb_func_start sub_812BA14
-sub_812BA14: @ 812BA14
- push {r4,r5,lr}
- ldr r1, _0812BA58
- ldr r5, _0812BA5C
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0812BA60
- strb r1, [r0, 0x8]
- ldr r1, _0812BA64
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _0812BA68
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BA6C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BA58: .4byte gUnknown_02023A60
-_0812BA5C: .4byte gUnknown_02024A60
-_0812BA60: .4byte 0x02017840
-_0812BA64: .4byte gUnknown_02024E6D
-_0812BA68: .4byte gUnknown_03004330
-_0812BA6C: .4byte bx_wait_t6
- thumb_func_end sub_812BA14
-
- thumb_func_start sub_812BA70
-sub_812BA70: @ 812BA70
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BA70
-
- thumb_func_start sub_812BA7C
-sub_812BA7C: @ 812BA7C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BA7C
-
- thumb_func_start dp01t_10_6_message
-dp01t_10_6_message: @ 812BA88
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0812BACC
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812BAD0
- strh r1, [r0]
- ldr r4, _0812BAD4
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _0812BAD8
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _0812BADC
- ldr r1, _0812BAE0
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0812BAE4
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BAE8
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BACC: .4byte gUnknown_030042A4
-_0812BAD0: .4byte gUnknown_030042A0
-_0812BAD4: .4byte gUnknown_02024A60
-_0812BAD8: .4byte gUnknown_02023A62
-_0812BADC: .4byte gUnknown_03004210
-_0812BAE0: .4byte gUnknown_020238CC
-_0812BAE4: .4byte gUnknown_03004330
-_0812BAE8: .4byte sub_812B694
- thumb_func_end dp01t_10_6_message
-
- thumb_func_start dp01t_11_6_message_for_player_only
-dp01t_11_6_message_for_player_only: @ 812BAEC
- push {lr}
- ldr r0, _0812BB04
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812BB08
- bl dp01t_10_6_message
- b _0812BB0C
- .align 2, 0
-_0812BB04: .4byte gUnknown_02024A60
-_0812BB08:
- bl dp01_tbl6_exec_completed
-_0812BB0C:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_6_message_for_player_only
-
- thumb_func_start sub_812BB10
-sub_812BB10: @ 812BB10
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0812BBCC
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0812BBD0
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _0812BBD4
- movs r5, 0
- strb r2, [r4, 0x6]
- movs r0, 0x1B
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillWindowRect_DefaultPalette
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect_DefaultPalette
- ldr r1, _0812BBD8
- ldr r0, _0812BBDC
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BBE0
- str r1, [r0]
- ldr r1, _0812BBE4
- movs r2, 0xC8
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x12
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0812BBE8
- ldr r3, _0812BBEC
- str r5, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_0812BB84:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812BB84
- ldr r1, _0812BBF0
- ldr r0, _0812BBDC
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _0812BBF4
- bl get_battle_strings_
- ldr r4, _0812BBD4
- ldr r1, _0812BBF8
- movs r2, 0xDC
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x2
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BBCC: .4byte gUnknown_030042A4
-_0812BBD0: .4byte gUnknown_030042A0
-_0812BBD4: .4byte gUnknown_03004210
-_0812BBD8: .4byte gUnknown_03004330
-_0812BBDC: .4byte gUnknown_02024A60
-_0812BBE0: .4byte bx_battle_menu_t6_2
-_0812BBE4: .4byte gUnknown_08400D15
-_0812BBE8: .4byte 0x0000ffff
-_0812BBEC: .4byte 0x00002d9f
-_0812BBF0: .4byte gUnknown_02024E60
-_0812BBF4: .4byte gUnknown_08400CBB
-_0812BBF8: .4byte gUnknown_020238CC
- thumb_func_end sub_812BB10
-
- thumb_func_start sub_812BBFC
-sub_812BBFC: @ 812BBFC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BBFC
-
- thumb_func_start sub_812BC08
-sub_812BC08: @ 812BC08
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC08
-
- thumb_func_start sub_812BC14
-sub_812BC14: @ 812BC14
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0812BC44
- ldr r2, _0812BC48
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BC4C
- str r1, [r0]
- ldr r1, _0812BC50
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0812BC44: .4byte gUnknown_03004330
-_0812BC48: .4byte gUnknown_02024A60
-_0812BC4C: .4byte sub_812B724
-_0812BC50: .4byte gUnknown_02024E6C
- thumb_func_end sub_812BC14
-
- thumb_func_start sub_812BC54
-sub_812BC54: @ 812BC54
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC54
-
- thumb_func_start sub_812BC60
-sub_812BC60: @ 812BC60
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC60
-
- thumb_func_start sub_812BC6C
-sub_812BC6C: @ 812BC6C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC6C
-
- thumb_func_start sub_812BC78
-sub_812BC78: @ 812BC78
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC78
-
- thumb_func_start sub_812BC84
-sub_812BC84: @ 812BC84
- push {lr}
- ldr r0, _0812BCB0
- ldr r1, _0812BCB4
- ldrb r1, [r1]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _0812BCB8
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0812BCBC
- adds r1, r2
- movs r2, 0xB
- bl sub_8045A5C
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BCB0: .4byte gUnknown_03004340
-_0812BCB4: .4byte gUnknown_02024A60
-_0812BCB8: .4byte gUnknown_02024A6A
-_0812BCBC: .4byte gPlayerParty
- thumb_func_end sub_812BC84
-
- thumb_func_start sub_812BCC0
-sub_812BCC0: @ 812BCC0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCC0
-
- thumb_func_start sub_812BCCC
-sub_812BCCC: @ 812BCCC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCCC
-
- thumb_func_start sub_812BCD8
-sub_812BCD8: @ 812BCD8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCD8
-
- thumb_func_start sub_812BCE4
-sub_812BCE4: @ 812BCE4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCE4
-
- thumb_func_start sub_812BCF0
-sub_812BCF0: @ 812BCF0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCF0
-
- thumb_func_start sub_812BCFC
-sub_812BCFC: @ 812BCFC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCFC
-
- thumb_func_start sub_812BD08
-sub_812BD08: @ 812BD08
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD08
-
- thumb_func_start sub_812BD14
-sub_812BD14: @ 812BD14
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD14
-
- thumb_func_start sub_812BD20
-sub_812BD20: @ 812BD20
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD20
-
- thumb_func_start sub_812BD2C
-sub_812BD2C: @ 812BD2C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD2C
-
- thumb_func_start sub_812BD38
-sub_812BD38: @ 812BD38
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD38
-
- thumb_func_start sub_812BD44
-sub_812BD44: @ 812BD44
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD44
-
- thumb_func_start sub_812BD50
-sub_812BD50: @ 812BD50
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD50
-
- thumb_func_start sub_812BD5C
-sub_812BD5C: @ 812BD5C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD5C
-
- thumb_func_start sub_812BD68
-sub_812BD68: @ 812BD68
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD68
-
- thumb_func_start sub_812BD74
-sub_812BD74: @ 812BD74
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD74
-
- thumb_func_start sub_812BD80
-sub_812BD80: @ 812BD80
- push {r4,lr}
- ldr r4, _0812BDBC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0812BD94
- movs r3, 0xC0
-_0812BD94:
- ldr r2, _0812BDC0
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl6_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BDBC: .4byte gUnknown_02024A60
-_0812BDC0: .4byte gUnknown_02023A60
- thumb_func_end sub_812BD80
-
- thumb_func_start sub_812BDC4
-sub_812BDC4: @ 812BDC4
- push {lr}
- ldr r2, _0812BDEC
- ldr r0, _0812BDF0
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BDEC: .4byte gUnknown_02023A60
-_0812BDF0: .4byte gUnknown_02024A60
- thumb_func_end sub_812BDC4
-
- thumb_func_start sub_812BDF4
-sub_812BDF4: @ 812BDF4
- push {lr}
- ldr r1, _0812BE24
- ldr r0, _0812BE28
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812BE2C
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BE24: .4byte gUnknown_02024A6A
-_0812BE28: .4byte gUnknown_02024A60
-_0812BE2C: .4byte gPlayerParty
- thumb_func_end sub_812BDF4
-
- thumb_func_start dp01t_2E_6_battle_intro
-dp01t_2E_6_battle_intro: @ 812BE30
- push {lr}
- ldr r1, _0812BE58
- ldr r0, _0812BE5C
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0812BE60
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BE58: .4byte gUnknown_02023A60
-_0812BE5C: .4byte gUnknown_02024A60
-_0812BE60: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_6_battle_intro
-
- thumb_func_start sub_812BE64
-sub_812BE64: @ 812BE64
- push {r4,r5,lr}
- ldr r5, _0812BEA0
- ldr r4, _0812BEA4
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0812BEA8
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0812BEAC
- adds r1, r2
- movs r2, 0xA
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- bl dp01_tbl6_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BEA0: .4byte gUnknown_03004340
-_0812BEA4: .4byte gUnknown_02024A60
-_0812BEA8: .4byte gUnknown_02024A6A
-_0812BEAC: .4byte gPlayerParty
- thumb_func_end sub_812BE64
-
- thumb_func_start sub_812BEB0
-sub_812BEB0: @ 812BEB0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BEB0
-
- thumb_func_start sub_812BEBC
-sub_812BEBC: @ 812BEBC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BEBC
-
- thumb_func_start sub_812BEC8
-sub_812BEC8: @ 812BEC8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BEC8
-
- thumb_func_start sub_812BED4
-sub_812BED4: @ 812BED4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BED4
-
- thumb_func_start sub_812BEE0
-sub_812BEE0: @ 812BEE0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _0812BF18
- ldr r6, _0812BF1C
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0812BF20
- bl dp01_tbl6_exec_completed
- b _0812BF2C
- .align 2, 0
-_0812BF18: .4byte gUnknown_02023A60
-_0812BF1C: .4byte gUnknown_02024A60
-_0812BF20:
- ldr r0, _0812BF34
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0812BF38
- str r0, [r1]
-_0812BF2C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BF34: .4byte gUnknown_03004330
-_0812BF38: .4byte sub_812B794
- thumb_func_end sub_812BEE0
-
- thumb_func_start sub_812BF3C
-sub_812BF3C: @ 812BF3C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BF3C
-
- thumb_func_start sub_812BF48
-sub_812BF48: @ 812BF48
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BF48
-
- thumb_func_start sub_812BF54
-sub_812BF54: @ 812BF54
- push {r4,lr}
- ldr r2, _0812BF98
- ldr r1, _0812BF9C
- ldr r4, _0812BFA0
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl6_exec_completed
- ldr r0, _0812BFA4
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _0812BF90
- ldr r0, _0812BFA8
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0812BFAC
- str r0, [r1]
-_0812BF90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BF98: .4byte gUnknown_02024D26
-_0812BF9C: .4byte gUnknown_02023A60
-_0812BFA0: .4byte gUnknown_02024A60
-_0812BFA4: .4byte gUnknown_020239F8
-_0812BFA8: .4byte gUnknown_03004330
-_0812BFAC: .4byte sub_812B6AC
- thumb_func_end sub_812BF54
-
- thumb_func_start nullsub_78
-nullsub_78: @ 812BFB0
- bx lr
- thumb_func_end nullsub_78
-
- thumb_func_start sub_812BFB4
-sub_812BFB4: @ 812BFB4
- ldr r1, _0812BFC4
- ldr r0, _0812BFC8
- str r0, [r1]
- ldr r1, _0812BFCC
- ldr r0, _0812BFD0
- str r0, [r1]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_0812BFC4: .4byte gUnknown_0300485C
-_0812BFC8: .4byte sub_808AB90
-_0812BFCC: .4byte gUnknown_03005CE4
-_0812BFD0: .4byte sub_812BFD4
- thumb_func_end sub_812BFB4
-
- thumb_func_start sub_812BFD4
-sub_812BFD4: @ 812BFD4
- push {lr}
- movs r0, 0x33
- bl FieldEffectStart
- ldr r0, _0812BFE8
- ldr r1, _0812BFEC
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0812BFE8: .4byte gUnknown_0202FF84
-_0812BFEC: .4byte gUnknown_03005CE0
- thumb_func_end sub_812BFD4
-
- thumb_func_start sub_812BFF0
-sub_812BFF0: @ 812BFF0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C014
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0812C018
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0812C014: .4byte gTasks
-_0812C018: .4byte sub_812C01C
- thumb_func_end sub_812BFF0
-
- thumb_func_start sub_812C01C
-sub_812C01C: @ 812C01C
- push {lr}
- sub sp, 0x4
- movs r0, 0xEC
- bl PlaySE
- bl GetPlayerAvatarObjectId
- ldr r2, _0812C078
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r0, _0812C07C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C080
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x33
- bl FieldEffectActiveListRemove
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0812C078: .4byte gSprites
-_0812C07C: .4byte sub_812C084
-_0812C080: .4byte gTasks
- thumb_func_end sub_812C01C
-
- thumb_func_start sub_812C084
-sub_812C084: @ 812C084
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0812C0C8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0812C110
- ldr r0, _0812C0CC
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- cmp r0, 0x40
- bne _0812C10C
- strh r2, [r4, 0x8]
- bl sub_80852FC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812C0D0
- adds r0, r5, 0
- bl DestroyTask
- b _0812C110
- .align 2, 0
-_0812C0C8: .4byte gPaletteFade
-_0812C0CC: .4byte gTasks
-_0812C0D0:
- ldr r0, _0812C104
- str r0, [r4]
- bl GetPlayerAvatarObjectId
- ldr r2, _0812C108
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0812C110
- .align 2, 0
-_0812C104: .4byte sub_812C118
-_0812C108: .4byte gSprites
-_0812C10C:
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_0812C110:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812C084
-
- thumb_func_start sub_812C118
-sub_812C118: @ 812C118
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0812C13C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812C136
- ldr r0, _0812C140
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
-_0812C136:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C13C: .4byte gPaletteFade
-_0812C140: .4byte SweetScentNothingHereScript
- thumb_func_end sub_812C118
-
- thumb_func_start sub_812C144
-sub_812C144: @ 812C144
- push {lr}
- adds r2, r0, 0
- ldr r1, _0812C168
- ldrh r0, [r1]
- ldrh r3, [r2, 0x20]
- adds r0, r3
- strh r0, [r2, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- movs r3, 0x6
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0812C16C
- ldrh r0, [r1, 0x4]
- b _0812C170
- .align 2, 0
-_0812C168: .4byte gUnknown_03004B00
-_0812C16C:
- ldrh r0, [r1, 0x4]
- negs r0, r0
-_0812C170:
- strh r0, [r2, 0x2E]
- ldrh r0, [r1, 0x8]
- strh r0, [r2, 0x30]
- ldr r0, _0812C180
- str r0, [r2, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_0812C180: .4byte sub_812C184
- thumb_func_end sub_812C144
-
- thumb_func_start sub_812C184
-sub_812C184: @ 812C184
- push {lr}
- adds r3, r0, 0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- ble _0812C1C4
- ldrh r1, [r3, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x2E]
- adds r1, r0
- strh r1, [r3, 0x32]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- b _0812C1CA
-_0812C1C4:
- adds r0, r3, 0
- bl move_anim_8072740
-_0812C1CA:
- pop {r0}
- bx r0
- thumb_func_end sub_812C184
-
- thumb_func_start sub_812C1D0
-sub_812C1D0: @ 812C1D0
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0812C21C
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 8
- movs r0, 0x80
- lsls r0, 12
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 8
- movs r0, 0x80
- lsls r0, 12
- adds r1, r0
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_8046234
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C21C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_812C1D0
-
- thumb_func_start sub_812C220
-sub_812C220: @ 812C220
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x5A
- strh r0, [r4, 0x2E]
- ldr r0, _0812C258
- str r0, [r4, 0x1C]
- movs r0, 0x7
- strh r0, [r4, 0x30]
- ldr r1, _0812C25C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _0812C260
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _0812C264
- ldrh r1, [r4, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C258: .4byte sub_80782D8
-_0812C25C: .4byte sub_812C268
-_0812C260: .4byte REG_BLDCNT
-_0812C264: .4byte REG_BLDALPHA
- thumb_func_end sub_812C220
-
- thumb_func_start sub_812C268
-sub_812C268: @ 812C268
- push {lr}
- adds r3, r0, 0
- ldr r2, _0812C29C
- ldrh r1, [r3, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0812C296
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812C2A0
- str r0, [r3, 0x1C]
-_0812C296:
- pop {r0}
- bx r0
- .align 2, 0
-_0812C29C: .4byte REG_BLDALPHA
-_0812C2A0: .4byte sub_812C2A4
- thumb_func_end sub_812C268
-
- thumb_func_start sub_812C2A4
-sub_812C2A4: @ 812C2A4
- push {lr}
- ldr r1, _0812C2B8
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_0812C2B8: .4byte REG_BLDCNT
- thumb_func_end sub_812C2A4
-
- thumb_func_start sub_812C2BC
-sub_812C2BC: @ 812C2BC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, _0812C348
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
- ldrh r0, [r5, 0x20]
- subs r0, r7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- subs r1, r6
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 23
- adds r0, r1
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812C31A
- movs r1, 0x80
- lsls r1, 7
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0812C31A:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldr r0, _0812C34C
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- strh r7, [r5, 0x32]
- strh r6, [r5, 0x36]
- ldr r0, _0812C350
- str r0, [r5, 0x1C]
- ldr r1, _0812C354
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C348: .4byte gUnknown_0202F7C9
-_0812C34C: .4byte gUnknown_03004B00
-_0812C350: .4byte sub_8078B34
-_0812C354: .4byte move_anim_8072740
- thumb_func_end sub_812C2BC
-
- thumb_func_start sub_812C358
-sub_812C358: @ 812C358
- ldr r2, _0812C378
- movs r3, 0xFD
- lsls r3, 6
- adds r1, r3, 0
- strh r1, [r2]
- adds r2, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r1, r3, 0
- strh r1, [r2]
- movs r1, 0x4
- strh r1, [r0, 0x2E]
- ldr r1, _0812C37C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0812C378: .4byte REG_BLDCNT
-_0812C37C: .4byte sub_812C380
- thumb_func_end sub_812C358
-
- thumb_func_start sub_812C380
-sub_812C380: @ 812C380
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0812C3A0
- ldrh r1, [r4, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812C3A4
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- b _0812C3A8
- .align 2, 0
-_0812C3A0: .4byte REG_BLDALPHA
-_0812C3A4:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
-_0812C3A8:
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- beq _0812C3B6
- cmp r0, 0x4
- bne _0812C3BE
-_0812C3B6:
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
-_0812C3BE:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x46
- ble _0812C3FC
- ldr r0, _0812C404
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812C408
- str r0, [r4, 0x1C]
-_0812C3FC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C404: .4byte REG_BLDCNT
-_0812C408: .4byte sub_812C40C
- thumb_func_end sub_812C380
-
- thumb_func_start sub_812C40C
-sub_812C40C: @ 812C40C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _0812C448
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812C448
- ldr r0, _0812C44C
- str r0, [r3, 0x1C]
-_0812C448:
- pop {r0}
- bx r0
- .align 2, 0
-_0812C44C: .4byte sub_812C450
- thumb_func_end sub_812C40C
-
- thumb_func_start sub_812C450
-sub_812C450: @ 812C450
- push {lr}
- adds r2, r0, 0
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0x6
- bhi _0812C4A8
- lsls r0, 2
- ldr r1, _0812C468
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812C468: .4byte _0812C46C
- .align 2, 0
-_0812C46C:
- .4byte _0812C488
- .4byte _0812C488
- .4byte _0812C492
- .4byte _0812C492
- .4byte _0812C4A0
- .4byte _0812C4A0
- .4byte _0812C4A8
-_0812C488:
- movs r1, 0
- movs r0, 0x1
- strh r0, [r2, 0x24]
- strh r1, [r2, 0x26]
- b _0812C4B0
-_0812C492:
- ldr r0, _0812C49C
- strh r0, [r2, 0x24]
- movs r0, 0
- b _0812C4AE
- .align 2, 0
-_0812C49C: .4byte 0x0000ffff
-_0812C4A0:
- movs r0, 0
- strh r0, [r2, 0x24]
- movs r0, 0x1
- b _0812C4AE
-_0812C4A8:
- movs r0, 0
- strh r0, [r2, 0x24]
- ldr r0, _0812C4F0
-_0812C4AE:
- strh r0, [r2, 0x26]
-_0812C4B0:
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0812C4C2
- strh r3, [r2, 0x34]
-_0812C4C2:
- ldrh r0, [r2, 0x36]
- adds r1, r0, 0x1
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _0812C4EA
- movs r0, 0x10
- strh r0, [r2, 0x2E]
- strh r3, [r2, 0x30]
- ldr r1, _0812C4F4
- movs r3, 0xFD
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x2E]
- strh r0, [r1]
- ldr r0, _0812C4F8
- str r0, [r2, 0x1C]
-_0812C4EA:
- pop {r0}
- bx r0
- .align 2, 0
-_0812C4F0: .4byte 0x0000ffff
-_0812C4F4: .4byte REG_BLDCNT
-_0812C4F8: .4byte sub_812C4FC
- thumb_func_end sub_812C450
-
- thumb_func_start sub_812C4FC
-sub_812C4FC: @ 812C4FC
- push {r4,lr}
- adds r2, r0, 0
- ldr r4, _0812C558
- ldrh r1, [r2, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r4]
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x1
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812C526
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x2E]
- strh r1, [r2, 0x30]
-_0812C526:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0812C53A
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_0812C53A:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bge _0812C550
- ldr r1, _0812C55C
- movs r0, 0
- strh r0, [r1]
- strh r0, [r4]
- adds r0, r2, 0
- bl move_anim_8072740
-_0812C550:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C558: .4byte REG_BLDALPHA
-_0812C55C: .4byte REG_BLDCNT
- thumb_func_end sub_812C4FC
-
- thumb_func_start sub_812C560
-sub_812C560: @ 812C560
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C57C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0812C580
- str r0, [r1]
- ldr r1, _0812C584
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0812C57C: .4byte gTasks
-_0812C580: .4byte sub_812C588
-_0812C584: .4byte gUnknown_0202F7B2
- thumb_func_end sub_812C560
-
- thumb_func_start sub_812C588
-sub_812C588: @ 812C588
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80789BC
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _0812C614
- lsls r5, r4, 2
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812C5F8
- ldr r0, _0812C618
- lsls r2, r6, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r3, [r1]
- mov r8, r3
- movs r3, 0xA
- mov r9, r7
- adds r7, r5, 0
- mov r12, r0
- adds r5, r2, 0
- lsls r0, r6, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0812C5D6:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bgt _0812C5D6
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- mov r2, r8
- strh r2, [r0]
- adds r0, r7, r4
- lsls r0, 3
- add r0, r9
- strh r1, [r0, 0x12]
-_0812C5F8:
- ldr r0, _0812C61C
- ldrh r1, [r0, 0xE]
- ldr r0, _0812C620
- cmp r1, r0
- bne _0812C608
- adds r0, r4, 0
- bl DestroyTask
-_0812C608:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C614: .4byte gTasks
-_0812C618: .4byte gPlttBufferFaded
-_0812C61C: .4byte gUnknown_03004B00
-_0812C620: .4byte 0x0000ffff
- thumb_func_end sub_812C588
-
- thumb_func_start sub_812C624
-sub_812C624: @ 812C624
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C640
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0812C644
- str r0, [r1]
- ldr r1, _0812C648
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0812C640: .4byte gTasks
-_0812C644: .4byte sub_812C64C
-_0812C648: .4byte gUnknown_0202F7B2
- thumb_func_end sub_812C624
-
- thumb_func_start sub_812C64C
-sub_812C64C: @ 812C64C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl sub_80789BC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0812C70C
- mov r0, r8
- lsls r3, r0, 2
- adds r1, r3, r0
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812C6EE
- ldr r0, _0812C710
- lsls r2, r7, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r6, [r1]
- movs r4, 0xA
- mov r10, r3
- mov r9, r0
- adds r5, r2, 0
- ldr r2, _0812C714
- mov r12, r2
- lsls r0, r7, 5
- add r0, r9
- adds r3, r0, 0
- adds r3, 0x14
-_0812C6A0:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0812C6A0
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- adds r1, r5, 0
- adds r1, 0xB
- lsls r1, 1
- add r1, r12
- ldrh r6, [r1]
- movs r4, 0xA
- lsls r0, r7, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0812C6CA:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0812C6CA
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- strh r6, [r0]
- mov r0, r10
- add r0, r8
- lsls r0, 3
- ldr r2, _0812C70C
- adds r0, r2
- strh r1, [r0, 0x12]
-_0812C6EE:
- ldr r0, _0812C718
- ldrh r1, [r0, 0xE]
- ldr r0, _0812C71C
- cmp r1, r0
- bne _0812C6FE
- mov r0, r8
- bl DestroyTask
-_0812C6FE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C70C: .4byte gTasks
-_0812C710: .4byte gPlttBufferFaded
-_0812C714: .4byte gPlttBufferUnfaded
-_0812C718: .4byte gUnknown_03004B00
-_0812C71C: .4byte 0x0000ffff
- thumb_func_end sub_812C64C
-
- thumb_func_start sub_812C720
-sub_812C720: @ 812C720
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _0812C784
- ldrb r0, [r0]
- mov r5, sp
- adds r5, 0x2
- movs r1, 0
- mov r2, sp
- adds r3, r5, 0
- bl sub_807A3FC
- ldr r0, _0812C788
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812C754
- ldr r1, _0812C78C
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_0812C754:
- ldr r1, _0812C78C
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- mov r2, sp
- ldrh r0, [r1, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r5, [r5]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, _0812C790
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _0812C794
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C784: .4byte gUnknown_0202F7C9
-_0812C788: .4byte gUnknown_0202F7C8
-_0812C78C: .4byte gUnknown_03004B00
-_0812C790: .4byte 0x0000ffce
-_0812C794: .4byte sub_812C798
- thumb_func_end sub_812C720
-
- thumb_func_start sub_812C798
-sub_812C798: @ 812C798
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _0812C7BA
- movs r1, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, _0812C7C0
- str r0, [r4, 0x1C]
- ldr r1, _0812C7C4
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_0812C7BA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C7C0: .4byte sub_80782D8
-_0812C7C4: .4byte sub_812C7C8
- thumb_func_end sub_812C798
-
- thumb_func_start sub_812C7C8
-sub_812C7C8: @ 812C7C8
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812C7F4
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
-_0812C7F4:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _0812C808
- adds r0, r3, 0
- bl move_anim_8072740
-_0812C808:
- pop {r0}
- bx r0
- thumb_func_end sub_812C7C8
-
- thumb_func_start sub_812C80C
-sub_812C80C: @ 812C80C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r5, _0812C83C
- movs r0, 0
- ldrsh r1, [r5, r0]
- adds r0, r4, 0
- bl sub_807867C
- ldrh r0, [r5, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _0812C840
- str r0, [r4, 0x1C]
- ldr r1, _0812C844
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C83C: .4byte gUnknown_03004B00
-_0812C840: .4byte sub_8078600
-_0812C844: .4byte move_anim_8072740
- thumb_func_end sub_812C80C
-
- thumb_func_start sub_812C848
-sub_812C848: @ 812C848
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812C8A8
- adds r0, r4, 0
- bl sub_8078650
- ldr r5, _0812C884
- movs r2, 0
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl sub_807867C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812C89C
- ldr r0, _0812C888
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812C88C
- ldrh r0, [r5, 0x4]
- b _0812C8A2
- .align 2, 0
-_0812C884: .4byte gUnknown_03004B00
-_0812C888: .4byte gUnknown_0202F7C8
-_0812C88C:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- negs r0, r0
- b _0812C8A6
-_0812C89C:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
-_0812C8A2:
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
-_0812C8A6:
- strh r0, [r4, 0x32]
-_0812C8A8:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r3, 0xFF
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r4, 0x24]
- ands r0, r3
- movs r1, 0x5
- bl Sin
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF0
- bls _0812C900
- adds r0, r4, 0
- bl move_anim_8072740
-_0812C900:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812C848
-
- thumb_func_start sub_812C908
-sub_812C908: @ 812C908
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812C91E
- adds r0, r2, 0
- bl move_anim_8072740
-_0812C91E:
- pop {r0}
- bx r0
- thumb_func_end sub_812C908
-
- thumb_func_start sub_812C924
-sub_812C924: @ 812C924
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0812C940
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812C948
- ldr r1, _0812C944
- movs r0, 0
- b _0812C94C
- .align 2, 0
-_0812C940: .4byte gUnknown_0202F7C9
-_0812C944: .4byte gUnknown_03004B00
-_0812C948:
- ldr r1, _0812C95C
- movs r0, 0x1
-_0812C94C:
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C95C: .4byte gUnknown_03004B00
- thumb_func_end sub_812C924
-
- thumb_func_start sub_812C960
-sub_812C960: @ 812C960
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0812C974
- ldr r0, [r0]
- cmp r0, 0
- ble _0812C97C
- ldr r1, _0812C978
- movs r0, 0
- b _0812C980
- .align 2, 0
-_0812C974: .4byte gUnknown_0202F7B8
-_0812C978: .4byte gUnknown_03004B00
-_0812C97C:
- ldr r1, _0812C98C
- movs r0, 0x1
-_0812C980:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_0812C98C: .4byte gUnknown_03004B00
- thumb_func_end sub_812C960
-
- thumb_func_start sub_812C990
-sub_812C990: @ 812C990
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0812C9EC
- ldr r2, _0812C9F0
- adds r0, r2, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0812C9F4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812C9F8
- strh r1, [r0]
- ldr r0, _0812C9FC
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812CA00
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C9EC: .4byte REG_WINOUT
-_0812C9F0: .4byte 0x00001f3f
-_0812C9F4: .4byte gUnknown_030042C4
-_0812C9F8: .4byte gUnknown_03004240
-_0812C9FC: .4byte REG_WIN0H
-_0812CA00: .4byte sub_812CA04
- thumb_func_end sub_812C990
-
- thumb_func_start sub_812CA04
-sub_812CA04: @ 812CA04
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _0812CAC4
- lsls r0, 2
- ldr r1, _0812CA1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812CA1C: .4byte _0812CA20
- .align 2, 0
-_0812CA20:
- .4byte _0812CA38
- .4byte _0812CA56
- .4byte _0812CA76
- .4byte _0812CA56
- .4byte _0812CA96
- .4byte _0812CAA6
-_0812CA38:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812CAC4
- b _0812CA9E
-_0812CA56:
- ldrh r0, [r4, 0x30]
- adds r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _0812CAC4
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0812CA9E
-_0812CA76:
- ldrh r0, [r4, 0x30]
- subs r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x29
- bne _0812CAC4
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0812CA9E
-_0812CA96:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_0812CA9E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812CAC4
-_0812CAA6:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812CAC4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812CACC
- str r0, [r4, 0x1C]
-_0812CAC4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CACC: .4byte sub_812CAD0
- thumb_func_end sub_812CA04
-
- thumb_func_start sub_812CAD0
-sub_812CAD0: @ 812CAD0
- push {r4,lr}
- ldr r2, _0812CAF4
- ldr r3, _0812CAF8
- adds r1, r3, 0
- strh r1, [r2]
- movs r3, 0x80
- lsls r3, 19
- ldrh r1, [r3]
- movs r4, 0x80
- lsls r4, 8
- adds r2, r4, 0
- eors r1, r2
- strh r1, [r3]
- bl move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CAF4: .4byte REG_WINOUT
-_0812CAF8: .4byte 0x00003f3f
- thumb_func_end sub_812CAD0
-
- thumb_func_start sub_812CAFC
-sub_812CAFC: @ 812CAFC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0812CB70
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812CB28
- ldr r4, _0812CB74
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0812CB28:
- ldrh r0, [r6]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r3, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x2]
- ldrh r4, [r5, 0x22]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, _0812CB78
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _0812CB7C
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812CB84
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldr r0, _0812CB80
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _0812CB8A
- .align 2, 0
-_0812CB70: .4byte gUnknown_03004B00
-_0812CB74: .4byte gUnknown_0202F7C8
-_0812CB78: .4byte 0x000003ff
-_0812CB7C: .4byte 0xfffffc00
-_0812CB80: .4byte 0x0000fff4
-_0812CB84:
- movs r0, 0xC
- strh r0, [r5, 0x24]
- ldr r0, _0812CBA8
-_0812CB8A:
- strh r0, [r5, 0x30]
- ldr r1, _0812CBAC
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0xFF
- beq _0812CB9E
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
-_0812CB9E:
- ldr r0, _0812CBB0
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CBA8: .4byte 0x0000fffe
-_0812CBAC: .4byte gUnknown_03004B00
-_0812CBB0: .4byte sub_812CBB4
- thumb_func_end sub_812CAFC
-
- thumb_func_start sub_812CBB4
-sub_812CBB4: @ 812CBB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812CBF2
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _0812CC12
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812CC12
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xDE
- bl PlaySE1WithPanning
- b _0812CC12
-_0812CBF2:
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x30]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0812CC04
- negs r0, r0
-_0812CC04:
- cmp r0, 0xC
- bne _0812CC12
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- subs r0, r2, 0x1
- strh r0, [r4, 0x32]
-_0812CC12:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812CC20
- adds r0, r4, 0
- bl move_anim_8072740
-_0812CC20:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812CBB4
-
- thumb_func_start sub_812CC28
-sub_812CC28: @ 812CC28
- push {lr}
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r1, 0xFF
- strh r1, [r0, 0x34]
- bl sub_812CAFC
- pop {r0}
- bx r0
- thumb_func_end sub_812CC28
-
- thumb_func_start sub_812CC44
-sub_812CC44: @ 812CC44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812CC7A
- ldr r1, _0812CC88
- ldr r2, _0812CC8C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0812CC90
- ldr r2, _0812CC94
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0812CC98
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _0812CC9C
- ldr r0, _0812CCA0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _0812CCA4
- ldrh r0, [r0]
- strh r0, [r1]
-_0812CC7A:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CC88: .4byte REG_WININ
-_0812CC8C: .4byte 0x00001f3f
-_0812CC90: .4byte gUnknown_03004200
-_0812CC94: .4byte 0x000098f0
-_0812CC98: .4byte gUnknown_03004244
-_0812CC9C: .4byte REG_WIN1H
-_0812CCA0: .4byte gUnknown_030042C4
-_0812CCA4: .4byte gUnknown_03004240
- thumb_func_end sub_812CC44
-
- thumb_func_start sub_812CCA8
-sub_812CCA8: @ 812CCA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812CCCA
- ldr r1, _0812CCD8
- ldr r2, _0812CCDC
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812CCE0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812CCE4
- strh r1, [r0]
-_0812CCCA:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CCD8: .4byte REG_WININ
-_0812CCDC: .4byte 0x00003f3f
-_0812CCE0: .4byte gUnknown_03004200
-_0812CCE4: .4byte gUnknown_03004244
- thumb_func_end sub_812CCA8
-
- thumb_func_start sub_812CCE8
-sub_812CCE8: @ 812CCE8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0812CCFC
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812CD04
- ldr r4, _0812CD00
- b _0812CD06
- .align 2, 0
-_0812CCFC: .4byte gUnknown_03004B00
-_0812CD00: .4byte gUnknown_0202F7C8
-_0812CD04:
- ldr r4, _0812CD58
-_0812CD06:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r2, _0812CD5C
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x26]
- movs r3, 0
- lsls r0, 16
- asrs r0, 16
- ldrh r4, [r2, 0x6]
- movs r6, 0x6
- ldrsh r1, [r2, r6]
- cmp r0, r1
- ble _0812CD3E
- movs r3, 0x1
-_0812CD3E:
- strh r3, [r5, 0x2E]
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, _0812CD60
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CD58: .4byte gUnknown_0202F7C9
-_0812CD5C: .4byte gUnknown_03004B00
-_0812CD60: .4byte sub_812CD64
- thumb_func_end sub_812CCE8
-
- thumb_func_start sub_812CD64
-sub_812CD64: @ 812CD64
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0x30]
- ldr r1, _0812CDAC
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r1, r0, r3
- strh r1, [r2, 0x26]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0812CDB0
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _0812CDC2
- adds r0, r2, 0
- bl move_anim_8072740
- b _0812CDC2
- .align 2, 0
-_0812CDAC: .4byte gSineTable
-_0812CDB0:
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _0812CDC2
- adds r0, r2, 0
- bl move_anim_8072740
-_0812CDC2:
- pop {r0}
- bx r0
- thumb_func_end sub_812CD64
-
- thumb_func_start sub_812CDC8
-sub_812CDC8: @ 812CDC8
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0812CDE8
- adds r5, r1, r0
- ldr r0, _0812CDEC
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812CDF4
- ldr r4, _0812CDF0
- b _0812CDF6
- .align 2, 0
-_0812CDE8: .4byte gTasks
-_0812CDEC: .4byte gUnknown_03004B00
-_0812CDF0: .4byte gUnknown_0202F7C8
-_0812CDF4:
- ldr r4, _0812CE3C
-_0812CDF6:
- ldrb r0, [r4]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- adds r1, r0, 0
- adds r1, 0x24
- movs r2, 0
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- subs r0, 0x21
- strh r0, [r5, 0xC]
- cmp r0, 0
- bge _0812CE20
- strh r2, [r5, 0xC]
-_0812CE20:
- ldrh r0, [r5, 0x8]
- strh r0, [r5, 0xE]
- movs r0, 0x8
- strh r0, [r5, 0x10]
- ldr r1, _0812CE40
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x12]
- strh r2, [r5, 0x14]
- strh r2, [r5, 0x16]
- cmp r7, 0x1
- bne _0812CE48
- ldr r0, _0812CE44
- b _0812CE4A
- .align 2, 0
-_0812CE3C: .4byte gUnknown_0202F7C9
-_0812CE40: .4byte gUnknown_03004B00
-_0812CE44: .4byte gUnknown_030042C0
-_0812CE48:
- ldr r0, _0812CE68
-_0812CE4A:
- ldrh r2, [r0]
- strh r2, [r5, 0x18]
- adds r3, r2, 0
- adds r3, 0xF0
- strh r3, [r5, 0x1A]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x1C]
- movs r4, 0x4
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _0812CE6C
- strh r3, [r5, 0x1E]
- ldrh r3, [r5, 0x18]
- b _0812CE70
- .align 2, 0
-_0812CE68: .4byte gUnknown_03004288
-_0812CE6C:
- strh r2, [r5, 0x1E]
- ldrh r3, [r5, 0x1A]
-_0812CE70:
- movs r0, 0
- strh r0, [r5, 0x26]
- ldrh r1, [r5, 0xC]
- lsls r2, r1, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- bgt _0812CEA6
- ldr r4, _0812CEB0
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r4
- mov r12, r0
-_0812CE8C:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- add r1, r12
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- ble _0812CE8C
-_0812CEA6:
- cmp r7, 0x1
- bne _0812CEB8
- ldr r0, _0812CEB4
- b _0812CEBA
- .align 2, 0
-_0812CEB0: .4byte gUnknown_03004DE0
-_0812CEB4: .4byte REG_BG1HOFS
-_0812CEB8:
- ldr r0, _0812CEE4
-_0812CEBA:
- str r0, [sp]
- ldr r0, _0812CEE8
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _0812CEEC
- str r0, [r5]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CEE4: .4byte REG_BG2HOFS
-_0812CEE8: .4byte 0xa2600001
-_0812CEEC: .4byte sub_812CEF0
- thumb_func_end sub_812CDC8
-
- thumb_func_start sub_812CEF0
-sub_812CEF0: @ 812CEF0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _0812CF40
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0812CF18
- strh r2, [r4, 0x8]
-_0812CF18:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0812CF44
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0812CF48
- strh r2, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0x26]
- b _0812CF48
- .align 2, 0
-_0812CF40: .4byte gTasks
-_0812CF44:
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_0812CF48:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812CF74
- movs r0, 0
- strh r0, [r4, 0x14]
- movs r1, 0
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0812CF66
- movs r1, 0x1
-_0812CF66:
- strh r1, [r4, 0x16]
- cmp r1, 0
- beq _0812CF70
- ldrh r0, [r4, 0x18]
- b _0812CF72
-_0812CF70:
- ldrh r0, [r4, 0x1A]
-_0812CF72:
- strh r0, [r4, 0x20]
-_0812CF74:
- ldrh r1, [r4, 0x8]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _0812CFA8
- ldr r5, _0812D000
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0812CF8A:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x20]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x20]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _0812CF8A
-_0812CFA8:
- ldrh r1, [r4, 0xA]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bgt _0812CFDC
- ldr r5, _0812D000
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0812CFBE:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1E]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1E]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _0812CFBE
-_0812CFDC:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0812CFF8
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812CFF2
- ldr r1, _0812D004
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_0812CFF2:
- adds r0, r7, 0
- bl move_anim_task_del
-_0812CFF8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D000: .4byte gUnknown_03004DE0
-_0812D004: .4byte gUnknown_03004DC0
- thumb_func_end sub_812CEF0
-
- thumb_func_start sub_812D008
-sub_812D008: @ 812D008
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812D05C
- adds r4, r0
- movs r5, 0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r6, _0812D060
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x10]
- ldr r0, _0812D064
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _0812D068
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D05C: .4byte gTasks
-_0812D060: .4byte gUnknown_0202F7C8
-_0812D064: .4byte 0x0000ffec
-_0812D068: .4byte sub_812D06C
- thumb_func_end sub_812D008
-
- thumb_func_start sub_812D06C
-sub_812D06C: @ 812D06C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812D098
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0812D08C
- b _0812D246
-_0812D08C:
- lsls r0, 2
- ldr r1, _0812D09C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812D098: .4byte gTasks
-_0812D09C: .4byte _0812D0A0
- .align 2, 0
-_0812D0A0:
- .4byte _0812D0B8
- .4byte _0812D178
- .4byte _0812D1A6
- .4byte _0812D1BA
- .4byte _0812D1D0
- .4byte _0812D238
-_0812D0B8:
- movs r0, 0xC
- ldrsh r2, [r6, r0]
- ldrh r1, [r6, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812D0CE
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- subs r0, r2, r0
- b _0812D0D4
-_0812D0CE:
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- adds r0, r2, r0
-_0812D0D4:
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r6, 0x12]
- ldrh r0, [r6, 0xE]
- adds r2, r0
- ldr r0, _0812D168
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r4, [r6, 0xA]
- movs r3, 0x6
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xBA
- bl PlaySE12WithPanning
- cmp r4, 0x40
- beq _0812D138
- ldr r5, _0812D16C
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r3, r1, r5
- ldrh r0, [r6, 0xA]
- movs r2, 0x1
- ands r2, r0
- adds r3, 0x3F
- ldrb r4, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r4
- orrs r0, r2
- strb r0, [r3]
- adds r5, 0x1C
- adds r1, r5
- ldr r0, _0812D170
- str r0, [r1]
-_0812D138:
- ldrh r1, [r6, 0xA]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0812D150
- ldrh r0, [r6, 0x10]
- subs r0, 0x6
- strh r0, [r6, 0x10]
- ldrh r0, [r6, 0x12]
- subs r0, 0x6
- strh r0, [r6, 0x12]
-_0812D150:
- ldrh r1, [r6, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D174
- adds r0, r6, 0
- bl sub_80798F4
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r6, 0x8]
- b _0812D246
- .align 2, 0
-_0812D168: .4byte gBattleAnimSpriteTemplate_83D7220
-_0812D16C: .4byte gSprites
-_0812D170: .4byte SpriteCallbackDummy
-_0812D174: .4byte gUnknown_08402400
-_0812D178:
- adds r0, r6, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0812D246
- movs r2, 0xA
- ldrsh r1, [r6, r2]
- cmp r1, 0x6
- bne _0812D198
- movs r0, 0x8
- strh r0, [r6, 0x14]
- movs r0, 0x3
- strh r0, [r6, 0x8]
- b _0812D246
-_0812D198:
- cmp r1, 0x2
- bgt _0812D19E
- movs r0, 0xA
-_0812D19E:
- strh r0, [r6, 0x14]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- b _0812D246
-_0812D1A6:
- ldrh r0, [r6, 0x14]
- movs r2, 0x14
- ldrsh r1, [r6, r2]
- cmp r1, 0
- beq _0812D1B6
- subs r0, 0x1
- strh r0, [r6, 0x14]
- b _0812D246
-_0812D1B6:
- strh r1, [r6, 0x8]
- b _0812D246
-_0812D1BA:
- ldrh r1, [r6, 0x14]
- movs r2, 0x14
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0812D1CA
- subs r0, r1, 0x1
- strh r0, [r6, 0x14]
- b _0812D246
-_0812D1CA:
- movs r0, 0x4
- strh r0, [r6, 0x8]
- b _0812D246
-_0812D1D0:
- movs r5, 0
- movs r7, 0
- ldr r3, _0812D22C
- movs r0, 0x1C
- adds r0, r3
- mov r8, r0
-_0812D1DC:
- lsls r0, r5, 4
- adds r0, r5
- lsls r4, r0, 2
- adds r0, r3, 0
- adds r0, 0x14
- adds r0, r4, r0
- ldr r1, [r0]
- ldr r0, _0812D230
- cmp r1, r0
- bne _0812D218
- adds r0, r4, r3
- strh r2, [r0, 0x2E]
- movs r1, 0x6
- strh r1, [r0, 0x30]
- movs r1, 0x2
- str r2, [sp]
- str r3, [sp, 0x4]
- bl StartSpriteAnim
- mov r0, r8
- adds r1, r4, r0
- ldr r0, _0812D234
- str r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- cmp r7, 0x6
- beq _0812D222
-_0812D218:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3F
- bls _0812D1DC
-_0812D222:
- strh r7, [r6, 0x14]
- movs r0, 0x5
- strh r0, [r6, 0x8]
- b _0812D246
- .align 2, 0
-_0812D22C: .4byte gSprites
-_0812D230: .4byte gBattleAnimSpriteTemplate_83D7220
-_0812D234: .4byte sub_812D254
-_0812D238:
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812D246
- adds r0, r2, 0
- bl move_anim_task_del
-_0812D246:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812D06C
-
- thumb_func_start sub_812D254
-sub_812D254: @ 812D254
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812D288
- ldr r3, _0812D290
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0812D288:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D290: .4byte gTasks
- thumb_func_end sub_812D254
-
- thumb_func_start sub_812D294
-sub_812D294: @ 812D294
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812D2A8
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
-_0812D2A8:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- bgt _0812D2DA
- ldrh r0, [r5, 0x2E]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812D2CC
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _0812D2D8
-_0812D2CC:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_0812D2D8:
- strb r0, [r2]
-_0812D2DA:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1E
- ble _0812D2F0
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812D2F0:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3D
- bne _0812D33C
- ldr r1, _0812D344
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldrh r0, [r5, 0x24]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x26]
- ldrh r2, [r5, 0x22]
- adds r0, r2
- strh r0, [r5, 0x22]
- strh r1, [r5, 0x24]
- strh r1, [r5, 0x26]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, _0812D348
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x32]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x36]
- ldr r0, _0812D34C
- str r0, [r5, 0x1C]
-_0812D33C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D344: .4byte move_anim_8072740
-_0812D348: .4byte gUnknown_0202F7C9
-_0812D34C: .4byte sub_8078B34
- thumb_func_end sub_812D294
-
- thumb_func_start sub_812D350
-sub_812D350: @ 812D350
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812D370
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812D374
- cmp r0, 0x1
- beq _0812D394
- b _0812D3A6
- .align 2, 0
-_0812D370: .4byte gTasks
-_0812D374:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D390
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D3A6
- .align 2, 0
-_0812D390: .4byte gUnknown_084024B0
-_0812D394:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D3A6
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D3A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D350
-
- thumb_func_start sub_812D3AC
-sub_812D3AC: @ 812D3AC
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0812D40C
- cmp r0, 0x1
- bgt _0812D3CC
- cmp r0, 0
- beq _0812D3D6
- b _0812D4AE
-_0812D3CC:
- cmp r0, 0x2
- beq _0812D43C
- cmp r0, 0x3
- beq _0812D490
- b _0812D4AE
-_0812D3D6:
- ldr r4, _0812D408
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- adds r0, r6, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- b _0812D484
- .align 2, 0
-_0812D408: .4byte gUnknown_0202F7C8
-_0812D40C:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- subs r0, 0x1A
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0812D43C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0812D43C:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x30
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0812D4AE
- movs r0, 0
- strh r0, [r5, 0x34]
- ldr r1, _0812D48C
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0
- bl sub_8078F40
-_0812D484:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0812D4AE
- .align 2, 0
-_0812D48C: .4byte gSprites
-_0812D490:
- ldrh r0, [r5, 0x26]
- subs r0, 0x6
- strh r0, [r5, 0x26]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _0812D4AE
- adds r0, r5, 0
- bl move_anim_8072740
-_0812D4AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812D3AC
-
- thumb_func_start sub_812D4B4
-sub_812D4B4: @ 812D4B4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812D4CC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812D4D4
- ldr r0, _0812D4D0
- b _0812D4D8
- .align 2, 0
-_0812D4CC: .4byte gUnknown_0202F7C8
-_0812D4D0: .4byte 0x0000fff0
-_0812D4D4:
- movs r0, 0x80
- lsls r0, 1
-_0812D4D8:
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x22]
- ldr r0, _0812D4E8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D4E8: .4byte sub_812D4EC
- thumb_func_end sub_812D4B4
-
- thumb_func_start sub_812D4EC
-sub_812D4EC: @ 812D4EC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x48
- strh r0, [r4, 0x2E]
- ldr r0, _0812D50C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812D510
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- b _0812D518
- .align 2, 0
-_0812D50C: .4byte gUnknown_0202F7C8
-_0812D510:
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
-_0812D518:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x10
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r5, r0, r1
- strh r5, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _0812D564
- ldr r0, _0812D584
- ldrh r1, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r5
- lsls r2, 16
- asrs r2, 16
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSpriteAndAnimate
-_0812D564:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- adds r0, 0x20
- movs r1, 0x98
- lsls r1, 1
- cmp r0, r1
- bls _0812D57E
- adds r0, r4, 0
- bl move_anim_8072740
-_0812D57E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D584: .4byte gSpriteTemplate_8402500
- thumb_func_end sub_812D4EC
-
- thumb_func_start sub_812D588
-sub_812D588: @ 812D588
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0812D5A2
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- b _0812D5AA
-_0812D5A2:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x5
-_0812D5AA:
- ldr r3, _0812D5DC
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _0812D5E0
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random
- movs r1, 0x7
- ands r0, r1
- adds r1, r0, 0
- cmp r1, 0x3
- ble _0812D5CC
- negs r0, r1
- lsls r0, 24
- lsrs r0, 24
-_0812D5CC:
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _0812D5E4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D5DC: .4byte 0x000003ff
-_0812D5E0: .4byte 0xfffffc00
-_0812D5E4: .4byte sub_812D5E8
- thumb_func_end sub_812D588
-
- thumb_func_start sub_812D5E8
-sub_812D5E8: @ 812D5E8
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- bgt _0812D62A
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0812D65E
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r2, [r0]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r0, 0
- b _0812D65C
-_0812D62A:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _0812D640
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812D640:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x3
- bne _0812D658
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812D670
- strh r0, [r3, 0x30]
-_0812D658:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
-_0812D65C:
- strh r0, [r3, 0x30]
-_0812D65E:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x3C
- ble _0812D66C
- adds r0, r3, 0
- bl DestroySprite
-_0812D66C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812D670: .4byte 0x0000ffff
- thumb_func_end sub_812D5E8
-
- thumb_func_start sub_812D674
-sub_812D674: @ 812D674
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812D6AC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812D6B4
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D6B0
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D6C6
- .align 2, 0
-_0812D6AC: .4byte gTasks
-_0812D6B0: .4byte gUnknown_08402518
-_0812D6B4:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D6C6
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D6C6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D674
-
- thumb_func_start sub_812D6CC
-sub_812D6CC: @ 812D6CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812D704
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812D70C
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D708
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D71E
- .align 2, 0
-_0812D704: .4byte gTasks
-_0812D708: .4byte gUnknown_08402540
-_0812D70C:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D71E
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D71E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D6CC
-
- thumb_func_start sub_812D724
-sub_812D724: @ 812D724
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812D736
- cmp r0, 0x1
- beq _0812D760
- b _0812D788
-_0812D736:
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- movs r0, 0x90
- lsls r0, 4
- strh r0, [r4, 0x30]
- ldr r0, _0812D75C
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812D788
- .align 2, 0
-_0812D75C: .4byte gUnknown_0202F7C8
-_0812D760:
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- subs r2, 0x60
- strh r2, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _0812D788
- adds r0, r4, 0
- bl move_anim_8072740
-_0812D788:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812D724
-
- thumb_func_start sub_812D790
-sub_812D790: @ 812D790
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812D7C8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812D7D0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D7CC
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D7E2
- .align 2, 0
-_0812D7C8: .4byte gTasks
-_0812D7CC: .4byte gUnknown_08402590
-_0812D7D0:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D7E2
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D7E2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D790
-
- thumb_func_start sub_812D7E8
-sub_812D7E8: @ 812D7E8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0812D818
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _0812D80E
- b _0812DAFA
-_0812D80E:
- lsls r0, 2
- ldr r1, _0812D81C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812D818: .4byte gTasks
-_0812D81C: .4byte _0812D820
- .align 2, 0
-_0812D820:
- .4byte _0812D834
- .4byte _0812D888
- .4byte _0812D8C4
- .4byte _0812DA48
- .4byte _0812DA84
-_0812D834:
- ldr r1, _0812D850
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0812D854
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812D85C
- ldr r0, _0812D858
- b _0812D85E
- .align 2, 0
-_0812D850: .4byte REG_MOSAIC
-_0812D854: .4byte gUnknown_0202F7C8
-_0812D858: .4byte REG_BG1CNT
-_0812D85C:
- ldr r0, _0812D87C
-_0812D85E:
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0812D880
- mov r6, r8
- lsls r1, r6, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812D884
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- b _0812DA2A
- .align 2, 0
-_0812D87C: .4byte REG_BG2CNT
-_0812D880: .4byte gTasks
-_0812D884: .4byte gUnknown_03004B00
-_0812D888:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0812D8A2
- b _0812DAFA
-_0812D8A2:
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xA]
- ldr r1, _0812D8C0
- lsls r0, r2, 4
- orrs r0, r2
- strh r0, [r1]
- cmp r2, 0xF
- beq _0812D8BC
- b _0812DAFA
-_0812D8BC:
- b _0812DA78
- .align 2, 0
-_0812D8C0: .4byte REG_MOSAIC
-_0812D8C4:
- ldr r5, _0812D8F4
- ldrb r0, [r5]
- ldr r1, _0812D8F8
- ldrb r1, [r1]
- mov r2, r8
- lsls r4, r2, 2
- adds r2, r4, r2
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x1C]
- bl sub_8031FC4
- ldrb r1, [r5]
- mov r0, sp
- bl sub_8078954
- bl sub_8076BE0
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- beq _0812D8FC
- movs r1, 0
- b _0812D906
- .align 2, 0
-_0812D8F4: .4byte gUnknown_0202F7C8
-_0812D8F8: .4byte gUnknown_0202F7C9
-_0812D8FC:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r1, r0, 24
-_0812D906:
- ldr r0, _0812D9CC
- lsls r1, 2
- adds r1, r0
- ldr r2, _0812D9D0
- ldr r0, _0812D9D4
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 11
- ldr r1, [r1]
- adds r1, r0
- ldr r2, [sp]
- ldr r0, _0812D9D8
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0812D9DC
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812DA20
- ldr r5, _0812D9E0
- ldrh r0, [r5]
- bl sub_80AEB1C
- adds r4, r0, 0
- ldrh r0, [r5, 0x2]
- bl sub_80AEB1C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0812D9A2
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_0812D956:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_0812D960:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812D960
- movs r2, 0x20
- add r12, r2
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _0812D956
- movs r5, 0
- movs r0, 0x80
- lsls r0, 3
- adds r3, r0, 0
-_0812D986:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_0812D98E:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0812D98E
- adds r5, r2, 0
- cmp r5, 0x7
- ble _0812D986
-_0812D9A2:
- ldr r0, _0812D9E0
- ldrh r0, [r0, 0x2]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _0812D9F0
- ldr r3, _0812D9E4
- ldr r4, _0812D9E8
- ldr r2, _0812D9D4
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0812D9EC
- b _0812DA0A
- .align 2, 0
-_0812D9CC: .4byte gUnknown_081FAF4C
-_0812D9D0: .4byte gUnknown_02024E84
-_0812D9D4: .4byte gUnknown_0202F7C8
-_0812D9D8: .4byte 0x040000d4
-_0812D9DC: .4byte 0x84000200
-_0812D9E0: .4byte 0x02019348
-_0812D9E4: .4byte gSprites
-_0812D9E8: .4byte gUnknown_02024BE0
-_0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
-_0812D9F0:
- ldr r3, _0812DA34
- ldr r4, _0812DA38
- ldr r2, _0812DA3C
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0812DA40
-_0812DA0A:
- str r1, [r0]
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_0812DA20:
- ldr r0, _0812DA44
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_0812DA2A:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812DAFA
- .align 2, 0
-_0812DA34: .4byte gSprites
-_0812DA38: .4byte gUnknown_02024BE0
-_0812DA3C: .4byte gUnknown_0202F7C8
-_0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC
-_0812DA44: .4byte gTasks
-_0812DA48:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812DAFA
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xA]
- ldr r1, _0812DA80
- lsls r0, r2, 4
- orrs r0, r2
- strh r0, [r1]
- cmp r2, 0
- bne _0812DAFA
-_0812DA78:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812DAFA
- .align 2, 0
-_0812DA80: .4byte REG_MOSAIC
-_0812DA84:
- ldr r1, _0812DAA0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0812DAA4
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812DAAC
- ldr r2, _0812DAA8
- b _0812DAAE
- .align 2, 0
-_0812DAA0: .4byte REG_MOSAIC
-_0812DAA4: .4byte gUnknown_0202F7C8
-_0812DAA8: .4byte REG_BG1CNT
-_0812DAAC:
- ldr r2, _0812DB08
-_0812DAAE:
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812DAF4
- ldr r4, _0812DB0C
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812DAF4
- ldr r0, _0812DB10
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _0812DAF4
- ldrb r0, [r4]
- lsls r1, r0, 2
- ldr r2, _0812DB14
- adds r1, r2
- ldrh r1, [r1, 0x2]
- bl sub_8032984
-_0812DAF4:
- mov r0, r8
- bl move_anim_task_del
-_0812DAFA:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB08: .4byte REG_BG2CNT
-_0812DB0C: .4byte gUnknown_0202F7C8
-_0812DB10: .4byte gTasks
-_0812DB14: .4byte 0x02017800
- thumb_func_end sub_812D7E8
-
- thumb_func_start c3_80DFBE4
-c3_80DFBE4: @ 812DB18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0812DB48
- ldr r3, _0812DB4C
- ldr r2, _0812DB50
- ldr r1, _0812DB54
- ldrb r1, [r1]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r4, 0xE]
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB48: .4byte gUnknown_03004B00
-_0812DB4C: .4byte gSprites
-_0812DB50: .4byte gUnknown_02024BE0
-_0812DB54: .4byte gUnknown_0202F7C8
- thumb_func_end c3_80DFBE4
-
- thumb_func_start sub_812DB58
-sub_812DB58: @ 812DB58
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812DB7C
- ldrb r0, [r0]
- ldr r1, _0812DB80
- ldrb r1, [r1]
- movs r2, 0x1
- bl sub_8031FC4
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB7C: .4byte gUnknown_0202F7C8
-_0812DB80: .4byte gUnknown_0202F7C9
- thumb_func_end sub_812DB58
-
- thumb_func_start sub_812DB84
-sub_812DB84: @ 812DB84
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _0812DBB4
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _0812DBA8
- b _0812DE80
-_0812DBA8:
- lsls r0, 2
- ldr r1, _0812DBB8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812DBB4: .4byte gTasks
-_0812DBB8: .4byte _0812DBBC
- .align 2, 0
-_0812DBBC:
- .4byte _0812DBD0
- .4byte _0812DCFC
- .4byte _0812DD4C
- .4byte _0812DDB6
- .4byte _0812DDEA
-_0812DBD0:
- ldr r1, _0812DC70
- ldr r4, _0812DC74
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0812DC78
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812DC12
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_0812DC12:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _0812DC7C
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0812DC80
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0812DC84
- bl LZDecompressVram
- ldr r0, _0812DC88
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0812DC8C
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812DC9C
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
- ldr r1, _0812DC90
- ldr r2, _0812DC94
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812DC98
- strh r4, [r0]
- b _0812DCCE
- .align 2, 0
-_0812DC70: .4byte REG_BLDCNT
-_0812DC74: .4byte 0x00003f42
-_0812DC78: .4byte REG_BG1CNT
-_0812DC7C: .4byte 0x040000d4
-_0812DC80: .4byte 0x85000400
-_0812DC84: .4byte gUnknown_08D2AA98
-_0812DC88: .4byte gUnknown_08D2A9E0
-_0812DC8C: .4byte gUnknown_08D2AA80
-_0812DC90: .4byte gUnknown_030042C0
-_0812DC94: .4byte 0x0000ffc8
-_0812DC98: .4byte gUnknown_030041B4
-_0812DC9C:
- ldr r0, _0812DCB4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812DCC0
- ldr r1, _0812DCB8
- ldr r4, _0812DCBC
- adds r0, r4, 0
- b _0812DCC6
- .align 2, 0
-_0812DCB4: .4byte gUnknown_0202F7C8
-_0812DCB8: .4byte gUnknown_030042C0
-_0812DCBC: .4byte 0x0000ff79
-_0812DCC0:
- ldr r1, _0812DCEC
- ldr r2, _0812DCF0
- adds r0, r2, 0
-_0812DCC6:
- strh r0, [r1]
- ldr r1, _0812DCF4
- movs r0, 0
- strh r0, [r1]
-_0812DCCE:
- ldr r0, _0812DCF8
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812DCEC
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, _0812DCF4
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- b _0812DDD2
- .align 2, 0
-_0812DCEC: .4byte gUnknown_030042C0
-_0812DCF0: .4byte 0x0000fff6
-_0812DCF4: .4byte gUnknown_030041B4
-_0812DCF8: .4byte gTasks
-_0812DCFC:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x10]
- adds r1, r0, 0x1
- strh r1, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _0812DD12
- b _0812DE80
-_0812DD12:
- movs r0, 0
- strh r0, [r3, 0x10]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0812DD28
- movs r0, 0xC
- strh r0, [r3, 0xA]
-_0812DD28:
- ldr r2, _0812DD48
- ldrh r1, [r3, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r4, 0xA
- ldrsh r0, [r3, r4]
- cmp r0, 0xC
- beq _0812DD40
- b _0812DE80
-_0812DD40:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _0812DE80
- .align 2, 0
-_0812DD48: .4byte REG_BLDALPHA
-_0812DD4C:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0812DD64
- movs r0, 0
- strh r0, [r3, 0xA]
-_0812DD64:
- ldr r2, _0812DDA4
- ldrh r1, [r3, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0812DD7C
- b _0812DE80
-_0812DD7C:
- ldr r2, _0812DDA8
- ldr r1, _0812DDAC
- movs r4, 0xC
- ldrsh r0, [r3, r4]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r3, 0x1C]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812DDB0
- strh r0, [r3, 0x8]
- b _0812DE80
- .align 2, 0
-_0812DDA4: .4byte REG_BLDALPHA
-_0812DDA8: .4byte gUnknown_030042C0
-_0812DDAC: .4byte gUnknown_084025C0
-_0812DDB0:
- movs r0, 0x3
- strh r0, [r3, 0x8]
- b _0812DE80
-_0812DDB6:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812DE80
- movs r0, 0
- strh r0, [r1, 0xE]
- movs r0, 0x1
-_0812DDD2:
- strh r0, [r1, 0x8]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xE4
- bl PlaySE12WithPanning
- b _0812DE80
-_0812DDEA:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0xC
- movs r6, 0
- ldr r1, _0812DE90
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _0812DE94
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_0812DE0C:
- str r6, [sp, 0xC]
- mov r0, r8
- str r0, [r1]
- str r2, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r2, r4
- subs r3, r4
- cmp r3, r4
- bhi _0812DE0C
- str r6, [sp, 0xC]
- str r5, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r9
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r0, _0812DE90
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0812DE98
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812DE5A
- ldr r2, _0812DE9C
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812DE5A:
- ldr r2, _0812DE9C
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812DEA0
- strh r4, [r0]
- ldr r0, _0812DEA4
- strh r4, [r0]
- ldr r0, _0812DEA8
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, r7, 0
- bl move_anim_task_del
-_0812DE80:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DE90: .4byte 0x040000d4
-_0812DE94: .4byte 0x85000400
-_0812DE98: .4byte 0x85000200
-_0812DE9C: .4byte REG_BG1CNT
-_0812DEA0: .4byte gUnknown_030042C0
-_0812DEA4: .4byte gUnknown_030041B4
-_0812DEA8: .4byte REG_BLDCNT
- thumb_func_end sub_812DB84
-
- thumb_func_start sub_812DEAC
-sub_812DEAC: @ 812DEAC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random
- lsls r0, 16
- movs r1, 0xFC
- lsls r1, 14
- ands r1, r0
- lsrs r5, r1, 16
- adds r1, r5, 0
- cmp r1, 0x1F
- ble _0812DED6
- movs r0, 0x20
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_0812DED6:
- ldr r4, _0812DFD0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5
- strh r0, [r7, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r7, 0x22]
- ldr r1, _0812DFD4
- ldrh r0, [r1]
- strh r0, [r7, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r7, 0x32]
- ldr r4, _0812DFD8
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- adds r5, r7, 0
- adds r5, 0x43
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r9, r0
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r0, r9
- lsls r2, r0, 4
- add r2, r9
- lsls r2, 2
- ldr r1, _0812DFDC
- mov r10, r1
- adds r5, r2, r1
- adds r0, r5, 0
- movs r1, 0x1
- str r2, [sp]
- bl StartSpriteAnim
- mov r0, r8
- lsls r6, r0, 4
- add r6, r8
- lsls r6, 2
- mov r1, r10
- adds r4, r6, r1
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r1, _0812DFD4
- ldrh r0, [r1]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x32]
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- ldr r0, _0812DFE0
- strh r0, [r5, 0x3C]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r4, 0x3C]
- adds r5, 0x3E
- ldrb r0, [r5]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5]
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x1C
- add r10, r0
- ldr r2, [sp]
- add r2, r10
- ldr r0, _0812DFE4
- str r0, [r2]
- add r6, r10
- str r0, [r6]
- mov r1, r9
- strh r1, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- ldr r0, _0812DFE8
- str r0, [r7, 0x1C]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DFD0: .4byte gUnknown_0202F7C8
-_0812DFD4: .4byte gUnknown_03004B00
-_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
-_0812DFDC: .4byte gSprites
-_0812DFE0: .4byte 0x0000ffff
-_0812DFE4: .4byte sub_812E0F8
-_0812DFE8: .4byte sub_812DFEC
- thumb_func_end sub_812DEAC
-
- thumb_func_start sub_812DFEC
-sub_812DFEC: @ 812DFEC
- push {lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x32]
- ldrh r0, [r3, 0x34]
- adds r2, r0
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3, 0x26]
- subs r1, r0
- strh r1, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812E03A
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0812E03A
- ldr r2, _0812E094
- movs r0, 0x3A
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0812E03A:
- movs r1, 0x36
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _0812E06E
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0812E06E
- ldr r2, _0812E094
- movs r0, 0x3C
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrh r0, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0812E06E:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812E090
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812E098
- str r0, [r3, 0x1C]
-_0812E090:
- pop {r0}
- bx r0
- .align 2, 0
-_0812E094: .4byte gSprites
-_0812E098: .4byte sub_812E09C
- thumb_func_end sub_812DFEC
-
- thumb_func_start sub_812E09C
-sub_812E09C: @ 812E09C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _0812E0F0
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r6, r5, 0
- adds r6, 0x1C
- adds r0, r3, r6
- ldr r2, [r0]
- ldr r0, _0812E0F4
- cmp r2, r0
- bne _0812E0E8
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r2
- bne _0812E0E8
- adds r0, r3, r5
- bl DestroySprite
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E0E8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E0F0: .4byte gSprites
-_0812E0F4: .4byte SpriteCallbackDummy
- thumb_func_end sub_812E09C
-
- thumb_func_start sub_812E0F8
-sub_812E0F8: @ 812E0F8
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0812E144
- ldrh r2, [r3, 0x32]
- ldrh r1, [r3, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x26]
- subs r0, r1
- strh r0, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812E144
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0x4
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, _0812E148
- str r0, [r3, 0x1C]
-_0812E144:
- pop {r0}
- bx r0
- .align 2, 0
-_0812E148: .4byte SpriteCallbackDummy
- thumb_func_end sub_812E0F8
-
- thumb_func_start sub_812E14C
-sub_812E14C: @ 812E14C
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0812E174
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _0812E16A
- b _0812E476
-_0812E16A:
- lsls r0, 2
- ldr r1, _0812E178
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812E174: .4byte gTasks
-_0812E178: .4byte _0812E17C
- .align 2, 0
-_0812E17C:
- .4byte _0812E194
- .4byte _0812E300
- .4byte _0812E388
- .4byte _0812E3BC
- .4byte _0812E3E8
- .4byte _0812E420
-_0812E194:
- ldr r1, _0812E230
- ldr r3, _0812E234
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0812E238
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0812E23C
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812E1D4
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_0812E1D4:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _0812E240
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0812E244
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0812E248
- bl LZDecompressVram
- ldr r0, _0812E24C
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0812E250
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812E260
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
- ldr r1, _0812E254
- ldr r3, _0812E258
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0812E25C
- strh r4, [r0]
- b _0812E2D2
- .align 2, 0
-_0812E230: .4byte REG_BLDCNT
-_0812E234: .4byte 0x00003f42
-_0812E238: .4byte 0x00000d03
-_0812E23C: .4byte REG_BG1CNT
-_0812E240: .4byte 0x040000d4
-_0812E244: .4byte 0x85000400
-_0812E248: .4byte gUnknown_08D2AA98
-_0812E24C: .4byte gUnknown_08D2A9E0
-_0812E250: .4byte gUnknown_08D2AA80
-_0812E254: .4byte gUnknown_030042C0
-_0812E258: .4byte 0x0000ffc8
-_0812E25C: .4byte gUnknown_030041B4
-_0812E260:
- ldr r0, _0812E2A0
- ldrb r0, [r0]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E2B4
- ldr r1, _0812E2A4
- cmp r4, 0x1
- bne _0812E284
- ldr r2, _0812E2A8
- adds r0, r2, 0
- strh r0, [r1]
-_0812E284:
- cmp r4, 0x3
- bne _0812E28E
- ldr r3, _0812E2AC
- adds r0, r3, 0
- strh r0, [r1]
-_0812E28E:
- cmp r4, 0
- bne _0812E296
- movs r0, 0xE
- strh r0, [r1]
-_0812E296:
- cmp r4, 0x2
- bne _0812E2CC
- ldr r1, _0812E2A4
- ldr r2, _0812E2B0
- b _0812E2C8
- .align 2, 0
-_0812E2A0: .4byte gUnknown_0202F7C9
-_0812E2A4: .4byte gUnknown_030042C0
-_0812E2A8: .4byte 0x0000ff65
-_0812E2AC: .4byte 0x0000ff8d
-_0812E2B0: .4byte 0x0000ffec
-_0812E2B4:
- cmp r4, 0x1
- bne _0812E2C0
- ldr r1, _0812E2EC
- ldr r3, _0812E2F0
- adds r0, r3, 0
- strh r0, [r1]
-_0812E2C0:
- cmp r4, 0
- bne _0812E2CC
- ldr r1, _0812E2EC
- ldr r2, _0812E2F4
-_0812E2C8:
- adds r0, r2, 0
- strh r0, [r1]
-_0812E2CC:
- ldr r1, _0812E2F8
- movs r0, 0
- strh r0, [r1]
-_0812E2D2:
- ldr r0, _0812E2FC
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812E2EC
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, _0812E2F8
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- b _0812E380
- .align 2, 0
-_0812E2EC: .4byte gUnknown_030042C0
-_0812E2F0: .4byte 0x0000ff79
-_0812E2F4: .4byte 0x0000fff6
-_0812E2F8: .4byte gUnknown_030041B4
-_0812E2FC: .4byte gTasks
-_0812E300:
- ldr r1, _0812E334
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0
- strh r0, [r5, 0xE]
- ldr r0, _0812E338
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E344
- ldr r2, _0812E33C
- ldr r1, _0812E340
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r5, [r5, 0x1C]
- adds r0, r5
- b _0812E356
- .align 2, 0
-_0812E334: .4byte gTasks
-_0812E338: .4byte gUnknown_0202F7C9
-_0812E33C: .4byte gUnknown_030042C0
-_0812E340: .4byte gUnknown_08402604
-_0812E344:
- ldr r2, _0812E374
- ldr r1, _0812E378
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r5, 0x1C]
- subs r0, r1
-_0812E356:
- strh r0, [r2]
- ldr r0, _0812E37C
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0812E380
- strh r0, [r1, 0x8]
- b _0812E476
- .align 2, 0
-_0812E374: .4byte gUnknown_030042C0
-_0812E378: .4byte gUnknown_08402604
-_0812E37C: .4byte gTasks
-_0812E380:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812E476
-_0812E388:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _0812E3A2
- movs r0, 0x5
- strh r0, [r4, 0xA]
-_0812E3A2:
- ldr r2, _0812E3B8
- ldrh r0, [r4, 0xA]
- lsls r0, 8
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bne _0812E476
- b _0812E3DC
- .align 2, 0
-_0812E3B8: .4byte REG_BLDALPHA
-_0812E3BC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r1, [r4, 0xE]
- adds r1, 0x1
- strh r1, [r4, 0xE]
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0812E3E4
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- adds r0, r2
- ldrb r0, [r0]
- cmp r1, r0
- ble _0812E476
-_0812E3DC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E476
- .align 2, 0
-_0812E3E4: .4byte gUnknown_08402608
-_0812E3E8:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0812E402
- movs r0, 0xD
- strh r0, [r4, 0xA]
-_0812E402:
- ldr r2, _0812E41C
- ldrh r0, [r4, 0xA]
- lsls r0, 8
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xD
- bne _0812E476
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E476
- .align 2, 0
-_0812E41C: .4byte REG_BLDALPHA
-_0812E420:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r1, _0812E480
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0812E484
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812E450
- ldr r2, _0812E488
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812E450:
- ldr r2, _0812E488
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812E48C
- strh r4, [r0]
- ldr r0, _0812E490
- strh r4, [r0]
- ldr r0, _0812E494
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, r6, 0
- bl move_anim_task_del
-_0812E476:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E480: .4byte 0x040000d4
-_0812E484: .4byte 0x85000200
-_0812E488: .4byte REG_BG1CNT
-_0812E48C: .4byte gUnknown_030042C0
-_0812E490: .4byte gUnknown_030041B4
-_0812E494: .4byte REG_BLDCNT
- thumb_func_end sub_812E14C
-
- thumb_func_start sub_812E498
-sub_812E498: @ 812E498
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812E4D0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812E4D8
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812E4D4
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E4EA
- .align 2, 0
-_0812E4D0: .4byte gTasks
-_0812E4D4: .4byte gUnknown_08402610
-_0812E4D8:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812E4EA
- adds r0, r5, 0
- bl move_anim_task_del
-_0812E4EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812E498
-
- thumb_func_start sub_812E4F0
-sub_812E4F0: @ 812E4F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _0812E50E
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812E562
-_0812E50E:
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- cmp r1, 0x14
- ble _0812E562
- ldrh r0, [r4, 0x30]
- adds r0, 0xA0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0x80
- strh r0, [r4, 0x32]
- ldr r0, _0812E53C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812E540
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _0812E546
- .align 2, 0
-_0812E53C: .4byte gUnknown_0202F7C8
-_0812E540:
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
-_0812E546:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _0812E562
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E562:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812E4F0
-
- thumb_func_start sub_812E568
-sub_812E568: @ 812E568
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812E58C
- adds r4, r0, r1
- ldr r5, _0812E590
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812E594
- adds r0, r2, 0
- bl move_anim_task_del
- b _0812E628
- .align 2, 0
-_0812E58C: .4byte gTasks
-_0812E590: .4byte gUnknown_03004B00
-_0812E594:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bge _0812E5A0
- movs r0, 0
- strh r0, [r5, 0x4]
-_0812E5A0:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- ble _0812E5AC
- movs r0, 0x2
- strh r0, [r5, 0x4]
-_0812E5AC:
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r1, 1
- movs r0, 0x8
- subs r0, r1
- strh r0, [r4, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- lsls r0, 7
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0x4]
- adds r0, 0x2
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812E5F8
- ldr r0, _0812E5F4
- b _0812E5FA
- .align 2, 0
-_0812E5F4: .4byte gUnknown_0202F7C8
-_0812E5F8:
- ldr r0, _0812E630
-_0812E5FA:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E618
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x12]
-_0812E618:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _0812E634
- str r0, [r4]
-_0812E628:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E630: .4byte gUnknown_0202F7C9
-_0812E634: .4byte sub_812E638
- thumb_func_end sub_812E568
-
- thumb_func_start sub_812E638
-sub_812E638: @ 812E638
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812E65C
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r6, [r4, r0]
- cmp r6, 0x1
- beq _0812E6C0
- cmp r6, 0x1
- bgt _0812E660
- cmp r6, 0
- beq _0812E66C
- b _0812E798
- .align 2, 0
-_0812E65C: .4byte gTasks
-_0812E660:
- cmp r6, 0x2
- beq _0812E718
- cmp r6, 0x3
- bne _0812E66A
- b _0812E788
-_0812E66A:
- b _0812E798
-_0812E66C:
- ldr r2, _0812E6BC
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0812E798
- strh r6, [r4, 0xA]
- b _0812E780
- .align 2, 0
-_0812E6BC: .4byte gSprites
-_0812E6C0:
- ldr r2, _0812E714
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 1
- cmp r1, r0
- blt _0812E798
- movs r0, 0
- strh r0, [r4, 0xA]
- b _0812E780
- .align 2, 0
-_0812E714: .4byte gSprites
-_0812E718:
- ldr r2, _0812E77C
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- movs r5, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0812E798
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0812E780
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0x8]
- b _0812E798
- .align 2, 0
-_0812E77C: .4byte gSprites
-_0812E780:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E798
-_0812E788:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_0812E798:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812E638
-
- thumb_func_start sub_812E7A0
-sub_812E7A0: @ 812E7A0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812E7BC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0812E7C4
- strh r0, [r4, 0x20]
- ldr r1, _0812E7C0
- ldrh r0, [r1]
- b _0812E7CE
- .align 2, 0
-_0812E7BC: .4byte gUnknown_0202F7C8
-_0812E7C0: .4byte gUnknown_03004B00
-_0812E7C4:
- movs r0, 0xF0
- strh r0, [r4, 0x20]
- ldr r1, _0812E7E8
- ldrh r0, [r1]
- subs r0, 0x1E
-_0812E7CE:
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrb r1, [r1, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0812E7EC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E7E8: .4byte gUnknown_03004B00
-_0812E7EC: .4byte sub_812E7F0
- thumb_func_end sub_812E7A0
-
- thumb_func_start sub_812E7F0
-sub_812E7F0: @ 812E7F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _0812E830
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812E834
- ldrh r1, [r4, 0x20]
- adds r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF0
- ble _0812E822
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E822:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Sin
- b _0812E858
- .align 2, 0
-_0812E830: .4byte gUnknown_0202F7C8
-_0812E834:
- ldrh r1, [r4, 0x20]
- subs r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bge _0812E84C
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E84C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Cos
-_0812E858:
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812E7F0
-
- thumb_func_start sub_812E860
-sub_812E860: @ 812E860
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812E8A8
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- strh r0, [r4, 0x22]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x24]
- ldr r0, _0812E8AC
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- bl sub_8078E70
- ldr r0, _0812E8B0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E8A8: .4byte gTasks
-_0812E8AC: .4byte gUnknown_03004B00
-_0812E8B0: .4byte sub_812E8B4
- thumb_func_end sub_812E860
-
- thumb_func_start sub_812E8B4
-sub_812E8B4: @ 812E8B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0812E8E0
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- mov r8, r0
- cmp r0, 0x1
- beq _0812E950
- cmp r0, 0x1
- bgt _0812E8E4
- cmp r0, 0
- beq _0812E8EC
- b _0812E9CA
- .align 2, 0
-_0812E8E0: .4byte gTasks
-_0812E8E4:
- mov r2, r8
- cmp r2, 0x2
- beq _0812E9B8
- b _0812E9CA
-_0812E8EC:
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r1, [r7, 0xC]
- adds r2, r0, r1
- strh r2, [r7, 0xC]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r3, [r7, 0x24]
- mov r8, r3
- movs r3, 0x24
- ldrsh r1, [r7, r3]
- cmp r0, r1
- blt _0812E9CA
- mov r0, r8
- subs r5, r0, r2
- lsls r5, 16
- asrs r5, 16
- adds r6, r1, 0
- lsls r6, 1
- adds r0, r5, 0
- adds r1, r6, 0
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x1
- ands r4, r1
- cmp r4, 0
- bne _0812E944
- lsls r0, 16
- asrs r0, 16
- mov r2, r8
- subs r0, r2, r0
- b _0812E9A2
-_0812E944:
- lsls r0, 16
- asrs r0, 16
- mov r3, r8
- subs r0, r3
- strh r0, [r7, 0xC]
- b _0812E9CA
-_0812E950:
- ldr r1, _0812E9A8
- adds r0, r1, 0
- ldrh r2, [r7, 0xC]
- adds r1, r0, r2
- strh r1, [r7, 0xC]
- movs r3, 0xC
- ldrsh r0, [r7, r3]
- movs r2, 0x24
- ldrsh r6, [r7, r2]
- cmn r0, r6
- bgt _0812E9CA
- ldrh r3, [r7, 0x24]
- mov r9, r3
- mov r0, r9
- subs r4, r0, r1
- lsls r4, 16
- asrs r4, 16
- lsls r6, 1
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- mov r1, r8
- ands r1, r5
- lsls r0, r1, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _0812E9AC
- lsls r0, r2, 16
- asrs r0, 16
- mov r2, r9
- subs r0, r2
-_0812E9A2:
- strh r0, [r7, 0xC]
- strh r1, [r7, 0x8]
- b _0812E9CA
- .align 2, 0
-_0812E9A8: .4byte 0xfffffe00
-_0812E9AC:
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r9
- subs r0, r3, r0
- strh r0, [r7, 0xC]
- b _0812E9CA
-_0812E9B8:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r4, 0
- bl move_anim_task_del
- b _0812EA40
-_0812E9CA:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r7, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldr r2, _0812EA38
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0xC
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bge _0812E9FE
- adds r0, 0x3F
-_0812E9FE:
- asrs r0, 6
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r7, 0xA]
- adds r0, 0x1
- strh r0, [r7, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0812EA40
- ldrh r1, [r7, 0x20]
- movs r3, 0x20
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _0812EA3C
- subs r0, r1, 0x1
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x22]
- subs r0, r1
- strh r0, [r7, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0812EA40
- movs r0, 0x10
- strh r0, [r7, 0x24]
- b _0812EA40
- .align 2, 0
-_0812EA38: .4byte gSprites
-_0812EA3C:
- movs r0, 0x2
- strh r0, [r7, 0x8]
-_0812EA40:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E8B4
-
- thumb_func_start sub_812EA4C
-sub_812EA4C: @ 812EA4C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812EAAC
- ldr r6, _0812EAA4
- movs r2, 0x4
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0812EA80
- ldr r4, _0812EAA8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
-_0812EA80:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrh r1, [r6, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r1, r2
- strh r0, [r5, 0x22]
- movs r0, 0x80
- strh r0, [r5, 0x30]
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0812EB0A
- .align 2, 0
-_0812EAA4: .4byte gUnknown_03004B00
-_0812EAA8: .4byte gUnknown_0202F7C8
-_0812EAAC:
- ldrh r1, [r5, 0x30]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r5, 0x26]
- adds r0, r2
- strh r0, [r5, 0x26]
- movs r2, 0x36
- ldrsh r0, [r5, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _0812EAEA
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmn r1, r0
- ble _0812EAEA
- movs r0, 0x1
- strh r0, [r5, 0x36]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- negs r0, r0
- movs r1, 0x3
- bl __divsi3
- lsls r0, 1
- strh r0, [r5, 0x32]
-_0812EAEA:
- adds r0, r4, 0
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x80
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812EB0A
- adds r0, r5, 0
- bl move_anim_8072740
-_0812EB0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812EA4C
-
- thumb_func_start sub_812EB10
-sub_812EB10: @ 812EB10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r1, _0812EB40
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0812EC1C
- ldr r0, _0812EB44
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r8, r0
- cmp r1, 0
- bne _0812EB4C
- ldr r0, _0812EB48
- b _0812EB4E
- .align 2, 0
-_0812EB40: .4byte gTasks
-_0812EB44: .4byte gUnknown_03004B00
-_0812EB48: .4byte gUnknown_0202F7C8
-_0812EB4C:
- ldr r0, _0812EB88
-_0812EB4E:
- ldrb r0, [r0]
- strh r0, [r2, 0x1E]
- mov r1, r8
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812EB8C
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r6, r0, r1
- strh r5, [r6, 0x1C]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- mov r2, r8
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0x1
- beq _0812EBB0
- cmp r0, 0x1
- bgt _0812EB90
- cmp r0, 0
- beq _0812EB98
- lsls r2, r5, 4
- b _0812EBF8
- .align 2, 0
-_0812EB88: .4byte gUnknown_0202F7C9
-_0812EB8C: .4byte gTasks
-_0812EB90:
- cmp r0, 0x2
- beq _0812EBBA
- lsls r2, r5, 4
- b _0812EBF8
-_0812EB98:
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r5, 0
- movs r1, 0xE0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- lsls r2, r5, 4
- b _0812EBF8
-_0812EBB0:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF0
- lsls r3, 4
- b _0812EBC2
-_0812EBBA:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF1
- lsls r3, 8
-_0812EBC2:
- adds r0, r5, 0
- movs r1, 0xD0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812EBE8
- ldrb r0, [r6, 0x1E]
- bl battle_side_get_owner
- lsls r0, 24
- lsls r2, r5, 4
- cmp r0, 0
- bne _0812EBF8
-_0812EBE8:
- ldr r0, _0812EC14
- lsls r2, r5, 4
- adds r1, r2, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x10
- strh r0, [r1, 0x26]
-_0812EBF8:
- ldr r1, _0812EC14
- adds r0, r2, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x24]
- ldr r0, _0812EC18
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812EC68
- .align 2, 0
-_0812EC14: .4byte gSprites
-_0812EC18: .4byte gTasks
-_0812EC1C:
- ldrb r5, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0812EC40
- strh r4, [r2, 0xC]
- ldr r0, _0812EC74
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x24]
- negs r0, r0
- strh r0, [r1, 0x24]
-_0812EC40:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _0812EC68
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _0812EC74
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x24]
- strh r4, [r0, 0x26]
- adds r0, r7, 0
- bl move_anim_task_del
-_0812EC68:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EC74: .4byte gSprites
- thumb_func_end sub_812EB10
-
- thumb_func_start sub_812EC78
-sub_812EC78: @ 812EC78
- push {r4,r5,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xC
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, r0
- ldr r3, _0812ECC4
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _0812ECC8
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random
- ldr r5, _0812ECCC
- ands r5, r0
- bl Random
- movs r1, 0xFF
- ands r1, r0
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0812ECD0
- movs r2, 0xBC
- lsls r2, 3
- adds r0, r5, r2
- b _0812ECD8
- .align 2, 0
-_0812ECC4: .4byte 0x000003ff
-_0812ECC8: .4byte 0xfffffc00
-_0812ECCC: .4byte 0x000001ff
-_0812ECD0:
- movs r3, 0xBC
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r5
-_0812ECD8:
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812ECEA
- movs r2, 0x90
- lsls r2, 3
- adds r0, r1, r2
- b _0812ECF2
-_0812ECEA:
- movs r3, 0x90
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r1
-_0812ECF2:
- strh r0, [r4, 0x30]
- ldr r0, _0812ED04
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _0812ED0C
- ldr r0, _0812ED08
- b _0812ED0E
- .align 2, 0
-_0812ED04: .4byte gUnknown_03004B00
-_0812ED08: .4byte 0x0000fff8
-_0812ED0C:
- movs r0, 0xF8
-_0812ED0E:
- strh r0, [r4, 0x20]
- movs r0, 0x68
- strh r0, [r4, 0x22]
- ldr r0, _0812ED20
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812ED20: .4byte sub_812ED24
- thumb_func_end sub_812EC78
-
- thumb_func_start sub_812ED24
-sub_812ED24: @ 812ED24
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812ED3C
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _0812ED46
-_0812ED3C:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_0812ED46:
- strh r0, [r4, 0x24]
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- adds r0, r3, 0
- subs r0, 0x16
- strh r0, [r4, 0x2E]
- adds r1, r2, 0
- subs r1, 0x30
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0812ED6A
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0812ED6A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0812ED7E
- adds r0, r4, 0
- bl move_anim_8072740
-_0812ED7E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812ED24
-
- thumb_func_start sub_812ED84
-sub_812ED84: @ 812ED84
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0812EDE4
- ldr r2, _0812EDE8
- adds r0, r2, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0812EDEC
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812EDF0
- strh r1, [r0]
- ldr r0, _0812EDF4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r0, _0812EDF8
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812EDFC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EDE4: .4byte REG_WINOUT
-_0812EDE8: .4byte 0x00001f3f
-_0812EDEC: .4byte gUnknown_030042C4
-_0812EDF0: .4byte gUnknown_03004240
-_0812EDF4: .4byte REG_WIN0H
-_0812EDF8: .4byte gUnknown_03004B00
-_0812EDFC: .4byte sub_812EE00
- thumb_func_end sub_812ED84
-
- thumb_func_start sub_812EE00
-sub_812EE00: @ 812EE00
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0812EE3E
- cmp r0, 0x1
- bgt _0812EE16
- cmp r0, 0
- beq _0812EE20
- b _0812EE94
-_0812EE16:
- cmp r0, 0x2
- beq _0812EE54
- cmp r0, 0x3
- beq _0812EE76
- b _0812EE94
-_0812EE20:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812EE94
- b _0812EE6E
-_0812EE3E:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0812EE94
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _0812EE6E
-_0812EE54:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812EE94
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0812EE6E:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- b _0812EE94
-_0812EE76:
- ldr r1, _0812EE9C
- ldr r2, _0812EEA0
- adds r0, r2, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r1, r3, 0
- eors r0, r1
- strh r0, [r2]
- adds r0, r4, 0
- bl move_anim_8072740
-_0812EE94:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EE9C: .4byte REG_WINOUT
-_0812EEA0: .4byte 0x00003f3f
- thumb_func_end sub_812EE00
-
- thumb_func_start sub_812EEA4
-sub_812EEA4: @ 812EEA4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0812EEE0
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x20]
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r1, _0812EEE4
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldr r1, _0812EEE8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EEE0: .4byte gUnknown_0202F7C8
-_0812EEE4: .4byte gUnknown_03004B00
-_0812EEE8: .4byte sub_812EEEC
- thumb_func_end sub_812EEA4
-
- thumb_func_start sub_812EEEC
-sub_812EEEC: @ 812EEEC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- ldrh r1, [r4, 0x32]
- lsls r1, 16
- asrs r1, 24
- bl Sin
- strh r0, [r4, 0x24]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- ldrh r1, [r4, 0x34]
- lsls r1, 16
- asrs r1, 24
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x9
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- lsls r1, r0, 16
- cmp r0, 0x3F
- bls _0812EF26
- asrs r0, r1, 16
- cmp r0, 0xC3
- ble _0812EF38
-_0812EF26:
- ldr r0, _0812EF34
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- b _0812EF42
- .align 2, 0
-_0812EF34: .4byte gUnknown_0202F7C8
-_0812EF38:
- ldr r0, _0812EF84
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x1
-_0812EF42:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _0812EF88
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1, 0
- ldrh r3, [r4, 0x32]
- adds r0, r3
- strh r0, [r4, 0x32]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r3, [r4, 0x34]
- adds r0, r3
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0812EFB8
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
- b _0812EFB8
- .align 2, 0
-_0812EF84: .4byte gUnknown_0202F7C8
-_0812EF88:
- cmp r2, 0x1
- bne _0812EFB8
- ldr r1, _0812EFC0
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, _0812EFC4
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812EFB8
- adds r0, r4, 0
- bl move_anim_8072740
-_0812EFB8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EFC0: .4byte 0xfffffc00
-_0812EFC4: .4byte 0xffffff00
- thumb_func_end sub_812EEEC
-
- thumb_func_start sub_812EFC8
-sub_812EFC8: @ 812EFC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812F004
- movs r0, 0x1
- str r0, [sp, 0x14]
- ldr r0, _0812F000
- ldr r1, [r0, 0x10]
- mov r9, r1
- ldr r2, [r0, 0xC]
- mov r8, r2
- ldrh r6, [r0, 0x2]
- movs r3, 0x14
- b _0812F13C
- .align 2, 0
-_0812F000: .4byte 0x02019348
-_0812F004:
- ldr r0, _0812F070
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812F0AC
- movs r0, 0
- str r0, [sp, 0x14]
- ldr r6, _0812F074
- ldr r4, _0812F078
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, _0812F07C
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _0812F080
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0812F0A4
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812F084
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- b _0812F092
- .align 2, 0
-_0812F070: .4byte gUnknown_0202F7C8
-_0812F074: .4byte gUnknown_02024A6A
-_0812F078: .4byte gUnknown_0202F7C9
-_0812F07C: .4byte gPlayerParty
-_0812F080: .4byte 0x02017800
-_0812F084:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, _0812F0A0
- adds r0, r1
-_0812F092:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0812F0A6
- .align 2, 0
-_0812F0A0: .4byte gEnemyParty
-_0812F0A4:
- ldrh r6, [r1, 0x2]
-_0812F0A6:
- movs r1, 0x14
- mov r10, r1
- b _0812F13E
-_0812F0AC:
- movs r2, 0x1
- str r2, [sp, 0x14]
- ldr r6, _0812F10C
- ldr r4, _0812F110
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, _0812F114
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _0812F118
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0812F138
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812F120
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, _0812F11C
- adds r0, r1
- b _0812F12C
- .align 2, 0
-_0812F10C: .4byte gUnknown_02024A6A
-_0812F110: .4byte gUnknown_0202F7C9
-_0812F114: .4byte gEnemyParty
-_0812F118: .4byte 0x02017800
-_0812F11C: .4byte gPlayerParty
-_0812F120:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
-_0812F12C:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0812F13A
-_0812F138:
- ldrh r6, [r1, 0x2]
-_0812F13A:
- ldr r3, _0812F218
-_0812F13C:
- mov r10, r3
-_0812F13E:
- ldr r0, _0812F21C
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0812F21C
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- adds r4, r1
- lsls r4, 16
- asrs r4, 16
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- mov r3, r9
- str r3, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- adds r0, r6, 0
- ldr r1, [sp, 0x14]
- movs r2, 0
- adds r3, r4, 0
- bl sub_8079F44
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0812F220
- lsls r5, r6, 4
- adds r5, r6
- lsls r5, 2
- adds r5, r0
- movs r0, 0x3
- ands r7, r0
- lsls r7, 2
- mov r8, r7
- ldrb r0, [r5, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r0
- mov r2, r8
- orrs r1, r2
- strb r1, [r5, 0x5]
- ldrb r2, [r5, 0x1]
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r5, 0x1]
- ldr r0, _0812F224
- lsrs r1, 4
- lsls r1, 4
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x20
- bl FillPalette
- ldrb r0, [r5, 0x5]
- ands r4, r0
- mov r0, r8
- orrs r4, r0
- strb r4, [r5, 0x5]
- ldr r1, _0812F228
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _0812F22C
- ldr r0, _0812F230
- ldr r2, [sp, 0x10]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r0, r2
- strh r0, [r3]
- strh r6, [r1, 0x8]
- ldr r0, _0812F234
- str r0, [r1]
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F218: .4byte 0x0000ffec
-_0812F21C: .4byte gUnknown_0202F7C8
-_0812F220: .4byte gSprites
-_0812F224: .4byte 0x00007fff
-_0812F228: .4byte REG_BLDCNT
-_0812F22C: .4byte REG_BLDALPHA
-_0812F230: .4byte gTasks
-_0812F234: .4byte sub_812F238
- thumb_func_end sub_812EFC8
-
- thumb_func_start sub_812F238
-sub_812F238: @ 812F238
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812F284
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812F280
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0xA]
- adds r1, 0x1
- strh r1, [r3, 0xA]
- ldr r2, _0812F288
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0xA
- bne _0812F280
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x1C]
- strh r0, [r3, 0x1E]
- ldr r0, _0812F28C
- str r0, [r3]
-_0812F280:
- pop {r0}
- bx r0
- .align 2, 0
-_0812F284: .4byte gTasks
-_0812F288: .4byte REG_BLDALPHA
-_0812F28C: .4byte sub_812F290
- thumb_func_end sub_812F238
-
- thumb_func_start sub_812F290
-sub_812F290: @ 812F290
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812F308
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r2, [r5, 0x8]
- ldrh r0, [r5, 0x1C]
- subs r0, 0x10
- movs r4, 0
- strh r0, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x80
- strh r0, [r5, 0x1E]
- ldr r1, _0812F30C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r6, r0, r1
- ldrb r2, [r6, 0x1]
- lsls r1, r2, 30
- lsrs r1, 30
- movs r0, 0x2
- orrs r1, r0
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- movs r0, 0x1E
- ldrsh r3, [r5, r0]
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8078FDC
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0812F2FE
- adds r0, r6, 0
- bl sub_8079098
- adds r0, r6, 0
- bl sub_807A0F4
- ldr r0, _0812F310
- str r0, [r5]
-_0812F2FE:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F308: .4byte gTasks
-_0812F30C: .4byte gSprites
-_0812F310: .4byte sub_8078634
- thumb_func_end sub_812F290
-
- thumb_func_start sub_812F314
-sub_812F314: @ 812F314
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0812F334
- adds r4, r1, r0
- ldr r0, _0812F338
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812F340
- ldr r0, _0812F33C
- b _0812F342
- .align 2, 0
-_0812F334: .4byte gTasks
-_0812F338: .4byte gUnknown_03004B00
-_0812F33C: .4byte gUnknown_0202F7C8
-_0812F340:
- ldr r0, _0812F3C0
-_0812F342:
- ldrb r5, [r0]
- movs r6, 0
- strh r6, [r4, 0x8]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x10
- strh r0, [r4, 0xE]
- strh r6, [r4, 0x10]
- strh r5, [r4, 0x12]
- movs r0, 0x20
- strh r0, [r4, 0x14]
- strh r6, [r4, 0x16]
- movs r0, 0x18
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812F374
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x18]
-_0812F374:
- adds r0, r5, 0
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x22
- strh r0, [r4, 0x22]
- cmp r0, 0
- bge _0812F388
- strh r6, [r4, 0x22]
-_0812F388:
- ldrh r0, [r4, 0x22]
- adds r0, 0x42
- strh r0, [r4, 0x24]
- ldr r0, _0812F3C4
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- adds r0, r5, 0
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812F3DC
- ldr r0, _0812F3C8
- str r0, [sp]
- ldr r1, _0812F3CC
- ldr r2, _0812F3D0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812F3D4
- ldrh r5, [r0]
- ldr r0, _0812F3D8
- b _0812F3EE
- .align 2, 0
-_0812F3C0: .4byte gUnknown_0202F7C9
-_0812F3C4: .4byte gUnknown_03004B00
-_0812F3C8: .4byte REG_BG1HOFS
-_0812F3CC: .4byte REG_BLDCNT
-_0812F3D0: .4byte 0x00003f42
-_0812F3D4: .4byte gUnknown_030042C0
-_0812F3D8: .4byte gUnknown_030041B4
-_0812F3DC:
- ldr r0, _0812F454
- str r0, [sp]
- ldr r1, _0812F458
- ldr r2, _0812F45C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812F460
- ldrh r5, [r0]
- ldr r0, _0812F464
-_0812F3EE:
- ldrh r3, [r0]
- movs r7, 0
- movs r2, 0
- ldr r6, _0812F468
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r6
- mov r12, r0
-_0812F3FE:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r6
- strh r5, [r0]
- add r1, r12
- strh r5, [r1]
- adds r0, r2, 0x1
- lsls r0, 1
- adds r1, r0, r6
- strh r3, [r1]
- add r0, r12
- strh r3, [r0]
- lsls r0, r7, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- adds r2, 0x2
- lsls r2, 16
- lsrs r2, 16
- lsrs r7, r0, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0812F3FE
- ldr r0, _0812F46C
- str r0, [sp, 0x4]
- mov r1, sp
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1, 0x8]
- mov r0, sp
- strb r2, [r0, 0x9]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- bl sub_80895F8
- ldr r0, _0812F470
- str r0, [r4]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F454: .4byte REG_BG2HOFS
-_0812F458: .4byte REG_BLDCNT
-_0812F45C: .4byte 0x00003f44
-_0812F460: .4byte gUnknown_03004288
-_0812F464: .4byte gUnknown_03004280
-_0812F468: .4byte gUnknown_03004DE0
-_0812F46C: .4byte 0xa6600001
-_0812F470: .4byte sub_812F474
- thumb_func_end sub_812F314
-
- thumb_func_start sub_812F474
-sub_812F474: @ 812F474
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0812F4A8
- adds r6, r0, r1
- ldrb r0, [r6, 0x12]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812F4B4
- ldr r0, _0812F4AC
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, _0812F4B0
- b _0812F4BC
- .align 2, 0
-_0812F4A8: .4byte gTasks
-_0812F4AC: .4byte gUnknown_030042C0
-_0812F4B0: .4byte gUnknown_030041B4
-_0812F4B4:
- ldr r0, _0812F4D4
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, _0812F4D8
-_0812F4BC:
- ldrh r0, [r0]
- str r0, [sp, 0x8]
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _0812F4CA
- b _0812F6A6
-_0812F4CA:
- cmp r0, 0x1
- bgt _0812F4DC
- cmp r0, 0
- beq _0812F4EA
- b _0812F712
- .align 2, 0
-_0812F4D4: .4byte gUnknown_03004288
-_0812F4D8: .4byte gUnknown_03004280
-_0812F4DC:
- cmp r0, 0x2
- bne _0812F4E2
- b _0812F6C4
-_0812F4E2:
- cmp r0, 0x3
- bne _0812F4E8
- b _0812F70C
-_0812F4E8:
- b _0812F712
-_0812F4EA:
- movs r2, 0x24
- ldrsh r0, [r6, r2]
- lsls r0, 17
- lsrs r5, r0, 16
- movs r3, 0
- str r3, [sp]
- mov r9, r3
- movs r4, 0
- ldrh r0, [r6, 0xA]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0xA]
- ldrh r7, [r6, 0xA]
- mov r8, r7
- movs r0, 0x14
- ldrsh r1, [r6, r0]
- movs r0, 0xFC
- lsls r0, 3
- bl __divsi3
- strh r0, [r6, 0x1A]
- movs r1, 0x16
- ldrsh r0, [r6, r1]
- lsls r0, 1
- movs r2, 0x1A
- ldrsh r1, [r6, r2]
- bl __divsi3
- negs r0, r0
- strh r0, [r6, 0x1C]
- ldrh r0, [r6, 0x16]
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- ldrh r2, [r6, 0x24]
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- ble _0812F60A
- ldr r0, _0812F660
- mov r10, r0
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- str r0, [sp, 0x10]
- ldr r2, [sp, 0x8]
- lsls r0, r2, 16
- asrs r0, 16
- str r0, [sp, 0xC]
-_0812F55A:
- lsls r5, 16
- asrs r5, 16
- adds r2, r5, 0x1
- lsls r2, 1
- mov r3, r10
- ldrb r1, [r3, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- ldr r0, _0812F664
- adds r2, r0
- lsls r4, 16
- asrs r4, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- subs r0, r4, r0
- ldr r3, [sp, 0xC]
- adds r0, r3, r0
- strh r0, [r2]
- lsls r3, r5, 1
- mov r0, r10
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- ldr r1, _0812F664
- adds r3, r1
- lsls r1, r7, 16
- asrs r1, 16
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- mov r7, r8
- lsls r2, r7, 16
- asrs r2, 16
- lsls r0, r2, 1
- ldr r7, _0812F668
- adds r0, r7
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- adds r1, r0
- strh r1, [r3]
- adds r2, 0xA
- mov r8, r2
- movs r0, 0xFF
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldrh r0, [r6, 0x1C]
- ldrh r2, [r6, 0x1E]
- adds r0, r2
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- adds r4, 0x1
- lsls r4, 16
- lsrs r4, 16
- subs r5, 0x2
- lsls r5, 16
- lsrs r5, 16
- ldr r3, [sp]
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r1, [r6, 0x14]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- str r2, [sp]
- asrs r0, 21
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, _0812F66C
- add r0, r12
- lsrs r2, r0, 16
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bgt _0812F55A
-_0812F60A:
- lsls r1, r2, 17
- cmp r1, 0
- blt _0812F636
- ldr r4, _0812F664
- ldr r7, [sp, 0x4]
- lsls r0, r7, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_0812F622:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- subs r2, 0x2
- lsls r1, r2, 16
- cmp r1, 0
- bge _0812F622
-_0812F636:
- ldrh r0, [r6, 0x14]
- adds r0, 0x1
- strh r0, [r6, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _0812F69C
- movs r0, 0x40
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812F670
- ldrh r0, [r6, 0xE]
- subs r0, 0x1
- strh r0, [r6, 0xE]
- b _0812F676
- .align 2, 0
-_0812F660: .4byte gUnknown_03004DC0
-_0812F664: .4byte gUnknown_03004DE0
-_0812F668: .4byte gSineTable
-_0812F66C: .4byte 0xffff0000
-_0812F670:
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
-_0812F676:
- ldr r0, _0812F698
- ldrh r1, [r6, 0x10]
- lsls r1, 8
- ldrh r2, [r6, 0xE]
- orrs r1, r2
- strh r1, [r0]
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- cmp r1, 0
- bne _0812F712
- movs r3, 0x10
- ldrsh r0, [r6, r3]
- cmp r0, 0x10
- bne _0812F712
- strh r1, [r6, 0xC]
- strh r1, [r6, 0xE]
- b _0812F700
- .align 2, 0
-_0812F698: .4byte REG_BLDALPHA
-_0812F69C:
- ldrh r0, [r6, 0x18]
- ldrh r7, [r6, 0x16]
- adds r0, r7
- strh r0, [r6, 0x16]
- b _0812F712
-_0812F6A6:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0812F712
- ldr r1, _0812F6C0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0
- strh r0, [r6, 0xC]
- b _0812F700
- .align 2, 0
-_0812F6C0: .4byte gUnknown_03004DC0
-_0812F6C4:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812F6DA
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- b _0812F6E0
-_0812F6DA:
- ldrh r0, [r6, 0x10]
- subs r0, 0x1
- strh r0, [r6, 0x10]
-_0812F6E0:
- ldr r2, _0812F708
- ldrh r0, [r6, 0x10]
- lsls r0, 8
- ldrh r1, [r6, 0xE]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0x10
- bne _0812F712
- movs r2, 0x10
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0812F712
- strh r0, [r6, 0xC]
- strh r0, [r6, 0xE]
-_0812F700:
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0812F712
- .align 2, 0
-_0812F708: .4byte REG_BLDALPHA
-_0812F70C:
- adds r0, r4, 0
- bl move_anim_task_del
-_0812F712:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812F474
-
- thumb_func_start sub_812F724
-sub_812F724: @ 812F724
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812F75C
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _0812F760
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, _0812F764
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _0812F768
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F75C: .4byte gTasks
-_0812F760: .4byte gUnknown_03004B00
-_0812F764: .4byte gUnknown_08402750
-_0812F768: .4byte sub_812F76C
- thumb_func_end sub_812F724
-
- thumb_func_start sub_812F76C
-sub_812F76C: @ 812F76C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, _0812F7C4
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x14
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _0812F7D0
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812F7E0
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _0812F7D0
- ldr r2, _0812F7C8
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0812F7CC
- strh r1, [r0, 0x24]
- b _0812F7E0
- .align 2, 0
-_0812F7C4: .4byte gTasks
-_0812F7C8: .4byte gSprites
-_0812F7CC: .4byte 0x0000ffff
-_0812F7D0:
- ldr r2, _0812F800
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_0812F7E0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812F7F8
- adds r0, r4, 0
- bl move_anim_task_del
-_0812F7F8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F800: .4byte gSprites
- thumb_func_end sub_812F76C
-
- thumb_func_start sub_812F804
-sub_812F804: @ 812F804
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r5, r2, 0
- adds r0, r3, 0
- ldr r4, [sp, 0x14]
- ldr r6, [sp, 0x18]
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r2, r8
- strh r1, [r2, 0x20]
- strh r5, [r2, 0x22]
- lsls r1, 16
- asrs r1, 16
- lsls r2, r1, 4
- mov r3, r8
- strh r2, [r3, 0x36]
- lsls r5, 16
- asrs r5, 16
- lsls r2, r5, 4
- strh r2, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1, 0x3A]
- lsls r4, 16
- asrs r4, 16
- subs r4, r5
- lsls r4, 4
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812F804
-
- thumb_func_start sub_812F86C
-sub_812F86C: @ 812F86C
- ldrh r1, [r0, 0x3A]
- ldrh r2, [r0, 0x36]
- adds r1, r2
- strh r1, [r0, 0x36]
- ldrh r2, [r0, 0x3C]
- ldrh r3, [r0, 0x38]
- adds r2, r3
- strh r2, [r0, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r0, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r0, 0x22]
- bx lr
- thumb_func_end sub_812F86C
-
- thumb_func_start sub_812F88C
-sub_812F88C: @ 812F88C
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldrh r6, [r4, 0x20]
- ldrh r5, [r4, 0x22]
- bl sub_8078650
- ldr r0, _0812F8D4
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- lsls r6, 16
- asrs r6, 16
- lsls r5, 16
- asrs r5, 16
- str r5, [sp]
- movs r0, 0x40
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_812F804
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _0812F8D8
- str r0, [r4, 0x1C]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F8D4: .4byte gUnknown_03004B00
-_0812F8D8: .4byte sub_812F8DC
- thumb_func_end sub_812F88C
-
- thumb_func_start sub_812F8DC
-sub_812F8DC: @ 812F8DC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- lsls r4, 3
- movs r0, 0xFF
- ands r4, r0
- adds r0, r5, 0
- bl sub_812F86C
- adds r0, r4, 0
- movs r1, 0x8
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3A
- ble _0812F942
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812F942
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r1, [r5, 0x32]
- adds r1, 0x1
- strh r1, [r5, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r5, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x3
- ble _0812F942
- adds r0, r5, 0
- bl move_anim_8074EE0
-_0812F942:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812F8DC
-
- thumb_func_start sub_812F948
-sub_812F948: @ 812F948
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0812F9A0
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldrb r1, [r6]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldr r0, _0812F9A4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812F96E
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
-_0812F96E:
- ldr r4, _0812F9A8
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r6, 0x2]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x4]
- adds r0, r6
- strh r0, [r5, 0x22]
- ldr r0, _0812F9AC
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F9A0: .4byte gUnknown_03004B00
-_0812F9A4: .4byte gUnknown_0202F7C9
-_0812F9A8: .4byte gUnknown_0202F7C8
-_0812F9AC: .4byte sub_80DA48C
- thumb_func_end sub_812F948
-
- thumb_func_start sub_812F9B0
-sub_812F9B0: @ 812F9B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- ldr r2, _0812FA00
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0812FA32
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812FA32
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812FA04
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0812FA06
- .align 2, 0
-_0812FA00: .4byte gTasks
-_0812FA04:
- strh r7, [r3, 0x1A]
-_0812FA06:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0812FA22
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0812FA26
-_0812FA22:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0812FA26:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0812FA32:
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r6, [r4, 0x16]
- ldrh r7, [r4, 0x18]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r2
- cmp r0, 0
- beq _0812FA70
- ldr r3, _0812FA6C
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r6, 8
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0812FA86
- .align 2, 0
-_0812FA6C: .4byte gSprites
-_0812FA70:
- ldr r2, _0812FAB4
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r6, 8
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0812FA86:
- mov r1, r12
- adds r0, r1, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0812FAB8
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0812FACA
- .align 2, 0
-_0812FAB4: .4byte gSprites
-_0812FAB8:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0812FACA:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r5
- lsls r0, 3
- add r0, r8
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bgt _0812FAEA
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, _0812FAF4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0812FAEA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FAF4: .4byte gUnknown_0202F7B2
- thumb_func_end sub_812F9B0
-
- thumb_func_start sub_812FAF8
-sub_812FAF8: @ 812FAF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r7, 0
- ldr r2, _0812FB4C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0812FB7E
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812FB7E
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812FB50
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0812FB52
- .align 2, 0
-_0812FB4C: .4byte gTasks
-_0812FB50:
- strh r7, [r3, 0x1A]
-_0812FB52:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0812FB6E
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0812FB72
-_0812FB6E:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0812FB72:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0812FB7E:
- lsls r3, r6, 2
- adds r0, r3, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r2, [r4, 0xC]
- ldr r1, _0812FBD0
- adds r0, r1, 0
- ands r0, r2
- ldrh r2, [r4, 0x16]
- adds r0, r2
- lsls r5, r0, 16
- lsrs r0, r5, 16
- mov r9, r0
- ldrh r0, [r4, 0xE]
- ands r1, r0
- ldrh r2, [r4, 0x18]
- adds r1, r2
- lsls r1, 16
- lsrs r7, r1, 16
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r3
- cmp r0, 0
- beq _0812FBD8
- ldr r3, _0812FBD4
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r5, 24
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0812FBEE
- .align 2, 0
-_0812FBD0: .4byte 0x00007fff
-_0812FBD4: .4byte gSprites
-_0812FBD8:
- ldr r2, _0812FC1C
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r5, 24
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0812FBEE:
- mov r1, r12
- adds r0, r1, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0812FC20
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0812FC32
- .align 2, 0
-_0812FC1C: .4byte gSprites
-_0812FC20:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0812FC32:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 3
- mov r1, r8
- adds r2, r0, r1
- mov r0, r9
- strh r0, [r2, 0x16]
- strh r7, [r2, 0x18]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bgt _0812FC58
- movs r0, 0x1E
- strh r0, [r2, 0x8]
- movs r0, 0
- strh r0, [r2, 0x22]
- ldr r0, _0812FC64
- str r0, [r2]
-_0812FC58:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FC64: .4byte sub_812F9B0
- thumb_func_end sub_812FAF8
-
- thumb_func_start sub_812FC68
-sub_812FC68: @ 812FC68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0812FCC8
- mov r8, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldr r1, _0812FCCC
- ldr r2, _0812FCD0
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x26]
- ldr r5, _0812FCD4
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x22]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0812FCAC
- ldrh r0, [r4, 0x14]
- ldr r3, _0812FCD8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r4, 0x14]
-_0812FCAC:
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812FCDC
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xE]
- mov r3, r8
- adds r4, r7, 0
- b _0812FD4C
- .align 2, 0
-_0812FCC8: .4byte gTasks
-_0812FCCC: .4byte gUnknown_02024BE0
-_0812FCD0: .4byte gUnknown_0202F7C8
-_0812FCD4: .4byte gUnknown_03004B00
-_0812FCD8: .4byte 0xffff8000
-_0812FCDC:
- movs r7, 0x2
- ldrsh r0, [r5, r7]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0812FCF8
- ldrh r1, [r5, 0x2]
- ldr r0, _0812FCF4
- ands r0, r1
- b _0812FD00
- .align 2, 0
-_0812FCF4: .4byte 0x00007fff
-_0812FCF8:
- ldrh r0, [r5, 0x2]
- ldr r2, _0812FD28
- adds r1, r2, 0
- orrs r0, r1
-_0812FD00:
- strh r0, [r4, 0xC]
- ldr r0, _0812FD2C
- movs r3, 0x4
- ldrsh r1, [r0, r3]
- movs r2, 0x80
- lsls r2, 8
- ands r1, r2
- adds r5, r0, 0
- cmp r1, 0
- beq _0812FD38
- ldr r3, _0812FD30
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r0, _0812FD34
- ands r0, r2
- b _0812FD4A
- .align 2, 0
-_0812FD28: .4byte 0xffff8000
-_0812FD2C: .4byte gUnknown_03004B00
-_0812FD30: .4byte gTasks
-_0812FD34: .4byte 0x00007fff
-_0812FD38:
- ldr r3, _0812FD70
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r7, _0812FD74
- adds r0, r7, 0
- orrs r0, r2
-_0812FD4A:
- strh r0, [r1, 0xE]
-_0812FD4C:
- adds r0, r4, r6
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x18]
- strh r1, [r0, 0x16]
- ldrh r1, [r5, 0x8]
- strh r1, [r0, 0x10]
- ldrh r1, [r5, 0xA]
- strh r1, [r0, 0x12]
- ldr r1, _0812FD78
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FD70: .4byte gTasks
-_0812FD74: .4byte 0xffff8000
-_0812FD78: .4byte sub_812FAF8
- thumb_func_end sub_812FC68
-
- thumb_func_start sub_812FD7C
-sub_812FD7C: @ 812FD7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812FDB4
- adds r5, r0, r1
- ldr r4, _0812FDB8
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812FD9C
- adds r0, r2, 0
- bl move_anim_task_del
-_0812FD9C:
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0xE]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812FDC0
- ldr r0, _0812FDBC
- b _0812FDC2
- .align 2, 0
-_0812FDB4: .4byte gTasks
-_0812FDB8: .4byte gUnknown_03004B00
-_0812FDBC: .4byte gUnknown_0202F7C8
-_0812FDC0:
- ldr r0, _0812FE10
-_0812FDC2:
- ldrb r4, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- adds r0, r4, 0
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldr r0, _0812FE14
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r5, 0x26]
- ldr r2, _0812FE18
- adds r0, r5, 0
- bl sub_80798F4
- ldr r0, _0812FE1C
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FE10: .4byte gUnknown_0202F7C9
-_0812FE14: .4byte gUnknown_03004B00
-_0812FE18: .4byte gUnknown_084028AC
-_0812FE1C: .4byte sub_812FE20
- thumb_func_end sub_812FD7C
-
- thumb_func_start sub_812FE20
-sub_812FE20: @ 812FE20
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812FE40
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812FE44
- cmp r0, 0x1
- beq _0812FEA4
- b _0812FEB2
- .align 2, 0
-_0812FE40: .4byte gTasks
-_0812FE44:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0812FE5A
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_812FEB8
-_0812FE5A:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _0812FE6A
- adds r0, r5, 0
- movs r1, 0
- bl sub_812FEB8
-_0812FE6A:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0812FEB2
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0812FE8C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812FEB2
-_0812FE8C:
- strh r1, [r4, 0xA]
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812FEA0
- adds r0, r4, 0
- bl sub_80798F4
- b _0812FEB2
- .align 2, 0
-_0812FEA0: .4byte gUnknown_084028AC
-_0812FEA4:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812FEB2
- adds r0, r5, 0
- bl move_anim_task_del
-_0812FEB2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812FE20
-
- thumb_func_start sub_812FEB8
-sub_812FEB8: @ 812FEB8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r2, _0812FEDC
- adds r4, r0, r2
- cmp r1, 0
- bne _0812FEE0
- movs r1, 0x12
- movs r3, 0xEC
- b _0812FEE4
- .align 2, 0
-_0812FEDC: .4byte gTasks
-_0812FEE0:
- movs r1, 0x1E
- movs r3, 0x14
-_0812FEE4:
- mov r2, sp
- ldrh r0, [r4, 0x10]
- subs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- subs r0, r1
- subs r0, 0x4
- strh r0, [r2, 0x2]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- strh r0, [r2, 0x4]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- adds r0, 0x4
- strh r0, [r2, 0x6]
- add r2, sp, 0x8
- lsls r1, r3, 24
- asrs r1, 24
- ldrh r0, [r4, 0x12]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x12]
- adds r0, r1
- adds r0, 0x6
- strh r0, [r2, 0x2]
- movs r5, 0
- mov r8, r2
- ldr r7, _0812FF88
-_0812FF1C:
- lsls r0, r5, 1
- add r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- ands r0, r5
- lsls r0, 1
- add r0, r8
- movs r3, 0
- ldrsh r2, [r0, r3]
- ldrb r3, [r4, 0x14]
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0812FF8C
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0812FF70
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r7
- movs r0, 0
- strh r0, [r1, 0x2E]
- movs r0, 0x2
- cmp r5, 0x1
- bhi _0812FF5E
- movs r2, 0x2
- negs r2, r2
- adds r0, r2, 0
-_0812FF5E:
- strh r0, [r1, 0x30]
- ldr r0, _0812FF90
- strh r0, [r1, 0x32]
- strh r6, [r1, 0x34]
- movs r0, 0x2
- strh r0, [r1, 0x36]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0812FF70:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0812FF1C
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FF88: .4byte gSprites
-_0812FF8C: .4byte gSpriteTemplate_84028CC
-_0812FF90: .4byte 0x0000ffff
- thumb_func_end sub_812FEB8
-
- thumb_func_start sub_812FF94
-sub_812FF94: @ 812FF94
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _0812FFDA
- ldr r3, _0812FFE0
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x34
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_0812FFDA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FFE0: .4byte gTasks
- thumb_func_end sub_812FF94
-
- thumb_func_start sub_812FFE4
-sub_812FFE4: @ 812FFE4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813002C
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r1, _08130030
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xA]
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08130034
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, _08130038
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813002C: .4byte gTasks
-_08130030: .4byte gUnknown_03004B00
-_08130034: .4byte gSprites
-_08130038: .4byte sub_813003C
- thumb_func_end sub_812FFE4
-
- thumb_func_start sub_813003C
-sub_813003C: @ 813003C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08130084
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813008C
- ldrh r0, [r4, 0xC]
- ldr r2, _08130088
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r1, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x8
- bl BlendPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _0813007C
- movs r0, 0
- strh r0, [r4, 0x8]
-_0813007C:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- b _0813009E
- .align 2, 0
-_08130084: .4byte gTasks
-_08130088: .4byte gUnknown_084028E4
-_0813008C:
- ldrh r0, [r4, 0xC]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0
- bl BlendPalette
- adds r0, r5, 0
- bl move_anim_task_del
-_0813009E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813003C
-
- thumb_func_start sub_81300A4
-sub_81300A4: @ 81300A4
- push {lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xD0
- lsls r2, 1
- ldr r1, _081300E0
- ldrb r3, [r1]
- ldr r1, _081300E4
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0x2
- str r1, [sp, 0x8]
- movs r1, 0x1E
- str r1, [sp, 0xC]
- ldr r1, _081300E8
- str r1, [sp, 0x10]
- ldr r1, _081300EC
- str r1, [sp, 0x14]
- ldr r1, _081300F0
- str r1, [sp, 0x18]
- movs r1, 0
- bl sub_80E3C4C
- add sp, 0x1C
- pop {r0}
- bx r0
- .align 2, 0
-_081300E0: .4byte gUnknown_0202F7C8
-_081300E4: .4byte gUnknown_03004B00
-_081300E8: .4byte gUnknown_08D2E014
-_081300EC: .4byte gUnknown_08D2E170
-_081300F0: .4byte gUnknown_08D2E150
- thumb_func_end sub_81300A4
-
- thumb_func_start sub_81300F4
-sub_81300F4: @ 81300F4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0813014C
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08130110
- ldr r1, _08130150
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_08130110:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _08130150
- lsrs r0, 24
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrb r0, [r6]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08130158
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- ldr r0, _08130154
- strh r0, [r5, 0x30]
- b _08130180
- .align 2, 0
-_0813014C: .4byte gUnknown_0202F7C8
-_08130150: .4byte gUnknown_03004B00
-_08130154: .4byte 0x0000fd80
-_08130158:
- cmp r0, 0x1
- bne _08130172
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- b _08130180
-_08130172:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
-_08130180:
- ldr r0, _081301AC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _081301A0
- ldrh r0, [r5, 0x2E]
- negs r0, r0
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_081301A0:
- ldr r0, _081301B0
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081301AC: .4byte gUnknown_0202F7C8
-_081301B0: .4byte sub_81301B4
- thumb_func_end sub_81300F4
-
- thumb_func_start sub_81301B4
-sub_81301B4: @ 81301B4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x3A]
- adds r0, r1
- strh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x3C]
- adds r1, r3
- strh r1, [r2, 0x3C]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x38]
- adds r0, 0x1
- strh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bne _081301E8
- adds r0, r2, 0
- bl move_anim_8072740
-_081301E8:
- pop {r0}
- bx r0
- thumb_func_end sub_81301B4
-
- thumb_func_start sub_81301EC
-sub_81301EC: @ 81301EC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130218
- adds r6, r1, r0
- bl sub_8076BE0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0813021C
- movs r0, 0x8
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- movs r0, 0x1
- strh r0, [r6, 0x16]
- b _08130226
- .align 2, 0
-_08130218: .4byte gTasks
-_0813021C:
- movs r0, 0xC
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- strh r1, [r6, 0x16]
-_08130226:
- ldr r5, _0813025C
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08130260
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08130254
- adds r0, 0x3
-_08130254:
- asrs r0, 2
- adds r0, r4, r0
- b _08130284
- .align 2, 0
-_0813025C: .4byte gUnknown_0202F7C8
-_08130260:
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08130280
- adds r0, 0x3
-_08130280:
- asrs r0, 2
- subs r0, r4, r0
-_08130284:
- strh r0, [r6, 0x1E]
- ldr r5, _081302D8
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081302A8
- adds r0, 0x3
-_081302A8:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x20]
- ldr r4, _081302DC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x24]
- ldr r0, _081302E0
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081302D8: .4byte gUnknown_0202F7C8
-_081302DC: .4byte gUnknown_0202F7C9
-_081302E0: .4byte sub_81302E4
- thumb_func_end sub_81301EC
-
- thumb_func_start sub_81302E4
-sub_81302E4: @ 81302E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _0813030C
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _08130310
- cmp r1, 0x1
- bne _08130308
- b _08130408
-_08130308:
- b _08130416
- .align 2, 0
-_0813030C: .4byte gTasks
-_08130310:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08130416
- strh r1, [r5, 0xA]
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r4, 0x24
- ldrsh r3, [r5, r4]
- ldrb r4, [r5, 0x12]
- str r4, [sp]
- ldrb r4, [r5, 0xC]
- str r4, [sp, 0x4]
- add r4, sp, 0x10
- str r4, [sp, 0x8]
- adds r4, 0x2
- str r4, [sp, 0xC]
- bl sub_8130424
- movs r6, 0
- mov r8, r4
- ldr r4, _08130384
-_0813034A:
- add r0, sp, 0x10
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- movs r0, 0
- ldrsh r2, [r3, r0]
- ldr r0, _08130388
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _081303DE
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0813039E
- cmp r6, 0
- bne _0813038C
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x24]
- b _081303C6
- .align 2, 0
-_08130384: .4byte gSprites
-_08130388: .4byte gSpriteTemplate_840294C
-_0813038C:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- b _081303C6
-_0813039E:
- cmp r6, 0
- bne _081303B4
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- b _081303C4
-_081303B4:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- negs r0, r0
-_081303C4:
- strh r0, [r1, 0x26]
-_081303C6:
- ldr r1, _08130404
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r7, [r0, 0x30]
- movs r1, 0xA
- strh r1, [r0, 0x32]
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
-_081303DE:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _0813034A
- ldrh r2, [r5, 0xC]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- movs r4, 0x12
- ldrsh r0, [r5, r4]
- cmp r1, r0
- bne _081303FC
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_081303FC:
- adds r0, r2, 0x1
- strh r0, [r5, 0xC]
- b _08130416
- .align 2, 0
-_08130404: .4byte gSprites
-_08130408:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08130416
- adds r0, r7, 0
- bl move_anim_task_del
-_08130416:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81302E4
-
- thumb_func_start sub_8130424
-sub_8130424: @ 8130424
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- ldr r6, [sp, 0x34]
- mov r10, r6
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 16
- lsrs r2, 16
- adds r7, r2, 0
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r6, r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r8, r5
- cmp r5, 0
- bne _0813046C
- mov r2, r9
- strh r0, [r2]
- mov r6, r10
- strh r1, [r6]
- b _081304CA
-_0813046C:
- cmp r5, r6
- bcc _0813047A
- mov r0, r9
- strh r2, [r0]
- mov r1, r10
- strh r3, [r1]
- b _081304CA
-_0813047A:
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r2, r12
- lsls r1, r2, 16
- asrs r1, 16
- lsls r5, r1, 8
- lsls r0, r7, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r5, r0
- ldr r2, [sp]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r4, r1, 8
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- adds r4, r0
- asrs r5, 8
- mov r0, r9
- strh r5, [r0]
- asrs r4, 8
- mov r1, r10
- strh r4, [r1]
-_081304CA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8130424
-
- thumb_func_start sub_81304DC
-sub_81304DC: @ 81304DC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x24
- ble _08130512
- ldr r3, _08130518
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x30
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroySprite
-_08130512:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130518: .4byte gTasks
- thumb_func_end sub_81304DC
-
- thumb_func_start sub_813051C
-sub_813051C: @ 813051C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _08130548
- ldrh r0, [r1]
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, _0813054C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _08130550
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130548: .4byte gUnknown_03004B00
-_0813054C: .4byte move_anim_8072740
-_08130550: .4byte sub_8078CC0
- thumb_func_end sub_813051C
-
- thumb_func_start sub_8130554
-sub_8130554: @ 8130554
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- ldr r1, _08130674
- adds r7, r0, r1
- ldr r0, _08130678
- mov r10, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x1E]
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x20]
- ldr r0, _0813067C
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- adds r4, r0, 0
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081305C6
- adds r0, 0x3
-_081305C6:
- asrs r0, 2
- adds r0, r4, r0
- strh r0, [r7, 0x24]
- ldr r4, _08130680
- movs r0, 0x1E
- ldrsh r5, [r7, r0]
- movs r1, 0x20
- ldrsh r6, [r7, r1]
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x26]
- cmp r0, 0x40
- beq _08130690
- ldr r4, _08130684
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x22]
- strh r1, [r0, 0x32]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x24]
- strh r1, [r0, 0x36]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08130688
- strh r1, [r0, 0x38]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80786EC
- mov r1, r10
- ldrb r0, [r1]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813066E
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0813066E:
- ldr r0, _0813068C
- str r0, [r7]
- b _08130696
- .align 2, 0
-_08130674: .4byte gTasks
-_08130678: .4byte gUnknown_0202F7C8
-_0813067C: .4byte gUnknown_0202F7C9
-_08130680: .4byte gSpriteTemplate_84029AC
-_08130684: .4byte gSprites
-_08130688: .4byte 0x0000ffe0
-_0813068C: .4byte sub_81306A4
-_08130690:
- mov r0, r9
- bl move_anim_task_del
-_08130696:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8130554
-
- thumb_func_start sub_81306A4
-sub_81306A4: @ 81306A4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _081306C8
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0813070C
- cmp r1, 0x1
- bgt _081306CC
- cmp r1, 0
- beq _081306D6
- b _081307AA
- .align 2, 0
-_081306C8: .4byte gTasks
-_081306CC:
- cmp r1, 0x2
- beq _08130730
- cmp r1, 0x3
- beq _081307A4
- b _081307AA
-_081306D6:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081307AA
- strh r1, [r4, 0xA]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08130708
- adds r0, r1
- bl sub_8078718
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _081307AA
- b _08130796
- .align 2, 0
-_08130708: .4byte gSprites
-_0813070C:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813072C
- adds r0, r1
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _081307AA
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _08130796
- .align 2, 0
-_0813072C: .4byte gSprites
-_08130730:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081307AA
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- adds r2, 0x1
- strh r2, [r4, 0xC]
- ldr r5, _081307A0
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- ands r2, r0
- adds r1, 0x3E
- lsls r2, 2
- ldrb r3, [r1]
- subs r0, 0x6
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081307AA
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_08130796:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081307AA
- .align 2, 0
-_081307A0: .4byte gSprites
-_081307A4:
- adds r0, r2, 0
- bl move_anim_task_del
-_081307AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81306A4
-
- thumb_func_start sub_81307B0
-sub_81307B0: @ 81307B0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _081307C4
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0
- bne _081307CC
- ldr r0, _081307C8
- b _081307CE
- .align 2, 0
-_081307C4: .4byte gUnknown_03004B00
-_081307C8: .4byte gUnknown_0202F7C8
-_081307CC:
- ldr r0, _08130834
-_081307CE:
- ldrb r5, [r0]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _08130838
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _0813083C
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x3A]
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- movs r1, 0x1
- cmp r0, 0
- bne _081307FC
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_081307FC:
- strh r1, [r4, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08130840
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- subs r0, 0x8
- b _0813084A
- .align 2, 0
-_08130834: .4byte gUnknown_0202F7C9
-_08130838: .4byte 0x000003ff
-_0813083C: .4byte 0xfffffc00
-_08130840:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- adds r0, 0x8
-_0813084A:
- strh r0, [r4, 0x20]
- ldr r0, _08130858
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130858: .4byte sub_813085C
- thumb_func_end sub_81307B0
-
- thumb_func_start sub_813085C
-sub_813085C: @ 813085C
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- cmp r1, 0x1
- beq _081308A4
- cmp r1, 0x1
- bgt _08130872
- cmp r1, 0
- beq _0813087C
- b _08130914
-_08130872:
- cmp r1, 0x2
- beq _081308B4
- cmp r1, 0x3
- beq _081308DA
- b _08130914
-_0813087C:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08130914
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x3C]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _08130914
- b _081308D2
-_081308A4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _08130914
- b _081308CE
-_081308B4:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r1, 2
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08130914
-_081308CE:
- movs r0, 0
- strh r0, [r2, 0x30]
-_081308D2:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _08130914
-_081308DA:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _08130914
- ldrh r0, [r2, 0x3A]
- subs r0, 0x1
- strh r0, [r2, 0x3A]
- lsls r0, 16
- cmp r0, 0
- beq _0813090E
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- b _08130914
-_0813090E:
- adds r0, r2, 0
- bl move_anim_8072740
-_08130914:
- pop {r0}
- bx r0
- thumb_func_end sub_813085C
-
- thumb_func_start sub_8130918
-sub_8130918: @ 8130918
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _08130930
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _08130934
- adds r0, r1, 0
- bl move_anim_task_del
- b _0813095C
- .align 2, 0
-_08130930: .4byte gUnknown_03004B00
-_08130934:
- ldr r0, _08130964
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x8]
- ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, _08130968
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _0813096C
- str r0, [r4]
-_0813095C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130964: .4byte gTasks
-_08130968: .4byte gUnknown_084029DC
-_0813096C: .4byte sub_8130970
- thumb_func_end sub_8130918
-
- thumb_func_start sub_8130970
-sub_8130970: @ 8130970
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _081309B0
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081309CA
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081309B8
- ldr r2, _081309B4
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- b _081309C8
- .align 2, 0
-_081309B0: .4byte gTasks
-_081309B4: .4byte gSprites
-_081309B8:
- ldr r2, _08130A10
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08130A14
-_081309C8:
- strh r1, [r0, 0x24]
-_081309CA:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08130A26
- ldr r2, _08130A10
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- cmp r0, 0
- beq _08130A20
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _08130A18
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08130A1C
- bl sub_80798F4
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- b _08130A26
- .align 2, 0
-_08130A10: .4byte gSprites
-_08130A14: .4byte 0x0000fffe
-_08130A18: .4byte gTasks
-_08130A1C: .4byte gUnknown_084029DC
-_08130A20:
- adds r0, r6, 0
- bl move_anim_task_del
-_08130A26:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8130970
-
- thumb_func_start sub_8130A2C
-sub_8130A2C: @ 8130A2C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08130A40
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08130A48
- ldr r4, _08130A44
- b _08130A4A
- .align 2, 0
-_08130A40: .4byte gUnknown_03004B00
-_08130A44: .4byte gUnknown_0202F7C8
-_08130A48:
- ldr r4, _08130A88
-_08130A4A:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- strh r0, [r5, 0x22]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- cmp r0, 0x7
- bgt _08130A6E
- movs r0, 0x8
- strh r0, [r5, 0x22]
-_08130A6E:
- movs r2, 0
- strh r2, [r5, 0x2E]
- ldr r1, _08130A8C
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x30]
- strh r2, [r5, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
- ldr r0, _08130A90
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130A88: .4byte gUnknown_0202F7C9
-_08130A8C: .4byte gUnknown_03004B00
-_08130A90: .4byte sub_8130A94
- thumb_func_end sub_8130A2C
-
- thumb_func_start sub_8130A94
-sub_8130A94: @ 8130A94
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _08130AE8
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x32]
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- strh r1, [r3, 0x32]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r1, 2
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _08130AE8
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _08130AE8
- adds r0, r3, 0
- bl move_anim_8072740
-_08130AE8:
- pop {r0}
- bx r0
- thumb_func_end sub_8130A94
-
- thumb_func_start sub_8130AEC
-sub_8130AEC: @ 8130AEC
- push {lr}
- adds r3, r0, 0
- ldr r0, _08130B18
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08130B1C
- ldrb r2, [r3, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- movs r0, 0x64
- strh r0, [r3, 0x20]
- movs r0, 0x1
- b _08130B22
- .align 2, 0
-_08130B18: .4byte gUnknown_03004B00
-_08130B1C:
- movs r0, 0x8C
- strh r0, [r3, 0x20]
- ldr r0, _08130B30
-_08130B22:
- strh r0, [r3, 0x3C]
- movs r0, 0x38
- strh r0, [r3, 0x22]
- ldr r0, _08130B34
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_08130B30: .4byte 0x0000ffff
-_08130B34: .4byte sub_8130B38
- thumb_func_end sub_8130AEC
-
- thumb_func_start sub_8130B38
-sub_8130B38: @ 8130B38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bls _08130B46
- b _08130D18
-_08130B46:
- lsls r0, 2
- ldr r1, _08130B50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130B50: .4byte _08130B54
- .align 2, 0
-_08130B54:
- .4byte _08130B78
- .4byte _08130BAA
- .4byte _08130BBC
- .4byte _08130BFC
- .4byte _08130C0E
- .4byte _08130C4C
- .4byte _08130CB0
- .4byte _08130CD0
- .4byte _08130CF6
-_08130B78:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r0, 1
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- ldrh r2, [r4, 0x30]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _08130B9A
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
-_08130B9A:
- adds r0, r2, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- beq _08130BA8
- b _08130D18
-_08130BA8:
- b _08130CEA
-_08130BAA:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _08130BBA
- b _08130D18
-_08130BBA:
- b _08130CEA
-_08130BBC:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, _08130BF8
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- beq _08130BF4
- b _08130D18
-_08130BF4:
- b _08130CEA
- .align 2, 0
-_08130BF8: .4byte gSineTable
-_08130BFC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- beq _08130C0C
- b _08130D18
-_08130C0C:
- b _08130CEA
-_08130C0E:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x22]
- subs r0, r1
- strh r0, [r4, 0x22]
- ldr r3, _08130C48
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- bne _08130D18
- b _08130CEE
- .align 2, 0
-_08130C48: .4byte gSineTable
-_08130C4C:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, _08130CA4
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xF
- bne _08130C98
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _08130CA8
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _08130CAC
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
-_08130C98:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _08130D18
- b _08130CEA
- .align 2, 0
-_08130CA4: .4byte gSineTable
-_08130CA8: .4byte 0x000003ff
-_08130CAC: .4byte 0xfffffc00
-_08130CB0:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _08130D18
- b _08130CEA
-_08130CD0:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r3, [r4, 0x20]
- adds r0, r3
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08130D18
-_08130CEA:
- movs r0, 0
- strh r0, [r4, 0x30]
-_08130CEE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08130D18
-_08130CF6:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08130D18
- adds r0, r4, 0
- bl move_anim_8072740
-_08130D18:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8130B38
-
- thumb_func_start sub_8130D20
-sub_8130D20: @ 8130D20
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130D7C
- adds r6, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08130DA8
- bl battle_type_is_double
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1
- bne _08130D8C
- ldr r5, _08130D80
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _08130D84
- strh r7, [r6, 0x24]
- b _08130DAC
- .align 2, 0
-_08130D7C: .4byte gTasks
-_08130D80: .4byte gUnknown_0202F7C8
-_08130D84:
- ldr r0, _08130D88
- b _08130DAA
- .align 2, 0
-_08130D88: .4byte 0x0000ffff
-_08130D8C:
- ldr r0, _08130DA0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08130DA8
- ldr r0, _08130DA4
- b _08130DAA
- .align 2, 0
-_08130DA0: .4byte gUnknown_0202F7C8
-_08130DA4: .4byte 0x0000ffff
-_08130DA8:
- movs r0, 0x1
-_08130DAA:
- strh r0, [r6, 0x24]
-_08130DAC:
- ldr r0, _08130DB8
- str r0, [r6]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130DB8: .4byte sub_8130DBC
- thumb_func_end sub_8130D20
-
- thumb_func_start sub_8130DBC
-sub_8130DBC: @ 8130DBC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08130DE0
- adds r3, r0, r1
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0x8
- bls _08130DD6
- b _08130F50
-_08130DD6:
- lsls r0, 2
- ldr r1, _08130DE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130DE0: .4byte gTasks
-_08130DE4: .4byte _08130DE8
- .align 2, 0
-_08130DE8:
- .4byte _08130E0C
- .4byte _08130E1E
- .4byte _08130E50
- .4byte _08130E80
- .4byte _08130EA6
- .4byte _08130ED0
- .4byte _08130EE0
- .4byte _08130F00
- .4byte _08130F38
-_08130E0C:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- beq _08130E1C
- b _08130F50
-_08130E1C:
- b _08130F28
-_08130E1E:
- ldr r2, _08130E4C
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r2, r0, 1
- adds r2, r0
- ldrh r0, [r1, 0x24]
- subs r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- beq _08130E4A
- b _08130F50
-_08130E4A:
- b _08130F28
- .align 2, 0
-_08130E4C: .4byte gSprites
-_08130E50:
- ldr r2, _08130E7C
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r0, r2, 1
- adds r0, r2
- ldrh r2, [r1, 0x24]
- adds r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08130F50
- b _08130F28
- .align 2, 0
-_08130E7C: .4byte gSprites
-_08130E80:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08130F50
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r2, 0xC
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _08130F2C
- adds r0, r1, 0x1
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0x8]
- b _08130F50
-_08130EA6:
- ldr r2, _08130ECC
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r3, 0x24]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _08130F50
- b _08130F28
- .align 2, 0
-_08130ECC: .4byte gSprites
-_08130ED0:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08130F50
- b _08130F28
-_08130EE0:
- ldr r2, _08130EFC
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r2, 2
- ldrh r0, [r1, 0x24]
- subs r0, r2
- b _08130F18
- .align 2, 0
-_08130EFC: .4byte gSprites
-_08130F00:
- ldr r2, _08130F34
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r0, 2
- ldrh r2, [r1, 0x24]
- adds r0, r2
-_08130F18:
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08130F50
-_08130F28:
- movs r0, 0
- strh r0, [r3, 0xA]
-_08130F2C:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _08130F50
- .align 2, 0
-_08130F34: .4byte gSprites
-_08130F38:
- ldr r2, _08130F58
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_task_del
-_08130F50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130F58: .4byte gSprites
- thumb_func_end sub_8130DBC
-
- thumb_func_start sub_8130F5C
-sub_8130F5C: @ 8130F5C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08130F78
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08130F80
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _08130F7C
- b _08130F82
- .align 2, 0
-_08130F78: .4byte gUnknown_03004B00
-_08130F7C: .4byte gUnknown_0202F7C8
-_08130F80:
- ldr r0, _08130FD8
-_08130F82:
- ldrb r0, [r0]
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08130FA6
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
-_08130FA6:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079ED4
- movs r2, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x1]
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
- ldr r0, _08130FDC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130FD8: .4byte gUnknown_0202F7C9
-_08130FDC: .4byte sub_8130FE0
- thumb_func_end sub_8130F5C
-
- thumb_func_start sub_8130FE0
-sub_8130FE0: @ 8130FE0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08130FEE
- b _081311DE
-_08130FEE:
- lsls r0, 2
- ldr r1, _08130FF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130FF8: .4byte _08130FFC
- .align 2, 0
-_08130FFC:
- .4byte _08131010
- .4byte _08131110
- .4byte _08131178
- .4byte _0813118C
- .4byte _081311D8
-_08131010:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bhi _08131040
- lsls r0, 2
- ldr r1, _08131024
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08131024: .4byte _08131028
- .align 2, 0
-_08131028:
- .4byte _08131044
- .4byte _08131060
- .4byte _08131082
- .4byte _0813109E
- .4byte _08131044
- .4byte _081310C4
-_08131040:
- movs r0, 0
- strh r0, [r4, 0x3A]
-_08131044:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _081310B8
-_08131060:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x4
- b _081310BE
-_08131082:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _081310B8
-_0813109E:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
-_081310B8:
- bl sub_807A100
- subs r0, 0x4
-_081310BE:
- lsls r0, 16
- lsrs r1, r0, 16
- b _081310E4
-_081310C4:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r1, r0, 24
-_081310E4:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _081310F0
- movs r0, 0x18
- b _081310FA
-_081310F0:
- cmp r0, 0x5
- bne _081310F8
- movs r0, 0x6
- b _081310FA
-_081310F8:
- movs r0, 0xC
-_081310FA:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- b _081311CA
-_08131110:
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _081311DE
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- beq _08131148
- cmp r0, 0x5
- beq _08131168
- ldrh r0, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _08131160
-_08131148:
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r2, [r4, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
- strh r1, [r4, 0x26]
- strh r1, [r4, 0x24]
- strh r1, [r4, 0x38]
-_08131160:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- b _081311DE
-_08131168:
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x10
- strh r1, [r4, 0x30]
- strh r0, [r4, 0x32]
- movs r0, 0x3
- strh r0, [r4, 0x38]
- b _081311DE
-_08131178:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _081311DE
- movs r0, 0
- strh r0, [r4, 0x38]
- b _081311DE
-_0813118C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813119E
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- b _081311A4
-_0813119E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_081311A4:
- ldr r2, _081311D4
- ldrh r0, [r4, 0x32]
- lsls r0, 8
- ldrh r1, [r4, 0x30]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _081311DE
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_081311CA:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _081311DE
- .align 2, 0
-_081311D4: .4byte REG_BLDALPHA
-_081311D8:
- adds r0, r4, 0
- bl move_anim_8072740
-_081311DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8130FE0
-
- thumb_func_start sub_81311E4
-sub_81311E4: @ 81311E4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r5, r0, 0
- strh r5, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r3, r0, 0
- strh r3, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08131242
- ldr r0, _08131260
- ldrh r1, [r4, 0x20]
- adds r1, r5
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x5
- bl CreateSprite
-_08131242:
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08131254
- adds r0, r4, 0
- bl move_anim_8072740
-_08131254:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08131260: .4byte gSpriteTemplate_8402500
- thumb_func_end sub_81311E4
-
- thumb_func_start sub_8131264
-sub_8131264: @ 8131264
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _081312A0
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08131290
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _081312A8
-_08131290:
- ldr r2, _081312A4
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- subs r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- subs r1, r0
- b _081312B6
- .align 2, 0
-_081312A0: .4byte gUnknown_0202F7C9
-_081312A4: .4byte gUnknown_03004B00
-_081312A8:
- ldr r2, _081312DC
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- adds r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- adds r1, r0
-_081312B6:
- strh r1, [r5, 0x32]
- adds r3, r2, 0
- ldrh r1, [r5, 0x22]
- ldrh r2, [r3, 0x2]
- adds r2, r1, r2
- strh r2, [r5, 0x30]
- ldrh r0, [r3, 0x6]
- adds r1, r0
- strh r1, [r5, 0x34]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x20]
- strh r2, [r5, 0x22]
- ldr r0, _081312E0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081312DC: .4byte gUnknown_03004B00
-_081312E0: .4byte sub_81311E4
- thumb_func_end sub_8131264
-
- thumb_func_start sub_81312E4
-sub_81312E4: @ 81312E4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r0, _08131328
- mov r9, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r8, r0
- mov r4, r8
- add r4, r9
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813132C
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _08131378
- .align 2, 0
-_08131328: .4byte gTasks
-_0813132C:
- cmp r0, 0x1
- bne _08131384
- ldrh r0, [r4, 0xA]
- adds r0, 0x60
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0xD
- strh r0, [r4, 0xC]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0xC
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _081313E8
- movs r0, 0
- strh r0, [r4, 0xE]
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _08131380
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08131378:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081313E8
- .align 2, 0
-_08131380: .4byte gSprites
-_08131384:
- ldr r4, _081313F4
- ldrb r0, [r4]
- movs r1, 0
- bl refresh_graphics_maybe
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _081313C6
- ldr r3, _081313F8
- ldr r2, _081313FC
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _08131400
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_081313C6:
- mov r4, r9
- adds r3, r7, 0
- ldr r5, _08131404
- movs r1, 0xF
- mov r2, r8
- adds r0, r4, r2
- adds r0, 0x26
- movs r2, 0
-_081313D6:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081313D6
- adds r0, r3, r6
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
-_081313E8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081313F4: .4byte gUnknown_0202F7C8
-_081313F8: .4byte gSprites
-_081313FC: .4byte gUnknown_02024BE0
-_08131400: .4byte gSpriteAffineAnimTable_81E7C18
-_08131404: .4byte sub_8131408
- thumb_func_end sub_81312E4
-
- thumb_func_start sub_8131408
-sub_8131408: @ 8131408
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08131434
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _0813146C
- cmp r5, 0x1
- bgt _08131438
- cmp r5, 0
- beq _08131442
- b _0813155A
- .align 2, 0
-_08131434: .4byte gTasks
-_08131438:
- cmp r5, 0x2
- beq _081314D8
- cmp r5, 0x3
- beq _08131514
- b _0813155A
-_08131442:
- ldr r0, _08131464
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldr r0, _08131468
- strh r0, [r1, 0x26]
- movs r0, 0xC8
- strh r0, [r1, 0x24]
- adds r1, 0x3E
- ldrb r2, [r1]
- subs r0, 0xCD
- ands r0, r2
- strb r0, [r1]
- strh r5, [r4, 0x1C]
- b _08131506
- .align 2, 0
-_08131464: .4byte gSprites
-_08131468: .4byte 0x0000ff38
-_0813146C:
- ldrh r1, [r4, 0x1C]
- adds r1, 0x70
- movs r5, 0
- strh r1, [r4, 0x1C]
- ldr r2, _081314D0
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r2
- lsls r1, 16
- asrs r1, 24
- ldrh r3, [r2, 0x26]
- adds r1, r3
- strh r1, [r2, 0x26]
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r3, 0x26
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- blt _0813149C
- strh r5, [r2, 0x24]
-_0813149C:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _081314A6
- strh r5, [r2, 0x26]
-_081314A6:
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0813155A
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- ldr r1, _081314D4
- adds r0, r1, 0
- ldrh r2, [r4, 0x1C]
- adds r0, r2
- strh r0, [r4, 0x1C]
- b _08131506
- .align 2, 0
-_081314D0: .4byte gSprites
-_081314D4: .4byte 0xfffff800
-_081314D8:
- ldrh r0, [r4, 0x1C]
- subs r0, 0x70
- strh r0, [r4, 0x1C]
- lsls r0, 16
- cmp r0, 0
- bge _081314E8
- movs r0, 0
- strh r0, [r4, 0x1C]
-_081314E8:
- ldr r0, _08131510
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r4, 0x1C]
- lsls r2, 16
- asrs r2, 24
- ldrh r0, [r1, 0x26]
- subs r0, r2
- strh r0, [r1, 0x26]
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0813155A
-_08131506:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0813155A
- .align 2, 0
-_08131510: .4byte gSprites
-_08131514:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x70
- strh r0, [r4, 0x1C]
- ldr r2, _08131560
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1, 0x26]
- adds r0, r2
- strh r0, [r1, 0x26]
- lsls r0, 16
- cmp r0, 0
- ble _08131538
- movs r0, 0
- strh r0, [r1, 0x26]
-_08131538:
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0813155A
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- adds r0, r6, 0
- bl move_anim_task_del
-_0813155A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08131560: .4byte gSprites
- thumb_func_end sub_8131408
-
- thumb_func_start sub_8131564
-sub_8131564: @ 8131564
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08131588
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131590
- ldrb r0, [r4]
- bl sub_8079E90
- subs r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, _0813158C
- b _081315A0
- .align 2, 0
-_08131588: .4byte gUnknown_0202F7C9
-_0813158C: .4byte 0x0000ff70
-_08131590:
- ldrb r0, [r4]
- bl sub_8079E90
- adds r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, _081315BC
-_081315A0:
- ldr r0, _081315C0
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x26]
- ldr r0, _081315C4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081315BC: .4byte 0x0000ffa0
-_081315C0: .4byte gUnknown_0202F7C9
-_081315C4: .4byte sub_81315C8
- thumb_func_end sub_8131564
-
- thumb_func_start sub_81315C8
-sub_81315C8: @ 81315C8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _081315D6
- b _081316F2
-_081315D6:
- lsls r0, 2
- ldr r1, _081315E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081315E0: .4byte _081315E4
- .align 2, 0
-_081315E4:
- .4byte _081315F8
- .4byte _0813161C
- .4byte _0813165C
- .4byte _0813168C
- .4byte _081316B8
-_081315F8:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _081316F2
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x26]
- b _081316B0
-_0813161C:
- ldrh r1, [r4, 0x30]
- adds r1, 0x4
- movs r5, 0
- strh r1, [r4, 0x30]
- ldr r2, _08131658
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _081316F2
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x26]
- b _081316B0
- .align 2, 0
-_08131658: .4byte gSineTable
-_0813165C:
- ldrh r1, [r4, 0x30]
- adds r1, 0x6
- movs r3, 0
- strh r1, [r4, 0x30]
- ldr r2, _08131688
- movs r5, 0x30
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _081316F2
- strh r3, [r4, 0x30]
- strh r3, [r4, 0x26]
- b _081316B0
- .align 2, 0
-_08131688: .4byte gSineTable
-_0813168C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _081316F2
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC0
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x30]
-_081316B0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081316F2
-_081316B8:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _081316F2
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bne _081316F2
- adds r0, r4, 0
- bl move_anim_8072740
-_081316F2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81315C8
-
- thumb_func_start sub_81316F8
-sub_81316F8: @ 81316F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- mov r10, r4
- bl sub_8076BE0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0813173E
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r7, r0, 16
- cmp r7, 0
- blt _0813173E
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0813174C
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08131748
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_0813173E:
- adds r0, r4, 0
- bl move_anim_task_del
- b _081317EE
- .align 2, 0
-_08131748: .4byte gSprites
-_0813174C:
- ldr r1, _081317FC
- mov r9, r1
- lsls r1, r0, 4
- mov r8, r1
- add r8, r0
- mov r0, r8
- lsls r0, 2
- mov r8, r0
- mov r4, r8
- add r4, r9
- ldrh r0, [r4, 0x24]
- adds r0, 0x18
- strh r0, [r4, 0x24]
- lsls r6, r7, 4
- adds r6, r7
- lsls r6, 2
- mov r1, r9
- adds r2, r6, r1
- ldrh r0, [r2, 0x24]
- subs r0, 0x18
- strh r0, [r2, 0x24]
- strh r5, [r4, 0x2E]
- strh r5, [r2, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r2, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r2, 0x32]
- movs r0, 0x10
- strh r0, [r4, 0x34]
- ldr r0, _08131800
- strh r0, [r2, 0x34]
- strh r5, [r4, 0x36]
- movs r0, 0x80
- strh r0, [r2, 0x36]
- movs r0, 0x18
- strh r0, [r4, 0x38]
- strh r0, [r2, 0x38]
- mov r0, r10
- strh r0, [r4, 0x3A]
- strh r0, [r2, 0x3A]
- strh r5, [r4, 0x3C]
- strh r5, [r2, 0x3C]
- ldr r0, _08131804
- mov r1, r10
- lsls r3, r1, 2
- add r3, r10
- lsls r3, 3
- adds r3, r0
- movs r0, 0x2
- strh r0, [r3, 0x8]
- adds r5, r4, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- subs r0, 0x7
- ands r0, r1
- strb r0, [r5]
- adds r5, r2, 0
- adds r5, 0x3E
- ldrb r0, [r5]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5]
- ldrb r5, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r5
- strb r0, [r4, 0x1]
- ldrb r0, [r2, 0x1]
- ands r1, r0
- strb r1, [r2, 0x1]
- movs r0, 0x1C
- add r9, r0
- add r8, r9
- ldr r0, _08131808
- mov r1, r8
- str r0, [r1]
- add r6, r9
- str r0, [r6]
- ldr r0, _0813180C
- str r0, [r3]
-_081317EE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081317FC: .4byte gSprites
-_08131800: .4byte 0x0000fff0
-_08131804: .4byte gTasks
-_08131808: .4byte sub_8131838
-_0813180C: .4byte sub_8131810
- thumb_func_end sub_81316F8
-
- thumb_func_start sub_8131810
-sub_8131810: @ 8131810
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08131834
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0813182E
- adds r0, r2, 0
- bl move_anim_task_del
-_0813182E:
- pop {r0}
- bx r0
- .align 2, 0
-_08131834: .4byte gTasks
- thumb_func_end sub_8131810
-
- thumb_func_start sub_8131838
-sub_8131838: @ 8131838
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08131868
- strh r5, [r4, 0x30]
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08131868:
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08131890
- cmp r0, 0x1
- beq _081318A8
- b _081318E6
-_08131890:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- bne _081318E6
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081318E6
-_081318A8:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- ble _081318E6
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x38]
- subs r0, 0x2
- strh r0, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _081318E6
- ldr r3, _081318EC
- movs r2, 0x3C
- ldrsh r1, [r4, r2]
- lsls r1, 1
- movs r0, 0x3A
- ldrsh r2, [r4, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r3, 0x8
- adds r1, r3
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_081318E6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081318EC: .4byte gTasks
- thumb_func_end sub_8131838
-
- thumb_func_start sub_81318F0
-sub_81318F0: @ 81318F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, _0813193C
- movs r2, 0
- strh r2, [r3, 0xE]
- ldr r1, _08131940
- ldrb r0, [r1]
- ldrb r1, [r1]
- adds r0, r1, 0
- subs r0, 0x3D
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- cmp r0, 0x1E
- bhi _08131914
- movs r0, 0x1
- strh r0, [r3, 0xE]
-_08131914:
- adds r0, r2, 0
- subs r0, 0x5C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6C
- bhi _08131924
- movs r0, 0x2
- strh r0, [r3, 0xE]
-_08131924:
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xC8
- bls _08131930
- movs r0, 0x3
- strh r0, [r3, 0xE]
-_08131930:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813193C: .4byte gUnknown_03004B00
-_08131940: .4byte gUnknown_0202F7BE
- thumb_func_end sub_81318F0
-
- thumb_func_start sub_8131944
-sub_8131944: @ 8131944
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _08131974
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _0813196A
- b _08131EA0
-_0813196A:
- lsls r0, 2
- ldr r1, _08131978
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08131974: .4byte gTasks
-_08131978: .4byte _0813197C
- .align 2, 0
-_0813197C:
- .4byte _08131990
- .4byte _08131A44
- .4byte _08131C20
- .4byte _08131D40
- .4byte _08131DC4
-_08131990:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _081319DC
- mov r2, r8
- lsls r4, r2, 2
- adds r0, r4, r2
- lsls r0, 3
- adds r6, r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r0, r3, 0
- ldrh r1, [r6, 0xA]
- adds r0, r1
- strh r0, [r6, 0xA]
- ldr r0, _081319E0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _081319E8
- ldr r2, _081319E4
- lsls r3, r7, 4
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- b _08131A02
- .align 2, 0
-_081319DC: .4byte gTasks
-_081319E0: .4byte gUnknown_0202F7C8
-_081319E4: .4byte gSprites
-_081319E8:
- ldr r3, _08131A3C
- lsls r4, r7, 4
- adds r2, r4, r7
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_08131A02:
- ldr r1, _08131A40
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- ldrb r0, [r4, 0xA]
- strh r0, [r4, 0xA]
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _08131A2E
- b _08131EA0
-_08131A2E:
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08131EA0
- .align 2, 0
-_08131A3C: .4byte gSprites
-_08131A40: .4byte gTasks
-_08131A44:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08131A74
- ldr r0, _08131A6C
- ldr r2, [r0, 0x8]
- mov r10, r2
- ldr r3, [r0, 0xC]
- mov r9, r3
- ldrh r5, [r0]
- ldr r0, _08131A70
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- b _08131B92
- .align 2, 0
-_08131A6C: .4byte 0x02019348
-_08131A70: .4byte gUnknown_0202F7C8
-_08131A74:
- ldr r4, _08131AD4
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131B10
- ldr r7, _08131AD8
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08131ADC
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _08131AE0
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08131AE4
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- b _08131AE6
- .align 2, 0
-_08131AD4: .4byte gUnknown_0202F7C8
-_08131AD8: .4byte gUnknown_02024A6A
-_08131ADC: .4byte gPlayerParty
-_08131AE0: .4byte 0x02017800
-_08131AE4:
- ldrh r5, [r1, 0x2]
-_08131AE6:
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _08131B0C
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- movs r6, 0x88
- lsls r6, 1
- b _08131B94
- .align 2, 0
-_08131B0C: .4byte gSprites
-_08131B10:
- ldr r7, _08131B64
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08131B68
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _08131B6C
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08131B70
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- b _08131B72
- .align 2, 0
-_08131B64: .4byte gUnknown_02024A6A
-_08131B68: .4byte gEnemyParty
-_08131B6C: .4byte 0x02017800
-_08131B70:
- ldrh r5, [r1, 0x2]
-_08131B72:
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _08131C04
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_08131B92:
- ldr r6, _08131C08
-_08131B94:
- ldr r0, _08131C0C
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r6, 16
- asrs r3, 16
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r4, r10
- str r4, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0
- bl sub_8079F44
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08131C10
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _08131C14
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _08131BF2
- ldr r1, _08131C04
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- orrs r0, r1
- ldr r3, _08131C18
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
-_08131BF2:
- ldr r0, _08131C1C
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x26]
- b _08131DB6
- .align 2, 0
-_08131C04: .4byte gSprites
-_08131C08: .4byte 0x0000ffe0
-_08131C0C: .4byte gUnknown_0202F7C9
-_08131C10: .4byte gUnknown_0202F7C8
-_08131C14: .4byte 0x02017800
-_08131C18: .4byte 0x00007fff
-_08131C1C: .4byte gTasks
-_08131C20:
- ldr r1, _08131C6C
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r2, [r6, 0xA]
- adds r0, r2
- strh r0, [r6, 0xA]
- ldr r0, _08131C70
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _08131C78
- ldr r3, _08131C74
- lsls r4, r5, 4
- adds r2, r4, r5
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
- b _08131C8E
- .align 2, 0
-_08131C6C: .4byte gTasks
-_08131C70: .4byte gUnknown_0202F7C8
-_08131C74: .4byte gSprites
-_08131C78:
- ldr r2, _08131CDC
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
-_08131C8E:
- ldr r1, _08131CE0
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrb r0, [r6, 0xA]
- strh r0, [r6, 0xA]
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08131D0E
- ldr r0, _08131CE4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131CEC
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, _08131CE8
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bge _08131D0E
- b _08131D02
- .align 2, 0
-_08131CDC: .4byte gSprites
-_08131CE0: .4byte gTasks
-_08131CE4: .4byte gUnknown_0202F7C8
-_08131CE8: .4byte gUnknown_0202F7C9
-_08131CEC:
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, _08131D30
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _08131D0E
-_08131D02:
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- ldr r1, _08131D34
- ldr r0, _08131D38
- strh r0, [r1, 0xE]
-_08131D0E:
- lsls r0, r5, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r2
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _08131D20
- b _08131EA0
-_08131D20:
- ldr r0, _08131D3C
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0xA]
- b _08131DB6
- .align 2, 0
-_08131D30: .4byte gUnknown_0202F7C9
-_08131D34: .4byte gUnknown_03004B00
-_08131D38: .4byte 0x0000ffff
-_08131D3C: .4byte gTasks
-_08131D40:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08131D8C
- mov r3, r8
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r5, _08131D90
- adds r0, r5
- bl sub_807A0F4
- ldr r0, _08131D94
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _08131D98
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r1, 0x20]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1, 0x24]
- b _08131DAC
- .align 2, 0
-_08131D8C: .4byte gTasks
-_08131D90: .4byte gSprites
-_08131D94: .4byte gUnknown_0202F7C8
-_08131D98:
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r5
- ldrh r2, [r0, 0x20]
- movs r4, 0x88
- lsls r4, 1
- adds r1, r4, 0
- subs r1, r2
- strh r1, [r0, 0x24]
-_08131DAC:
- ldr r0, _08131DC0
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_08131DB6:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08131EA0
- .align 2, 0
-_08131DC0: .4byte gTasks
-_08131DC4:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08131E38
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r3, [r2, 0xA]
- adds r0, r3
- strh r0, [r2, 0xA]
- ldr r0, _08131E3C
- mov r10, r0
- ldrb r0, [r0]
- str r2, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- ldr r2, [sp, 0x10]
- cmp r0, 0
- bne _08131E44
- ldr r1, _08131E40
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x24
- ldrsh r4, [r6, r2]
- movs r3, 0x20
- ldrsh r0, [r6, r3]
- adds r4, r0
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- blt _08131E7C
- movs r2, 0
- strh r2, [r6, 0x24]
- b _08131E7C
- .align 2, 0
-_08131E38: .4byte gTasks
-_08131E3C: .4byte gUnknown_0202F7C8
-_08131E40: .4byte gSprites
-_08131E44:
- ldr r1, _08131EB0
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r1, [r2, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r6, 0x24]
- subs r0, r1
- strh r0, [r6, 0x24]
- movs r3, 0x24
- ldrsh r4, [r6, r3]
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- adds r4, r0
- mov r2, r10
- ldrb r0, [r2]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- bgt _08131E7C
- movs r4, 0
- strh r4, [r6, 0x24]
-_08131E7C:
- ldr r1, _08131EB4
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- strh r1, [r0, 0xA]
- ldr r1, _08131EB0
- adds r0, r3, r7
- lsls r0, 2
- adds r0, r1
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08131EA0
- mov r0, r8
- bl move_anim_task_del
-_08131EA0:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08131EB0: .4byte gSprites
-_08131EB4: .4byte gTasks
- thumb_func_end sub_8131944
-
- thumb_func_start sub_8131EB8
-sub_8131EB8: @ 8131EB8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08131ECA
- cmp r0, 0x1
- beq _08131F72
- b _08131FF4
-_08131ECA:
- ldr r0, _08131F50
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08131F64
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7A
- bl PlaySE12WithPanning
- ldr r0, _08131F54
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- ldr r0, _08131F58
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08131F5C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08131FF4
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08131FF4
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _08131F60
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- b _08131FF4
- .align 2, 0
-_08131F50: .4byte gUnknown_03004B00
-_08131F54: .4byte gUnknown_0202F7C9
-_08131F58: .4byte 0x0000ffe0
-_08131F5C: .4byte gUnknown_0202F7C8
-_08131F60: .4byte gSprites
-_08131F64:
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08131FF4
-_08131F72:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x30]
- adds r0, r2, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _08131FA6
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r2, 0
- subs r0, 0x7A
- strh r0, [r4, 0x30]
-_08131FA6:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldr r0, _08131FD0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131FD4
- ldrh r2, [r4, 0x32]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- adds r1, r2, 0
- b _08131FE0
- .align 2, 0
-_08131FD0: .4byte gUnknown_0202F7C8
-_08131FD4:
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
-_08131FE0:
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- bne _08131FF4
- adds r0, r4, 0
- bl move_anim_8072740
-_08131FF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8131EB8
-
- thumb_func_start sub_8131FFC
-sub_8131FFC: @ 8131FFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08132024
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _08132018
- b _0813216A
-_08132018:
- lsls r0, 2
- ldr r1, _08132028
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08132024: .4byte gTasks
-_08132028: .4byte _0813202C
- .align 2, 0
-_0813202C:
- .4byte _08132040
- .4byte _08132090
- .4byte _081320EC
- .4byte _08132104
- .4byte _0813216A
-_08132040:
- ldr r0, _08132084
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _08132088
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, _0813208C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x6
- strh r0, [r1, 0x8]
- cmp r5, r2
- ble _08132076
- negs r0, r0
- strh r0, [r1, 0x8]
-_08132076:
- strh r5, [r1, 0xA]
- strh r2, [r1, 0xC]
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08132188
- .align 2, 0
-_08132084: .4byte gUnknown_0202F7C8
-_08132088: .4byte gUnknown_0202F7C9
-_0813208C: .4byte gTasks
-_08132090:
- ldr r1, _081320CC
- ldr r0, _081320D0
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, _081320D4
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _081320D8
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- b _0813215E
- .align 2, 0
-_081320CC: .4byte gUnknown_02024BE0
-_081320D0: .4byte gUnknown_0202F7C8
-_081320D4: .4byte gSprites
-_081320D8:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08132188
- b _08132162
-_081320EC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x8]
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
- b _08132188
-_08132104:
- ldr r1, _08132144
- ldr r0, _08132148
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, _0813214C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _08132150
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08132188
- b _08132162
- .align 2, 0
-_08132144: .4byte gUnknown_02024BE0
-_08132148: .4byte gUnknown_0202F7C8
-_0813214C: .4byte gSprites
-_08132150:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
-_0813215E:
- cmp r0, r1
- blt _08132188
-_08132162:
- ldrh r0, [r2, 0x26]
- adds r0, 0x1
- strh r0, [r2, 0x26]
- b _08132188
-_0813216A:
- ldr r1, _08132190
- ldr r0, _08132194
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, _08132198
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_task_del
-_08132188:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132190: .4byte gUnknown_02024BE0
-_08132194: .4byte gUnknown_0202F7C8
-_08132198: .4byte gSprites
- thumb_func_end sub_8131FFC
-
- thumb_func_start sub_813219C
-sub_813219C: @ 813219C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08132204
- adds r4, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0xE]
- ldr r0, _08132208
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- movs r2, 0x1
- negs r2, r2
- adds r1, r2, 0
- cmp r0, 0
- bne _081321D0
- movs r1, 0x1
-_081321D0:
- strh r1, [r4, 0x10]
- ldr r2, _0813220C
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x1A]
- strh r5, [r4, 0x1E]
- movs r0, 0x1
- strh r0, [r4, 0x1C]
- strh r5, [r4, 0x20]
- ldr r0, _08132210
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132204: .4byte gTasks
-_08132208: .4byte gUnknown_0202F7C8
-_0813220C: .4byte gSprites
-_08132210: .4byte sub_8132214
- thumb_func_end sub_813219C
-
- thumb_func_start sub_8132214
-sub_8132214: @ 8132214
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _08132238
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _081322BC
- cmp r0, 0x1
- bgt _0813223C
- cmp r0, 0
- beq _08132242
- b _08132312
- .align 2, 0
-_08132238: .4byte gTasks
-_0813223C:
- cmp r0, 0x2
- beq _0813230C
- b _08132312
-_08132242:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r4, 0x1E]
- ldr r5, _081322B4
- movs r6, 0xE
- ldrsh r0, [r4, r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldr r3, _081322B8
- movs r6, 0x1E
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x2
- ands r0, r2
- strh r0, [r4, 0x1A]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x10]
- muls r0, r1
- ldrh r1, [r4, 0x12]
- adds r0, r1
- strh r0, [r2, 0x20]
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _08132312
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x20]
- b _081322FC
- .align 2, 0
-_081322B4: .4byte gSprites
-_081322B8: .4byte gSineTable
-_081322BC:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x1E]
- ldr r3, _08132304
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldr r2, _08132308
- movs r5, 0x1E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- movs r6, 0x1E
- ldrsh r2, [r4, r6]
- cmp r2, 0
- bne _08132312
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- strh r2, [r1, 0x24]
-_081322FC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08132312
- .align 2, 0
-_08132304: .4byte gSprites
-_08132308: .4byte gSineTable
-_0813230C:
- adds r0, r2, 0
- bl move_anim_task_del
-_08132312:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8132214
-
- thumb_func_start sub_8132318
-sub_8132318: @ 8132318
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0813236C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0813235E
- adds r0, r4, 0
- bl move_anim_8072740
-_0813235E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813236C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8132318
-
- thumb_func_start sub_8132370
-sub_8132370: @ 8132370
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _081323A8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _081323B4
- ldr r2, _081323AC
- ldrh r0, [r4, 0x20]
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r0, _081323B0
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _081323CE
- .align 2, 0
-_081323A8: .4byte gUnknown_0202F7C9
-_081323AC: .4byte gUnknown_03004B00
-_081323B0: .4byte 0x0000fff5
-_081323B4:
- movs r0, 0xB
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- ldr r1, _081323D8
- ldrh r0, [r1]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
-_081323CE:
- ldr r0, _081323DC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081323D8: .4byte gUnknown_03004B00
-_081323DC: .4byte sub_8132318
- thumb_func_end sub_8132370
-
- thumb_func_start sub_81323E0
-sub_81323E0: @ 81323E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08132424
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0813240A
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_0813240A:
- movs r0, 0
- strh r0, [r5, 0x3A]
- movs r1, 0x10
- strh r1, [r5, 0x3C]
- ldr r0, _08132428
- str r0, [r5, 0x1C]
- ldr r0, _0813242C
- lsls r1, 8
- strh r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132424: .4byte gUnknown_0202F7C8
-_08132428: .4byte sub_8132430
-_0813242C: .4byte REG_BLDALPHA
- thumb_func_end sub_81323E0
-
- thumb_func_start sub_8132430
-sub_8132430: @ 8132430
- push {r4,lr}
- adds r3, r0, 0
- movs r0, 0x32
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _081324A8
- cmp r1, 0x1
- bgt _08132446
- cmp r1, 0
- beq _08132450
- b _08132522
-_08132446:
- cmp r1, 0x2
- beq _081324BE
- cmp r1, 0x3
- beq _0813251C
- b _08132522
-_08132450:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08132522
- strh r1, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813247A
- ldrh r2, [r3, 0x3A]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- cmp r0, 0xF
- bgt _08132488
- adds r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _08132488
-_0813247A:
- ldrh r2, [r3, 0x3C]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _08132488
- subs r0, r2, 0x1
- strh r0, [r3, 0x3C]
-_08132488:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- ldr r2, _081324A4
- ldrh r0, [r3, 0x3C]
- lsls r0, 8
- ldrh r1, [r3, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08132522
- b _08132510
- .align 2, 0
-_081324A4: .4byte REG_BLDALPHA
-_081324A8:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _08132522
- strh r1, [r3, 0x2E]
- strh r1, [r3, 0x30]
- b _08132510
-_081324BE:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08132522
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081324EA
- ldrh r2, [r3, 0x3A]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _081324F8
- subs r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _081324F8
-_081324EA:
- ldrh r2, [r3, 0x3C]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- cmp r0, 0xF
- bgt _081324F8
- adds r0, r2, 0x1
- strh r0, [r3, 0x3C]
-_081324F8:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- ldr r2, _08132518
- ldrh r0, [r3, 0x3C]
- lsls r0, 8
- ldrh r1, [r3, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0x10
- bne _08132522
-_08132510:
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- b _08132522
- .align 2, 0
-_08132518: .4byte REG_BLDALPHA
-_0813251C:
- adds r0, r3, 0
- bl move_anim_8074EE0
-_08132522:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8132430
-
- thumb_func_start sub_8132528
-sub_8132528: @ 8132528
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _08132544
- movs r0, 0
- strh r0, [r2, 0xE]
- ldr r0, _08132548
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0813254C
- movs r0, 0x1
- b _0813256E
- .align 2, 0
-_08132544: .4byte gUnknown_03004B00
-_08132548: .4byte gUnknown_0202F7C0
-_0813254C:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08132558
- movs r0, 0x2
- b _0813256E
-_08132558:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08132564
- movs r0, 0x3
- b _0813256E
-_08132564:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132570
- movs r0, 0x4
-_0813256E:
- strh r0, [r2, 0xE]
-_08132570:
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- thumb_func_end sub_8132528
-
- thumb_func_start sub_813257C
-sub_813257C: @ 813257C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _081325B4
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _081325B8
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, _081325BC
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _081325C0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081325B4: .4byte gTasks
-_081325B8: .4byte gUnknown_03004B00
-_081325BC: .4byte gUnknown_08402B28
-_081325C0: .4byte sub_81325C4
- thumb_func_end sub_813257C
-
- thumb_func_start sub_81325C4
-sub_81325C4: @ 81325C4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, _0813261C
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _08132628
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08132638
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _08132628
- ldr r2, _08132620
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08132624
- strh r1, [r0, 0x24]
- b _08132638
- .align 2, 0
-_0813261C: .4byte gTasks
-_08132620: .4byte gSprites
-_08132624: .4byte 0x0000ffff
-_08132628:
- ldr r2, _08132658
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_08132638:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _08132650
- adds r0, r4, 0
- bl move_anim_task_del
-_08132650:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132658: .4byte gSprites
- thumb_func_end sub_81325C4
-
- thumb_func_start sub_813265C
-sub_813265C: @ 813265C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_813265C
-
- thumb_func_start sub_8132670
-sub_8132670: @ 8132670
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08132698
- movs r1, 0xA
- bl CreateTask
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08132698: .4byte sub_813269C
- thumb_func_end sub_8132670
-
- thumb_func_start sub_813269C
-sub_813269C: @ 813269C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081326C8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081326C0
- ldr r0, _081326CC
- bl SetMainCallback2
- ldr r1, _081326D0
- ldr r0, _081326D4
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_081326C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081326C8: .4byte gPaletteFade
-_081326CC: .4byte sub_81326D8
-_081326D0: .4byte gUnknown_0300485C
-_081326D4: .4byte sub_8080990
- thumb_func_end sub_813269C
-
- thumb_func_start sub_81326D8
-sub_81326D8: @ 81326D8
- push {r4,r5,lr}
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r4, _08132778
- ldr r0, _0813277C
- str r0, [r4]
- bl sub_81332A0
- ldr r1, [r4]
- ldr r0, _08132780
- ldrh r0, [r0]
- ldr r2, _08132784
- adds r1, r2
- movs r5, 0
- strb r0, [r1]
- bl sub_8133558
- ldr r0, _08132788
- bl SetVBlankCallback
- ldr r4, _0813278C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r4, _08132790
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r0, _08132794
- strh r5, [r0]
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- strh r5, [r0]
- ldr r0, _08132798
- bl LoadSpriteSheet
- ldr r0, _0813279C
- bl LoadSpritePalette
- bl sub_8133358
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _081327A0
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132778: .4byte gUnknown_030007B0
-_0813277C: .4byte 0x02017000
-_08132780: .4byte gUnknown_0202E8CC
-_08132784: .4byte 0x000002c5
-_08132788: .4byte sub_813265C
-_0813278C: .4byte gWindowConfig_81E7240
-_08132790: .4byte gWindowConfig_81E6CE4
-_08132794: .4byte REG_BG0VOFS
-_08132798: .4byte gUnknown_08402D80
-_0813279C: .4byte gUnknown_08402D88
-_081327A0: .4byte sub_8132870
- thumb_func_end sub_81326D8
-
- thumb_func_start sub_81327A4
-sub_81327A4: @ 81327A4
- push {r4,r5,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r4, _08132844
- ldr r0, _08132848
- str r0, [r4]
- bl sub_8133558
- ldr r1, [r4]
- ldr r0, _0813284C
- ldrh r0, [r0]
- ldr r2, _08132850
- adds r1, r2
- movs r5, 0
- strb r0, [r1]
- ldr r0, _08132854
- bl SetVBlankCallback
- ldr r4, _08132858
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r4, _0813285C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08132860
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- strh r5, [r0]
- ldr r0, _08132864
- bl LoadSpriteSheet
- ldr r0, _08132868
- bl LoadSpritePalette
- bl sub_8133358
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _0813286C
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132844: .4byte gUnknown_030007B0
-_08132848: .4byte 0x02017000
-_0813284C: .4byte gUnknown_0202E8CE
-_08132850: .4byte 0x000002c6
-_08132854: .4byte sub_813265C
-_08132858: .4byte gWindowConfig_81E7240
-_0813285C: .4byte gWindowConfig_81E6CE4
-_08132860: .4byte REG_BG0VOFS
-_08132864: .4byte gUnknown_08402D80
-_08132868: .4byte gUnknown_08402D88
-_0813286C: .4byte sub_8132870
- thumb_func_end sub_81327A4
-
- thumb_func_start sub_8132870
-sub_8132870: @ 8132870
- push {r4,lr}
- bl sub_8132908
- ldr r4, _081328E0
- ldr r1, [r4]
- ldrb r0, [r1, 0x1D]
- cmp r0, 0
- beq _08132896
- movs r0, 0
- strb r0, [r1, 0x1D]
- ldr r0, [r4]
- ldrb r1, [r0, 0x18]
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 27
- lsrs r1, 24
- movs r0, 0x58
- bl sub_814AD7C
-_08132896:
- ldr r1, [r4]
- ldrb r0, [r1, 0x1E]
- cmp r0, 0
- beq _081328A6
- movs r0, 0
- strb r0, [r1, 0x1E]
- bl sub_8133800
-_081328A6:
- ldr r1, [r4]
- ldr r2, _081328E4
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _081328C8
- adds r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8133AEC
- ldr r0, [r4]
- ldr r1, _081328E4
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_081328C8:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081328E0: .4byte gUnknown_030007B0
-_081328E4: .4byte 0x000002c3
- thumb_func_end sub_8132870
-
- thumb_func_start sub_81328E8
-sub_81328E8: @ 81328E8
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, _08132904
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132904: .4byte gStringVar4
- thumb_func_end sub_81328E8
-
- thumb_func_start sub_8132908
-sub_8132908: @ 8132908
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _0813292C
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0x21
- bls _08132920
- b _08132FD6
-_08132920:
- lsls r0, 2
- ldr r1, _08132930
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813292C: .4byte gUnknown_030007B0
-_08132930: .4byte _08132934
- .align 2, 0
-_08132934:
- .4byte _081329BC
- .4byte _08132A0C
- .4byte _08132A24
- .4byte _08132A2C
- .4byte _08132A60
- .4byte _08132A66
- .4byte _08132A98
- .4byte _08132FD6
- .4byte _08132AAA
- .4byte _08132AD0
- .4byte _08132FD6
- .4byte _08132FD6
- .4byte _08132B74
- .4byte _08132B98
- .4byte _08132DD8
- .4byte _08132DF8
- .4byte _08132BF0
- .4byte _08132C08
- .4byte _08132C2C
- .4byte _08132D40
- .4byte _08132D68
- .4byte _08132DB8
- .4byte _08132DC6
- .4byte _08132FD6
- .4byte _08132C74
- .4byte _08132C8C
- .4byte _08132CB0
- .4byte _08132D0C
- .4byte _08132E18
- .4byte _08132E7C
- .4byte _08132F58
- .4byte _08132F84
- .4byte _08132FA4
- .4byte _08132FBC
-_081329BC:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r4, 0
- strb r0, [r1]
- bl sub_8132FEC
- movs r0, 0
- bl sub_8133030
- bl sub_8133800
- ldr r0, _08132A04
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- ldr r0, [r7]
- ldr r1, _08132A08
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- b _08132FD6
- .align 2, 0
-_08132A04: .4byte gSprites
-_08132A08: .4byte 0x000002c3
-_08132A0C:
- ldr r0, _08132A20
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132A1A
- b _08132FD6
-_08132A1A:
- ldr r1, [r7]
- movs r0, 0x4
- b _08132FD4
- .align 2, 0
-_08132A20: .4byte gPaletteFade
-_08132A24:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
-_08132A2C:
- movs r0, 0
- bl sub_8133030
- bl sub_8133800
- ldr r2, _08132A54
- ldr r0, [r2]
- ldr r1, _08132A58
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _08132A5C
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- b _08132FD6
- .align 2, 0
-_08132A54: .4byte gUnknown_030007B0
-_08132A58: .4byte 0x000002c3
-_08132A5C: .4byte gSprites
-_08132A60:
- bl sub_81330E8
- b _08132A9C
-_08132A66:
- movs r0, 0
- bl sub_8133140
- bl sub_8133800
- ldr r2, _08132A8C
- ldr r0, [r2]
- ldr r1, _08132A90
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08132A94
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132A8C: .4byte gUnknown_030007B0
-_08132A90: .4byte 0x000002c3
-_08132A94: .4byte gSprites
-_08132A98:
- bl sub_8133248
-_08132A9C:
- lsls r0, 24
- cmp r0, 0
- beq _08132AA4
- b _08132FD6
-_08132AA4:
- bl sub_813362C
- b _08132FD6
-_08132AAA:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132AB6
- b _08132FD6
-_08132AB6:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132ACC
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132ACC: .4byte gUnknown_030007B0
-_08132AD0:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132B3A
- bl sub_8133CA4
- ldr r4, _08132B1C
- ldr r2, [r4]
- ldr r1, _08132B20
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08132B24
- adds r0, r1
- ldrb r1, [r2, 0x1B]
- lsls r1, 1
- adds r2, 0x20
- adds r2, r1
- ldrh r1, [r2]
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, _08132B28
- cmp r0, r1
- beq _08132B34
- ldr r0, _08132B2C
- bl sub_81328E8
- ldr r1, _08132B30
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, [r4]
- movs r0, 0x1F
- b _08132FD4
- .align 2, 0
-_08132B1C: .4byte gUnknown_030007B0
-_08132B20: .4byte 0x000002c5
-_08132B24: .4byte gPlayerParty
-_08132B28: .4byte 0xffff0000
-_08132B2C: .4byte gOtherText_PokeLearnedMove
-_08132B30: .4byte gUnknown_0202E8CC
-_08132B34:
- ldr r1, [r4]
- movs r0, 0x10
- b _08132FD4
-_08132B3A:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132B48
- cmp r1, 0x1
- beq _08132B48
- b _08132FD6
-_08132B48:
- bl sub_8133CA4
- ldr r3, _08132B70
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132B60
- movs r0, 0x3
- strb r0, [r1]
-_08132B60:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132B6C
- b _08132FD6
-_08132B6C:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132B70: .4byte gUnknown_030007B0
-_08132B74:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132B80
- b _08132FD6
-_08132B80:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132B94
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132B94: .4byte gUnknown_030007B0
-_08132B98:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- bne _08132BB4
- bl sub_8133CA4
- ldr r0, _08132BB0
- strh r4, [r0]
- b _08132FCE
- .align 2, 0
-_08132BB0: .4byte gUnknown_0202E8CC
-_08132BB4:
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08132BC2
- cmp r4, 0x1
- beq _08132BC2
- b _08132FD6
-_08132BC2:
- bl sub_8133CA4
- ldr r3, _08132BEC
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132BDA
- movs r0, 0x3
- strb r0, [r1]
-_08132BDA:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132BE6
- b _08132FD6
-_08132BE6:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132BEC: .4byte gUnknown_030007B0
-_08132BF0:
- ldr r0, _08132C00
- bl sub_81328E8
- ldr r0, _08132C04
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132C00: .4byte gOtherText_DeleteOlderMove
-_08132C04: .4byte gUnknown_030007B0
-_08132C08:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132C14
- b _08132FD6
-_08132C14:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132C28
- ldr r1, [r0]
- movs r0, 0x12
- b _08132FD4
- .align 2, 0
-_08132C28: .4byte gUnknown_030007B0
-_08132C2C:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132C54
- bl sub_8133CA4
- ldr r0, _08132C4C
- bl sub_81328E8
- ldr r0, _08132C50
- ldr r1, [r0]
- movs r0, 0x13
- b _08132FD4
- .align 2, 0
-_08132C4C: .4byte gOtherText_WhichMoveToForget
-_08132C50: .4byte gUnknown_030007B0
-_08132C54:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132C62
- cmp r1, 0x1
- beq _08132C62
- b _08132FD6
-_08132C62:
- bl sub_8133CA4
- ldr r0, _08132C70
- ldr r1, [r0]
- movs r0, 0x18
- b _08132FD4
- .align 2, 0
-_08132C70: .4byte gUnknown_030007B0
-_08132C74:
- ldr r0, _08132C84
- bl sub_81328E8
- ldr r0, _08132C88
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132C84: .4byte gOtherText_StopLearningMove
-_08132C88: .4byte gUnknown_030007B0
-_08132C8C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132C98
- b _08132FD6
-_08132C98:
- ldr r0, _08132CAC
- ldr r1, [r0]
- movs r0, 0x1A
- strb r0, [r1]
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- b _08132FD6
- .align 2, 0
-_08132CAC: .4byte gUnknown_030007B0
-_08132CB0:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132CCC
- bl sub_8133CA4
- ldr r0, _08132CC8
- ldr r1, [r0]
- movs r0, 0x1B
- b _08132FD4
- .align 2, 0
-_08132CC8: .4byte gUnknown_030007B0
-_08132CCC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132CDA
- cmp r1, 0x1
- beq _08132CDA
- b _08132FD6
-_08132CDA:
- bl sub_8133CA4
- ldr r1, _08132D08
- ldr r2, [r1]
- movs r3, 0xB1
- lsls r3, 2
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132CF2
- movs r0, 0x3
- strb r0, [r2]
-_08132CF2:
- ldr r2, [r1]
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08132D00
- movs r0, 0x5
- strb r0, [r2]
-_08132D00:
- ldr r1, [r1]
- movs r0, 0x10
- b _08132FD4
- .align 2, 0
-_08132D08: .4byte gUnknown_030007B0
-_08132D0C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132D18
- b _08132FD6
-_08132D18:
- ldr r3, _08132D3C
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132D2C
- movs r0, 0x3
- strb r0, [r1]
-_08132D2C:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132D38
- b _08132FD6
-_08132D38:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132D3C: .4byte gUnknown_030007B0
-_08132D40:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132D4C
- b _08132FD6
-_08132D4C:
- ldr r0, _08132D64
- ldr r1, [r0]
- movs r2, 0
- movs r0, 0x14
- strb r0, [r1]
- subs r0, 0x15
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08132FD6
- .align 2, 0
-_08132D64: .4byte gUnknown_030007B0
-_08132D68:
- ldr r0, _08132DA4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132D76
- b _08132FD6
-_08132D76:
- ldr r0, _08132DA8
- ldr r5, [r7]
- ldr r2, _08132DAC
- adds r1, r5, r2
- ldrb r1, [r1]
- ldr r2, _08132DB0
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08132DB4
- ldrb r4, [r5, 0x1B]
- lsls r4, 1
- adds r5, 0x20
- adds r5, r4
- ldrh r4, [r5]
- str r4, [sp]
- bl sub_809D9F0
- ldr r1, [r7]
- movs r0, 0x1C
- b _08132FD4
- .align 2, 0
-_08132DA4: .4byte gPaletteFade
-_08132DA8: .4byte gPlayerParty
-_08132DAC: .4byte 0x000002c5
-_08132DB0: .4byte gPlayerPartyCount
-_08132DB4: .4byte sub_81327A4
-_08132DB8:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132DC4
- b _08132FD6
-_08132DC4:
- b _08132FCE
-_08132DC6:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08132FD6
-_08132DD8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08132DF4
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132DF4: .4byte gUnknown_030007B0
-_08132DF8:
- ldr r0, _08132E10
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132E06
- b _08132FD6
-_08132E06:
- ldr r0, _08132E14
- bl SetMainCallback2
- b _08132FD6
- .align 2, 0
-_08132E10: .4byte gPaletteFade
-_08132E14: .4byte c2_exit_to_overworld_2_switch
-_08132E18:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r5, _08132E74
- ldr r1, [r5]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8132FEC
- bl sub_8133800
- ldr r0, [r5]
- movs r4, 0xB1
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132E4E
- movs r0, 0x1
- bl sub_8133030
-_08132E4E:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08132E66
- ldr r0, _08132E78
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- movs r0, 0x1
- bl sub_8133140
-_08132E66:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8133AEC
- b _08132FD6
- .align 2, 0
-_08132E74: .4byte gUnknown_030007B0
-_08132E78: .4byte gSprites
-_08132E7C:
- ldr r0, _08132E9C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132E8A
- b _08132FD6
-_08132E8A:
- ldr r1, [r7]
- ldr r0, _08132EA0
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0x4
- bne _08132EA4
- movs r0, 0x18
- b _08132FD4
- .align 2, 0
-_08132E9C: .4byte gPaletteFade
-_08132EA0: .4byte 0x000002c6
-_08132EA4:
- ldr r4, _08132F38
- adds r0, r1, r4
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08132F3C
- adds r0, r5
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08132F40
- movs r1, 0xD
- mov r9, r1
- mov r1, r9
- muls r1, r0
- ldr r0, _08132F44
- mov r8, r0
- add r1, r8
- adds r0, r2, 0
- bl StringCopy
- ldr r1, [r7]
- adds r0, r1, r4
- ldrb r0, [r0]
- muls r0, r6
- adds r0, r5
- ldr r2, _08132F48
- adds r1, r2
- ldrb r1, [r1]
- bl RemoveMonPPBonus
- ldr r3, [r7]
- adds r4, r3, r4
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- ldrb r2, [r3, 0x1B]
- lsls r2, 1
- adds r1, r3, 0
- adds r1, 0x20
- adds r1, r2
- ldrh r1, [r1]
- ldr r2, _08132F48
- adds r3, r2
- ldrb r2, [r3]
- bl SetMonMoveSlot
- ldr r0, _08132F4C
- ldr r1, [r7]
- ldrb r2, [r1, 0x1B]
- lsls r2, 1
- adds r1, 0x20
- adds r1, r2
- ldrh r1, [r1]
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- add r1, r8
- bl StringCopy
- ldr r0, _08132F50
- bl sub_81328E8
- ldr r1, [r7]
- movs r0, 0x1E
- strb r0, [r1]
- ldr r1, _08132F54
- movs r0, 0x1
- strh r0, [r1]
- b _08132FD6
- .align 2, 0
-_08132F38: .4byte 0x000002c5
-_08132F3C: .4byte gPlayerParty
-_08132F40: .4byte gStringVar3
-_08132F44: .4byte gMoveNames
-_08132F48: .4byte 0x000002c6
-_08132F4C: .4byte gStringVar2
-_08132F50: .4byte gOtherText_ForgotMove123
-_08132F54: .4byte gUnknown_0202E8CC
-_08132F58:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132F78
- bl sub_81328E8
- ldr r0, _08132F7C
- ldr r1, [r0]
- movs r0, 0x1F
- strb r0, [r1]
- ldr r0, _08132F80
- bl PlayFanfare
- b _08132FD6
- .align 2, 0
-_08132F78: .4byte gOtherText_ForgotOrDidNotLearnMove
-_08132F7C: .4byte gUnknown_030007B0
-_08132F80: .4byte 0x0000016f
-_08132F84:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132F9C
- bl PlayFanfare
- ldr r0, _08132FA0
- ldr r1, [r0]
- movs r0, 0x20
- b _08132FD4
- .align 2, 0
-_08132F9C: .4byte 0x0000016f
-_08132FA0: .4byte gUnknown_030007B0
-_08132FA4:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132FB8
- ldr r1, [r0]
- movs r0, 0x21
- b _08132FD4
- .align 2, 0
-_08132FB8: .4byte gUnknown_030007B0
-_08132FBC:
- ldr r0, _08132FE4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132FD6
- movs r0, 0x5
- bl PlaySE
-_08132FCE:
- ldr r0, _08132FE8
- ldr r1, [r0]
- movs r0, 0xE
-_08132FD4:
- strb r0, [r1]
-_08132FD6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08132FE4: .4byte gMain
-_08132FE8: .4byte gUnknown_030007B0
- thumb_func_end sub_8132908
-
- thumb_func_start sub_8132FEC
-sub_8132FEC: @ 8132FEC
- push {r4-r6,lr}
- ldr r0, _08133024
- bl BasicInitMenuWindow
- movs r5, 0
- ldr r4, _08133028
- adds r6, r4, 0
-_08132FFA:
- lsls r3, r5, 2
- ldrb r0, [r4]
- adds r1, r6, 0x1
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r6, 0x2
- adds r3, r2
- ldrb r2, [r3]
- ldrb r3, [r4, 0x3]
- bl MenuDrawTextWindow
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, 0x3
- bls _08132FFA
- ldr r0, _0813302C
- bl BasicInitMenuWindow
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08133024: .4byte gWindowConfig_81E7240
-_08133028: .4byte gUnknown_08402CF8
-_0813302C: .4byte gWindowConfig_81E6CE4
- thumb_func_end sub_8132FEC
-
- thumb_func_start sub_8133030
-sub_8133030: @ 8133030
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _081330D4
- ldr r5, _081330D8
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r2, 0
- ldr r6, _081330DC
- movs r3, 0x4
-_08133070:
- ldr r0, [r5]
- adds r0, r2
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xF
- ble _08133070
- ldr r0, [r6]
- cmp r0, 0
- beq _081330B4
- ldr r5, _081330E0
- adds r4, r6, 0
-_08133096:
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x40
- movs r3, 0x2
- bl sub_8072C74
- ldrb r1, [r4, 0x4]
- ldrb r2, [r4, 0x5]
- adds r0, r5, 0
- bl MenuPrint
- adds r4, 0x8
- ldr r0, [r4]
- cmp r0, 0
- bne _08133096
-_081330B4:
- cmp r7, 0
- bne _081330CC
- ldr r0, _081330E4
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0x78
- movs r3, 0xC0
- bl sub_8072AB0
-_081330CC:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081330D4: .4byte gSprites
-_081330D8: .4byte gUnknown_030007B0
-_081330DC: .4byte gUnknown_08402D08
-_081330E0: .4byte gTileBuffer
-_081330E4: .4byte gOtherText_TeachWhichMove
- thumb_func_end sub_8133030
-
- thumb_func_start sub_81330E8
-sub_81330E8: @ 81330E8
- push {r4,lr}
- ldr r0, _08133134
- ldrh r2, [r0, 0x2E]
- movs r1, 0x30
- ands r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- ldr r0, _08133138
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0813310C
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0813310C
- adds r4, 0x1
-_0813310C:
- cmp r4, 0
- beq _0813312A
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0813313C
- ldr r1, [r2]
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0813312A:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133134: .4byte gMain
-_08133138: .4byte gSaveBlock2
-_0813313C: .4byte gUnknown_030007B0
- thumb_func_end sub_81330E8
-
- thumb_func_start sub_8133140
-sub_8133140: @ 8133140
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r4, _08133234
- ldr r5, _08133238
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- movs r6, 0
- ldr r7, _0813323C
-_0813318A:
- ldr r0, [r5]
- adds r0, r6
- ldrb r0, [r0, 0x7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0xF
- ble _0813318A
- movs r6, 0
- ldr r0, [r7]
- cmp r0, 0
- beq _08133208
- mov r9, r7
- mov r10, r6
- movs r0, 0x24
- add r0, r9
- mov r8, r0
-_081331BA:
- mov r0, r9
- adds r0, 0x20
- add r0, r10
- ldr r1, [r0]
- ldr r0, _08133240
- movs r2, 0x40
- movs r3, 0x2
- bl sub_8072C74
- mov r0, r8
- ldrb r5, [r0]
- ldrb r4, [r0, 0x1]
- ldr r0, _08133240
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- cmp r6, 0
- beq _081331F8
- adds r1, r4, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r5, 0x7
- lsls r2, 24
- lsrs r2, 24
- adds r3, r4, 0x3
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- bl MenuZeroFillWindowRect
-_081331F8:
- movs r0, 0x8
- add r10, r0
- add r8, r0
- adds r7, 0x8
- adds r6, 0x1
- ldr r0, [r7]
- cmp r0, 0
- bne _081331BA
-_08133208:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _08133222
- ldr r0, _08133244
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0x78
- movs r3, 0xC0
- bl sub_8072AB0
-_08133222:
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133234: .4byte gSprites
-_08133238: .4byte gUnknown_030007B0
-_0813323C: .4byte gUnknown_08402D08
-_08133240: .4byte gTileBuffer
-_08133244: .4byte gOtherText_TeachWhichMove
- thumb_func_end sub_8133140
-
- thumb_func_start sub_8133248
-sub_8133248: @ 8133248
- push {r4,lr}
- ldr r0, _08133294
- ldrh r2, [r0, 0x2E]
- movs r1, 0x30
- ands r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- ldr r0, _08133298
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0813326C
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0813326C
- adds r4, 0x1
-_0813326C:
- cmp r4, 0
- beq _0813328A
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0813329C
- ldr r1, [r2]
- movs r3, 0
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- strb r3, [r0]
-_0813328A:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133294: .4byte gMain
-_08133298: .4byte gSaveBlock2
-_0813329C: .4byte gUnknown_030007B0
- thumb_func_end sub_8133248
-
- thumb_func_start sub_81332A0
-sub_81332A0: @ 81332A0
- push {r4,lr}
- ldr r2, _081332F8
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x2]
- ldr r0, [r2]
- strb r1, [r0, 0x19]
- ldr r0, [r2]
- strb r1, [r0, 0x18]
- ldr r0, [r2]
- strb r1, [r0, 0x1C]
- ldr r0, [r2]
- strb r1, [r0, 0x1A]
- ldr r0, [r2]
- strb r1, [r0, 0x1B]
- ldr r0, [r2]
- strb r1, [r0, 0x1D]
- ldr r0, [r2]
- strb r1, [r0, 0x1E]
- ldr r0, [r2]
- ldr r3, _081332FC
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- adds r3, 0x1
- adds r0, r3
- strb r1, [r0]
- movs r3, 0
- adds r4, r2, 0
- movs r2, 0
-_081332E0:
- ldr r0, [r4]
- lsls r1, r3, 1
- adds r0, 0x20
- adds r0, r1
- strh r2, [r0]
- adds r3, 0x1
- cmp r3, 0x13
- ble _081332E0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081332F8: .4byte gUnknown_030007B0
-_081332FC: .4byte 0x000002c3
- thumb_func_end sub_81332A0
-
- thumb_func_start sub_8133300
-sub_8133300: @ 8133300
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- movs r0, 0xFF
- ands r1, r0
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _08133324
- cmp r0, 0x1
- ble _0813334A
- cmp r0, 0x2
- beq _08133338
- b _0813334A
-_08133324:
- adds r0, r1, 0
- movs r1, 0x3
- bl Sin
- ldrh r1, [r4, 0x32]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x24]
- b _0813334A
-_08133338:
- adds r0, r1, 0
- movs r1, 0x1
- bl Sin
- ldrh r1, [r4, 0x32]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x26]
-_0813334A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133300
-
- thumb_func_start sub_8133358
-sub_8133358: @ 8133358
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _0813353C
- adds r0, r6, 0
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- ldr r4, _08133540
- ldr r1, [r4]
- strb r0, [r1, 0x3]
- ldr r5, _08133544
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- mov r8, r1
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08133548
- strh r1, [r0, 0x32]
- adds r0, r6, 0
- movs r1, 0x48
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x4]
- ldr r0, [r4]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldr r0, _0813354C
- mov r9, r0
- movs r1, 0xA0
- movs r2, 0x4
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x5]
- ldr r0, [r4]
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r6, 0x2
- strh r6, [r0, 0x2E]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x32]
- mov r0, r9
- movs r1, 0xA0
- movs r2, 0x3C
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x6]
- ldr r2, [r4]
- ldrb r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- movs r5, 0
- ldr r6, _08133550
-_0813344E:
- adds r2, r5, 0
- cmp r5, 0
- bge _08133456
- adds r2, r5, 0x3
-_08133456:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r5, r1
- lsls r1, 19
- movs r0, 0xE0
- lsls r0, 13
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0xD0
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- adds r0, r6, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r2, r5, 0x4
- adds r1, 0x3
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x3
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08133544
- adds r0, r1
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1
- cmp r5, 0x7
- ble _0813344E
- movs r5, 0
- ldr r7, _08133550
- ldr r6, _08133540
-_081334A6:
- adds r2, r5, 0
- cmp r5, 0
- bge _081334AE
- adds r2, r5, 0x3
-_081334AE:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r5, r1
- lsls r1, 19
- movs r0, 0xE0
- lsls r0, 13
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0xB8
- lsls r0, 15
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r2, r5, 0
- adds r2, 0xC
- adds r1, 0x3
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x3
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08133544
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1
- cmp r5, 0x7
- ble _081334A6
- movs r5, 0
- ldr r3, _08133540
- movs r2, 0x4
-_08133500:
- ldr r0, [r3]
- adds r0, 0x3
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x13
- ble _08133500
- ldr r1, _08133548
- ldr r3, _08133554
- movs r0, 0x12
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0xC
- bl sub_814AC58
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813353C: .4byte gSpriteTemplate_8402D90
-_08133540: .4byte gUnknown_030007B0
-_08133544: .4byte gSprites
-_08133548: .4byte 0x0000ffff
-_0813354C: .4byte gSpriteTemplate_8402DC0
-_08133550: .4byte gSpriteTemplate_8402E08
-_08133554: .4byte 0x00002d9f
- thumb_func_end sub_8133358
-
- thumb_func_start sub_8133558
-sub_8133558: @ 8133558
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, _081335F4
- ldr r1, [r5]
- ldr r2, _081335F8
- adds r0, r1, r2
- ldrb r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _081335FC
- adds r0, r2
- adds r1, 0x20
- bl sub_80403CC
- ldr r1, [r5]
- strb r0, [r1, 0x1A]
- movs r4, 0
- ldr r0, [r5]
- ldrb r0, [r0, 0x1A]
- cmp r4, r0
- bge _081335AA
- adds r6, r5, 0
- movs r5, 0x52
-_08133586:
- lsls r2, r4, 1
- ldr r1, [r6]
- adds r0, r1, r5
- adds r1, 0x20
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08133600
- adds r1, r2
- bl StringCopy
- adds r5, 0x19
- adds r4, 0x1
- ldr r0, [r6]
- ldrb r0, [r0, 0x1A]
- cmp r4, r0
- blt _08133586
-_081335AA:
- ldr r4, _081335F4
- ldr r0, [r4]
- ldr r1, _081335F8
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081335FC
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _08133604
- mov r1, sp
- bl StringCopy10
- ldr r0, [r4]
- ldrb r2, [r0, 0x1A]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r2
- adds r1, 0x52
- adds r0, r1
- ldr r1, _08133608
- bl StringCopy
- ldr r1, [r4]
- ldrb r0, [r1, 0x1A]
- adds r0, 0x1
- strb r0, [r1, 0x1A]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081335F4: .4byte gUnknown_030007B0
-_081335F8: .4byte 0x000002c5
-_081335FC: .4byte gPlayerParty
-_08133600: .4byte gMoveNames
-_08133604: .4byte gStringVar1
-_08133608: .4byte gUnknownText_Exit
- thumb_func_end sub_8133558
-
- thumb_func_start sub_813360C
-sub_813360C: @ 813360C
- lsls r0, 24
- ldr r3, _08133628
- ldr r2, [r3]
- ldrb r1, [r2, 0x18]
- strb r1, [r2, 0x1C]
- ldr r1, [r3]
- lsrs r0, 24
- ldrb r2, [r1, 0x18]
- adds r0, r2
- strb r0, [r1, 0x18]
- ldr r1, [r3]
- movs r0, 0x1
- strb r0, [r1, 0x1D]
- bx lr
- .align 2, 0
-_08133628: .4byte gUnknown_030007B0
- thumb_func_end sub_813360C
-
- thumb_func_start sub_813362C
-sub_813362C: @ 813362C
- push {r4,r5,lr}
- ldr r2, _08133670
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08133688
- ldr r4, _08133674
- ldr r0, [r4]
- ldrb r0, [r0, 0x1B]
- cmp r0, 0
- bne _08133646
- b _08133796
-_08133646:
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x1B]
- subs r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- ldr r1, _08133678
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- beq _0813367C
- movs r0, 0x1
- negs r0, r0
- bl sub_813360C
- b _08133796
- .align 2, 0
-_08133670: .4byte gMain
-_08133674: .4byte gUnknown_030007B0
-_08133678: .4byte 0x000002c3
-_0813367C:
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- bne _08133684
- b _08133796
-_08133684:
- subs r0, 0x1
- b _081336DC
-_08133688:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081336E8
- ldr r4, _081336C8
- ldr r0, [r4]
- ldrb r1, [r0, 0x1B]
- ldrb r0, [r0, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- blt _081336A0
- b _08133796
-_081336A0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x1B]
- adds r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- ldr r3, _081336CC
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0x2
- beq _081336D0
- movs r0, 0x1
- bl sub_813360C
- b _08133796
- .align 2, 0
-_081336C8: .4byte gUnknown_030007B0
-_081336CC: .4byte 0x000002c3
-_081336D0:
- ldrb r2, [r1, 0x19]
- ldrb r0, [r1, 0x1A]
- subs r0, 0x3
- cmp r2, r0
- beq _08133796
- adds r0, r2, 0x1
-_081336DC:
- strb r0, [r1, 0x19]
- ldr r1, [r4]
- ldrb r0, [r1, 0x1E]
- adds r0, 0x1
- strb r0, [r1, 0x1E]
- b _08133796
-_081336E8:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813376C
- movs r0, 0x5
- bl PlaySE
- ldr r5, _08133738
- ldr r2, [r5]
- ldrb r1, [r2, 0x1B]
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- beq _08133748
- movs r0, 0x8
- strb r0, [r2]
- ldr r0, _0813373C
- ldr r1, [r5]
- ldrb r3, [r1, 0x1B]
- lsls r2, r3, 1
- adds r2, r3
- lsls r2, 3
- adds r2, r3
- adds r2, 0x52
- adds r1, r2
- bl StringCopy
- ldr r4, _08133740
- ldr r1, _08133744
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- b _08133796
- .align 2, 0
-_08133738: .4byte gUnknown_030007B0
-_0813373C: .4byte gStringVar2
-_08133740: .4byte gStringVar4
-_08133744: .4byte gOtherText_TeachSpecificMove
-_08133748:
- ldr r4, _08133764
- ldr r1, _08133768
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, [r5]
- movs r0, 0xC
- strb r0, [r1]
- b _08133796
- .align 2, 0
-_08133764: .4byte gStringVar4
-_08133768: .4byte gOtherText_GiveUpTeachingMove
-_0813376C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08133796
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081337D4
- ldr r1, [r0]
- movs r0, 0xC
- strb r0, [r1]
- ldr r4, _081337D8
- ldr r1, _081337DC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
-_08133796:
- ldr r0, _081337D4
- ldr r4, [r0]
- ldrb r0, [r4, 0x1A]
- cmp r0, 0x3
- bls _081337F8
- ldr r3, _081337E0
- adds r5, r3, 0
- adds r5, 0xC6
- ldrb r0, [r5]
- movs r1, 0x5
- negs r1, r1
- adds r2, r1, 0
- ands r2, r0
- strb r2, [r5]
- movs r0, 0x85
- lsls r0, 1
- adds r0, r3
- mov r12, r0
- ldrb r0, [r0]
- adds r3, r1, 0
- ands r3, r0
- mov r1, r12
- strb r3, [r1]
- ldrb r0, [r4, 0x19]
- cmp r0, 0
- bne _081337E4
- movs r1, 0x4
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r5]
- b _081337F8
- .align 2, 0
-_081337D4: .4byte gUnknown_030007B0
-_081337D8: .4byte gStringVar4
-_081337DC: .4byte gOtherText_GiveUpTeachingMove
-_081337E0: .4byte gSprites
-_081337E4:
- ldrb r1, [r4, 0x19]
- ldrb r0, [r4, 0x1A]
- subs r0, 0x3
- cmp r1, r0
- bne _081337F8
- movs r1, 0x4
- adds r0, r3, 0
- orrs r0, r1
- mov r3, r12
- strb r0, [r3]
-_081337F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813362C
-
- thumb_func_start sub_8133800
-sub_8133800: @ 8133800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08133834
- ldr r0, [r1]
- ldrb r6, [r0, 0x19]
- ldr r3, _08133838
- mov r10, r1
- ldr r0, _0813383C
- mov r9, r0
- movs r1, 0x2
- mov r8, r1
-_0813381C:
- mov r4, r10
- ldr r2, [r4]
- ldrb r0, [r2, 0x1A]
- cmp r6, r0
- bcc _08133844
- adds r0, r3, 0
- ldr r1, _08133840
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C74
- b _081338FA
- .align 2, 0
-_08133834: .4byte gUnknown_030007B0
-_08133838: .4byte gTileBuffer
-_0813383C: .4byte gBattleMoves
-_08133840: .4byte gEmptyString_81E72B0
-_08133844:
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r6, r0
- bne _08133860
- adds r0, r3, 0
- ldr r1, _0813385C
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C74
- b _081338FA
- .align 2, 0
-_0813385C: .4byte gUnknownText_Exit
-_08133860:
- lsls r1, r6, 1
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r1
- ldrh r5, [r0]
- movs r4, 0xB1
- lsls r4, 2
- adds r0, r2, r4
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- beq _081338A4
- ldr r1, _0813389C
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 27
- ldr r1, _081338A0
- adds r0, r1
- ldr r1, [r0]
- adds r0, r3, 0
- movs r2, 0x27
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
- lsls r4, r5, 1
- b _081338C2
- .align 2, 0
-_0813389C: .4byte gContestMoves
-_081338A0: .4byte gUnknown_083CAF70
-_081338A4:
- lsls r4, r5, 1
- adds r0, r4, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x2]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _08133938
- adds r1, r0
- adds r0, r3, 0
- movs r2, 0x27
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
-_081338C2:
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r6
- adds r0, 0x52
- mov r2, r10
- ldr r1, [r2]
- adds r1, r0
- adds r0, r3, 0
- movs r2, 0x72
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
- movs r0, 0xCA
- strb r0, [r3]
- strb r0, [r3, 0x1]
- movs r0, 0xBA
- strb r0, [r3, 0x2]
- adds r3, 0x3
- adds r0, r4, r5
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x4]
- adds r0, r3, 0
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C14
-_081338FA:
- adds r3, r0, 0
- movs r0, 0xFE
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0x1
- negs r4, r4
- add r8, r4
- mov r0, r8
- cmp r0, 0
- blt _08133916
- b _0813381C
-_08133916:
- movs r0, 0xFF
- strb r0, [r3]
- ldr r0, _0813393C
- movs r1, 0xB
- movs r2, 0x1
- bl MenuPrint
- movs r0, 0
- bl sub_813360C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133938: .4byte gTypeNames
-_0813393C: .4byte gTileBuffer
- thumb_func_end sub_8133800
-
- thumb_func_start sub_8133940
-sub_8133940: @ 8133940
- push {r4-r7,lr}
- sub sp, 0x34
- adds r4, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _08133968
- mov r0, sp
- bl StringCopy
- ldrb r0, [r4, 0x2]
- subs r0, 0x1
- cmp r0, 0x6
- bls _0813395C
- b _08133AE2
-_0813395C:
- lsls r0, 2
- ldr r1, _0813396C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08133968: .4byte gExpandedPlaceholder_Empty
-_0813396C: .4byte _08133970
- .align 2, 0
-_08133970:
- .4byte _08133AE2
- .4byte _0813398C
- .4byte _08133AE2
- .4byte _081339A4
- .4byte _08133AE2
- .4byte _081339E4
- .4byte _08133A64
-_0813398C:
- ldr r0, _081339A0
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bls _081339B4
- ldrb r1, [r1, 0x1]
- b _081339CE
- .align 2, 0
-_081339A0: .4byte gBattleMoves
-_081339A4:
- ldr r0, _081339C4
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _081339CC
-_081339B4:
- ldr r1, _081339C8
- mov r0, sp
- movs r2, 0x20
- movs r3, 0x2
- bl sub_8072C74
- b _081339D8
- .align 2, 0
-_081339C4: .4byte gBattleMoves
-_081339C8: .4byte gOtherText_ThreeDashes2
-_081339CC:
- ldrb r1, [r1, 0x3]
-_081339CE:
- mov r0, sp
- movs r2, 0x20
- movs r3, 0x2
- bl sub_8072C14
-_081339D8:
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- mov r0, sp
- bl MenuPrint
- b _08133AE2
-_081339E4:
- ldrb r2, [r4]
- ldrb r1, [r4, 0x1]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldr r2, _08133A34
- ldr r1, _08133A38
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- bne _08133A14
- movs r5, 0
-_08133A14:
- movs r4, 0
- ldr r7, _08133A3C
- ldr r6, _08133A40
-_08133A1A:
- cmp r4, r5
- bcs _08133A44
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAnim
- b _08133A58
- .align 2, 0
-_08133A34: .4byte gContestEffects
-_08133A38: .4byte gContestMoves
-_08133A3C: .4byte gUnknown_030007B0
-_08133A40: .4byte gSprites
-_08133A44:
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- bl StartSpriteAnim
-_08133A58:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133A1A
- b _08133AE2
-_08133A64:
- ldrb r2, [r4]
- ldrb r1, [r4, 0x1]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldr r2, _08133AB4
- ldr r1, _08133AB8
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- bne _08133A94
- movs r5, 0
-_08133A94:
- movs r4, 0
- ldr r7, _08133ABC
- ldr r6, _08133AC0
-_08133A9A:
- cmp r4, r5
- bcs _08133AC4
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x3
- bl StartSpriteAnim
- b _08133AD8
- .align 2, 0
-_08133AB4: .4byte gContestEffects
-_08133AB8: .4byte gContestMoves
-_08133ABC: .4byte gUnknown_030007B0
-_08133AC0: .4byte gSprites
-_08133AC4:
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- bl StartSpriteAnim
-_08133AD8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133A9A
-_08133AE2:
- add sp, 0x34
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8133940
-
- thumb_func_start sub_8133AEC
-sub_8133AEC: @ 8133AEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r6, _08133B88
- ldr r2, [r6]
- ldrb r1, [r2, 0x1B]
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- bne _08133B08
- b _08133C04
-_08133B08:
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r1
- ldrh r5, [r0]
- cmp r3, 0
- beq _08133BA0
- movs r4, 0
- lsls r0, r5, 3
- mov r8, r0
- ldr r7, _08133B8C
- adds r3, r6, 0
- movs r6, 0x5
- negs r6, r6
-_08133B24:
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08133B24
- movs r4, 0
-_08133B48:
- ldr r0, _08133B90
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08133B94
- adds r1, r0
- adds r0, r5, 0
- bl sub_8133940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _08133B48
- ldr r1, _08133B98
- ldr r0, _08133B9C
- add r0, r8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0x90
- bl sub_8072AB0
- b _08133C92
- .align 2, 0
-_08133B88: .4byte gUnknown_030007B0
-_08133B8C: .4byte gSprites
-_08133B90: .4byte gUnknown_08402E3D
-_08133B94: .4byte gUnknown_08402E24
-_08133B98: .4byte gUnknown_083CADD4
-_08133B9C: .4byte gContestMoves
-_08133BA0:
- movs r4, 0
- subs r6, r5, 0x1
-_08133BA4:
- ldr r0, _08133BF8
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08133BFC
- adds r1, r0
- adds r0, r5, 0
- bl sub_8133940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08133BA4
- ldr r1, _08133C00
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0x90
- bl sub_8072A18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08133C92
- lsls r1, r0, 25
- movs r0, 0x90
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xB
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuFillWindowRectWithBlankTile
- b _08133C92
- .align 2, 0
-_08133BF8: .4byte gUnknown_08402E39
-_08133BFC: .4byte gUnknown_08402E24
-_08133C00: .4byte gMoveDescriptions
-_08133C04:
- cmp r3, 0
- beq _08133C5C
- ldr r4, _08133C54
- ldrb r2, [r4, 0xF]
- ldrb r1, [r4, 0x10]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldrb r2, [r4, 0x12]
- ldrb r1, [r4, 0x13]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- movs r4, 0
- ldr r5, _08133C58
- adds r3, r6, 0
- movs r2, 0x4
-_08133C32:
- ldr r0, [r3]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08133C32
- b _08133C86
- .align 2, 0
-_08133C54: .4byte gUnknown_08402E24
-_08133C58: .4byte gSprites
-_08133C5C:
- ldr r4, _08133CA0
- ldrb r0, [r4, 0x3]
- ldrb r1, [r4, 0x4]
- adds r2, r0, 0x3
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- adds r2, r0, 0x3
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
-_08133C86:
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
-_08133C92:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133CA0: .4byte gUnknown_08402E24
- thumb_func_end sub_8133AEC
-
- thumb_func_start sub_8133CA4
-sub_8133CA4: @ 8133CA4
- push {lr}
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1B
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- ldr r0, _08133CC8
- ldr r0, [r0]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8133AEC
- pop {r0}
- bx r0
- .align 2, 0
-_08133CC8: .4byte gUnknown_030007B0
- thumb_func_end sub_8133CA4
-
- thumb_func_start sub_8133CCC
-sub_8133CCC: @ 8133CCC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _08133D14
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r4, _08133D18
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bcs _08133D1C
- movs r0, 0
- b _08133D1E
- .align 2, 0
-_08133D14: .4byte gUnknown_03005CE0
-_08133D18: .4byte gPlayerParty
-_08133D1C:
- movs r0, 0x1
-_08133D1E:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8133CCC
-
- thumb_func_start unref_sub_8133D28
-unref_sub_8133D28: @ 8133D28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08133D44
- ldr r2, _08133D48
- str r2, [r1, 0xC]
- ldr r2, _08133D4C
- adds r1, r2
- movs r2, 0x3
- strh r2, [r1]
- bl sub_808A004
- pop {r0}
- bx r0
- .align 2, 0
-_08133D44: .4byte 0x02001000
-_08133D48: .4byte sub_8133D50
-_08133D4C: .4byte 0x0001a272
- thumb_func_end unref_sub_8133D28
-
- thumb_func_start sub_8133D50
-sub_8133D50: @ 8133D50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08133DA0
- mov r9, r0
- ldr r1, _08133DA4
- mov r10, r1
- ldrb r1, [r1, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r2, r10
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r2, r9
- adds r1, r0, r2
- ldrh r0, [r1, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- cmp r0, 0x5
- bhi _08133D96
- cmp r6, 0x5
- bls _08133DA8
-_08133D96:
- adds r0, r7, 0
- bl sub_806CD44
- b _08133E4E
- .align 2, 0
-_08133DA0: .4byte gSprites
-_08133DA4: .4byte 0x02001000
-_08133DA8:
- movs r5, 0xD8
- lsls r5, 9
- add r5, r10
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- movs r1, 0x64
- muls r0, r1
- ldr r2, _08133DE4
- adds r0, r2
- str r0, [r5]
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08133DDA
- cmp r8, r6
- beq _08133DDA
- ldr r0, [r5]
- movs r1, 0x3A
- bl GetMonData
- cmp r0, r4
- bne _08133DE8
-_08133DDA:
- adds r0, r7, 0
- bl sub_8133EB8
- b _08133E4E
- .align 2, 0
-_08133DE4: .4byte gPlayerParty
-_08133DE8:
- movs r0, 0x1
- bl PlaySE
- mov r0, r10
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x2E]
- movs r1, 0
- strb r0, [r5, 0x5]
- ldrb r0, [r5, 0x5]
- movs r2, 0x64
- muls r0, r2
- ldr r2, _08133E5C
- adds r0, r2
- str r0, [r5]
- strh r1, [r5, 0x6]
- ldr r1, _08133E60
- str r1, [r5, 0xC]
- ldr r1, _08133E64
- str r1, [r5, 0x10]
- movs r1, 0x3A
- bl GetMonData
- ldr r1, _08133E68
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r1
- strh r0, [r4, 0x1C]
- ldr r0, [r5]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x1E]
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __divsi3
- strh r0, [r4, 0x20]
- bl sub_806D5A4
- ldr r0, _08133E6C
- str r0, [r4]
- ldrh r1, [r4, 0x1E]
- ldr r0, _08133E70
- add r0, r10
- strh r1, [r0]
-_08133E4E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133E5C: .4byte gPlayerParty
-_08133E60: .4byte 0xffff8000
-_08133E64: .4byte sub_8133EF8
-_08133E68: .4byte gTasks
-_08133E6C: .4byte sub_806FA18
-_08133E70: .4byte 0x0001a282
- thumb_func_end sub_8133D50
-
- thumb_func_start sub_8133E74
-sub_8133E74: @ 8133E74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08133EAC
- ldrb r0, [r0]
- cmp r0, 0
- bne _08133EA4
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x3
- movs r1, 0
- bl sub_806D538
- ldr r0, _08133EB0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08133EB4
- str r0, [r1]
-_08133EA4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133EAC: .4byte gUnknown_0202E8F6
-_08133EB0: .4byte gTasks
-_08133EB4: .4byte sub_806CB74
- thumb_func_end sub_8133E74
-
- thumb_func_start sub_8133EB8
-sub_8133EB8: @ 8133EB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08133EE8
- movs r0, 0
- strb r0, [r1]
- bl sub_806D5A4
- ldr r0, _08133EEC
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08133EF0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08133EF4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133EE8: .4byte gUnknown_0202E8F4
-_08133EEC: .4byte gOtherText_CantUseOnPoke
-_08133EF0: .4byte gTasks
-_08133EF4: .4byte sub_8133E74
- thumb_func_end sub_8133EB8
-
- thumb_func_start sub_8133EF8
-sub_8133EF8: @ 8133EF8
- push {r4,lr}
- bl sub_806CCE4
- ldr r4, _08133F3C
- ldr r0, _08133F40
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _08133F44
- adds r4, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08133F48
- adds r0, r1
- bl DestroySprite
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldrb r0, [r4]
- bl SwitchTaskToFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133F3C: .4byte 0x0201b000
-_08133F40: .4byte 0x00000261
-_08133F44: .4byte 0xfffe6000
-_08133F48: .4byte gSprites
- thumb_func_end sub_8133EF8
-
- thumb_func_start sub_8133F4C
-sub_8133F4C: @ 8133F4C
- push {r4,r5,lr}
- lsls r0, 24
- movs r3, 0
- ldr r1, _08133F7C
- lsrs r2, r0, 21
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _08133F76
- adds r5, r1, 0
- movs r4, 0
-_08133F62:
- adds r0, r2, r5
- ldr r1, [r0]
- adds r1, r3
- strb r4, [r1]
- adds r1, r3, 0x1
- lsls r1, 24
- lsrs r3, r1, 24
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _08133F62
-_08133F76:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08133F7C: .4byte gUnknown_08402E40
- thumb_func_end sub_8133F4C
-
- thumb_func_start sub_8133F80
-sub_8133F80: @ 8133F80
- push {r4,lr}
- movs r4, 0
-_08133F84:
- adds r0, r4, 0
- bl sub_8133F4C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133F84
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133F80
-
- thumb_func_start sub_8133F9C
-sub_8133F9C: @ 8133F9C
- push {r4,lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _08133FC8
- lsrs r0, 21
- adds r0, r1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- cmp r2, r1
- bge _08133FD8
- adds r4, r0, 0
- adds r3, r1, 0
-_08133FB4:
- lsls r0, r2, 24
- asrs r1, r0, 24
- ldr r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08133FCC
- adds r0, r1, 0
- b _08133FDC
- .align 2, 0
-_08133FC8: .4byte gUnknown_08402E40
-_08133FCC:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, r3
- blt _08133FB4
-_08133FD8:
- movs r0, 0x1
- negs r0, r0
-_08133FDC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8133F9C
-
- thumb_func_start sub_8133FE4
-sub_8133FE4: @ 8133FE4
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08134010
- lsls r0, r3, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- movs r2, 0
- ldr r1, _08134014
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _08134022
- ldr r4, [r0]
-_08134002:
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, r3
- bne _08134018
- movs r0, 0x1
- b _08134024
- .align 2, 0
-_08134010: .4byte gDecorations
-_08134014: .4byte gUnknown_08402E40
-_08134018:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _08134002
-_08134022:
- movs r0, 0
-_08134024:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8133FE4
-
- thumb_func_start IsThereStorageSpaceForDecoration
-IsThereStorageSpaceForDecoration: @ 813402C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0
- beq _0813406C
- ldr r1, _08134064
- lsls r0, r4, 5
- adds r0, r1
- ldrb r5, [r0, 0x13]
- adds r0, r5, 0
- bl sub_8133F9C
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0813406C
- ldr r0, _08134068
- lsls r1, r5, 3
- adds r1, r0
- ldr r0, [r1]
- adds r0, r2
- strb r4, [r0]
- movs r0, 0x1
- b _0813406E
- .align 2, 0
-_08134064: .4byte gDecorations
-_08134068: .4byte gUnknown_08402E40
-_0813406C:
- movs r0, 0
-_0813406E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsThereStorageSpaceForDecoration
-
- thumb_func_start sub_8134074
-sub_8134074: @ 8134074
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081340A0
- ldr r1, _0813409C
- lsls r0, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- bl sub_8133F9C
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _081340A0
- movs r0, 0x1
- b _081340A2
- .align 2, 0
-_0813409C: .4byte gDecorations
-_081340A0:
- movs r0, 0
-_081340A2:
- pop {r1}
- bx r1
- thumb_func_end sub_8134074
-
- thumb_func_start sub_81340A8
-sub_81340A8: @ 81340A8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- cmp r5, 0
- bne _081340C4
- b _081340F2
-_081340B6:
- movs r0, 0
- strb r0, [r1]
- adds r0, r6, 0
- bl sub_8134104
- movs r0, 0x1
- b _081340F4
-_081340C4:
- ldr r2, _081340FC
- ldr r1, _08134100
- lsls r0, r5, 5
- adds r0, r1
- ldrb r4, [r0, 0x13]
- lsls r0, r4, 3
- adds r0, r2
- ldrb r1, [r0, 0x4]
- cmp r3, r1
- bcs _081340F2
- adds r6, r4, 0
- adds r4, r0, 0
- adds r2, r1, 0
-_081340DE:
- ldr r0, [r4]
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, r5
- beq _081340B6
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r2
- bcc _081340DE
-_081340F2:
- movs r0, 0
-_081340F4:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081340FC: .4byte gUnknown_08402E40
-_08134100: .4byte gDecorations
- thumb_func_end sub_81340A8
-
- thumb_func_start sub_8134104
-sub_8134104: @ 8134104
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- movs r6, 0
- ldr r2, _08134190
- lsrs r1, r0, 21
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r6, r0
- bcs _08134180
- adds r7, r1, 0
- mov r8, r0
- str r0, [sp]
-_08134126:
- adds r1, r6, 0x1
- lsls r0, r1, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r12, r1
- cmp r3, r8
- bcs _08134174
- ldr r1, _08134190
- mov r10, r1
- adds r0, r1, 0
- mov r9, r0
-_0813413C:
- mov r1, r10
- adds r5, r2, r1
- ldr r1, [r5]
- adds r0, r1, r3
- ldrb r4, [r0]
- adds r2, r4, 0
- cmp r2, 0
- beq _08134162
- adds r0, r1, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08134158
- cmp r1, r2
- bls _08134162
-_08134158:
- ldrb r1, [r0]
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r3
- strb r1, [r0]
-_08134162:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r1, r9
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _0813413C
-_08134174:
- mov r1, r12
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r0, [sp]
- cmp r6, r0
- bcc _08134126
-_08134180:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08134190: .4byte gUnknown_08402E40
- thumb_func_end sub_8134104
-
- thumb_func_start sub_8134194
-sub_8134194: @ 8134194
- push {r4,r5,lr}
- lsls r0, 24
- movs r4, 0
- movs r3, 0
- ldr r2, _081341D0
- lsrs r1, r0, 21
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r4, r0
- bcs _081341C8
- adds r5, r2, 0
-_081341AA:
- adds r2, r1, r5
- ldr r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _081341BC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081341BC:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r2, [r2, 0x4]
- cmp r3, r2
- bcc _081341AA
-_081341C8:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081341D0: .4byte gUnknown_08402E40
- thumb_func_end sub_8134194
-
- thumb_func_start sub_81341D4
-sub_81341D4: @ 81341D4
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_081341DA:
- adds r0, r4, 0
- bl sub_8134194
- adds r0, r5, r0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081341DA
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81341D4
-
- thumb_func_start sub_81341F8
-sub_81341F8: @ 81341F8
- push {lr}
- ldr r0, _08134208
- movs r1, 0
- movs r2, 0x1C
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_08134208: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_81341F8
-
- thumb_func_start sub_813420C
-sub_813420C: @ 813420C
- push {r4-r6,lr}
- movs r2, 0
- ldr r6, _08134238
- ldr r4, _0813423C
- movs r3, 0
- adds r5, r4, 0x1
-_08134218:
- lsls r1, r2, 1
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, r5
- strb r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08134218
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08134238: .4byte gUnknown_02039302
-_0813423C: .4byte gUnknown_020392FC
- thumb_func_end sub_813420C
-
- thumb_func_start sub_8134240
-sub_8134240: @ 8134240
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- ldr r5, _081342FC
- .ifdef SAPPHIRE
- ldr r6, _sub_8134240_Latias
- .else
- movs r6, 0xCC
- lsls r6, 1
- .endif
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x28
- movs r3, 0x20
- bl CreateMon
- ldr r4, _08134300
- movs r0, 0
- mov r8, r0
- strh r6, [r4, 0x8]
- movs r0, 0x28
- strb r0, [r4, 0xC]
- mov r0, r8
- strb r0, [r4, 0xD]
- movs r0, 0x1
- strb r0, [r4, 0x13]
- adds r0, r5, 0
- movs r1, 0x42
- bl GetMonData
- str r0, [r4]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x16
- bl GetMonData
- strb r0, [r4, 0xE]
- adds r0, r5, 0
- movs r1, 0x17
- bl GetMonData
- strb r0, [r4, 0xF]
- adds r0, r5, 0
- movs r1, 0x18
- bl GetMonData
- strb r0, [r4, 0x10]
- adds r0, r5, 0
- movs r1, 0x21
- bl GetMonData
- strb r0, [r4, 0x11]
- adds r0, r5, 0
- movs r1, 0x2F
- bl GetMonData
- strb r0, [r4, 0x12]
- ldr r4, _08134304
- mov r0, r8
- strb r0, [r4]
- bl Random
- ldr r5, _08134308
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, r5
- ldrb r0, [r1]
- strb r0, [r4, 0x1]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081342FC: .4byte gEnemyParty
- .ifdef SAPPHIRE
-_sub_8134240_Latias: .4byte 407
- .endif
-_08134300: .4byte gSaveBlock1 + 0x3144
-_08134304: .4byte gUnknown_02039302
-_08134308: .4byte gUnknown_08402E80
- thumb_func_end sub_8134240
-
- thumb_func_start sub_813430C
-sub_813430C: @ 813430C
- push {lr}
- bl sub_81341F8
- bl sub_813420C
- bl sub_8134240
- pop {r0}
- bx r0
- thumb_func_end sub_813430C
-
- thumb_func_start mapnumbers_history_shift_sav1_0_2_4_out
-mapnumbers_history_shift_sav1_0_2_4_out: @ 8134320
- ldr r0, _08134340
- ldrb r1, [r0, 0x2]
- strb r1, [r0, 0x4]
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0x5]
- ldrb r1, [r0]
- strb r1, [r0, 0x2]
- ldrb r1, [r0, 0x1]
- strb r1, [r0, 0x3]
- ldr r2, _08134344
- ldrb r1, [r2, 0x4]
- strb r1, [r0]
- ldrb r1, [r2, 0x5]
- strb r1, [r0, 0x1]
- bx lr
- .align 2, 0
-_08134340: .4byte gUnknown_020392FC
-_08134344: .4byte gSaveBlock1
- thumb_func_end mapnumbers_history_shift_sav1_0_2_4_out
-
- thumb_func_start sub_8134348
-sub_8134348: @ 8134348
- push {r4,r5,lr}
- movs r1, 0
- ldr r0, _08134388
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08134380
- ldr r0, _0813438C
- strb r1, [r0]
- ldr r5, _08134390
- adds r4, r0, 0
-_0813435C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, r5
- ldrb r1, [r1]
- ldrb r0, [r4, 0x1]
- cmp r0, r1
- beq _0813435C
- strb r1, [r4, 0x1]
-_08134380:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134388: .4byte gSaveBlock1 + 0x3144
-_0813438C: .4byte gUnknown_02039302
-_08134390: .4byte gUnknown_08402E80
- thumb_func_end sub_8134348
-
- thumb_func_start sub_8134394
-sub_8134394: @ 8134394
- push {r4-r7,lr}
- movs r4, 0
- bl Random
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 12
- ands r1, r0
- cmp r1, 0
- bne _081343AE
- bl sub_8134348
- b _08134416
-_081343AE:
- ldr r0, _081343FC
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08134416
- ldr r7, _08134400
- ldr r3, _08134404
-_081343BA:
- lsls r0, r4, 1
- adds r0, r4
- lsls r2, r0, 1
- adds r1, r2, r3
- ldrb r0, [r7, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0813440C
- ldr r6, _08134404
- adds r5, r2, 0x1
- ldr r4, _08134408
-_081343D0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, r5
- adds r0, r6
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- bne _081343F4
- ldrb r0, [r4, 0x5]
- cmp r0, r1
- beq _081343D0
-_081343F4:
- cmp r1, 0xFF
- beq _081343D0
- strb r1, [r7, 0x1]
- b _08134416
- .align 2, 0
-_081343FC: .4byte gSaveBlock1 + 0x3144
-_08134400: .4byte gUnknown_02039302
-_08134404: .4byte gUnknown_08402E80
-_08134408: .4byte gUnknown_020392FC
-_0813440C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081343BA
-_08134416:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8134394
-
- thumb_func_start sub_813441C
-sub_813441C: @ 813441C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08134440
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08134448
- ldr r0, _08134444
- ldrb r3, [r0]
- cmp r2, r3
- bne _08134448
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bne _08134448
- movs r0, 0x1
- b _0813444A
- .align 2, 0
-_08134440: .4byte gSaveBlock1 + 0x3144
-_08134444: .4byte gUnknown_02039302
-_08134448:
- movs r0, 0
-_0813444A:
- pop {r1}
- bx r1
- thumb_func_end sub_813441C
-
- thumb_func_start sub_8134450
-sub_8134450: @ 8134450
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, _081344C4
- ldr r5, _081344C8
- ldrh r1, [r5, 0x8]
- ldrb r2, [r5, 0xC]
- ldr r3, [r5]
- ldr r0, [r5, 0x4]
- str r0, [sp]
- adds r0, r4, 0
- bl CreateMonWithIVsPersonality
- adds r2, r5, 0
- adds r2, 0xD
- adds r0, r4, 0
- movs r1, 0x37
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xA
- adds r0, r4, 0
- movs r1, 0x39
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xE
- adds r0, r4, 0
- movs r1, 0x16
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xF
- adds r0, r4, 0
- movs r1, 0x17
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x10
- adds r0, r4, 0
- movs r1, 0x18
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x11
- adds r0, r4, 0
- movs r1, 0x21
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x12
- adds r0, r4, 0
- movs r1, 0x2F
- bl SetMonData
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081344C4: .4byte gEnemyParty
-_081344C8: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_8134450
-
- thumb_func_start sub_81344CC
-sub_81344CC: @ 81344CC
- push {lr}
- ldr r1, _081344F8
- ldrb r0, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- bl sub_813441C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081344FC
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _081344FC
- bl sub_8134450
- movs r0, 0x1
- b _081344FE
- .align 2, 0
-_081344F8: .4byte gSaveBlock1
-_081344FC:
- movs r0, 0
-_081344FE:
- pop {r1}
- bx r1
- thumb_func_end sub_81344CC
-
- thumb_func_start sub_8134504
-sub_8134504: @ 8134504
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x39
- bl GetMonData
- ldr r4, _08134528
- strh r0, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x37
- bl GetMonData
- strb r0, [r4, 0xD]
- bl sub_8134348
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134528: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_8134504
-
- thumb_func_start sub_813452C
-sub_813452C: @ 813452C
- ldr r1, _08134534
- movs r0, 0
- strb r0, [r1, 0x13]
- bx lr
- .align 2, 0
-_08134534: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_813452C
-
- thumb_func_start sub_8134538
-sub_8134538: @ 8134538
- ldr r3, _08134544
- ldrb r2, [r3]
- strb r2, [r0]
- ldrb r0, [r3, 0x1]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08134544: .4byte gUnknown_02039302
- thumb_func_end sub_8134538
-
- thumb_func_start sub_8134548
-sub_8134548: @ 8134548
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_0813454E:
- ldr r0, _08134568
- ldr r1, _0813456C
- adds r0, r1
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _08134590
- lsls r0, 2
- ldr r1, _08134570
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08134568: .4byte gSaveBlock2
-_0813456C: .4byte 0x00000556
-_08134570: .4byte _08134574
- .align 2, 0
-_08134574:
- .4byte _08134590
- .4byte _081345A8
- .4byte _081345C8
- .4byte _081345D8
- .4byte _081345B8
- .4byte _081345C0
- .4byte _081345D8
-_08134590:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_813461C
- cmp r4, 0
- bne _081345D8
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x5
- bl VarSet
- b _081345D8
-_081345A8:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_813461C
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x1
- b _081345CE
-_081345B8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x2
- b _081345CE
-_081345C0:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x3
- b _081345CE
-_081345C8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x4
-_081345CE:
- bl VarSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081345D8:
- adds r5, 0x1
- cmp r5, 0x1
- ble _0813454E
- ldr r1, _08134610
- ldr r2, _08134614
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081345EE
- cmp r0, 0x6
- bne _08134606
-_081345EE:
- ldr r2, _08134618
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081345FC
- cmp r0, 0x6
- bne _08134606
-_081345FC:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x5
- bl VarSet
-_08134606:
- bl sub_8135C44
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134610: .4byte gSaveBlock2
-_08134614: .4byte 0x00000556
-_08134618: .4byte 0x00000557
- thumb_func_end sub_8134548
-
- thumb_func_start sub_813461C
-sub_813461C: @ 813461C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08134644
- ldr r2, _08134648
- adds r1, r3, r2
- adds r1, r0, r1
- movs r2, 0
- strb r2, [r1]
- lsls r0, 1
- movs r2, 0xAB
- lsls r2, 3
- adds r1, r3, r2
- adds r1, r0, r1
- movs r2, 0x1
- strh r2, [r1]
- ldr r1, _0813464C
- adds r3, r1
- adds r0, r3
- strh r2, [r0]
- bx lr
- .align 2, 0
-_08134644: .4byte gSaveBlock2
-_08134648: .4byte 0x00000556
-_0813464C: .4byte 0x0000055c
- thumb_func_end sub_813461C
-
- thumb_func_start sub_8134650
-sub_8134650: @ 8134650
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- add r4, sp, 0x28
- movs r0, 0
- strb r0, [r4]
- bl sub_813601C
- ldr r0, _08134684
- ldrh r0, [r0]
- adds r7, r4, 0
- cmp r0, 0
- bne _08134680
- ldr r1, _08134688
- ldr r2, _0813468C
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r6
- beq _08134690
-_08134680:
- movs r0, 0
- b _081346E2
- .align 2, 0
-_08134684: .4byte gScriptResult
-_08134688: .4byte gSaveBlock2
-_0813468C: .4byte 0x0000049a
-_08134690:
- movs r6, 0x32
- cmp r5, 0
- beq _08134698
- movs r6, 0x64
-_08134698:
- movs r4, 0
- mov r8, r1
-_0813469C:
- movs r0, 0x2C
- muls r0, r4
- mov r3, r8
- adds r1, r0, r3
- movs r2, 0x9B
- lsls r2, 3
- adds r0, r1, r2
- ldrb r2, [r0]
- cmp r2, r6
- bne _08134680
- ldr r3, _081346F0
- adds r0, r1, r3
- ldrh r0, [r0]
- adds r3, 0x2
- adds r1, r3
- ldrh r1, [r1]
- str r2, [sp]
- add r2, sp, 0x10
- str r2, [sp, 0x4]
- add r2, sp, 0x1C
- str r2, [sp, 0x8]
- str r7, [sp, 0xC]
- movs r2, 0x1
- adds r3, r5, 0
- bl sub_8135200
- adds r4, 0x1
- cmp r4, 0x2
- ble _0813469C
- movs r1, 0
- ldrb r0, [r7]
- cmp r0, 0x3
- bne _081346E0
- movs r1, 0x1
-_081346E0:
- adds r0, r1, 0
-_081346E2:
- add sp, 0x2C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081346F0: .4byte 0x000004cc
- thumb_func_end sub_8134650
-
- thumb_func_start sub_81346F4
-sub_81346F4: @ 81346F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r9, r0
- ldr r4, _08134738
- ldr r1, _0813473C
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r7, r0, 31
- adds r0, r7, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r7, 0
- mov r1, r8
- bl sub_8134650
- lsls r0, 24
- adds r1, r4, 0
- cmp r0, 0
- beq _08134744
- ldr r2, _08134740
- adds r1, r2
- movs r0, 0xC8
- strb r0, [r1]
- b _081347DE
- .align 2, 0
-_08134738: .4byte gSaveBlock2
-_0813473C: .4byte 0x00000554
-_08134740: .4byte 0x00000564
-_08134744:
- movs r5, 0
- movs r3, 0xA4
- mov r12, r3
- mov r10, sp
-_0813474C:
- mov r0, r12
- muls r0, r5
- movs r4, 0
- movs r1, 0
- movs r2, 0
- adds r6, r5, 0x1
- str r6, [sp, 0x14]
- ldr r6, _081347B4
- adds r3, r0, r6
-_0813475E:
- ldm r3!, {r0}
- orrs r4, r0
- adds r1, r0
- adds r2, 0x1
- cmp r2, 0x27
- bls _0813475E
- mov r3, r12
- muls r3, r5
- ldr r0, _081347B8
- adds r2, r3, r0
- movs r6, 0xA7
- lsls r6, 1
- adds r0, r2, r6
- ldrh r0, [r0]
- cmp r0, r8
- bne _081347A4
- subs r6, 0x2
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r7
- bne _081347A4
- cmp r4, 0
- beq _081347A4
- ldr r2, _081347BC
- adds r0, r3, r2
- ldr r0, [r0]
- cmp r0, r1
- bne _081347A4
- mov r3, r10
- adds r3, 0x4
- mov r10, r3
- subs r3, 0x4
- stm r3!, {r5}
- movs r6, 0x1
- add r9, r6
-_081347A4:
- ldr r5, [sp, 0x14]
- cmp r5, 0x4
- ble _0813474C
- mov r0, r9
- cmp r0, 0
- bne _081347C0
- movs r0, 0
- b _081347E0
- .align 2, 0
-_081347B4: .4byte gSaveBlock2 + 0x14C
-_081347B8: .4byte gSaveBlock2
-_081347BC: .4byte gSaveBlock2 + 0x1EC
-_081347C0:
- bl Random
- ldr r4, _081347F0
- lsls r0, 16
- lsrs r0, 16
- mov r1, r9
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- adds r0, 0x64
- ldr r1, _081347F4
- adds r4, r1
- strb r0, [r4]
-_081347DE:
- movs r0, 0x1
-_081347E0:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081347F0: .4byte gSaveBlock2
-_081347F4: .4byte 0x00000564
- thumb_func_end sub_81346F4
-
- thumb_func_start sub_81347F8
-sub_81347F8: @ 81347F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r5, _08134838
- ldr r1, _0813483C
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r6, r0, 31
- bl sub_81346F4
- lsls r0, 24
- cmp r0, 0
- beq _08134848
- ldr r2, _08134840
- adds r4, r5, r2
- ldrb r0, [r4]
- bl sub_81349FC
- lsls r0, r6, 1
- movs r3, 0xAB
- lsls r3, 3
- adds r1, r5, r3
- adds r0, r1
- ldrh r0, [r0]
- adds r0, r5, r0
- ldr r1, _08134844
- adds r0, r1
- ldrb r1, [r4]
- b _081349DC
- .align 2, 0
-_08134838: .4byte gSaveBlock2
-_0813483C: .4byte 0x00000554
-_08134840: .4byte 0x00000564
-_08134844: .4byte 0x00000569
-_08134848:
- lsls r0, r6, 1
- ldr r2, _081348D8
- adds r1, r5, r2
- adds r1, r0, r1
- ldrh r1, [r1]
- adds r7, r0, 0
- cmp r1, 0x7
- bls _0813485A
- b _0813495C
-_0813485A:
- movs r3, 0xAB
- lsls r3, 3
- adds r0, r5, r3
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, 0x7
- bne _081348E4
- adds r6, r5, 0
- mov r9, r7
- adds r5, r1, 0
- ldr r0, _081348DC
- adds r0, r6
- mov r10, r0
- mov r8, r5
-_08134876:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r2, r1, 2
- adds r2, r1
- ldr r1, _081348D8
- adds r4, r6, r1
- mov r3, r9
- adds r0, r3, r4
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x14
- lsrs r2, 7
- adds r2, r0
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0
- ldrh r0, [r5]
- subs r0, 0x1
- cmp r1, r0
- bge _081348C8
- mov r3, r10
- ldrb r0, [r3]
- cmp r0, r2
- beq _081348C8
- subs r0, r4, 0x4
- adds r0, r7, r0
- ldrh r0, [r0]
- subs r3, r0, 0x1
- adds r4, 0xE
-_081348BA:
- adds r1, 0x1
- cmp r1, r3
- bge _081348C8
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _081348BA
-_081348C8:
- mov r3, r8
- ldrh r0, [r3]
- subs r0, 0x1
- ldr r4, _081348E0
- cmp r1, r0
- bne _08134876
- b _081349B6
- .align 2, 0
-_081348D8: .4byte 0x0000055c
-_081348DC: .4byte 0x0000056a
-_081348E0: .4byte gSaveBlock2
-_081348E4:
- adds r6, r5, 0
- mov r9, r7
- adds r5, r1, 0
- ldr r2, _08134950
- adds r2, r6
- mov r10, r2
- mov r8, r5
-_081348F2:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r0, r1, 2
- adds r0, r1
- lsrs r2, r0, 6
- ldr r3, _08134954
- adds r4, r6, r3
- mov r1, r9
- adds r0, r1, r4
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldrh r0, [r5]
- subs r0, 0x1
- cmp r1, r0
- bge _08134942
- mov r3, r10
- ldrb r0, [r3]
- cmp r0, r2
- beq _08134942
- subs r0, r4, 0x4
- adds r0, r7, r0
- ldrh r0, [r0]
- subs r3, r0, 0x1
- adds r4, 0xE
-_08134934:
- adds r1, 0x1
- cmp r1, r3
- bge _08134942
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _08134934
-_08134942:
- mov r3, r8
- ldrh r0, [r3]
- subs r0, 0x1
- ldr r4, _08134958
- cmp r1, r0
- bne _081348F2
- b _081349B6
- .align 2, 0
-_08134950: .4byte 0x0000056a
-_08134954: .4byte 0x0000055c
-_08134958: .4byte gSaveBlock2
-_0813495C:
- movs r2, 0xAB
- lsls r2, 3
- adds r0, r5, r2
- adds r6, r7, r0
- ldr r3, _081349EC
- adds r3, r5
- mov r8, r3
- adds r5, r6, 0
-_0813496C:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- asrs r0, 8
- adds r0, 0x46
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldrh r0, [r6]
- subs r0, 0x1
- cmp r1, r0
- bge _081349AC
- mov r3, r8
- ldrb r0, [r3]
- ldr r4, _081349F0
- cmp r0, r2
- beq _081349AC
- ldrh r0, [r5]
- subs r3, r0, 0x1
- ldr r0, _081349EC
- adds r4, r0
-_0813499E:
- adds r1, 0x1
- cmp r1, r3
- bge _081349AC
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0813499E
-_081349AC:
- ldrh r0, [r6]
- subs r0, 0x1
- ldr r4, _081349F0
- cmp r1, r0
- bne _0813496C
-_081349B6:
- ldr r1, _081349F4
- adds r0, r4, r1
- strb r2, [r0]
- ldr r2, _081349F4
- adds r5, r4, r2
- ldrb r0, [r5]
- bl sub_81349FC
- movs r3, 0xAB
- lsls r3, 3
- adds r0, r4, r3
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, 0x6
- bhi _081349DE
- adds r0, r4, r0
- ldr r1, _081349F8
- adds r0, r1
- ldrb r1, [r5]
-_081349DC:
- strb r1, [r0]
-_081349DE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081349EC: .4byte 0x0000056a
-_081349F0: .4byte gSaveBlock2
-_081349F4: .4byte 0x00000564
-_081349F8: .4byte 0x00000569
- thumb_func_end sub_81347F8
-
- thumb_func_start sub_81349FC
-sub_81349FC: @ 81349FC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, r2, 0
- cmp r2, 0x63
- bhi _08134A18
- ldr r1, _08134A14
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- b _08134A38
- .align 2, 0
-_08134A14: .4byte gBattleTowerTrainers
-_08134A18:
- cmp r1, 0xC7
- bhi _08134A34
- ldr r2, _08134A2C
- subs r1, 0x64
- movs r0, 0xA4
- muls r0, r1
- adds r0, r2
- ldr r1, _08134A30
- b _08134A38
- .align 2, 0
-_08134A2C: .4byte gSaveBlock2
-_08134A30: .4byte 0x0000014d
-_08134A34:
- ldr r0, _08134A5C
- ldr r1, _08134A60
-_08134A38:
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0
- ldr r3, _08134A64
- ldrb r0, [r3]
- cmp r0, r1
- beq _08134A54
-_08134A46:
- adds r2, 0x1
- cmp r2, 0x1D
- bhi _08134A54
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _08134A46
-_08134A54:
- cmp r2, 0x1E
- beq _08134A6C
- ldr r0, _08134A68
- b _08134A8A
- .align 2, 0
-_08134A5C: .4byte gSaveBlock2
-_08134A60: .4byte 0x00000499
-_08134A64: .4byte gUnknown_08405E60
-_08134A68: .4byte gUnknown_08405E92
-_08134A6C:
- movs r2, 0
- ldr r3, _08134A98
- ldrb r0, [r3]
- cmp r0, r1
- beq _08134A84
-_08134A76:
- adds r2, 0x1
- cmp r2, 0x13
- bhi _08134A84
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _08134A76
-_08134A84:
- cmp r2, 0x14
- beq _08134AA4
- ldr r0, _08134A9C
-_08134A8A:
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r0, _08134AA0
- bl VarSet
- b _08134AAC
- .align 2, 0
-_08134A98: .4byte gUnknown_08405E7E
-_08134A9C: .4byte gUnknown_08405EB0
-_08134AA0: .4byte 0x00004010
-_08134AA4:
- ldr r0, _08134AB0
- movs r1, 0x7
- bl VarSet
-_08134AAC:
- pop {r0}
- bx r0
- .align 2, 0
-_08134AB0: .4byte 0x00004010
- thumb_func_end sub_81349FC
-
- thumb_func_start sub_8134AB4
-sub_8134AB4: @ 8134AB4
- push {lr}
- movs r0, 0xC8
- bl sub_81349FC
- pop {r0}
- bx r0
- thumb_func_end sub_8134AB4
-
- thumb_func_start sub_8134AC0
-sub_8134AC0: @ 8134AC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- movs r7, 0
- mov r8, r0
- movs r5, 0
- ldr r0, _08134B3C
- mov r12, r0
- mov r1, r8
- ldrb r1, [r1, 0xC]
- str r1, [sp, 0x18]
- movs r2, 0xAA
- lsls r2, 1
- add r2, r12
- mov r10, r2
- mov r9, r5
-_08134AE6:
- movs r6, 0
- movs r3, 0
- ldr r0, _08134B40
- add r0, r9
- ldrb r0, [r0]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bne _08134B14
- movs r0, 0xA4
- muls r0, r5
- ldr r1, _08134B40
- adds r2, r0, r1
- mov r4, r8
- adds r4, 0xC
-_08134B02:
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08134B14
- adds r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08134B02
-_08134B14:
- cmp r3, 0x4
- bne _08134B54
- movs r6, 0
- mov r2, r10
- ldrb r0, [r2]
- mov r3, r8
- ldrb r3, [r3, 0x8]
- cmp r0, r3
- bne _08134B54
- adds r1, r0, 0
- movs r0, 0xA4
- muls r0, r5
- adds r0, 0x4
- ldr r3, _08134B44
- adds r2, r0, r3
-_08134B32:
- cmp r1, 0xFF
- bne _08134B48
- movs r6, 0x7
- b _08134B54
- .align 2, 0
-_08134B3C: .4byte gSaveBlock2
-_08134B40: .4byte gSaveBlock2 + 0x158
-_08134B44: .4byte gSaveBlock2 + 0x150
-_08134B48:
- adds r6, 0x1
- cmp r6, 0x6
- bgt _08134B54
- ldrb r0, [r2]
- cmp r0, r1
- beq _08134B32
-_08134B54:
- cmp r6, 0x7
- beq _08134B64
- movs r0, 0xA4
- add r10, r0
- add r9, r0
- adds r5, 0x1
- cmp r5, 0x4
- ble _08134AE6
-_08134B64:
- cmp r5, 0x4
- bgt _08134B76
- movs r0, 0xA4
- muls r0, r5
- add r0, r12
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- b _08134B9E
-_08134B76:
- movs r5, 0
- movs r1, 0xA7
- lsls r1, 1
- add r1, r12
- b _08134B88
-_08134B80:
- adds r1, 0xA4
- adds r5, 0x1
- cmp r5, 0x4
- bgt _08134BA8
-_08134B88:
- ldrh r0, [r1]
- cmp r0, 0
- bne _08134B80
- cmp r5, 0x4
- bgt _08134BA8
- movs r0, 0xA4
- muls r0, r5
- add r0, r12
- movs r2, 0xA6
- lsls r2, 1
- adds r0, r2
-_08134B9E:
- mov r1, r8
- movs r2, 0xA4
- bl memcpy
- b _08134C5E
-_08134BA8:
- mov r2, sp
- movs r3, 0xA7
- lsls r3, 1
- mov r1, r12
- adds r0, r1, r3
- ldrh r0, [r0]
- movs r1, 0
- strh r0, [r2]
- add r0, sp, 0xC
- strh r1, [r0]
- adds r7, 0x1
- movs r5, 0x1
- add r2, sp, 0xC
- mov r9, r2
- mov r10, r3
-_08134BC6:
- movs r3, 0
- adds r0, r5, 0x1
- mov r12, r0
- cmp r3, r7
- bge _08134C0A
- movs r1, 0xA4
- adds r0, r5, 0
- muls r0, r1
- ldr r2, _08134BFC
- adds r0, r2
- mov r1, r10
- adds r4, r0, r1
- mov r6, sp
-_08134BE0:
- lsls r0, r3, 1
- add r0, sp
- ldrh r2, [r4]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bcs _08134C00
- movs r3, 0
- movs r7, 0x1
- strh r2, [r6]
- mov r2, r9
- strh r5, [r2]
- b _08134C0A
- .align 2, 0
-_08134BFC: .4byte gSaveBlock2
-_08134C00:
- cmp r1, r0
- bhi _08134C0A
- adds r3, 0x1
- cmp r3, r7
- blt _08134BE0
-_08134C0A:
- cmp r3, r7
- bne _08134C2A
- lsls r1, r7, 1
- mov r3, sp
- adds r2, r3, r1
- movs r3, 0xA4
- adds r0, r5, 0
- muls r0, r3
- ldr r3, _08134C70
- adds r0, r3
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r2]
- add r1, r9
- strh r5, [r1]
- adds r7, 0x1
-_08134C2A:
- mov r5, r12
- cmp r5, 0x4
- ble _08134BC6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r7, 0
- bl __modsi3
- adds r5, r0, 0
- ldr r2, _08134C70
- lsls r0, r5, 1
- add r0, sp
- adds r0, 0xC
- ldrh r1, [r0]
- movs r0, 0xA4
- muls r0, r1
- adds r0, r2
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- mov r1, r8
- movs r2, 0xA4
- bl memcpy
-_08134C5E:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08134C70: .4byte gSaveBlock2
- thumb_func_end sub_8134AC0
-
- thumb_func_start get_trainer_class_pic_index
-get_trainer_class_pic_index: @ 8134C74
- push {lr}
- ldr r3, _08134C90
- ldr r0, _08134C94
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134CA0
- ldr r1, _08134C98
- ldr r2, _08134C9C
- adds r0, r3, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08134CD2
- .align 2, 0
-_08134C90: .4byte gSaveBlock2
-_08134C94: .4byte 0x00000564
-_08134C98: .4byte gTrainerClassToPicIndex
-_08134C9C: .4byte 0x00000499
-_08134CA0:
- cmp r0, 0x63
- bls _08134CC0
- ldr r2, _08134CBC
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r0, r1
- adds r0, r3
- adds r1, 0xA9
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
- b _08134CD2
- .align 2, 0
-_08134CBC: .4byte gTrainerClassToPicIndex
-_08134CC0:
- ldr r3, _08134CD8
- ldr r2, _08134CDC
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
-_08134CD2:
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08134CD8: .4byte gTrainerClassToPicIndex
-_08134CDC: .4byte gBattleTowerTrainers
- thumb_func_end get_trainer_class_pic_index
-
- thumb_func_start get_trainer_class_name_index
-get_trainer_class_name_index: @ 8134CE0
- push {lr}
- ldr r3, _08134CFC
- ldr r0, _08134D00
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134D0C
- ldr r1, _08134D04
- ldr r2, _08134D08
- adds r0, r3, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08134D40
- .align 2, 0
-_08134CFC: .4byte gSaveBlock2
-_08134D00: .4byte 0x00000564
-_08134D04: .4byte gTrainerClassToNameIndex
-_08134D08: .4byte 0x00000499
-_08134D0C:
- cmp r0, 0x63
- bhi _08134D2C
- ldr r3, _08134D24
- ldr r2, _08134D28
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- b _08134D40
- .align 2, 0
-_08134D24: .4byte gTrainerClassToNameIndex
-_08134D28: .4byte gBattleTowerTrainers
-_08134D2C:
- ldr r2, _08134D48
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r0, r1
- adds r0, r3
- adds r1, 0xA9
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
-_08134D40:
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08134D48: .4byte gTrainerClassToNameIndex
- thumb_func_end get_trainer_class_name_index
-
- thumb_func_start get_trainer_name
-get_trainer_name: @ 8134D4C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, _08134D74
- ldr r0, _08134D78
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134D80
- movs r3, 0
- ldr r5, _08134D7C
- adds r2, r5
-_08134D62:
- adds r0, r4, r3
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134D62
- b _08134DC8
- .align 2, 0
-_08134D74: .4byte gSaveBlock2
-_08134D78: .4byte 0x00000564
-_08134D7C: .4byte 0x0000049c
-_08134D80:
- cmp r0, 0x63
- bhi _08134DA8
- movs r3, 0
- ldr r2, _08134DA4
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, 0x1
- adds r2, r0, r2
-_08134D94:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134D94
- b _08134DC8
- .align 2, 0
-_08134DA4: .4byte gBattleTowerTrainers
-_08134DA8:
- movs r3, 0
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r1, r0
- movs r5, 0xA8
- lsls r5, 1
- adds r0, r2, r5
- adds r2, r1, r0
-_08134DBA:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134DBA
-_08134DC8:
- adds r1, r4, r3
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end get_trainer_name
-
- thumb_func_start sub_8134DD4
-sub_8134DD4: @ 8134DD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- movs r0, 0
- str r0, [sp, 0x18]
- movs r1, 0x3C
- str r1, [sp, 0x1C]
- add r4, sp, 0xC
- movs r0, 0xFF
- strb r0, [r4]
- bl ZeroEnemyPartyMons
- ldr r1, _08134E04
- ldr r2, _08134E08
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x13
- bhi _08134E0C
- movs r3, 0x6
- str r3, [sp, 0x14]
- b _08134ED8
- .align 2, 0
-_08134E04: .4byte gSaveBlock2
-_08134E08: .4byte 0x00000564
-_08134E0C:
- cmp r0, 0x1D
- bhi _08134E1A
- movs r0, 0x9
- str r0, [sp, 0x14]
- movs r1, 0x1E
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E1A:
- cmp r0, 0x27
- bhi _08134E28
- movs r2, 0xC
- str r2, [sp, 0x14]
- movs r3, 0x3C
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E28:
- cmp r0, 0x31
- bhi _08134E36
- movs r0, 0xF
- str r0, [sp, 0x14]
- movs r1, 0x5A
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E36:
- cmp r0, 0x3B
- bhi _08134E44
- movs r2, 0x12
- str r2, [sp, 0x14]
- movs r3, 0x78
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E44:
- cmp r0, 0x45
- bhi _08134E52
- movs r0, 0x15
- str r0, [sp, 0x14]
- movs r1, 0x96
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E52:
- cmp r0, 0x4F
- bhi _08134E60
- movs r2, 0x1F
- str r2, [sp, 0x14]
- movs r3, 0xB4
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E60:
- cmp r0, 0x63
- bhi _08134E72
- movs r0, 0x1F
- str r0, [sp, 0x14]
- movs r1, 0xC8
- str r1, [sp, 0x18]
- movs r2, 0x64
- str r2, [sp, 0x1C]
- b _08134ED8
-_08134E72:
- cmp r0, 0xC8
- bne _08134E9C
- movs r6, 0
-_08134E78:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _08134E94
- adds r0, r1
- movs r1, 0x2C
- muls r1, r6
- ldr r2, _08134E98
- adds r1, r2
- bl sub_803ADE8
- adds r6, 0x1
- cmp r6, 0x2
- ble _08134E78
- b _08135082
- .align 2, 0
-_08134E94: .4byte gEnemyParty
-_08134E98: .4byte gSaveBlock2 + 0x4CC
-_08134E9C:
- movs r6, 0
- adds r4, r1, 0
- ldr r3, _08134ECC
- adds r5, r4, r3
-_08134EA4:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _08134ED0
- adds r0, r1
- ldr r2, _08134ED4
- adds r1, r4, r2
- ldrb r2, [r1]
- movs r1, 0xA4
- muls r1, r2
- adds r1, r5
- movs r2, 0x2C
- muls r2, r6
- adds r1, r2
- bl sub_803ADE8
- adds r6, 0x1
- cmp r6, 0x2
- ble _08134EA4
- b _08135082
- .align 2, 0
-_08134ECC: .4byte 0xffffc158
-_08134ED0: .4byte gEnemyParty
-_08134ED4: .4byte 0x00000564
-_08134ED8:
- ldr r2, _08134EF4
- ldr r3, _08134EF8
- adds r0, r2, r3
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r1, r2, 0
- cmp r0, 0
- beq _08134F00
- ldr r0, _08134EFC
- mov r10, r0
- movs r2, 0x64
- str r2, [sp, 0x10]
- b _08134F08
- .align 2, 0
-_08134EF4: .4byte gSaveBlock2
-_08134EF8: .4byte 0x00000554
-_08134EFC: .4byte gBattleTowerLevel100Mons
-_08134F00:
- ldr r3, _08134F54
- mov r10, r3
- movs r0, 0x32
- str r0, [sp, 0x10]
-_08134F08:
- ldr r2, _08134F58
- ldr r3, _08134F5C
- adds r0, r1, r3
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x9]
- str r0, [sp, 0x20]
- movs r6, 0
-_08134F1E:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldr r2, [sp, 0x1C]
- adds r0, r1, 0
- muls r0, r2
- asrs r0, 8
- ldr r3, [sp, 0x18]
- adds r7, r0, r3
- ldr r0, [sp, 0x20]
- cmp r0, 0
- beq _08134F48
- lsls r0, r7, 4
- add r0, r10
- ldrb r0, [r0, 0x3]
- ldr r1, [sp, 0x20]
- ands r0, r1
- cmp r0, r1
- beq _08134F48
- b _0813507C
-_08134F48:
- movs r5, 0
- lsls r0, r7, 4
- mov r2, r10
- adds r3, r0, r2
- movs r4, 0
- b _08134F64
- .align 2, 0
-_08134F54: .4byte gBattleTowerLevel50Mons
-_08134F58: .4byte gBattleTowerTrainers
-_08134F5C: .4byte 0x00000564
-_08134F60:
- adds r4, 0x64
- adds r5, 0x1
-_08134F64:
- cmp r5, r6
- bge _08134F7E
- ldr r1, _08135094
- adds r0, r4, r1
- movs r1, 0xB
- movs r2, 0
- str r3, [sp, 0x24]
- bl GetMonData
- ldr r3, [sp, 0x24]
- ldrh r2, [r3]
- cmp r0, r2
- bne _08134F60
-_08134F7E:
- cmp r5, r6
- bne _0813507C
- movs r5, 0
- cmp r5, r6
- bge _08134FCC
- ldr r3, _08135098
- mov r9, r3
- lsls r0, r7, 4
- add r0, r10
- mov r8, r0
- movs r3, 0
-_08134F94:
- ldr r0, _08135094
- adds r4, r3, r0
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0
- str r3, [sp, 0x24]
- bl GetMonData
- ldr r3, [sp, 0x24]
- cmp r0, 0
- beq _08134FC4
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r2, r8
- ldrb r1, [r2, 0x2]
- lsls r1, 1
- add r1, r9
- ldr r3, [sp, 0x24]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08134FCC
-_08134FC4:
- adds r3, 0x64
- adds r5, 0x1
- cmp r5, r6
- blt _08134F94
-_08134FCC:
- cmp r5, r6
- bne _0813507C
- movs r5, 0
- cmp r5, r6
- bge _08134FEE
- add r0, sp, 0x4
- ldrh r0, [r0]
- cmp r0, r7
- beq _08134FEE
- add r1, sp, 0x4
-_08134FE0:
- adds r1, 0x2
- adds r5, 0x1
- cmp r5, r6
- bge _08134FEE
- ldrh r0, [r1]
- cmp r0, r7
- bne _08134FE0
-_08134FEE:
- cmp r5, r6
- bne _0813507C
- lsls r0, r6, 1
- add r0, sp
- adds r0, 0x4
- strh r7, [r0]
- movs r3, 0x64
- adds r0, r6, 0
- muls r0, r3
- ldr r1, _08135094
- adds r0, r1
- lsls r4, r7, 4
- mov r3, r10
- adds r2, r4, r3
- ldrh r1, [r2]
- ldrb r2, [r2, 0xC]
- str r2, [sp]
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x14]
- bl CreateMonWithEVSpread
- movs r5, 0
- adds r0, r6, 0x1
- mov r9, r0
- mov r8, r4
- movs r0, 0x64
- adds r7, r6, 0
- muls r7, r0
- mov r0, r10
- adds r0, 0x4
- adds r4, r0
- ldr r3, _08135094
-_0813502E:
- ldrh r1, [r4]
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r7, r3
- str r3, [sp, 0x24]
- bl SetMonMoveSlot
- ldrh r0, [r4]
- ldr r3, [sp, 0x24]
- cmp r0, 0xDA
- bne _0813504A
- movs r0, 0
- mov r1, sp
- strb r0, [r1, 0xC]
-_0813504A:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0813502E
- movs r2, 0x64
- adds r4, r6, 0
- muls r4, r2
- ldr r3, _08135094
- adds r4, r3
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- mov r0, r8
- add r0, r10
- ldrb r2, [r0, 0x2]
- lsls r2, 1
- ldr r0, _08135098
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r6, r9
-_0813507C:
- cmp r6, 0x3
- beq _08135082
- b _08134F1E
-_08135082:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135094: .4byte gEnemyParty
-_08135098: .4byte gBattleTowerHeldItems
- thumb_func_end sub_8134DD4
-
- thumb_func_start sub_813509C
-sub_813509C: @ 813509C
- push {r4-r6,lr}
- movs r5, 0
- ldr r2, _081350D8
- ldrh r0, [r2]
- ldr r1, _081350DC
- cmp r0, r1
- beq _081350CE
- adds r6, r1, 0
- adds r4, r2, 0
-_081350AE:
- ldrh r0, [r4]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _081350C6
- adds r5, 0x1
-_081350C6:
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r6
- bne _081350AE
-_081350CE:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081350D8: .4byte gBattleTowerBanlist
-_081350DC: .4byte 0x0000ffff
- thumb_func_end sub_813509C
-
- thumb_func_start sub_81350E0
-sub_81350E0: @ 81350E0
- push {r4-r6,lr}
- adds r5, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r6, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _081351E6
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- subs r0, r4, 0x1
- cmp r0, 0xA
- bhi _081351B0
- lsls r0, 2
- ldr r1, _08135118
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08135118: .4byte _0813511C
- .align 2, 0
-_0813511C:
- .4byte _08135148
- .4byte _08135178
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
-_08135148:
- cmp r5, r4
- bne _08135160
- ldr r0, _08135158
- ldr r1, _0813515C
- bl StringAppend
- b _081351D8
- .align 2, 0
-_08135158: .4byte gStringVar1
-_0813515C: .4byte gUnknown_08400E23
-_08135160:
- cmp r5, r4
- ble _081351D8
- ldr r0, _08135170
- ldr r1, _08135174
- bl StringAppend
- b _081351D8
- .align 2, 0
-_08135170: .4byte gStringVar1
-_08135174: .4byte gUnknown_08400E29
-_08135178:
- cmp r4, r5
- bne _08135190
- ldr r0, _08135188
- ldr r1, _0813518C
- bl StringAppend
- b _08135198
- .align 2, 0
-_08135188: .4byte gStringVar1
-_0813518C: .4byte gUnknown_08400E23
-_08135190:
- ldr r0, _081351A4
- ldr r1, _081351A8
- bl StringAppend
-_08135198:
- ldr r0, _081351A4
- ldr r1, _081351AC
- bl StringAppend
- b _081351D8
- .align 2, 0
-_081351A4: .4byte gStringVar1
-_081351A8: .4byte gUnknown_08400E29
-_081351AC: .4byte gUnknown_08400E30
-_081351B0:
- cmp r4, r5
- bne _081351C8
- ldr r0, _081351C0
- ldr r1, _081351C4
- bl StringAppend
- b _081351D0
- .align 2, 0
-_081351C0: .4byte gStringVar1
-_081351C4: .4byte gUnknown_08400E23
-_081351C8:
- ldr r0, _081351F0
- ldr r1, _081351F4
- bl StringAppend
-_081351D0:
- ldr r0, _081351F0
- ldr r1, _081351F8
- bl StringAppend
-_081351D8:
- ldr r0, _081351F0
- movs r1, 0xB
- muls r1, r6
- ldr r2, _081351FC
- adds r1, r2
- bl StringAppend
-_081351E6:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081351F0: .4byte gStringVar1
-_081351F4: .4byte gUnknown_08400E29
-_081351F8: .4byte gUnknown_08400E2E
-_081351FC: .4byte gSpeciesNames
- thumb_func_end sub_81350E0
-
- thumb_func_start sub_8135200
-sub_8135200: @ 8135200
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- mov r10, r4
- ldr r7, [sp, 0x2C]
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r2, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081352CE
- cmp r4, 0
- beq _081352CE
- ldr r0, _081352DC
- ldrh r1, [r0]
- ldr r5, _081352E0
- adds r3, r0, 0
- cmp r1, r5
- beq _08135264
- cmp r1, r4
- beq _08135258
- adds r1, r3, 0
-_0813524A:
- adds r1, 0x2
- adds r2, 0x1
- ldrh r0, [r1]
- cmp r0, r5
- beq _08135264
- cmp r0, r4
- bne _0813524A
-_08135258:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- ldr r0, _081352E0
- cmp r1, r0
- bne _081352CE
-_08135264:
- mov r0, r12
- cmp r0, 0
- bne _08135270
- mov r1, r8
- cmp r1, 0x32
- bhi _081352CE
-_08135270:
- movs r2, 0
- ldrb r3, [r7]
- cmp r2, r3
- bge _08135290
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, r4
- beq _08135290
- adds r5, r3, 0
-_08135282:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _08135290
- ldrh r0, [r1]
- cmp r0, r4
- bne _08135282
-_08135290:
- cmp r2, r3
- bne _081352CE
- cmp r6, 0
- beq _081352BA
- movs r2, 0
- cmp r2, r3
- bge _081352B6
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, r6
- beq _081352B6
- adds r5, r3, 0
-_081352A8:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081352B6
- ldrh r0, [r1]
- cmp r0, r6
- bne _081352A8
-_081352B6:
- cmp r2, r3
- bne _081352CE
-_081352BA:
- lsls r0, r3, 1
- add r0, r9
- strh r4, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- add r0, r10
- strh r6, [r0]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_081352CE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081352DC: .4byte gBattleTowerBanlist
-_081352E0: .4byte 0x0000ffff
- thumb_func_end sub_8135200
-
- thumb_func_start sub_81352E4
-sub_81352E4: @ 81352E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- add r1, sp, 0x28
- movs r0, 0
- strb r0, [r1]
- movs r7, 0
- mov r9, r1
- add r0, sp, 0x1C
- mov r10, r0
-_081352FE:
- movs r0, 0x64
- adds r5, r7, 0
- muls r5, r0
- ldr r0, _081353C4
- adds r5, r0
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- mov r8, r0
- mov r1, r8
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r5, _081353C8
- ldrb r3, [r5]
- str r4, [sp]
- add r0, sp, 0x10
- str r0, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r6, 0
- bl sub_8135200
- adds r7, 0x1
- cmp r7, 0x5
- ble _081352FE
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08135420
- ldr r1, _081353CC
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _081353D0
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- mov r1, r9
- strb r0, [r1]
- bl sub_813509C
- adds r6, r0, 0
- ldr r2, _081353D4
- ldrh r0, [r2]
- ldr r1, _081353D8
- cmp r0, r1
- beq _081353A8
- mov r5, r9
- adds r7, r1, 0
- adds r4, r2, 0
-_08135394:
- ldrh r0, [r4]
- ldrb r1, [r5]
- adds r2, r6, 0
- bl sub_81350E0
- strb r0, [r5]
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _08135394
-_081353A8:
- mov r0, r9
- ldrb r1, [r0]
- cmp r1, 0
- bne _081353E4
- ldr r4, _081353CC
- ldr r1, _081353DC
- adds r0, r4, 0
- bl StringAppend
- ldr r1, _081353E0
- adds r0, r4, 0
- bl StringAppend
- b _0813543E
- .align 2, 0
-_081353C4: .4byte gPlayerParty
-_081353C8: .4byte gScriptResult
-_081353CC: .4byte gStringVar1
-_081353D0: .4byte gUnknown_0202E8CC
-_081353D4: .4byte gBattleTowerBanlist
-_081353D8: .4byte 0x0000ffff
-_081353DC: .4byte gUnknown_08400E2C
-_081353E0: .4byte gUnknown_08400E32
-_081353E4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08135400
- ldr r0, _081353F8
- ldr r1, _081353FC
- bl StringAppend
- b _08135408
- .align 2, 0
-_081353F8: .4byte gStringVar1
-_081353FC: .4byte gUnknown_08400E2E
-_08135400:
- ldr r0, _08135414
- ldr r1, _08135418
- bl StringAppend
-_08135408:
- ldr r0, _08135414
- ldr r1, _0813541C
- bl StringAppend
- b _0813543E
- .align 2, 0
-_08135414: .4byte gStringVar1
-_08135418: .4byte gUnknown_08400E2C
-_0813541C: .4byte gUnknown_08400E36
-_08135420:
- ldr r1, _08135450
- movs r0, 0
- strh r0, [r1]
- ldr r2, _08135454
- ldrb r0, [r5]
- ldr r1, _08135458
- adds r2, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_0813543E:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135450: .4byte gUnknown_0202E8CC
-_08135454: .4byte gSaveBlock2
-_08135458: .4byte 0x00000554
- thumb_func_end sub_81352E4
-
- thumb_func_start sub_813545C
-sub_813545C: @ 813545C
- push {lr}
- adds r1, r0, 0
- ldr r0, _08135470
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80EB544
- pop {r0}
- bx r0
- .align 2, 0
-_08135470: .4byte gStringVar4
- thumb_func_end sub_813545C
-
- thumb_func_start sub_8135474
-sub_8135474: @ 8135474
- push {lr}
- ldr r2, _08135490
- ldr r0, _08135494
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08135498
- movs r1, 0x95
- lsls r1, 3
- adds r0, r2, r1
- bl sub_813545C
- b _081354C4
- .align 2, 0
-_08135490: .4byte gSaveBlock2
-_08135494: .4byte 0x00000564
-_08135498:
- cmp r0, 0x63
- bhi _081354B4
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _081354B0
- adds r0, r1
- bl sub_813545C
- b _081354C4
- .align 2, 0
-_081354B0: .4byte gBattleTowerTrainers + 0xC
-_081354B4:
- ldrb r1, [r1]
- movs r0, 0xA4
- muls r0, r1
- ldr r3, _081354C8
- adds r1, r2, r3
- adds r0, r1
- bl sub_813545C
-_081354C4:
- pop {r0}
- bx r0
- .align 2, 0
-_081354C8: .4byte 0xffffc14c
- thumb_func_end sub_8135474
-
- thumb_func_start sub_81354CC
-sub_81354CC: @ 81354CC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _081354E4
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081354E8
- cmp r0, 0x1
- ble _08135520
- cmp r0, 0x2
- beq _0813551C
- b _08135520
- .align 2, 0
-_081354E4: .4byte gUnknown_0202E8CC
-_081354E8:
- movs r5, 0
-_081354EA:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08135514
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _08135518
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _081354EA
- b _08135520
- .align 2, 0
-_08135514: .4byte gSaveBlock1 + 0x238
-_08135518: .4byte gPlayerParty
-_0813551C:
- bl sub_81360D0
-_08135520:
- ldr r0, _08135530
- bl SetMainCallback2
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_81354CC
-
- thumb_func_start sub_8135534
-sub_8135534: @ 8135534
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_811AAE8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08135558
- ldr r0, _08135560
- ldr r1, _08135564
- str r1, [r0, 0x8]
- ldr r0, _08135568
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08135558:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135560: .4byte gMain
-_08135564: .4byte sub_81354CC
-_08135568: .4byte sub_800E7C4
- thumb_func_end sub_8135534
-
- thumb_func_start sub_813556C
-sub_813556C: @ 813556C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08135584
- ldrh r2, [r0]
- cmp r2, 0x1
- beq _081355AC
- cmp r2, 0x1
- bgt _08135588
- cmp r2, 0
- beq _0813558E
- b _08135648
- .align 2, 0
-_08135584: .4byte gUnknown_0202E8CC
-_08135588:
- cmp r2, 0x2
- beq _08135600
- b _08135648
-_0813558E:
- ldr r1, _081355A4
- movs r3, 0x84
- lsls r3, 1
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _081355A8
- strh r2, [r0]
- bl sub_8134DD4
- b _081355D6
- .align 2, 0
-_081355A4: .4byte gUnknown_020239F8
-_081355A8: .4byte word_202FF5E
-_081355AC:
- movs r5, 0
-_081355AE:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _081355F4
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _081355F8
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _081355AE
-_081355D6:
- ldr r0, _081355FC
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl current_map_music_set__default_for_battle
- bl sub_8082138
- lsls r0, 24
- lsrs r0, 24
- bl sub_811AABC
- b _08135648
- .align 2, 0
-_081355F4: .4byte gPlayerParty
-_081355F8: .4byte gSaveBlock1 + 0x238
-_081355FC: .4byte sub_8135534
-_08135600:
- bl ZeroEnemyPartyMons
- movs r5, 0
-_08135606:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08135650
- adds r0, r1
- movs r1, 0x2C
- muls r1, r5
- ldr r2, _08135654
- adds r1, r2
- bl sub_803ADE8
- adds r5, 0x1
- cmp r5, 0x2
- ble _08135606
- ldr r1, _08135658
- ldr r2, _0813565C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08135660
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08135664
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl current_map_music_set__default_for_battle
- bl sub_8082138
- lsls r0, 24
- lsrs r0, 24
- bl sub_811AABC
-_08135648:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135650: .4byte gEnemyParty
-_08135654: .4byte gSaveBlock2 + 0x4CC
-_08135658: .4byte gUnknown_020239F8
-_0813565C: .4byte 0x00000808
-_08135660: .4byte word_202FF5E
-_08135664: .4byte sub_8135534
- thumb_func_end sub_813556C
-
- thumb_func_start sub_8135668
-sub_8135668: @ 8135668
- push {r4,r5,lr}
- ldr r1, _0813568C
- ldr r2, _08135690
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r4, r0, 31
- ldr r0, _08135694
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xE
- bls _08135682
- b _0813589A
-_08135682:
- lsls r0, 2
- ldr r1, _08135698
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813568C: .4byte gSaveBlock2
-_08135690: .4byte 0x00000554
-_08135694: .4byte gUnknown_0202E8CC
-_08135698: .4byte _0813569C
- .align 2, 0
-_0813569C:
- .4byte _081356D8
- .4byte _08135700
- .4byte _0813571C
- .4byte _08135726
- .4byte _08135740
- .4byte _08135754
- .4byte _08135774
- .4byte _081357D0
- .4byte _081357FC
- .4byte _0813589A
- .4byte _08135820
- .4byte _08135834
- .4byte _0813584C
- .4byte _0813586C
- .4byte _08135888
-_081356D8:
- ldr r0, _081356F0
- ldr r3, _081356F4
- adds r1, r5, r3
- adds r1, r4, r1
- ldrb r2, [r1]
- ldr r3, _081356F8
- adds r0, r3
- strb r2, [r0]
- ldr r0, _081356FC
- ldrh r0, [r0]
- b _08135898
- .align 2, 0
-_081356F0: .4byte 0x02000000
-_081356F4: .4byte 0x00000556
-_081356F8: .4byte 0x000160fb
-_081356FC: .4byte gUnknown_0202E8CE
-_08135700:
- ldr r0, _08135714
- ldrb r0, [r0]
- ldr r1, _08135718
- adds r3, r5, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- b _08135810
- .align 2, 0
-_08135714: .4byte gUnknown_0202E8CE
-_08135718: .4byte 0x00000554
-_0813571C:
- lsls r1, r4, 1
- movs r2, 0xAB
- lsls r2, 3
- adds r0, r5, r2
- b _0813572C
-_08135726:
- lsls r1, r4, 1
- ldr r3, _08135738
- adds r0, r5, r3
-_0813572C:
- adds r1, r0
- ldr r0, _0813573C
- ldrh r0, [r0]
- strh r0, [r1]
- b _0813589A
- .align 2, 0
-_08135738: .4byte 0x0000055c
-_0813573C: .4byte gUnknown_0202E8CE
-_08135740:
- ldr r0, _0813574C
- ldrh r1, [r0]
- ldr r2, _08135750
- adds r0, r5, r2
- strb r1, [r0]
- b _0813589A
- .align 2, 0
-_0813574C: .4byte gUnknown_0202E8CE
-_08135750: .4byte 0x00000564
-_08135754:
- movs r2, 0
- ldr r4, _0813576C
- ldr r3, _08135770
-_0813575A:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _0813575A
- b _0813589A
- .align 2, 0
-_0813576C: .4byte gSaveBlock2 + 0x565
-_08135770: .4byte gUnknown_02039270
-_08135774:
- ldr r3, _081357C0
- adds r0, r5, r3
- ldrb r0, [r0]
- cmp r0, 0xC8
- bne _08135788
- movs r1, 0x93
- lsls r1, 3
- adds r0, r5, r1
- bl sub_81360AC
-_08135788:
- movs r3, 0xAE
- lsls r3, 3
- adds r2, r5, r3
- ldrh r1, [r2]
- ldr r0, _081357C4
- cmp r1, r0
- bhi _0813579A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0813579A:
- lsls r4, 1
- movs r1, 0xAB
- lsls r1, 3
- adds r0, r5, r1
- adds r4, r0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- bl sub_8135A3C
- ldr r1, _081357C8
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r1, _081357CC
- adds r0, 0xA1
- strb r0, [r1]
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- b _0813589A
- .align 2, 0
-_081357C0: .4byte 0x00000564
-_081357C4: .4byte 0x0000270e
-_081357C8: .4byte gScriptResult
-_081357CC: .4byte gStringVar1
-_081357D0:
- lsls r0, r4, 1
- ldr r2, _081357F0
- adds r1, r5, r2
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, _081357F4
- cmp r1, r0
- bhi _081357E4
- adds r0, r1, 0x1
- strh r0, [r4]
-_081357E4:
- bl sub_8135A3C
- ldr r1, _081357F8
- ldrh r0, [r4]
- strh r0, [r1]
- b _0813589A
- .align 2, 0
-_081357F0: .4byte 0x0000055c
-_081357F4: .4byte 0x00000595
-_081357F8: .4byte gScriptResult
-_081357FC:
- ldr r0, _08135818
- ldrb r0, [r0]
- ldr r1, _0813581C
- adds r3, r5, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
-_08135810:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _0813589A
- .align 2, 0
-_08135818: .4byte gUnknown_0202E8CE
-_0813581C: .4byte 0x00000554
-_08135820:
- ldr r2, _08135830
- adds r0, r5, r2
- ldrh r1, [r0]
- movs r0, 0x20
- bl sav12_xor_set
- b _0813589A
- .align 2, 0
-_08135830: .4byte 0x00000572
-_08135834:
- ldr r3, _08135848
- adds r0, r5, r3
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0813589A
- adds r0, r4, 0
- bl sub_813461C
- b _0813589A
- .align 2, 0
-_08135848: .4byte 0x00000556
-_0813584C:
- ldr r1, _08135860
- adds r0, r5, r1
- adds r0, r4, r0
- ldr r1, _08135864
- ldr r2, _08135868
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- b _0813589A
- .align 2, 0
-_08135860: .4byte 0x00000556
-_08135864: .4byte 0x02000000
-_08135868: .4byte 0x000160fb
-_0813586C:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _08135880
- lsls r2, r4, 1
- ldr r3, _08135884
- adds r1, r3
- adds r2, r1
- strh r0, [r2]
- b _0813589A
- .align 2, 0
-_08135880: .4byte gSaveBlock2
-_08135884: .4byte 0x00000574
-_08135888:
- ldr r1, _081358A0
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- movs r2, 0xAF
- lsls r2, 3
- adds r1, r5, r2
-_08135898:
- strb r0, [r1]
-_0813589A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081358A0: .4byte 0x00000554
- thumb_func_end sub_8135668
-
- thumb_func_start sub_81358A4
-sub_81358A4: @ 81358A4
- push {r4,lr}
- ldr r1, _081358C8
- ldr r2, _081358CC
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r4, r0, 31
- ldr r0, _081358D0
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xE
- bls _081358BE
- b _08135A0A
-_081358BE:
- lsls r0, 2
- ldr r1, _081358D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081358C8: .4byte gSaveBlock2
-_081358CC: .4byte 0x00000554
-_081358D0: .4byte gUnknown_0202E8CC
-_081358D4: .4byte _081358D8
- .align 2, 0
-_081358D8:
- .4byte _08135914
- .4byte _08135928
- .4byte _0813593C
- .4byte _0813594C
- .4byte _08135964
- .4byte _08135A0A
- .4byte _08135A0A
- .4byte _08135A0A
- .4byte _08135978
- .4byte _08135990
- .4byte _081359A0
- .4byte _081359B4
- .4byte _081359BC
- .4byte _081359DC
- .4byte _081359F8
-_08135914:
- ldr r0, _08135920
- ldr r2, _08135924
- adds r1, r3, r2
- adds r1, r4, r1
- b _0813596A
- .align 2, 0
-_08135920: .4byte gScriptResult
-_08135924: .4byte 0x00000556
-_08135928:
- ldr r1, _08135934
- ldr r4, _08135938
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 31
- b _08135982
- .align 2, 0
-_08135934: .4byte gScriptResult
-_08135938: .4byte 0x00000554
-_0813593C:
- ldr r2, _08135948
- lsls r0, r4, 1
- movs r4, 0xAB
- lsls r4, 3
- b _08135952
- .align 2, 0
-_08135948: .4byte gScriptResult
-_0813594C:
- ldr r2, _0813595C
- lsls r0, r4, 1
- ldr r4, _08135960
-_08135952:
- adds r1, r3, r4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- b _08135A0A
- .align 2, 0
-_0813595C: .4byte gScriptResult
-_08135960: .4byte 0x0000055c
-_08135964:
- ldr r0, _08135970
- ldr r2, _08135974
- adds r1, r3, r2
-_0813596A:
- ldrb r1, [r1]
- strh r1, [r0]
- b _08135A0A
- .align 2, 0
-_08135970: .4byte gScriptResult
-_08135974: .4byte 0x00000564
-_08135978:
- ldr r1, _08135988
- ldr r4, _0813598C
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 30
-_08135982:
- lsrs r0, 31
- strh r0, [r1]
- b _08135A0A
- .align 2, 0
-_08135988: .4byte gScriptResult
-_0813598C: .4byte 0x00000554
-_08135990:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _0813599C
- strh r0, [r1]
- b _08135A0A
- .align 2, 0
-_0813599C: .4byte gScriptResult
-_081359A0:
- ldr r1, _081359B0
- adds r0, r3, r1
- ldrh r1, [r0]
- movs r0, 0x20
- bl sav12_xor_set
- b _08135A0A
- .align 2, 0
-_081359B0: .4byte 0x00000572
-_081359B4:
- adds r0, r4, 0
- bl sub_813461C
- b _08135A0A
-_081359BC:
- ldr r2, _081359D0
- adds r0, r3, r2
- adds r0, r4, r0
- ldr r1, _081359D4
- ldr r3, _081359D8
- adds r1, r3
- ldrb r1, [r1]
- strb r1, [r0]
- b _08135A0A
- .align 2, 0
-_081359D0: .4byte 0x00000556
-_081359D4: .4byte 0x02000000
-_081359D8: .4byte 0x000160fb
-_081359DC:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _081359F0
- lsls r2, r4, 1
- ldr r4, _081359F4
- adds r1, r4
- adds r2, r1
- strh r0, [r2]
- b _08135A0A
- .align 2, 0
-_081359F0: .4byte gSaveBlock2
-_081359F4: .4byte 0x00000574
-_081359F8:
- ldr r1, _08135A10
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- movs r2, 0xAF
- lsls r2, 3
- adds r1, r3, r2
- strb r0, [r1]
-_08135A0A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135A10: .4byte 0x00000554
- thumb_func_end sub_81358A4
-
- thumb_func_start sub_8135A14
-sub_8135A14: @ 8135A14
- push {r4,lr}
- movs r2, 0
- ldr r4, _08135A34
- ldr r3, _08135A38
-_08135A1C:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08135A1C
- bl sub_80C5604
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135A34: .4byte gUnknown_02039270
-_08135A38: .4byte gSaveBlock2 + 0x565
- thumb_func_end sub_8135A14
-
- thumb_func_start sub_8135A3C
-sub_8135A3C: @ 8135A3C
- push {r4-r6,lr}
- ldr r6, _08135A84
- ldr r1, _08135A88
- adds r0, r6, r1
- ldrb r4, [r0]
- lsls r4, 31
- lsrs r4, 31
- adds r0, r4, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r4, 1
- movs r3, 0xAC
- lsls r3, 3
- adds r2, r6, r3
- adds r4, r2
- ldrh r0, [r4]
- cmp r0, r5
- bcs _08135A66
- strh r5, [r4]
-_08135A66:
- ldr r0, _08135A8C
- adds r1, r6, r0
- ldrh r0, [r2]
- ldrh r3, [r1]
- cmp r0, r3
- bls _08135A94
- adds r5, r0, 0
- movs r0, 0x20
- adds r1, r5, 0
- bl sav12_xor_set
- ldr r1, _08135A90
- cmp r5, r1
- bhi _08135AA4
- b _08135AB4
- .align 2, 0
-_08135A84: .4byte gSaveBlock2
-_08135A88: .4byte 0x00000554
-_08135A8C: .4byte 0x00000562
-_08135A90: .4byte 0x0000270f
-_08135A94:
- ldrh r5, [r1]
- movs r0, 0x20
- adds r1, r5, 0
- bl sav12_xor_set
- ldr r1, _08135AAC
- cmp r5, r1
- bls _08135AB4
-_08135AA4:
- ldr r2, _08135AB0
- adds r0, r6, r2
- strh r1, [r0]
- b _08135ABA
- .align 2, 0
-_08135AAC: .4byte 0x0000270f
-_08135AB0: .4byte 0x00000572
-_08135AB4:
- ldr r3, _08135AC0
- adds r0, r6, r3
- strh r5, [r0]
-_08135ABA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135AC0: .4byte 0x00000572
- thumb_func_end sub_8135A3C
-
- thumb_func_start sub_8135AC4
-sub_8135AC4: @ 8135AC4
- push {r4-r6,lr}
- ldr r5, _08135AF0
- adds r2, r5, 0
- subs r2, 0xA8
- ldr r1, _08135AF4
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r6, r0, 31
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08135AFC
- ldr r4, _08135AF8
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08135B0E
- .align 2, 0
-_08135AF0: .4byte gSaveBlock2 + 0xA8
-_08135AF4: .4byte 0x000004ac
-_08135AF8: .4byte gUnknown_08405E7E
-_08135AFC:
- ldr r4, _08135B84
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08135B0E:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r6, [r5]
- strb r0, [r5, 0x1]
- adds r0, r5, 0
- adds r0, 0xC
- ldr r4, _08135B88
- adds r1, r4, 0
- bl sub_8052D10
- adds r0, r5, 0x4
- subs r4, 0xA
- adds r1, r4, 0
- bl StringCopy8
- adds r0, r6, 0
- bl sub_8135D3C
- strh r0, [r5, 0x2]
- ldr r0, _08135B8C
- ldr r1, _08135B90
- adds r2, r0, r1
- adds r1, r5, 0
- adds r1, 0x10
- movs r4, 0x5
-_08135B44:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08135B44
- movs r4, 0
- ldr r6, _08135B94
-_08135B56:
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08135B98
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x1C
- adds r1, r5, r1
- bl sub_803AF78
- adds r4, 0x1
- cmp r4, 0x2
- ble _08135B56
- ldr r0, _08135B9C
- bl sub_8135CC4
- bl sub_8135A3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135B84: .4byte gUnknown_08405E60
-_08135B88: .4byte gSaveBlock2 + 0xA
-_08135B8C: .4byte gSaveBlock1
-_08135B90: .4byte 0x00002b28
-_08135B94: .4byte gSaveBlock2 + 0x565
-_08135B98: .4byte gUnknown_030042FC
-_08135B9C: .4byte gSaveBlock2 + 0xA8
- thumb_func_end sub_8135AC4
-
- thumb_func_start sub_8135BA0
-sub_8135BA0: @ 8135BA0
- push {r4,r5,lr}
- ldr r2, _08135C1C
- ldr r1, _08135C20
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r5, r0, 31
- ldr r0, _08135C24
- ldrh r0, [r0]
- cmp r0, 0x3
- beq _08135BBA
- cmp r0, 0
- bne _08135BD8
-_08135BBA:
- lsls r1, r5, 1
- ldr r3, _08135C28
- adds r0, r2, r3
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _08135BD4
- subs r3, 0x4
- adds r0, r2, r3
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _08135BD8
-_08135BD4:
- bl sub_8135AC4
-_08135BD8:
- bl sub_8135CFC
- ldr r4, _08135C1C
- ldr r0, _08135C2C
- ldrb r1, [r0]
- ldr r2, _08135C30
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _08135C24
- ldrh r1, [r0]
- cmp r1, 0x3
- beq _08135BF8
- ldr r3, _08135C34
- adds r0, r4, r3
- adds r0, r5, r0
- strb r1, [r0]
-_08135BF8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r0, _08135C20
- adds r2, r4, r0
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- bl sub_8125D44
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135C1C: .4byte gSaveBlock2
-_08135C20: .4byte 0x00000554
-_08135C24: .4byte gUnknown_0202E8CC
-_08135C28: .4byte 0x0000055c
-_08135C2C: .4byte gUnknown_02024D26
-_08135C30: .4byte 0x00000555
-_08135C34: .4byte 0x00000556
- thumb_func_end sub_8135BA0
-
- thumb_func_start sub_8135C38
-sub_8135C38: @ 8135C38
- push {lr}
- bl DoSoftReset
- pop {r0}
- bx r0
- thumb_func_end sub_8135C38
-
- thumb_func_start sub_8135C44
-sub_8135C44: @ 8135C44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r3, 0
- movs r1, 0
- ldr r2, _08135CBC
-_08135C50:
- ldm r2!, {r0}
- adds r3, r0
- adds r1, 0x1
- cmp r1, 0x27
- bls _08135C50
- ldr r5, _08135CC0
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r5, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08135C70
- adds r0, r5, 0
- adds r0, 0xA8
- bl sub_8135CE8
-_08135C70:
- movs r4, 0
- movs r7, 0xA4
- movs r0, 0xA6
- lsls r0, 1
- adds r6, r5, r0
- mov r8, r5
-_08135C7C:
- adds r0, r4, 0
- muls r0, r7
- movs r3, 0
- movs r1, 0
- adds r5, r4, 0x1
- adds r2, r0, r6
-_08135C88:
- ldm r2!, {r0}
- adds r3, r0
- adds r1, 0x1
- cmp r1, 0x27
- bls _08135C88
- adds r1, r4, 0
- muls r1, r7
- movs r0, 0xF6
- lsls r0, 1
- add r0, r8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, r3
- beq _08135CAA
- adds r0, r1, r6
- bl sub_8135CE8
-_08135CAA:
- adds r4, r5, 0
- cmp r4, 0x4
- ble _08135C7C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135CBC: .4byte gSaveBlock2 + 0xA8
-_08135CC0: .4byte gSaveBlock2
- thumb_func_end sub_8135C44
-
- thumb_func_start sub_8135CC4
-sub_8135CC4: @ 8135CC4
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xA0
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08135CD2:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x27
- bls _08135CD2
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8135CC4
-
- thumb_func_start sub_8135CE8
-sub_8135CE8: @ 8135CE8
- push {lr}
- movs r1, 0
- movs r2, 0
-_08135CEE:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x28
- bls _08135CEE
- pop {r0}
- bx r0
- thumb_func_end sub_8135CE8
-
- thumb_func_start sub_8135CFC
-sub_8135CFC: @ 8135CFC
- push {r4,lr}
- ldr r4, _08135D34
- adds r0, r4, 0
- bl get_trainer_name
- ldr r2, _08135D38
- adds r0, r2, 0
- adds r0, 0x58
- ldrh r1, [r0]
- subs r0, r4, 0x2
- strh r1, [r0]
- ldrh r1, [r2]
- subs r0, r4, 0x4
- strh r1, [r0]
- movs r3, 0
- adds r4, 0x8
- adds r2, 0x30
-_08135D1E:
- adds r0, r3, r4
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x9
- ble _08135D1E
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135D34: .4byte gSaveBlock2 + 0x484
-_08135D38: .4byte gBattleMons
- thumb_func_end sub_8135CFC
-
- thumb_func_start sub_8135D3C
-sub_8135D3C: @ 8135D3C
- push {lr}
- lsls r0, 24
- ldr r3, _08135D74
- lsrs r0, 23
- ldr r2, _08135D78
- adds r1, r3, r2
- adds r1, r0, r1
- ldrh r2, [r1]
- subs r2, 0x1
- lsls r1, r2, 3
- subs r1, r2
- movs r2, 0xAB
- lsls r2, 3
- adds r3, r2
- adds r0, r3
- ldr r2, _08135D7C
- adds r1, r2
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r0, r1, 16
- ldr r1, _08135D80
- cmp r0, r1
- bls _08135D6E
- adds r0, r1, 0
-_08135D6E:
- pop {r1}
- bx r1
- .align 2, 0
-_08135D74: .4byte gSaveBlock2
-_08135D78: .4byte 0x0000055c
-_08135D7C: .4byte 0x0000ffff
-_08135D80: .4byte 0x0000270f
- thumb_func_end sub_8135D3C
-
- thumb_func_start sub_8135D84
-sub_8135D84: @ 8135D84
- push {r4,r5,lr}
- ldr r5, _08135DB0
- ldr r1, _08135DB4
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- lsls r0, 1
- ldr r2, _08135DB8
- adds r1, r5, r2
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x5
- ble _08135DC0
- bl Random
- ldr r4, _08135DBC
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x9
- b _08135DCC
- .align 2, 0
-_08135DB0: .4byte gSaveBlock2
-_08135DB4: .4byte 0x00000554
-_08135DB8: .4byte 0x0000055c
-_08135DBC: .4byte gUnknown_08405EE6
-_08135DC0:
- bl Random
- ldr r4, _08135DE8
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
-_08135DCC:
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r4
- ldrh r1, [r0]
- movs r2, 0xAD
- lsls r2, 3
- adds r0, r5, r2
- strh r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135DE8: .4byte gUnknown_08405EDA
- thumb_func_end sub_8135D84
-
- thumb_func_start sub_8135DEC
-sub_8135DEC: @ 8135DEC
- push {r4-r7,lr}
- ldr r5, _08135E20
- ldr r1, _08135E24
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r7, r0, 31
- movs r0, 0xAD
- lsls r0, 3
- adds r6, r5, r0
- ldrh r0, [r6]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08135E30
- ldrh r0, [r6]
- ldr r1, _08135E28
- bl itemid_copy_name
- ldr r0, _08135E2C
- strh r4, [r0]
- b _08135E40
- .align 2, 0
-_08135E20: .4byte gSaveBlock2
-_08135E24: .4byte 0x00000554
-_08135E28: .4byte gStringVar1
-_08135E2C: .4byte gScriptResult
-_08135E30:
- ldr r1, _08135E48
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08135E4C
- adds r0, r5, r1
- adds r0, r7, r0
- movs r1, 0x6
- strb r1, [r0]
-_08135E40:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135E48: .4byte gScriptResult
-_08135E4C: .4byte 0x00000556
- thumb_func_end sub_8135DEC
-
- thumb_func_start sub_8135E50
-sub_8135E50: @ 8135E50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _08135ED4
- ldr r1, _08135ED8
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r0, 0
- movs r7, 0x44
- cmp r1, 0
- beq _08135E6C
- movs r7, 0x45
-_08135E6C:
- ldr r4, _08135EDC
- movs r0, 0
- strh r0, [r4]
- adds r0, r1, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x37
- bls _08135EBA
- movs r5, 0
- ldr r0, _08135EE0
- adds r0, r6
- mov r8, r0
- adds r6, r4, 0
-_08135E8A:
- mov r1, r8
- adds r0, r5, r1
- ldrb r0, [r0]
- subs r0, 0x1
- movs r1, 0x64
- muls r1, r0
- ldr r0, _08135EE4
- adds r4, r1, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl GetMonData
- cmp r0, 0
- bne _08135EB4
- movs r0, 0x1
- strh r0, [r6]
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl SetMonData
-_08135EB4:
- adds r5, 0x1
- cmp r5, 0x2
- ble _08135E8A
-_08135EBA:
- ldr r0, _08135EDC
- ldrh r0, [r0]
- cmp r0, 0
- beq _08135EC8
- movs r0, 0x2A
- bl sav12_xor_increment
-_08135EC8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135ED4: .4byte gSaveBlock2
-_08135ED8: .4byte 0x00000554
-_08135EDC: .4byte gScriptResult
-_08135EE0: .4byte 0x00000565
-_08135EE4: .4byte gPlayerParty
- thumb_func_end sub_8135E50
-
- thumb_func_start unref_sub_8135EE8
-unref_sub_8135EE8: @ 8135EE8
- push {r4-r7,lr}
- ldr r7, _08135F0C
- ldr r0, _08135F10
- adds r2, r7, r0
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08135F18
- ldr r4, _08135F14
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08135F2A
- .align 2, 0
-_08135F0C: .4byte gSaveBlock2 + 0x498
-_08135F10: .4byte 0xfffffb68
-_08135F14: .4byte gUnknown_08405E7E
-_08135F18:
- ldr r4, _08135FA8
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08135F2A:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r7, 0x1]
- adds r0, r7, 0
- adds r0, 0xC
- ldr r4, _08135FAC
- adds r1, r4, 0
- bl sub_8052D10
- adds r0, r7, 0x4
- subs r4, 0xA
- adds r1, r4, 0
- bl StringCopy8
- movs r0, 0x1
- strh r0, [r7, 0x2]
- movs r5, 0x7
- movs r4, 0
- ldr r0, _08135FB0
- ldr r1, _08135FB4
- adds r6, r0, r1
- adds r3, r7, 0
- adds r3, 0x10
- adds r2, r7, 0
- adds r2, 0x28
- adds r1, r7, 0
- adds r1, 0x1C
-_08135F64:
- ldrh r0, [r6]
- strh r0, [r3]
- strh r5, [r1]
- adds r0, r5, 0x6
- strh r0, [r2]
- adds r5, 0x1
- adds r6, 0x2
- adds r3, 0x2
- adds r2, 0x2
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x5
- ble _08135F64
- movs r4, 0
-_08135F80:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08135FB8
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x34
- adds r1, r7, r1
- bl sub_803AF78
- adds r4, 0x1
- cmp r4, 0x2
- ble _08135F80
- adds r0, r7, 0
- bl sub_8136088
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135FA8: .4byte gUnknown_08405E60
-_08135FAC: .4byte gSaveBlock2 + 0xA
-_08135FB0: .4byte gSaveBlock1
-_08135FB4: .4byte 0x00002b28
-_08135FB8: .4byte gPlayerParty
- thumb_func_end unref_sub_8135EE8
-
- thumb_func_start sub_8135FBC
-sub_8135FBC: @ 8135FBC
- ldr r1, _08135FCC
- ldr r0, _08135FD0
- ldr r2, _08135FD4
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08135FCC: .4byte gTrainerClassToPicIndex
-_08135FD0: .4byte gSaveBlock2
-_08135FD4: .4byte 0x00000499
- thumb_func_end sub_8135FBC
-
- thumb_func_start sub_8135FD8
-sub_8135FD8: @ 8135FD8
- ldr r1, _08135FE8
- ldr r0, _08135FEC
- ldr r2, _08135FF0
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08135FE8: .4byte gTrainerClassToNameIndex
-_08135FEC: .4byte gSaveBlock2
-_08135FF0: .4byte 0x00000499
- thumb_func_end sub_8135FD8
-
- thumb_func_start sub_8135FF4
-sub_8135FF4: @ 8135FF4
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r4, _08136018
-_08135FFC:
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _08135FFC
- adds r1, r3, r2
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136018: .4byte gSaveBlock2 + 0x49C
- thumb_func_end sub_8135FF4
-
- thumb_func_start sub_813601C
-sub_813601C: @ 813601C
- push {r4,r5,lr}
- ldr r1, _08136044
- movs r0, 0
- strh r0, [r1]
- ldr r5, _08136048
- movs r3, 0
- movs r2, 0
- adds r4, r1, 0
- adds r1, r5, 0
-_0813602E:
- ldm r1!, {r0}
- orrs r3, r0
- adds r2, 0x1
- cmp r2, 0x2D
- bls _0813602E
- cmp r3, 0
- bne _0813604C
- movs r0, 0x1
- strh r0, [r4]
- b _08136078
- .align 2, 0
-_08136044: .4byte gScriptResult
-_08136048: .4byte gSaveBlock2 + 0x498
-_0813604C:
- movs r3, 0
- movs r2, 0
- ldr r4, _08136080
- adds r1, r5, 0
-_08136054:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x2D
- bls _08136054
- movs r1, 0xAA
- lsls r1, 3
- adds r0, r4, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08136078
- subs r1, 0xB8
- adds r0, r4, r1
- bl sub_81360AC
- ldr r1, _08136084
- movs r0, 0x1
- strh r0, [r1]
-_08136078:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136080: .4byte gSaveBlock2
-_08136084: .4byte gScriptResult
- thumb_func_end sub_813601C
-
- thumb_func_start sub_8136088
-sub_8136088: @ 8136088
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xB8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08136096:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x2D
- bls _08136096
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136088
-
- thumb_func_start sub_81360AC
-sub_81360AC: @ 81360AC
- push {lr}
- movs r1, 0
- movs r2, 0
-_081360B2:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x2E
- bls _081360B2
- pop {r0}
- bx r0
- thumb_func_end sub_81360AC
-
- thumb_func_start sub_81360C0
-sub_81360C0: @ 81360C0
- push {lr}
- ldr r0, _081360CC
- bl sub_813545C
- pop {r0}
- bx r0
- .align 2, 0
-_081360CC: .4byte gSaveBlock2 + 0x4A8
- thumb_func_end sub_81360C0
-
- thumb_func_start sub_81360D0
-sub_81360D0: @ 81360D0
- push {lr}
- ldr r0, _081360E4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081360EC
- ldr r1, _081360E8
- movs r0, 0xFF
- strb r0, [r1]
- b _08136102
- .align 2, 0
-_081360E4: .4byte gUnknown_02024D26
-_081360E8: .4byte gStringVar4
-_081360EC:
- cmp r0, 0x1
- bne _081360FC
- ldr r0, _081360F8
- bl sub_813545C
- b _08136102
- .align 2, 0
-_081360F8: .4byte gSaveBlock2 + 0x4C0
-_081360FC:
- ldr r0, _08136108
- bl sub_813545C
-_08136102:
- pop {r0}
- bx r0
- .align 2, 0
-_08136108: .4byte gSaveBlock2 + 0x4B4
- thumb_func_end sub_81360D0
-
- thumb_func_start sub_813610C
-sub_813610C: @ 813610C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0813612C
-_08136112:
- adds r0, r4, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813611E
- bl sub_80BFD20
-_0813611E:
- adds r4, 0x1
- cmp r4, 0x1
- ble _08136112
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813612C: .4byte gSaveBlock2 + 0x556
- thumb_func_end sub_813610C
-
- thumb_func_start sub_8136130
-sub_8136130: @ 8136130
- push {r4,r5,lr}
- ldr r4, _0813615C
- ldr r2, _08136160
- ldr r3, [r2]
- ldr r5, _08136164
- adds r2, r3, r5
- str r2, [r4]
- str r0, [r2, 0x8]
- str r1, [r2, 0x4]
- ldr r0, _08136168
- adds r3, r0
- movs r0, 0x2
- strb r0, [r3]
- ldr r0, _0813616C
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _08136170
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813615C: .4byte gUnknown_02039304
-_08136160: .4byte gUnknown_083DFEC4
-_08136164: .4byte 0x0000d164
-_08136168: .4byte 0x0000d162
-_0813616C: .4byte sub_8136294
-_08136170: .4byte sub_8136244
- thumb_func_end sub_8136130
-
- thumb_func_start sub_8136174
-sub_8136174: @ 8136174
- push {r4,r5,lr}
- ldr r5, _081361C4
- ldr r1, [r5]
- ldr r0, _081361C8
- ldr r0, [r0]
- str r0, [r1, 0x8]
- ldr r0, _081361CC
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r4, _081361D0
- ldrb r0, [r4]
- bl sub_81370E4
- strb r0, [r4]
- ldr r5, [r5]
- movs r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _0813619E
- movs r1, 0x1
-_0813619E:
- adds r0, r5, 0
- adds r0, 0x56
- strb r1, [r0]
- ldr r0, _081361D4
- ldr r0, [r0]
- ldr r1, _081361D8
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, _081361DC
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081361E0
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081361C4: .4byte gUnknown_02039304
-_081361C8: .4byte gUnknown_0203930C
-_081361CC: .4byte gUnknown_02039308
-_081361D0: .4byte gUnknown_02039310
-_081361D4: .4byte gUnknown_083DFEC4
-_081361D8: .4byte 0x0000d162
-_081361DC: .4byte sub_8136294
-_081361E0: .4byte sub_81361E4
- thumb_func_end sub_8136174
-
- thumb_func_start sub_81361E4
-sub_81361E4: @ 81361E4
- push {r4,lr}
- ldr r4, _08136220
- ldr r0, [r4]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r4, [r4]
- ldr r1, [r4]
- ldr r0, _08136224
- cmp r1, r0
- bne _0813621A
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, r4, 0
- adds r0, 0x50
- strb r1, [r0]
- ldr r0, _08136228
- bl SetMainCallback2
-_0813621A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136220: .4byte gUnknown_02039304
-_08136224: .4byte sub_81365C8
-_08136228: .4byte sub_813622C
- thumb_func_end sub_81361E4
-
- thumb_func_start sub_813622C
-sub_813622C: @ 813622C
- push {lr}
- bl sub_81368A4
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_813622C
-
- thumb_func_start sub_8136244
-sub_8136244: @ 8136244
- push {lr}
- ldr r0, _08136260
- ldr r0, [r0]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_08136260: .4byte gUnknown_02039304
- thumb_func_end sub_8136244
-
- thumb_func_start sub_8136264
-sub_8136264: @ 8136264
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- movs r0, 0x6
- bl sub_80F5CDC
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_8136264
-
- thumb_func_start launch_c3_walk_stairs_and_run_once
-launch_c3_walk_stairs_and_run_once: @ 8136280
- ldr r1, _08136290
- ldr r1, [r1]
- str r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08136290: .4byte gUnknown_02039304
- thumb_func_end launch_c3_walk_stairs_and_run_once
-
- thumb_func_start sub_8136294
-sub_8136294: @ 8136294
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _081362B4
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x16
- bls _081362A8
- b _0813657A
-_081362A8:
- lsls r0, 2
- ldr r1, _081362B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081362B4: .4byte gUnknown_02039304
-_081362B8: .4byte _081362BC
- .align 2, 0
-_081362BC:
- .4byte _08136318
- .4byte _08136354
- .4byte _0813635E
- .4byte _08136366
- .4byte _08136374
- .4byte _08136380
- .4byte _0813638C
- .4byte _081363B8
- .4byte _081363C8
- .4byte _081363DC
- .4byte _081363EE
- .4byte _08136404
- .4byte _08136448
- .4byte _08136464
- .4byte _08136488
- .4byte _08136494
- .4byte _0813649A
- .4byte _081364D8
- .4byte _081364FC
- .4byte _08136508
- .4byte _08136520
- .4byte _08136538
- .4byte _0813656C
-_08136318:
- bl is_c1_link_related_active
- ldr r1, _08136344
- ldr r1, [r1]
- ldr r2, _08136348
- adds r1, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08136330
- b _0813657A
-_08136330:
- ldr r4, _0813634C
- ldr r0, [r4]
- adds r0, 0x55
- strb r1, [r0]
- ldr r0, _08136350
- bl launch_c3_walk_stairs_and_run_once
- ldr r1, [r4]
- b _08136528
- .align 2, 0
-_08136344: .4byte gUnknown_083DFEC4
-_08136348: .4byte 0x00006dac
-_0813634C: .4byte gUnknown_02039304
-_08136350: .4byte sub_81365A0
-_08136354:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- b _08136524
-_0813635E:
- movs r0, 0
- bl SetVBlankCallback
- b _08136524
-_08136366:
- ldr r0, _08136370
- bl SetUpWindowConfig
- b _08136524
- .align 2, 0
-_08136370: .4byte gWindowConfig_81E7080
-_08136374:
- ldr r0, _0813637C
- bl MultistepInitMenuWindowBegin
- b _08136524
- .align 2, 0
-_0813637C: .4byte gWindowConfig_81E7080
-_08136380:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0813638A
- b _0813657A
-_0813638A:
- b _08136524
-_0813638C:
- ldr r0, _081363AC
- ldr r1, [r0]
- ldr r4, _081363B0
- adds r0, r1, r4
- movs r2, 0
- strb r2, [r0]
- ldr r4, _081363B4
- adds r0, r1, r4
- str r2, [r0]
- movs r0, 0xC3
- lsls r0, 2
- adds r1, r0
- movs r0, 0x20
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081363AC: .4byte gUnknown_083DFEC4
-_081363B0: .4byte 0x000076aa
-_081363B4: .4byte 0x000087e0
-_081363B8:
- bl sub_80F2688
- ldr r0, _081363D8
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363C8:
- bl sub_80F26BC
- lsls r0, 24
- cmp r0, 0
- beq _081363D4
- b _0813657A
-_081363D4:
- b _08136524
- .align 2, 0
-_081363D8: .4byte gUnknown_02039304
-_081363DC:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r0, _08136400
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363EE:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- beq _081363FC
- b _0813657A
-_081363FC:
- b _08136524
- .align 2, 0
-_08136400: .4byte gUnknown_02039304
-_08136404:
- ldr r1, _08136434
- movs r0, 0x14
- strh r0, [r1]
- bl CalculatePlayerPartyCount
- ldr r1, _08136438
- ldr r4, [r1]
- ldr r2, _0813643C
- adds r1, r4, r2
- movs r5, 0
- strb r0, [r1]
- ldr r1, _08136440
- adds r0, r4, r1
- strb r5, [r0]
- subs r2, 0xC0
- adds r0, r4, r2
- str r5, [r0]
- bl sub_80F4BD0
- ldr r0, _08136444
- adds r4, r0
- strh r5, [r4]
- b _08136524
- .align 2, 0
-_08136434: .4byte gKeyRepeatStartDelay
-_08136438: .4byte gUnknown_083DFEC4
-_0813643C: .4byte 0x00008828
-_08136440: .4byte 0x00009344
-_08136444: .4byte 0x0000d160
-_08136448:
- bl sub_80F1778
- lsls r0, 24
- cmp r0, 0
- beq _08136454
- b _0813657A
-_08136454:
- ldr r0, _08136460
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- b _08136524
- .align 2, 0
-_08136460: .4byte REG_BG2VOFS
-_08136464:
- movs r0, 0
- bl sub_80F2E18
- ldr r0, _0813647C
- ldr r0, [r0]
- ldr r1, _08136480
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _08136484
- strh r0, [r1, 0x26]
- b _08136524
- .align 2, 0
-_0813647C: .4byte gUnknown_083DFEC4
-_08136480: .4byte 0x00008768
-_08136484: .4byte 0x0000ffd8
-_08136488:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136494:
- bl sub_80F33A8
- b _08136524
-_0813649A:
- ldr r1, _081364C4
- movs r2, 0
- str r2, [sp]
- ldr r0, _081364C8
- mov r4, sp
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081364CC
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _081364D0
- strh r2, [r0]
- subs r0, 0x2
- strh r2, [r0]
- ldr r1, _081364D4
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081364C4: .4byte 0x0600f800
-_081364C8: .4byte 0x040000d4
-_081364CC: .4byte 0x85000200
-_081364D0: .4byte REG_BG1VOFS
-_081364D4: .4byte REG_BG1CNT
-_081364D8:
- ldr r0, _081364F0
- ldr r1, [r0]
- ldr r4, _081364F4
- adds r0, r1, r4
- ldr r2, _081364F8
- adds r1, r2
- bl sub_80F567C
- bl sub_80F5B38
- b _08136524
- .align 2, 0
-_081364F0: .4byte gUnknown_083DFEC4
-_081364F4: .4byte 0x00008ff0
-_081364F8: .4byte 0x00009004
-_081364FC:
- bl sub_80F5B50
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136508:
- ldr r0, _08136518
- ldr r0, [r0]
- ldr r4, _0813651C
- adds r0, r4
- bl sub_80F556C
- b _08136524
- .align 2, 0
-_08136518: .4byte gUnknown_083DFEC4
-_0813651C: .4byte 0x00009004
-_08136520:
- bl sub_80F1934
-_08136524:
- ldr r0, _08136534
- ldr r1, [r0]
-_08136528:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813657A
- .align 2, 0
-_08136534: .4byte gUnknown_02039304
-_08136538:
- ldr r1, _08136584
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x9B
- strh r0, [r1]
- ldr r0, _08136588
- ldr r2, _0813658C
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08136590
- ldr r4, _08136594
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1B
- strh r0, [r1]
- subs r1, 0x38
- movs r0, 0x28
- strh r0, [r1]
- subs r1, 0x12
- ldr r2, _08136598
- adds r0, r2, 0
- strh r0, [r1]
-_0813656C:
- ldr r0, [r3]
- adds r0, 0x55
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0813659C
- bl launch_c3_walk_stairs_and_run_once
-_0813657A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136584: .4byte REG_WIN0H
-_08136588: .4byte REG_WIN0V
-_0813658C: .4byte 0x00003273
-_08136590: .4byte REG_WININ
-_08136594: .4byte 0x00003f3f
-_08136598: .4byte 0x00007f40
-_0813659C: .4byte sub_81365C8
- thumb_func_end sub_8136294
-
- thumb_func_start sub_81365A0
-sub_81365A0: @ 81365A0
- push {r4,lr}
- ldr r1, _081365C4
- ldr r0, [r1]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- bne _081365BE
- adds r4, r1, 0
-_081365B0:
- bl sub_8136294
- ldr r0, [r4]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- beq _081365B0
-_081365BE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081365C4: .4byte gUnknown_02039304
- thumb_func_end sub_81365A0
-
- thumb_func_start sub_81365C8
-sub_81365C8: @ 81365C8
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _081365E0
- ldr r0, [r4]
- adds r0, 0x50
- ldrb r1, [r0]
- cmp r1, 0
- beq _081365E4
- cmp r1, 0x1
- beq _0813660C
- b _08136626
- .align 2, 0
-_081365E0: .4byte gUnknown_02039304
-_081365E4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08136608
- bl SetVBlankCallback
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136626
- .align 2, 0
-_08136608: .4byte sub_8136264
-_0813660C:
- ldr r0, _08136630
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136626
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _08136634
- bl launch_c3_walk_stairs_and_run_once
-_08136626:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136630: .4byte gPaletteFade
-_08136634: .4byte sub_8136638
- thumb_func_end sub_81365C8
-
- thumb_func_start sub_8136638
-sub_8136638: @ 8136638
- push {r4,lr}
- ldr r0, _08136654
- ldr r0, [r0]
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08136648
- b _081367FA
-_08136648:
- lsls r0, 2
- ldr r1, _08136658
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08136654: .4byte gUnknown_02039304
-_08136658: .4byte _0813665C
- .align 2, 0
-_0813665C:
- .4byte _0813667C
- .4byte _08136748
- .4byte _08136754
- .4byte _08136774
- .4byte _081367FA
- .4byte _08136780
- .4byte _08136798
- .4byte _081367E0
-_0813667C:
- ldr r2, _081366A4
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081366AC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366A8
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366A4: .4byte gMain
-_081366A8: .4byte gUnknown_02039304
-_081366AC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081366D4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366D0
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366D0: .4byte gUnknown_02039304
-_081366D4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081366F4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081366F0
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_081366F0: .4byte gUnknown_02039304
-_081366F4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081366FE
- b _081367FA
-_081366FE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08136728
- ldr r0, [r0]
- ldr r2, _0813672C
- adds r1, r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, _08136730
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- bne _08136738
- ldr r0, _08136734
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_08136728: .4byte gUnknown_083DFEC4
-_0813672C: .4byte 0x000087dc
-_08136730: .4byte 0x000087da
-_08136734: .4byte gUnknown_02039304
-_08136738:
- ldr r0, _08136744
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x5
- b _081367F8
- .align 2, 0
-_08136744: .4byte gUnknown_02039304
-_08136748:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081367FA
- b _08136784
-_08136754:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081367FA
- bl sub_80F1934
- bl sub_80F3D00
- ldr r0, _08136770
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081367FA
- .align 2, 0
-_08136770: .4byte gUnknown_02039304
-_08136774:
- ldr r0, _0813677C
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_0813677C: .4byte sub_8136B44
-_08136780:
- bl sub_8136BB8
-_08136784:
- ldr r0, _08136794
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081367FA
- .align 2, 0
-_08136794: .4byte gUnknown_02039304
-_08136798:
- bl sub_8136C40
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081367B8
- cmp r1, 0
- bgt _081367B2
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081367F0
- b _081367FA
-_081367B2:
- cmp r1, 0x1
- bne _081367FA
- b _081367F0
-_081367B8:
- bl sub_8137058
- lsls r0, 24
- cmp r0, 0
- beq _081367D4
- bl sub_8136D60
- ldr r0, _081367D0
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x7
- b _081367F8
- .align 2, 0
-_081367D0: .4byte gUnknown_02039304
-_081367D4:
- ldr r0, _081367DC
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_081367DC: .4byte sub_8136808
-_081367E0:
- ldr r0, _08136800
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081367FA
- bl sub_8136D8C
-_081367F0:
- ldr r0, _08136804
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0
-_081367F8:
- strb r1, [r0]
-_081367FA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136800: .4byte gMain
-_08136804: .4byte gUnknown_02039304
- thumb_func_end sub_8136638
-
- thumb_func_start sub_8136808
-sub_8136808: @ 8136808
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08136820
- ldr r0, [r5]
- adds r0, 0x50
- ldrb r4, [r0]
- cmp r4, 0
- beq _08136824
- cmp r4, 0x1
- beq _08136874
- b _0813688C
- .align 2, 0
-_08136820: .4byte gUnknown_02039304
-_08136824:
- ldr r0, _08136860
- ldr r0, [r0]
- ldr r1, _08136864
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- ldr r1, _08136868
- strb r0, [r1]
- ldr r1, _0813686C
- ldr r2, [r5]
- ldr r0, [r2, 0x4]
- str r0, [r1]
- ldr r1, _08136870
- ldr r0, [r2, 0x8]
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813688C
- .align 2, 0
-_08136860: .4byte gUnknown_083DFEC4
-_08136864: .4byte 0x000087dc
-_08136868: .4byte gUnknown_02039310
-_0813686C: .4byte gUnknown_02039308
-_08136870: .4byte gUnknown_0203930C
-_08136874:
- ldr r0, _08136894
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813688C
- ldr r0, _08136898
- ldr r1, _0813689C
- str r1, [r0, 0x8]
- ldr r0, _081368A0
- bl SetMainCallback2
-_0813688C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136894: .4byte gPaletteFade
-_08136898: .4byte gMain
-_0813689C: .4byte sub_8136174
-_081368A0: .4byte sub_8147ADC
- thumb_func_end sub_8136808
-
- thumb_func_start sub_81368A4
-sub_81368A4: @ 81368A4
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081368C4
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _081368B8
- b _081369B8
-_081368B8:
- lsls r0, 2
- ldr r1, _081368C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081368C4: .4byte gUnknown_02039304
-_081368C8: .4byte _081368CC
- .align 2, 0
-_081368CC:
- .4byte _081368E8
- .4byte _08136922
- .4byte _0813692E
- .4byte _0813694C
- .4byte _0813695A
- .4byte _0813696C
- .4byte _08136998
-_081368E8:
- ldr r0, _0813690C
- ldr r0, [r0]
- ldr r1, _08136910
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _08136914
- ldrb r0, [r0]
- cmp r1, r0
- beq _08136918
- ldr r0, [r4]
- adds r0, 0x56
- ldrb r0, [r0]
- bl sub_80F5060
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_0813690C: .4byte gUnknown_083DFEC4
-_08136910: .4byte 0x000087dc
-_08136914: .4byte gUnknown_02039310
-_08136918:
- ldr r0, [r4]
- adds r0, 0x50
- movs r1, 0x3
- strb r1, [r0]
- b _081369B8
-_08136922:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081369B8
- b _08136982
-_0813692E:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081369B8
- bl sub_80F1934
- ldr r0, _08136948
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081369B8
- .align 2, 0
-_08136948: .4byte gUnknown_02039304
-_0813694C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08136982
-_0813695A:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _08136968
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_08136968: .4byte 0x00007f40
-_0813696C:
- ldr r0, _08136990
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08136982:
- ldr r0, _08136994
- ldr r1, [r0]
-_08136986:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081369B8
- .align 2, 0
-_08136990: .4byte sub_8136264
-_08136994: .4byte gUnknown_02039304
-_08136998:
- ldr r0, _081369C0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081369B8
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _081369C4
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081369C8
- bl SetMainCallback2
-_081369B8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081369C0: .4byte gPaletteFade
-_081369C4: .4byte sub_81369CC
-_081369C8: .4byte sub_8136244
- thumb_func_end sub_81368A4
-
- thumb_func_start sub_81369CC
-sub_81369CC: @ 81369CC
- push {r4-r6,lr}
- ldr r1, _081369E8
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _081369DE
- b _08136B32
-_081369DE:
- lsls r0, 2
- ldr r1, _081369EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081369E8: .4byte gUnknown_02039304
-_081369EC: .4byte _081369F0
- .align 2, 0
-_081369F0:
- .4byte _08136A08
- .4byte _08136A48
- .4byte _08136A5C
- .4byte _08136AAC
- .4byte _08136AEC
- .4byte _08136B0E
-_08136A08:
- ldr r3, [r4]
- ldr r2, _08136A38
- str r2, [r3, 0xC]
- ldr r0, _08136A3C
- ldr r1, [r0]
- ldr r5, _08136A40
- adds r0, r1, r5
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136A44
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r0, r2
- str r0, [r3, 0xC]
- bl move_anim_execute
- b _08136B02
- .align 2, 0
-_08136A38: .4byte gPlayerParty
-_08136A3C: .4byte gUnknown_083DFEC4
-_08136A40: .4byte 0x000087dc
-_08136A44: .4byte 0x0000893e
-_08136A48:
- ldr r0, _08136A58
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- b _08136B02
- .align 2, 0
-_08136A58: .4byte gMain
-_08136A5C:
- bl sub_8136EF0
- ldr r6, _08136A98
- ldr r0, [r6]
- adds r0, 0x5C
- ldr r1, _08136A9C
- ldr r4, [r1]
- ldr r1, _08136AA0
- adds r5, r4, r1
- adds r1, r5, 0
- bl sub_80F567C
- ldr r1, _08136AA4
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08136AA8
- adds r0, r1
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F5550
- bl sub_8137138
- ldr r1, [r6]
- b _08136B04
- .align 2, 0
-_08136A98: .4byte gUnknown_02039304
-_08136A9C: .4byte gUnknown_083DFEC4
-_08136AA0: .4byte 0x00009040
-_08136AA4: .4byte 0x00008fe9
-_08136AA8: .4byte 0x00009004
-_08136AAC:
- bl sub_80F555C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08136B32
- ldr r0, _08136AE0
- ldr r0, [r0]
- ldr r5, _08136AE4
- adds r0, r5
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F7224
- bl sub_80F3D00
- ldr r1, _08136AE8
- ldr r0, [r1]
- adds r0, 0x52
- strb r4, [r0]
- ldr r1, [r1]
- b _08136B04
- .align 2, 0
-_08136AE0: .4byte gUnknown_083DFEC4
-_08136AE4: .4byte 0x000087dc
-_08136AE8: .4byte gUnknown_02039304
-_08136AEC:
- ldr r1, [r4]
- adds r1, 0x52
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bls _08136B32
- bl sub_8136C6C
-_08136B02:
- ldr r1, [r4]
-_08136B04:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136B32
-_08136B0E:
- ldr r0, _08136B38
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- bl sub_8136D00
- lsls r0, 24
- cmp r0, 0
- bne _08136B32
- ldr r0, _08136B3C
- ldrb r0, [r0]
- bl sub_810CA6C
- ldr r0, _08136B40
- bl launch_c3_walk_stairs_and_run_once
-_08136B32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08136B38: .4byte gMain
-_08136B3C: .4byte word_203855E
-_08136B40: .4byte sub_8136B44
- thumb_func_end sub_81369CC
-
- thumb_func_start sub_8136B44
-sub_8136B44: @ 8136B44
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08136B60
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x50
- ldrb r1, [r2]
- cmp r1, 0x1
- beq _08136B80
- cmp r1, 0x1
- bgt _08136B64
- cmp r1, 0
- beq _08136B6E
- b _08136BAE
- .align 2, 0
-_08136B60: .4byte gUnknown_02039304
-_08136B64:
- cmp r1, 0x2
- beq _08136B98
- cmp r1, 0x3
- beq _08136BA8
- b _08136BAE
-_08136B6E:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08136B9C
-_08136B80:
- ldr r0, _08136B94
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136BAE
- movs r0, 0x2
- strb r0, [r2]
- b _08136BAE
- .align 2, 0
-_08136B94: .4byte gPaletteFade
-_08136B98:
- bl sub_80F5BDC
-_08136B9C:
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136BAE
-_08136BA8:
- ldr r0, [r0, 0x4]
- bl SetMainCallback2
-_08136BAE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136B44
-
- thumb_func_start sub_8136BB8
-sub_8136BB8: @ 8136BB8
- push {r4,lr}
- ldr r0, _08136C28
- ldr r0, [r0]
- ldr r1, _08136C2C
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08136C30
- adds r0, r1
- ldr r4, _08136C34
- ldr r2, [r4]
- adds r2, 0x10
- movs r1, 0x2
- bl GetMonData
- ldr r0, [r4]
- adds r0, 0x10
- bl StringGetEnd10
- ldr r0, [r4]
- adds r0, 0x10
- ldr r1, _08136C38
- bl StringAppend
- ldr r0, _08136C3C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, [r4]
- adds r0, 0x10
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1
- bl DisplayYesNoMenu
- movs r0, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136C28: .4byte gUnknown_083DFEC4
-_08136C2C: .4byte 0x000087dc
-_08136C30: .4byte gPlayerParty
-_08136C34: .4byte gUnknown_02039304
-_08136C38: .4byte gOtherText_GetsAPokeBlock
-_08136C3C: .4byte gWindowConfig_81E709C
- thumb_func_end sub_8136BB8
-
- thumb_func_start sub_8136C40
-sub_8136C40: @ 8136C40
- push {r4,lr}
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r4, r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _08136C60
- bl MenuZeroFillScreen
- ldr r0, _08136C68
- bl BasicInitMenuWindow
-_08136C60:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08136C68: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136C40
-
- thumb_func_start sub_8136C6C
-sub_8136C6C: @ 8136C6C
- push {lr}
- ldr r0, _08136C8C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r3, _08136C90
- ldr r0, [r3]
- adds r0, 0x53
- movs r1, 0
- b _08136C9C
- .align 2, 0
-_08136C8C: .4byte gWindowConfig_81E709C
-_08136C90: .4byte gUnknown_02039304
-_08136C94:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
-_08136C9C:
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08136C94
- ldr r0, _08136CD8
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x10
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- b _08136CEE
- .align 2, 0
-_08136CD8: .4byte gUnknown_02039304
-_08136CDC:
- ldr r0, _08136CFC
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x53
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8136DC0
-_08136CEE:
- ldr r0, _08136CFC
- ldr r0, [r0]
- adds r0, 0x10
- bl sub_8136DA0
- pop {r0}
- bx r0
- .align 2, 0
-_08136CFC: .4byte gUnknown_02039304
- thumb_func_end sub_8136C6C
-
- thumb_func_start sub_8136D00
-sub_8136D00: @ 8136D00
- push {r4,r5,lr}
- ldr r4, _08136D30
- adds r3, r4, 0
- movs r5, 0x5
-_08136D08:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136D34
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08136D3A
- b _08136D08
- .align 2, 0
-_08136D30: .4byte gUnknown_02039304
-_08136D34:
- strb r5, [r1]
- movs r0, 0
- b _08136D5A
-_08136D3A:
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x10
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8136DA0
- movs r0, 0x1
-_08136D5A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8136D00
-
- thumb_func_start sub_8136D60
-sub_8136D60: @ 8136D60
- push {lr}
- ldr r0, _08136D84
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08136D88
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_08136D84: .4byte gWindowConfig_81E709C
-_08136D88: .4byte gOtherText_WontEat
- thumb_func_end sub_8136D60
-
- thumb_func_start sub_8136D8C
-sub_8136D8C: @ 8136D8C
- push {lr}
- bl MenuZeroFillScreen
- ldr r0, _08136D9C
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_08136D9C: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136D8C
-
- thumb_func_start sub_8136DA0
-sub_8136DA0: @ 8136DA0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136DA0
-
- thumb_func_start sub_8136DC0
-sub_8136DC0: @ 8136DC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _08136DFC
- cmp r2, 0
- ble _08136DD8
- movs r0, 0
-_08136DD8:
- lsls r0, 16
- ldr r1, _08136DF4
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08136DF8
- adds r0, r4, 0
- bl StringAppend
- b _08136E04
- .align 2, 0
-_08136DF4: .4byte gUnknown_08406134
-_08136DF8: .4byte gOtherText_WasEnhanced
-_08136DFC:
- ldr r1, _08136E0C
- adds r0, r4, 0
- bl StringCopy
-_08136E04:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E0C: .4byte gOtherText_NothingChanged
- thumb_func_end sub_8136DC0
-
- thumb_func_start sub_8136E10
-sub_8136E10: @ 8136E10
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
- ldr r7, _08136E3C
-_08136E1A:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl GetMonData
- adds r1, r5, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E1A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E3C: .4byte gUnknown_08406118
- thumb_func_end sub_8136E10
-
- thumb_func_start sub_8136E40
-sub_8136E40: @ 8136E40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _08136EDC
- mov r0, r8
- adds r1, r5, 0
- bl sub_8136F74
- movs r4, 0
- mov r7, sp
-_08136E64:
- ldr r1, _08136EE8
- lsls r0, r4, 2
- adds r0, r1
- ldr r6, [r0]
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r7]
- ldr r1, _08136EEC
- ldr r1, [r1]
- lsls r2, r4, 1
- adds r1, 0x66
- adds r1, r2
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bge _08136E92
- movs r1, 0
-_08136E92:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136E9C
- movs r1, 0xFF
-_08136E9C:
- strb r1, [r7]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E64
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldrb r2, [r2, 0x6]
- adds r1, r0, r2
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136ECE
- movs r1, 0xFF
-_08136ECE:
- mov r0, sp
- strb r1, [r0]
- adds r0, r5, 0
- movs r1, 0x30
- mov r2, sp
- bl SetMonData
-_08136EDC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136EE8: .4byte gUnknown_08406118
-_08136EEC: .4byte gUnknown_02039304
- thumb_func_end sub_8136E40
-
- thumb_func_start sub_8136EF0
-sub_8136EF0: @ 8136EF0
- push {r4,r5,lr}
- ldr r5, _08136F60
- ldr r0, _08136F64
- ldr r1, [r0]
- ldr r2, _08136F68
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136F6C
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r5, r0, r5
- ldr r4, _08136F70
- ldr r1, [r4]
- adds r1, 0x57
- adds r0, r5, 0
- bl sub_8136E10
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- adds r1, r5, 0
- bl sub_8136E40
- ldr r1, [r4]
- adds r1, 0x5C
- adds r0, r5, 0
- bl sub_8136E10
- movs r3, 0
-_08136F36:
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x61
- adds r2, r3
- adds r1, r0, 0
- adds r1, 0x5C
- adds r1, r3
- adds r0, 0x57
- adds r0, r3
- ldrb r1, [r1]
- ldrb r0, [r0]
- subs r1, r0
- strb r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _08136F36
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136F60: .4byte gPlayerParty
-_08136F64: .4byte gUnknown_083DFEC4
-_08136F68: .4byte 0x000087dc
-_08136F6C: .4byte 0x0000893e
-_08136F70: .4byte gUnknown_02039304
- thumb_func_end sub_8136EF0
-
- thumb_func_start sub_8136F74
-sub_8136F74: @ 8136F74
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- ldr r1, _08136FBC
- ldr r3, [r1]
- ldrb r1, [r0, 0x1]
- adds r2, r3, 0
- adds r2, 0x66
- strh r1, [r2]
- ldrb r2, [r0, 0x5]
- adds r1, r3, 0
- adds r1, 0x68
- strh r2, [r1]
- ldrb r1, [r0, 0x4]
- adds r2, r3, 0
- adds r2, 0x6A
- strh r1, [r2]
- ldrb r2, [r0, 0x3]
- adds r1, r3, 0
- adds r1, 0x6C
- strh r2, [r1]
- ldrb r1, [r0, 0x2]
- adds r0, r3, 0
- adds r0, 0x6E
- strh r1, [r0]
- ldr r0, _08136FC0
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _08136FC4
- movs r0, 0x1
- b _08136FCA
- .align 2, 0
-_08136FBC: .4byte gUnknown_02039304
-_08136FC0: .4byte gUnknown_02039312
-_08136FC4:
- cmp r0, 0
- bge _08137040
- movs r0, 0xFF
-_08136FCA:
- movs r2, 0
- lsls r0, 24
- mov r9, r0
- ldr r0, _08137050
- mov r8, r0
-_08136FD4:
- mov r0, r8
- ldr r1, [r0]
- lsls r0, r2, 24
- asrs r6, r0, 24
- lsls r7, r6, 1
- adds r1, 0x66
- adds r1, r7
- movs r2, 0
- ldrsh r4, [r1, r2]
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0813700C
- lsls r0, r5, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 24
-_0813700C:
- ldr r0, _08137054
- adds r0, r6, r0
- ldrb r1, [r0]
- mov r0, r10
- bl sub_8040A54
- lsls r0, 24
- asrs r2, r0, 24
- cmp r0, r9
- bne _08137034
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x66
- adds r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- muls r1, r2
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
-_08137034:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _08136FD4
-_08137040:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08137050: .4byte gUnknown_02039304
-_08137054: .4byte gUnknown_0840612C
- thumb_func_end sub_8136F74
-
- thumb_func_start sub_8137058
-sub_8137058: @ 8137058
- push {lr}
- ldr r0, _0813708C
- ldr r1, _08137090
- ldr r2, [r1]
- ldr r3, _08137094
- adds r1, r2, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- lsls r1, 2
- adds r2, r1
- ldr r1, _08137098
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 27
- lsrs r1, 27
- movs r2, 0x64
- muls r1, r2
- adds r0, r1, r0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _0813709C
- movs r0, 0
- b _0813709E
- .align 2, 0
-_0813708C: .4byte gPlayerParty
-_08137090: .4byte gUnknown_083DFEC4
-_08137094: .4byte 0x000087dc
-_08137098: .4byte 0x0000893e
-_0813709C:
- movs r0, 0x1
-_0813709E:
- pop {r1}
- bx r1
- thumb_func_end sub_8137058
-
- thumb_func_start sub_81370A4
-sub_81370A4: @ 81370A4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_081370AC:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _081370C8
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081370D2
- cmp r5, 0
- bne _081370CC
- adds r0, r4, 0
- b _081370DE
- .align 2, 0
-_081370C8: .4byte gPlayerParty
-_081370CC:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_081370D2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081370AC
- movs r0, 0
-_081370DE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81370A4
-
- thumb_func_start sub_81370E4
-sub_81370E4: @ 81370E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r6, 0
- cmp r6, r5
- bcs _08137114
-_081370F2:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08137120
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0813710A
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0813710A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081370F2
-_08137114:
- subs r0, r5, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08137120: .4byte gPlayerParty
- thumb_func_end sub_81370E4
-
- thumb_func_start sub_8137124
-sub_8137124: @ 8137124
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8137124
-
- thumb_func_start sub_8137138
-sub_8137138: @ 8137138
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _081371C0
- bl LoadSpriteSheet
- ldr r0, _081371C4
- bl LoadSpritePalette
- ldr r2, _081371C8
- ldr r0, [r2]
- adds r0, 0x54
- movs r1, 0
- strb r1, [r0]
- movs r4, 0
- adds r5, r2, 0
- ldr r6, _081371CC
- adds r0, r6, 0x2
- mov r8, r0
- ldr r7, _081371D0
-_08137160:
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371AC
- lsls r2, r4, 2
- adds r0, r2, r6
- movs r3, 0
- ldrsh r1, [r0, r3]
- add r2, r8
- movs r0, 0
- ldrsh r2, [r2, r0]
- ldr r0, _081371D4
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081371AC
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371A2
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, _081371D8
- str r1, [r0]
-_081371A2:
- ldr r1, [r5]
- adds r1, 0x54
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081371AC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08137160
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081371C0: .4byte gSpriteSheet_ConditionUpDown
-_081371C4: .4byte gSpritePalette_ConditionUpDown
-_081371C8: .4byte gUnknown_02039304
-_081371CC: .4byte gUnknown_08406158
-_081371D0: .4byte gSprites + 0x1C
-_081371D4: .4byte gSpriteTemplate_840618C
-_081371D8: .4byte sub_81371DC
- thumb_func_end sub_8137138
-
- thumb_func_start sub_81371DC
-sub_81371DC: @ 81371DC
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bgt _081371EE
- ldrh r0, [r1, 0x26]
- subs r0, 0x2
- b _081371F6
-_081371EE:
- cmp r0, 0xB
- bgt _081371F8
- ldrh r0, [r1, 0x26]
- adds r0, 0x2
-_081371F6:
- strh r0, [r1, 0x26]
-_081371F8:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _08137218
- adds r0, r1, 0
- bl DestroySprite
- ldr r0, _0813721C
- ldr r1, [r0]
- adds r1, 0x54
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08137218:
- pop {r0}
- bx r0
- .align 2, 0
-_0813721C: .4byte gUnknown_02039304
- thumb_func_end sub_81371DC
-
- thumb_func_start unref_sub_8137220
-unref_sub_8137220: @ 8137220
- bx lr
- thumb_func_end unref_sub_8137220
-
- thumb_func_start sub_8137224
-sub_8137224: @ 8137224
- ldr r1, _08137250
- ldr r0, _08137254
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08137258
- str r1, [r0]
- ldr r1, _0813725C
- ldr r2, _08137260
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08137264
- adds r0, r1, r3
- strb r2, [r0]
- adds r3, 0x1
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08137268
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_08137250: .4byte gUnknown_03004330
-_08137254: .4byte gUnknown_02024A60
-_08137258: .4byte sub_813726C
-_0813725C: .4byte 0x02000000
-_08137260: .4byte 0x000160a8
-_08137264: .4byte 0x000160a9
-_08137268: .4byte 0x000160ab
- thumb_func_end sub_8137224
-
- thumb_func_start sub_813726C
-sub_813726C: @ 813726C
- push {lr}
- ldr r2, _081372A0
- ldr r1, _081372A4
- ldr r0, _081372A8
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _081372B8
- ldr r0, _081372AC
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _081372B4
- ldr r0, _081372B0
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _081372B8
- .align 2, 0
-_081372A0: .4byte gUnknown_02024A64
-_081372A4: .4byte gBitTable
-_081372A8: .4byte gUnknown_02024A60
-_081372AC: .4byte gUnknown_02023A60
-_081372B0: .4byte gUnknown_084061A4
-_081372B4:
- bl dp01_tbl5_exec_completed
-_081372B8:
- pop {r0}
- bx r0
- thumb_func_end sub_813726C
-
- thumb_func_start sub_81372BC
-sub_81372BC: @ 81372BC
- push {r4-r6,lr}
- ldr r1, _081372D8
- ldr r2, _081372DC
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _081372CE
- b _08137410
-_081372CE:
- lsls r0, 2
- ldr r1, _081372E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081372D8: .4byte 0x02000000
-_081372DC: .4byte 0x000160a8
-_081372E0: .4byte _081372E4
- .align 2, 0
-_081372E4:
- .4byte _081372FC
- .4byte _0813730E
- .4byte _08137344
- .4byte _08137368
- .4byte _081373AC
- .4byte _081373E8
-_081372FC:
- ldr r0, _0813733C
- adds r1, r5, r0
- movs r0, 0x40
- strb r0, [r1]
- ldr r2, _08137340
- adds r1, r5, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0813730E:
- ldr r0, _0813733C
- adds r6, r5, r0
- ldrb r0, [r6]
- subs r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
- ldr r2, _08137340
- adds r1, r5, r2
- b _0813738C
- .align 2, 0
-_0813733C: .4byte 0x000160aa
-_08137340: .4byte 0x000160a8
-_08137344:
- ldr r2, _08137364
- adds r6, r5, r2
- ldrb r0, [r6]
- subs r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0
- b _0813737E
- .align 2, 0
-_08137364: .4byte 0x000160aa
-_08137368:
- ldr r2, _081373A0
- adds r6, r5, r2
- ldrb r0, [r6]
- subs r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08137410
- movs r0, 0x1
- movs r1, 0x9
-_0813737E:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
- ldr r0, _081373A4
- adds r1, r5, r0
-_0813738C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _081373A8
- adds r0, r5, r1
- strb r4, [r0]
- movs r0, 0x40
- strb r0, [r6]
- b _08137410
- .align 2, 0
-_081373A0: .4byte 0x000160aa
-_081373A4: .4byte 0x000160a8
-_081373A8: .4byte 0x000160a9
-_081373AC:
- ldr r2, _081373E0
- adds r4, r5, r2
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl nullsub_8
- movs r0, 0x1
- movs r1, 0
- bl sub_802E3E4
- movs r0, 0x40
- strb r0, [r4]
- ldr r0, _081373E4
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08137410
- .align 2, 0
-_081373E0: .4byte 0x000160aa
-_081373E4: .4byte 0x000160a8
-_081373E8:
- ldr r2, _08137418
- adds r1, r5, r2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- bl sub_814A7FC
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
-_08137410:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137418: .4byte 0x000160aa
- thumb_func_end sub_81372BC
-
- thumb_func_start sub_813741C
-sub_813741C: @ 813741C
- push {lr}
- ldr r2, _08137444
- ldr r1, _08137448
- ldr r0, _0813744C
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08137450
- cmp r1, r0
- bne _08137440
- bl dp01_tbl5_exec_completed
-_08137440:
- pop {r0}
- bx r0
- .align 2, 0
-_08137444: .4byte gSprites
-_08137448: .4byte gUnknown_02024BE0
-_0813744C: .4byte gUnknown_02024A60
-_08137450: .4byte SpriteCallbackDummy
- thumb_func_end sub_813741C
-
- thumb_func_start sub_8137454
-sub_8137454: @ 8137454
- push {lr}
- ldr r0, _08137468
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08137462
- bl dp01_tbl5_exec_completed
-_08137462:
- pop {r0}
- bx r0
- .align 2, 0
-_08137468: .4byte gUnknown_03004210
- thumb_func_end sub_8137454
-
- thumb_func_start sub_813746C
-sub_813746C: @ 813746C
- push {lr}
- ldr r0, _0813749C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08137496
- ldr r2, _081374A0
- ldr r0, _081374A4
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _081374A8
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08137496:
- pop {r0}
- bx r0
- .align 2, 0
-_0813749C: .4byte gPaletteFade
-_081374A0: .4byte gMain
-_081374A4: .4byte 0x0000043d
-_081374A8: .4byte gUnknown_030042D0
- thumb_func_end sub_813746C
-
- thumb_func_start bx_wait_t5
-bx_wait_t5: @ 81374AC
- push {lr}
- ldr r0, _081374C0
- ldrb r0, [r0]
- cmp r0, 0
- bne _081374BA
- bl dp01_tbl5_exec_completed
-_081374BA:
- pop {r0}
- bx r0
- .align 2, 0
-_081374C0: .4byte gUnknown_02024E6D
- thumb_func_end bx_wait_t5
-
- thumb_func_start sub_81374C4
-sub_81374C4: @ 81374C4
- push {lr}
- ldr r0, _081374EC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081374E8
- ldr r1, _081374F0
- ldr r0, _081374F4
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081374F8
- str r1, [r0]
- bl nullsub_14
- bl PrepareBagForWallyTutorial
-_081374E8:
- pop {r0}
- bx r0
- .align 2, 0
-_081374EC: .4byte gPaletteFade
-_081374F0: .4byte gUnknown_03004330
-_081374F4: .4byte gUnknown_02024A60
-_081374F8: .4byte sub_81374FC
- thumb_func_end sub_81374C4
-
- thumb_func_start sub_81374FC
-sub_81374FC: @ 81374FC
- push {lr}
- ldr r0, _08137528
- ldr r1, [r0, 0x4]
- ldr r0, _0813752C
- cmp r1, r0
- bne _08137522
- ldr r0, _08137530
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08137522
- ldr r0, _08137534
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl5_exec_completed
-_08137522:
- pop {r0}
- bx r0
- .align 2, 0
-_08137528: .4byte gMain
-_0813752C: .4byte sub_800F808
-_08137530: .4byte gPaletteFade
-_08137534: .4byte word_203855E
- thumb_func_end sub_81374FC
-
- thumb_func_start sub_8137538
-sub_8137538: @ 8137538
- push {r4-r7,lr}
- ldr r5, _0813768C
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _08137690
- adds r0, r4
- ldrb r1, [r0]
- movs r7, 0x88
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _08137568
- ldr r0, _08137694
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08137698
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08137568:
- ldrb r0, [r5]
- movs r6, 0x2
- adds r2, r6, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _08137596
- ldr r0, _08137694
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08137698
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08137596:
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08137684
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08137684
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08137626
- ldr r0, _0813769C
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08137626
- ldr r1, _081376A0
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081376A4
- adds r0, r1
- bl DestroySprite
- ldr r4, _081376A8
- ldrb r0, [r5]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08137694
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08137698
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r6
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
-_08137626:
- ldr r1, _081376A0
- ldr r4, _0813768C
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081376A4
- adds r0, r1
- bl DestroySprite
- ldr r5, _081376A8
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08137694
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08137698
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r2, _081376AC
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _081376B0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081376B4
- str r1, [r0]
-_08137684:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813768C: .4byte gUnknown_02024A60
-_08137690: .4byte 0x02017810
-_08137694: .4byte gUnknown_02024A6A
-_08137698: .4byte gPlayerParty
-_0813769C: .4byte gUnknown_020239F8
-_081376A0: .4byte gUnknown_0300434C
-_081376A4: .4byte gSprites
-_081376A8: .4byte gUnknown_03004340
-_081376AC: .4byte 0x02017840
-_081376B0: .4byte gUnknown_03004330
-_081376B4: .4byte sub_81376B8
- thumb_func_end sub_8137538
-
- thumb_func_start sub_81376B8
-sub_81376B8: @ 81376B8
- push {r4-r7,lr}
- movs r4, 0
- ldr r2, _0813778C
- ldr r0, _08137790
- ldr r7, _08137794
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08137798
- cmp r1, r0
- bne _081376DC
- movs r4, 0x1
-_081376DC:
- cmp r4, 0
- beq _08137784
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r5, _0813779C
- adds r2, r0, r5
- ldrb r1, [r2, 0x1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08137784
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08137784
- ldrb r1, [r2]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- subs r4, 0x3
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _081377A0
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _081377A4
- movs r1, 0xA
- bl CreateTask
- ldr r2, _081377A8
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _081377AC
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl5_exec_completed
-_08137784:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813778C: .4byte gSprites
-_08137790: .4byte gUnknown_03004340
-_08137794: .4byte gUnknown_02024A60
-_08137798: .4byte SpriteCallbackDummy
-_0813779C: .4byte 0x02017810
-_081377A0: .4byte 0x000027f9
-_081377A4: .4byte c3_0802FDF4
-_081377A8: .4byte gUnknown_02024A6A
-_081377AC: .4byte gPlayerParty
- thumb_func_end sub_81376B8
-
- thumb_func_start sub_81377B0
-sub_81377B0: @ 81377B0
- push {r4-r6,lr}
- ldr r5, _081377F0
- ldrb r0, [r5]
- ldr r6, _081377F4
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081377F8
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08137812
- .align 2, 0
-_081377F0: .4byte gUnknown_02024A60
-_081377F4: .4byte gUnknown_03004340
-_081377F8:
- ldr r2, _08137818
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0813781C
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl5_exec_completed
-_08137812:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137818: .4byte gUnknown_02024A6A
-_0813781C: .4byte gPlayerParty
- thumb_func_end sub_81377B0
-
- thumb_func_start bx_blink_t5
-bx_blink_t5: @ 8137820
- push {r4,lr}
- ldr r1, _0813785C
- ldr r0, _08137860
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _08137864
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0813786C
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08137868
- strb r3, [r0]
- bl dp01_tbl5_exec_completed
- b _08137896
- .align 2, 0
-_0813785C: .4byte gUnknown_02024BE0
-_08137860: .4byte gUnknown_02024A60
-_08137864: .4byte gSprites
-_08137868: .4byte gUnknown_02024E6D
-_0813786C:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08137890
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08137890:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08137896:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t5
-
- thumb_func_start sub_813789C
-sub_813789C: @ 813789C
- push {r4-r6,lr}
- ldr r6, _081378F4
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _081378F8
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081378EC
- ldr r5, _081378FC
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08137900
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _08137904
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl5_exec_completed
-_081378EC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081378F4: .4byte gUnknown_02024A60
-_081378F8: .4byte 0x02017810
-_081378FC: .4byte gUnknown_02024BE0
-_08137900: .4byte gSprites
-_08137904: .4byte gUnknown_03004340
- thumb_func_end sub_813789C
-
- thumb_func_start sub_8137908
-sub_8137908: @ 8137908
- push {lr}
- ldr r2, _08137930
- ldr r1, _08137934
- ldr r0, _08137938
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0813793C
- cmp r1, r0
- bne _0813792C
- bl dp01_tbl5_exec_completed
-_0813792C:
- pop {r0}
- bx r0
- .align 2, 0
-_08137930: .4byte gSprites
-_08137934: .4byte gUnknown_02024BE0
-_08137938: .4byte gUnknown_02024A60
-_0813793C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8137908
-
- thumb_func_start sub_8137940
-sub_8137940: @ 8137940
- push {lr}
- ldr r0, _08137964
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08137968
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0813795E
- bl dp01_tbl5_exec_completed
-_0813795E:
- pop {r0}
- bx r0
- .align 2, 0
-_08137964: .4byte gUnknown_02024A60
-_08137968: .4byte 0x02017810
- thumb_func_end sub_8137940
-
- thumb_func_start dp01_tbl5_exec_completed
-dp01_tbl5_exec_completed: @ 813796C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081379AC
- ldr r4, _081379B0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081379B4
- str r1, [r0]
- ldr r0, _081379B8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081379C0
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _081379BC
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _081379D2
- .align 2, 0
-_081379AC: .4byte gUnknown_03004330
-_081379B0: .4byte gUnknown_02024A60
-_081379B4: .4byte sub_813726C
-_081379B8: .4byte gUnknown_020239F8
-_081379BC: .4byte gUnknown_02023A60
-_081379C0:
- ldr r2, _081379DC
- ldr r1, _081379E0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_081379D2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081379DC: .4byte gUnknown_02024A64
-_081379E0: .4byte gBitTable
- thumb_func_end dp01_tbl5_exec_completed
-
- thumb_func_start unref_sub_81379E4
-unref_sub_81379E4: @ 81379E4
- push {lr}
- ldr r0, _08137A08
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08137A0C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08137A02
- bl dp01_tbl5_exec_completed
-_08137A02:
- pop {r0}
- bx r0
- .align 2, 0
-_08137A08: .4byte gUnknown_02024A60
-_08137A0C: .4byte 0x02017810
- thumb_func_end unref_sub_81379E4
-
- thumb_func_start dp01t_00_5_getattr
-dp01t_00_5_getattr: @ 8137A10
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _08137A3C
- ldr r0, _08137A40
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08137A48
- ldr r0, _08137A44
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl sub_8137A84
- adds r6, r0, 0
- b _08137A6A
- .align 2, 0
-_08137A3C: .4byte gUnknown_02023A60
-_08137A40: .4byte gUnknown_02024A60
-_08137A44: .4byte gUnknown_02024A6A
-_08137A48:
- ldrb r4, [r1]
- movs r5, 0
-_08137A4C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08137A62
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl sub_8137A84
- adds r6, r0
-_08137A62:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _08137A4C
-_08137A6A:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl5_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_5_getattr
-
- thumb_func_start sub_8137A84
-sub_8137A84: @ 8137A84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08137AB8
- ldr r3, _08137ABC
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _08137AAE
- bl _0813821A
-_08137AAE:
- lsls r0, 2
- ldr r1, _08137AC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08137AB8: .4byte gUnknown_02023A60
-_08137ABC: .4byte gUnknown_02024A60
-_08137AC0: .4byte _08137AC4
- .align 2, 0
-_08137AC4:
- .4byte _08137BB4
- .4byte _08137DD8
- .4byte _08137DE8
- .4byte _08137DF8
- .4byte _08137E60
- .4byte _08137E60
- .4byte _08137E60
- .4byte _08137E60
- .4byte _08137E7C
- .4byte _08137EB8
- .4byte _08137EB8
- .4byte _08137EB8
- .4byte _08137EB8
- .4byte _0813821A
- .4byte _0813821A
- .4byte _0813821A
- .4byte _0813821A
- .4byte _08137ED4
- .4byte _08137EE4
- .4byte _08137F14
- .4byte _08137F24
- .4byte _08137F34
- .4byte _08137F44
- .4byte _08137F54
- .4byte _08137F64
- .4byte _08137F74
- .4byte _08137F84
- .4byte _08137F94
- .4byte _08137FA4
- .4byte _08137FB4
- .4byte _08137FC4
- .4byte _08137FD4
- .4byte _08138024
- .4byte _08138034
- .4byte _08138044
- .4byte _08138054
- .4byte _08138064
- .4byte _08138074
- .4byte _08138084
- .4byte _08138094
- .4byte _081380A4
- .4byte _081380D8
- .4byte _081380E8
- .4byte _081380F8
- .4byte _08138108
- .4byte _08138118
- .4byte _08138128
- .4byte _08138138
- .4byte _08138148
- .4byte _08138168
- .4byte _08138178
- .4byte _08138188
- .4byte _08138198
- .4byte _081381A8
- .4byte _081381B8
- .4byte _081381C8
- .4byte _081381D8
- .4byte _081381E8
- .4byte _081381F8
- .4byte _08138208
-_08137BB4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08137DC8
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_08137C00:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08137C00
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08137DC8
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _08137DCC
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _08137DD0
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _08137DD4
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_08137DB8:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08137DB8
- b _0813821A
- .align 2, 0
-_08137DC8: .4byte gPlayerParty
-_08137DCC: .4byte 0xfffffc1f
-_08137DD0: .4byte 0xfff07fff
-_08137DD4: .4byte 0xfffffe0f
-_08137DD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137DE4
- adds r0, r1
- movs r1, 0xB
- b _08138152
- .align 2, 0
-_08137DE4: .4byte gPlayerParty
-_08137DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137DF4
- adds r0, r1
- movs r1, 0xC
- b _08138152
- .align 2, 0
-_08137DF4: .4byte gPlayerParty
-_08137DF8:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08137E5C
- adds r4, r1, r0
- mov r8, r9
-_08137E0E:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _08137E0E
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137E5C
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_08137E4C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _08137E4C
- b _0813821A
- .align 2, 0
-_08137E5C: .4byte gPlayerParty
-_08137E60:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137E78
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _08138152
- .align 2, 0
-_08137E78: .4byte gPlayerParty
-_08137E7C:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08137EB4
- mov r8, r2
-_08137E88:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _08137E88
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137EB4
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0813821A
- .align 2, 0
-_08137EB4: .4byte gPlayerParty
-_08137EB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137ED0
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _08138212
- .align 2, 0
-_08137ED0: .4byte gPlayerParty
-_08137ED4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137EE0
- adds r0, r1
- movs r1, 0x1
- b _08137EEE
- .align 2, 0
-_08137EE0: .4byte gPlayerParty
-_08137EE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F10
- adds r0, r1
- movs r1, 0x19
-_08137EEE:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _0813821A
- .align 2, 0
-_08137F10: .4byte gPlayerParty
-_08137F14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F20
- adds r0, r1
- movs r1, 0x1A
- b _08138212
- .align 2, 0
-_08137F20: .4byte gPlayerParty
-_08137F24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F30
- adds r0, r1
- movs r1, 0x1B
- b _08138212
- .align 2, 0
-_08137F30: .4byte gPlayerParty
-_08137F34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F40
- adds r0, r1
- movs r1, 0x1C
- b _08138212
- .align 2, 0
-_08137F40: .4byte gPlayerParty
-_08137F44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F50
- adds r0, r1
- movs r1, 0x1D
- b _08138212
- .align 2, 0
-_08137F50: .4byte gPlayerParty
-_08137F54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F60
- adds r0, r1
- movs r1, 0x1E
- b _08138212
- .align 2, 0
-_08137F60: .4byte gPlayerParty
-_08137F64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F70
- adds r0, r1
- movs r1, 0x1F
- b _08138212
- .align 2, 0
-_08137F70: .4byte gPlayerParty
-_08137F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F80
- adds r0, r1
- movs r1, 0x20
- b _08138212
- .align 2, 0
-_08137F80: .4byte gPlayerParty
-_08137F84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F90
- adds r0, r1
- movs r1, 0x22
- b _08138212
- .align 2, 0
-_08137F90: .4byte gPlayerParty
-_08137F94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FA0
- adds r0, r1
- movs r1, 0x23
- b _08138212
- .align 2, 0
-_08137FA0: .4byte gPlayerParty
-_08137FA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FB0
- adds r0, r1
- movs r1, 0x24
- b _08138212
- .align 2, 0
-_08137FB0: .4byte gPlayerParty
-_08137FB4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FC0
- adds r0, r1
- movs r1, 0x25
- b _08138212
- .align 2, 0
-_08137FC0: .4byte gPlayerParty
-_08137FC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FD0
- adds r0, r1
- movs r1, 0x26
- b _08138212
- .align 2, 0
-_08137FD0: .4byte gPlayerParty
-_08137FD4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08138020
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _0813821A
- .align 2, 0
-_08138020: .4byte gPlayerParty
-_08138024:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138030
- adds r0, r1
- movs r1, 0x27
- b _08138212
- .align 2, 0
-_08138030: .4byte gPlayerParty
-_08138034:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138040
- adds r0, r1
- movs r1, 0x28
- b _08138212
- .align 2, 0
-_08138040: .4byte gPlayerParty
-_08138044:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138050
- adds r0, r1
- movs r1, 0x29
- b _08138212
- .align 2, 0
-_08138050: .4byte gPlayerParty
-_08138054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138060
- adds r0, r1
- movs r1, 0x2A
- b _08138212
- .align 2, 0
-_08138060: .4byte gPlayerParty
-_08138064:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138070
- adds r0, r1
- movs r1, 0x2B
- b _08138212
- .align 2, 0
-_08138070: .4byte gPlayerParty
-_08138074:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138080
- adds r0, r1
- movs r1, 0x2C
- b _08138212
- .align 2, 0
-_08138080: .4byte gPlayerParty
-_08138084:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138090
- adds r0, r1
- movs r1, 0
- b _081380AE
- .align 2, 0
-_08138090: .4byte gPlayerParty
-_08138094:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380A0
- adds r0, r1
- movs r1, 0x9
- b _08138152
- .align 2, 0
-_081380A0: .4byte gPlayerParty
-_081380A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380D4
- adds r0, r1
- movs r1, 0x37
-_081380AE:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _0813821A
- .align 2, 0
-_081380D4: .4byte gPlayerParty
-_081380D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380E4
- adds r0, r1
- movs r1, 0x38
- b _08138212
- .align 2, 0
-_081380E4: .4byte gPlayerParty
-_081380E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380F4
- adds r0, r1
- movs r1, 0x39
- b _08138152
- .align 2, 0
-_081380F4: .4byte gPlayerParty
-_081380F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138104
- adds r0, r1
- movs r1, 0x3A
- b _08138152
- .align 2, 0
-_08138104: .4byte gPlayerParty
-_08138108:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138114
- adds r0, r1
- movs r1, 0x3B
- b _08138152
- .align 2, 0
-_08138114: .4byte gPlayerParty
-_08138118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138124
- adds r0, r1
- movs r1, 0x3C
- b _08138152
- .align 2, 0
-_08138124: .4byte gPlayerParty
-_08138128:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138134
- adds r0, r1
- movs r1, 0x3D
- b _08138152
- .align 2, 0
-_08138134: .4byte gPlayerParty
-_08138138:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138144
- adds r0, r1
- movs r1, 0x3E
- b _08138152
- .align 2, 0
-_08138144: .4byte gPlayerParty
-_08138148:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138164
- adds r0, r1
- movs r1, 0x3F
-_08138152:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0813821A
- .align 2, 0
-_08138164: .4byte gPlayerParty
-_08138168:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138174
- adds r0, r1
- movs r1, 0x16
- b _08138212
- .align 2, 0
-_08138174: .4byte gPlayerParty
-_08138178:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138184
- adds r0, r1
- movs r1, 0x17
- b _08138212
- .align 2, 0
-_08138184: .4byte gPlayerParty
-_08138188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138194
- adds r0, r1
- movs r1, 0x18
- b _08138212
- .align 2, 0
-_08138194: .4byte gPlayerParty
-_08138198:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381A4
- adds r0, r1
- movs r1, 0x21
- b _08138212
- .align 2, 0
-_081381A4: .4byte gPlayerParty
-_081381A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381B4
- adds r0, r1
- movs r1, 0x2F
- b _08138212
- .align 2, 0
-_081381B4: .4byte gPlayerParty
-_081381B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381C4
- adds r0, r1
- movs r1, 0x30
- b _08138212
- .align 2, 0
-_081381C4: .4byte gPlayerParty
-_081381C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381D4
- adds r0, r1
- movs r1, 0x32
- b _08138212
- .align 2, 0
-_081381D4: .4byte gPlayerParty
-_081381D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381E4
- adds r0, r1
- movs r1, 0x33
- b _08138212
- .align 2, 0
-_081381E4: .4byte gPlayerParty
-_081381E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381F4
- adds r0, r1
- movs r1, 0x34
- b _08138212
- .align 2, 0
-_081381F4: .4byte gPlayerParty
-_081381F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138204
- adds r0, r1
- movs r1, 0x35
- b _08138212
- .align 2, 0
-_08138204: .4byte gPlayerParty
-_08138208:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813822C
- adds r0, r1
- movs r1, 0x36
-_08138212:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0813821A:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813822C: .4byte gPlayerParty
- thumb_func_end sub_8137A84
-
- thumb_func_start sub_8138230
-sub_8138230: @ 8138230
- push {lr}
- bl sub_802ECF0
- pop {r0}
- bx r0
- thumb_func_end sub_8138230
-
- thumb_func_start sub_813823C
-sub_813823C: @ 813823C
- push {r4,r5,lr}
- ldr r1, _08138260
- ldr r0, _08138264
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0813826C
- ldr r0, _08138268
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8138294
- b _0813828A
- .align 2, 0
-_08138260: .4byte gUnknown_02023A60
-_08138264: .4byte gUnknown_02024A60
-_08138268: .4byte gUnknown_02024A6A
-_0813826C:
- ldrb r4, [r1]
- movs r5, 0
-_08138270:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0813827E
- adds r0, r5, 0
- bl sub_8138294
-_0813827E:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08138270
-_0813828A:
- bl dp01_tbl5_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813823C
-
- thumb_func_start sub_8138294
-sub_8138294: @ 8138294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _081382CC
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _081382D0
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _081382C0
- bl _08138C5A
-_081382C0:
- lsls r0, 2
- ldr r1, _081382D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081382CC: .4byte gUnknown_02024A60
-_081382D0: .4byte gUnknown_02023A63
-_081382D4: .4byte _081382D8
- .align 2, 0
-_081382D8:
- .4byte _081383C8
- .4byte _08138560
- .4byte _08138580
- .4byte _081385A0
- .4byte _081385F8
- .4byte _081385F8
- .4byte _081385F8
- .4byte _081385F8
- .4byte _08138620
- .4byte _08138684
- .4byte _08138684
- .4byte _08138684
- .4byte _08138684
- .4byte _08138C5A
- .4byte _08138C5A
- .4byte _08138C5A
- .4byte _08138C5A
- .4byte _081386B4
- .4byte _081386D4
- .4byte _081386F4
- .4byte _08138714
- .4byte _08138734
- .4byte _08138754
- .4byte _08138774
- .4byte _08138794
- .4byte _081387B4
- .4byte _081387D4
- .4byte _081387F4
- .4byte _08138814
- .4byte _08138834
- .4byte _08138854
- .4byte _08138874
- .4byte _081388E4
- .4byte _08138904
- .4byte _08138924
- .4byte _08138944
- .4byte _08138964
- .4byte _08138984
- .4byte _081389A4
- .4byte _081389C4
- .4byte _081389E4
- .4byte _08138A04
- .4byte _08138A24
- .4byte _08138A44
- .4byte _08138A64
- .4byte _08138A84
- .4byte _08138AA4
- .4byte _08138AC4
- .4byte _08138AE4
- .4byte _08138B04
- .4byte _08138B24
- .4byte _08138B44
- .4byte _08138B64
- .4byte _08138B84
- .4byte _08138BA4
- .4byte _08138BC4
- .4byte _08138BE4
- .4byte _08138C04
- .4byte _08138C24
- .4byte _08138C44
-_081383C8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0813855C
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_0813842E:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0813842E
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0813855C
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813855C: .4byte gPlayerParty
-_08138560:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138578
- adds r0, r1
- ldr r1, _0813857C
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138578: .4byte gPlayerParty
-_0813857C: .4byte gUnknown_02024A60
-_08138580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138598
- adds r0, r1
- ldr r1, _0813859C
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138598: .4byte gPlayerParty
-_0813859C: .4byte gUnknown_02024A60
-_081385A0:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _081385F4
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_081385BA:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _081385BA
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081385F4
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081385F4: .4byte gPlayerParty
-_081385F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138614
- adds r0, r1
- ldr r3, _08138618
- ldr r1, _0813861C
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0813869C
- .align 2, 0
-_08138614: .4byte gPlayerParty
-_08138618: .4byte gUnknown_02023A60
-_0813861C: .4byte gUnknown_02024A60
-_08138620:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0813867C
- adds r4, r0
- ldr r5, _08138680
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813867C: .4byte gPlayerParty
-_08138680: .4byte gUnknown_02024A60
-_08138684:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081386A8
- adds r0, r1
- ldr r3, _081386AC
- ldr r1, _081386B0
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0813869C:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081386A8: .4byte gPlayerParty
-_081386AC: .4byte gUnknown_02023A60
-_081386B0: .4byte gUnknown_02024A60
-_081386B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081386CC
- adds r0, r1
- ldr r1, _081386D0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081386CC: .4byte gPlayerParty
-_081386D0: .4byte gUnknown_02024A60
-_081386D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081386EC
- adds r0, r1
- ldr r1, _081386F0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081386EC: .4byte gPlayerParty
-_081386F0: .4byte gUnknown_02024A60
-_081386F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813870C
- adds r0, r1
- ldr r1, _08138710
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813870C: .4byte gPlayerParty
-_08138710: .4byte gUnknown_02024A60
-_08138714:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813872C
- adds r0, r1
- ldr r1, _08138730
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813872C: .4byte gPlayerParty
-_08138730: .4byte gUnknown_02024A60
-_08138734:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813874C
- adds r0, r1
- ldr r1, _08138750
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813874C: .4byte gPlayerParty
-_08138750: .4byte gUnknown_02024A60
-_08138754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813876C
- adds r0, r1
- ldr r1, _08138770
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813876C: .4byte gPlayerParty
-_08138770: .4byte gUnknown_02024A60
-_08138774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813878C
- adds r0, r1
- ldr r1, _08138790
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813878C: .4byte gPlayerParty
-_08138790: .4byte gUnknown_02024A60
-_08138794:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081387AC
- adds r0, r1
- ldr r1, _081387B0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081387AC: .4byte gPlayerParty
-_081387B0: .4byte gUnknown_02024A60
-_081387B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081387CC
- adds r0, r1
- ldr r1, _081387D0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081387CC: .4byte gPlayerParty
-_081387D0: .4byte gUnknown_02024A60
-_081387D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081387EC
- adds r0, r1
- ldr r1, _081387F0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081387EC: .4byte gPlayerParty
-_081387F0: .4byte gUnknown_02024A60
-_081387F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813880C
- adds r0, r1
- ldr r1, _08138810
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813880C: .4byte gPlayerParty
-_08138810: .4byte gUnknown_02024A60
-_08138814:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813882C
- adds r0, r1
- ldr r1, _08138830
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813882C: .4byte gPlayerParty
-_08138830: .4byte gUnknown_02024A60
-_08138834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813884C
- adds r0, r1
- ldr r1, _08138850
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813884C: .4byte gPlayerParty
-_08138850: .4byte gUnknown_02024A60
-_08138854:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813886C
- adds r0, r1
- ldr r1, _08138870
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813886C: .4byte gPlayerParty
-_08138870: .4byte gUnknown_02024A60
-_08138874:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _081388DC
- adds r4, r0
- ldr r5, _081388E0
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08138994
- .align 2, 0
-_081388DC: .4byte gPlayerParty
-_081388E0: .4byte gUnknown_02024A60
-_081388E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081388FC
- adds r0, r1
- ldr r1, _08138900
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081388FC: .4byte gPlayerParty
-_08138900: .4byte gUnknown_02024A60
-_08138904:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813891C
- adds r0, r1
- ldr r1, _08138920
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813891C: .4byte gPlayerParty
-_08138920: .4byte gUnknown_02024A60
-_08138924:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813893C
- adds r0, r1
- ldr r1, _08138940
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813893C: .4byte gPlayerParty
-_08138940: .4byte gUnknown_02024A60
-_08138944:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813895C
- adds r0, r1
- ldr r1, _08138960
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813895C: .4byte gPlayerParty
-_08138960: .4byte gUnknown_02024A60
-_08138964:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813897C
- adds r0, r1
- ldr r1, _08138980
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813897C: .4byte gPlayerParty
-_08138980: .4byte gUnknown_02024A60
-_08138984:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813899C
- adds r0, r1
- ldr r1, _081389A0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_08138994:
- movs r1, 0x2C
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813899C: .4byte gPlayerParty
-_081389A0: .4byte gUnknown_02024A60
-_081389A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081389BC
- adds r0, r1
- ldr r1, _081389C0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081389BC: .4byte gPlayerParty
-_081389C0: .4byte gUnknown_02024A60
-_081389C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081389DC
- adds r0, r1
- ldr r1, _081389E0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081389DC: .4byte gPlayerParty
-_081389E0: .4byte gUnknown_02024A60
-_081389E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081389FC
- adds r0, r1
- ldr r1, _08138A00
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081389FC: .4byte gPlayerParty
-_08138A00: .4byte gUnknown_02024A60
-_08138A04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A1C
- adds r0, r1
- ldr r1, _08138A20
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A1C: .4byte gPlayerParty
-_08138A20: .4byte gUnknown_02024A60
-_08138A24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A3C
- adds r0, r1
- ldr r1, _08138A40
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A3C: .4byte gPlayerParty
-_08138A40: .4byte gUnknown_02024A60
-_08138A44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A5C
- adds r0, r1
- ldr r1, _08138A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A5C: .4byte gPlayerParty
-_08138A60: .4byte gUnknown_02024A60
-_08138A64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A7C
- adds r0, r1
- ldr r1, _08138A80
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A7C: .4byte gPlayerParty
-_08138A80: .4byte gUnknown_02024A60
-_08138A84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A9C
- adds r0, r1
- ldr r1, _08138AA0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A9C: .4byte gPlayerParty
-_08138AA0: .4byte gUnknown_02024A60
-_08138AA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138ABC
- adds r0, r1
- ldr r1, _08138AC0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138ABC: .4byte gPlayerParty
-_08138AC0: .4byte gUnknown_02024A60
-_08138AC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138ADC
- adds r0, r1
- ldr r1, _08138AE0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138ADC: .4byte gPlayerParty
-_08138AE0: .4byte gUnknown_02024A60
-_08138AE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138AFC
- adds r0, r1
- ldr r1, _08138B00
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138AFC: .4byte gPlayerParty
-_08138B00: .4byte gUnknown_02024A60
-_08138B04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B1C
- adds r0, r1
- ldr r1, _08138B20
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B1C: .4byte gPlayerParty
-_08138B20: .4byte gUnknown_02024A60
-_08138B24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B3C
- adds r0, r1
- ldr r1, _08138B40
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B3C: .4byte gPlayerParty
-_08138B40: .4byte gUnknown_02024A60
-_08138B44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B5C
- adds r0, r1
- ldr r1, _08138B60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B5C: .4byte gPlayerParty
-_08138B60: .4byte gUnknown_02024A60
-_08138B64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B7C
- adds r0, r1
- ldr r1, _08138B80
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B7C: .4byte gPlayerParty
-_08138B80: .4byte gUnknown_02024A60
-_08138B84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B9C
- adds r0, r1
- ldr r1, _08138BA0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B9C: .4byte gPlayerParty
-_08138BA0: .4byte gUnknown_02024A60
-_08138BA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138BBC
- adds r0, r1
- ldr r1, _08138BC0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138BBC: .4byte gPlayerParty
-_08138BC0: .4byte gUnknown_02024A60
-_08138BC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138BDC
- adds r0, r1
- ldr r1, _08138BE0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138BDC: .4byte gPlayerParty
-_08138BE0: .4byte gUnknown_02024A60
-_08138BE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138BFC
- adds r0, r1
- ldr r1, _08138C00
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138BFC: .4byte gPlayerParty
-_08138C00: .4byte gUnknown_02024A60
-_08138C04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138C1C
- adds r0, r1
- ldr r1, _08138C20
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138C1C: .4byte gPlayerParty
-_08138C20: .4byte gUnknown_02024A60
-_08138C24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138C3C
- adds r0, r1
- ldr r1, _08138C40
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138C3C: .4byte gPlayerParty
-_08138C40: .4byte gUnknown_02024A60
-_08138C44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138C84
- adds r0, r1
- ldr r1, _08138C88
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_08138C5A:
- ldr r2, _08138C8C
- ldr r0, _08138C88
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08138C84
- adds r0, r2
- bl sub_80324F8
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08138C84: .4byte gPlayerParty
-_08138C88: .4byte gUnknown_02024A60
-_08138C8C: .4byte gUnknown_02024A6A
- thumb_func_end sub_8138294
-
- thumb_func_start sub_8138C90
-sub_8138C90: @ 8138C90
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138C90
-
- thumb_func_start sub_8138C9C
-sub_8138C9C: @ 8138C9C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138C9C
-
- thumb_func_start sub_8138CA8
-sub_8138CA8: @ 8138CA8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138CA8
-
- thumb_func_start sub_8138CB4
-sub_8138CB4: @ 8138CB4
- push {r4-r6,lr}
- ldr r0, _08138CE0
- ldr r6, _08138CE4
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08138CF0
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r0, _08138CE8
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08138CEC
- str r0, [r1]
- b _08138D26
- .align 2, 0
-_08138CE0: .4byte gUnknown_02023A60
-_08138CE4: .4byte gUnknown_02024A60
-_08138CE8: .4byte gUnknown_03004330
-_08138CEC: .4byte sub_813789C
-_08138CF0:
- ldr r5, _08138D2C
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08138D30
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _08138D34
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl5_exec_completed
-_08138D26:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138D2C: .4byte gUnknown_02024BE0
-_08138D30: .4byte gSprites
-_08138D34: .4byte gUnknown_03004340
- thumb_func_end sub_8138CB4
-
- thumb_func_start sub_8138D38
-sub_8138D38: @ 8138D38
- push {r4-r6,lr}
- ldr r4, _08138DE0
- ldrb r1, [r4]
- movs r0, 0x2
- bl sub_8031AF4
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x2
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _08138DE4
- ldr r1, _08138DE8
- ldrb r1, [r1, 0x8]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _08138DEC
- ldrb r1, [r4]
- adds r1, r6
- strb r0, [r1]
- ldr r5, _08138DF0
- ldrb r3, [r4]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08138DF4
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, 0x1C
- adds r0, r5
- ldr r1, _08138DF8
- str r1, [r0]
- ldr r1, _08138DFC
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138E00
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138DE0: .4byte gUnknown_02024A60
-_08138DE4: .4byte gUnknown_02024E8C
-_08138DE8: .4byte gTrainerBackPicCoords
-_08138DEC: .4byte gUnknown_02024BE0
-_08138DF0: .4byte gSprites
-_08138DF4: .4byte 0x0000fffe
-_08138DF8: .4byte sub_80313A0
-_08138DFC: .4byte gUnknown_03004330
-_08138E00: .4byte sub_813741C
- thumb_func_end sub_8138D38
-
- thumb_func_start sub_8138E04
-sub_8138E04: @ 8138E04
- push {r4-r6,lr}
- ldr r4, _08138EAC
- ldrb r1, [r4]
- movs r0, 0x2
- bl sub_8031AF4
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x2
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _08138EB0
- ldr r1, _08138EB4
- ldrb r1, [r1, 0x8]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _08138EB8
- ldrb r1, [r4]
- adds r1, r6
- strb r0, [r1]
- ldr r5, _08138EBC
- ldrb r3, [r4]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08138EC0
- strh r1, [r0, 0x24]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, 0x1C
- adds r0, r5
- ldr r1, _08138EC4
- str r1, [r0]
- ldr r1, _08138EC8
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138ECC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138EAC: .4byte gUnknown_02024A60
-_08138EB0: .4byte gUnknown_02024E8C
-_08138EB4: .4byte gTrainerBackPicCoords
-_08138EB8: .4byte gUnknown_02024BE0
-_08138EBC: .4byte gSprites
-_08138EC0: .4byte 0x0000ffa0
-_08138EC4: .4byte sub_80313A0
-_08138EC8: .4byte gUnknown_03004330
-_08138ECC: .4byte sub_8137908
- thumb_func_end sub_8138E04
-
- thumb_func_start sub_8138ED0
-sub_8138ED0: @ 8138ED0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138ED0
-
- thumb_func_start sub_8138EDC
-sub_8138EDC: @ 8138EDC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138EDC
-
- thumb_func_start sub_8138EE8
-sub_8138EE8: @ 8138EE8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138EE8
-
- thumb_func_start sub_8138EF4
-sub_8138EF4: @ 8138EF4
- push {r4,r5,lr}
- ldr r1, _08138F30
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _08138F34
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _08138F38
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _08138F3C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138F40
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08138F30: .4byte 0x02017840
-_08138F34: .4byte gUnknown_02024E6D
-_08138F38: .4byte gUnknown_02024A60
-_08138F3C: .4byte gUnknown_03004330
-_08138F40: .4byte bx_wait_t5
- thumb_func_end sub_8138EF4
-
- thumb_func_start sub_8138F44
-sub_8138F44: @ 8138F44
- push {r4,r5,lr}
- ldr r1, _08138F88
- ldr r5, _08138F8C
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _08138F90
- strb r1, [r0, 0x8]
- ldr r1, _08138F94
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _08138F98
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138F9C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08138F88: .4byte gUnknown_02023A60
-_08138F8C: .4byte gUnknown_02024A60
-_08138F90: .4byte 0x02017840
-_08138F94: .4byte gUnknown_02024E6D
-_08138F98: .4byte gUnknown_03004330
-_08138F9C: .4byte bx_wait_t5
- thumb_func_end sub_8138F44
-
- thumb_func_start sub_8138FA0
-sub_8138FA0: @ 8138FA0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138FA0
-
- thumb_func_start sub_8138FAC
-sub_8138FAC: @ 8138FAC
- push {r4-r6,lr}
- ldr r0, _08139080
- mov r12, r0
- ldr r6, _08139084
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08139088
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0813908C
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08139090
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08139094
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08139098
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0813909C
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _081390A0
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _081390A4
- bl dp01_tbl5_exec_completed
- b _081390BE
- .align 2, 0
-_08139080: .4byte gUnknown_02023A60
-_08139084: .4byte gUnknown_02024A60
-_08139088: .4byte gUnknown_0202F7C4
-_0813908C: .4byte gUnknown_0202F7BC
-_08139090: .4byte gUnknown_0202F7B8
-_08139094: .4byte gUnknown_0202F7BE
-_08139098: .4byte gUnknown_0202F7C0
-_0813909C: .4byte gUnknown_0202F7B4
-_081390A0: .4byte gUnknown_02024E70
-_081390A4:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _081390C4
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _081390C8
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081390CC
- str r1, [r0]
-_081390BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081390C4: .4byte 0x02017810
-_081390C8: .4byte gUnknown_03004330
-_081390CC: .4byte sub_81390D0
- thumb_func_end sub_8138FAC
-
- thumb_func_start sub_81390D0
-sub_81390D0: @ 81390D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _0813910C
- ldr r5, _08139110
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r8, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r7, r2, 0x2
- adds r1, r7
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08139114
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08139150
- cmp r2, 0x1
- bgt _08139118
- cmp r2, 0
- beq _08139122
- b _081391FC
- .align 2, 0
-_0813910C: .4byte gUnknown_02023A60
-_08139110: .4byte gUnknown_02024A60
-_08139114: .4byte 0x02017810
-_08139118:
- cmp r2, 0x2
- beq _08139176
- cmp r2, 0x3
- beq _081391C4
- b _081391FC
-_08139122:
- lsls r0, r3, 2
- adds r1, r6, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08139140
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08139140:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _081391FC
-_08139150:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081391FC
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _081391FC
-_08139176:
- ldr r0, _081391BC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _081391C0
- ldrb r0, [r0]
- cmp r0, 0
- bne _081391FC
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r1, r6, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081391AA
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_081391AA:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x3
- strb r0, [r1, 0x4]
- b _081391FC
- .align 2, 0
-_081391BC: .4byte gUnknown_0202F7AC
-_081391C0: .4byte gUnknown_0202F7B1
-_081391C4:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081391FC
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r8
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r2, r7
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl5_exec_completed
-_081391FC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81390D0
-
- thumb_func_start sub_8139208
-sub_8139208: @ 8139208
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08139254
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08139258
- strh r1, [r0]
- ldr r5, _0813925C
- ldrb r0, [r5]
- lsls r0, 9
- ldr r1, _08139260
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x2
- bne _0813922A
- bl sub_814A7FC
-_0813922A:
- ldrh r0, [r4]
- bl sub_8120AA8
- ldr r0, _08139264
- ldr r1, _08139268
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0813926C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139270
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139254: .4byte gUnknown_030042A4
-_08139258: .4byte gUnknown_030042A0
-_0813925C: .4byte gUnknown_02024A60
-_08139260: .4byte gUnknown_02023A62
-_08139264: .4byte gUnknown_03004210
-_08139268: .4byte gUnknown_020238CC
-_0813926C: .4byte gUnknown_03004330
-_08139270: .4byte sub_8137454
- thumb_func_end sub_8139208
-
- thumb_func_start dp01t_11_5_message_for_player_only
-dp01t_11_5_message_for_player_only: @ 8139274
- push {lr}
- ldr r0, _0813928C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08139290
- bl sub_8139208
- b _08139294
- .align 2, 0
-_0813928C: .4byte gUnknown_02024A60
-_08139290:
- bl dp01_tbl5_exec_completed
-_08139294:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_5_message_for_player_only
-
- thumb_func_start sub_8139298
-sub_8139298: @ 8139298
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0813934C
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08139350
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _08139354
- movs r5, 0
- strb r2, [r4, 0x6]
- movs r0, 0x1B
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillWindowRect_DefaultPalette
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect_DefaultPalette
- ldr r1, _08139358
- ldr r0, _0813935C
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139360
- str r1, [r0]
- ldr r1, _08139364
- movs r2, 0xC8
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x12
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08139368
- ldr r3, _0813936C
- str r5, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_0813930C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _0813930C
- movs r0, 0
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _08139370
- bl get_battle_strings_
- ldr r4, _08139354
- ldr r1, _08139374
- movs r2, 0xDC
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x2
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813934C: .4byte gUnknown_030042A4
-_08139350: .4byte gUnknown_030042A0
-_08139354: .4byte gUnknown_03004210
-_08139358: .4byte gUnknown_03004330
-_0813935C: .4byte gUnknown_02024A60
-_08139360: .4byte sub_81372BC
-_08139364: .4byte gUnknown_08400CF3
-_08139368: .4byte 0x0000ffff
-_0813936C: .4byte 0x00002d9f
-_08139370: .4byte gUnknown_08400CCC
-_08139374: .4byte gUnknown_020238CC
- thumb_func_end sub_8139298
-
- thumb_func_start sub_8139378
-sub_8139378: @ 8139378
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139378
-
- thumb_func_start sub_8139384
-sub_8139384: @ 8139384
- push {r4,r5,lr}
- ldr r5, _08139398
- ldr r0, _0813939C
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0
- beq _081393A0
- cmp r0, 0x1
- beq _081393B2
- b _081393DE
- .align 2, 0
-_08139398: .4byte 0x02000000
-_0813939C: .4byte 0x000160a9
-_081393A0:
- bl sub_80304A8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _081393E4
- adds r1, r5, r0
- movs r0, 0x50
- strb r0, [r1]
-_081393B2:
- ldr r1, _081393E8
- ldr r0, _081393E4
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _081393DE
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
-_081393DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081393E4: .4byte 0x000160ab
-_081393E8: .4byte 0x02000000
- thumb_func_end sub_8139384
-
- thumb_func_start sub_81393EC
-sub_81393EC: @ 81393EC
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813941C
- ldr r2, _08139420
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139424
- str r1, [r0]
- ldr r1, _08139428
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813941C: .4byte gUnknown_03004330
-_08139420: .4byte gUnknown_02024A60
-_08139424: .4byte sub_81374C4
-_08139428: .4byte gUnknown_02024E6C
- thumb_func_end sub_81393EC
-
- thumb_func_start sub_813942C
-sub_813942C: @ 813942C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_813942C
-
- thumb_func_start sub_8139438
-sub_8139438: @ 8139438
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139438
-
- thumb_func_start sub_8139444
-sub_8139444: @ 8139444
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _081394BC
- ldr r0, _081394C0
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _081394C4
- cmp r7, r0
- beq _081394D4
- ldr r6, _081394C8
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _081394CC
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _081394D0
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _0813950E
- .align 2, 0
-_081394BC: .4byte gUnknown_02023A60
-_081394C0: .4byte gUnknown_02024A60
-_081394C4: .4byte 0x00007fff
-_081394C8: .4byte gUnknown_02024A6A
-_081394CC: .4byte gPlayerParty
-_081394D0: .4byte gUnknown_03004340
-_081394D4:
- ldr r1, _0813952C
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08139530
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r4, _08139534
- adds r1, r0, r4
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
- mov r1, r9
- ldrb r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80440EC
-_0813950E:
- ldr r1, _08139538
- ldr r0, _0813953C
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139540
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813952C: .4byte gUnknown_02024A6A
-_08139530: .4byte gPlayerParty
-_08139534: .4byte gUnknown_03004340
-_08139538: .4byte gUnknown_03004330
-_0813953C: .4byte gUnknown_02024A60
-_08139540: .4byte sub_81377B0
- thumb_func_end sub_8139444
-
- thumb_func_start sub_8139544
-sub_8139544: @ 8139544
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139544
-
- thumb_func_start sub_8139550
-sub_8139550: @ 8139550
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139550
-
- thumb_func_start sub_813955C
-sub_813955C: @ 813955C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_813955C
-
- thumb_func_start sub_8139568
-sub_8139568: @ 8139568
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139568
-
- thumb_func_start sub_8139574
-sub_8139574: @ 8139574
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139574
-
- thumb_func_start sub_8139580
-sub_8139580: @ 8139580
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139580
-
- thumb_func_start sub_813958C
-sub_813958C: @ 813958C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_813958C
-
- thumb_func_start sub_8139598
-sub_8139598: @ 8139598
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139598
-
- thumb_func_start sub_81395A4
-sub_81395A4: @ 81395A4
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395A4
-
- thumb_func_start sub_81395B0
-sub_81395B0: @ 81395B0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395B0
-
- thumb_func_start sub_81395BC
-sub_81395BC: @ 81395BC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395BC
-
- thumb_func_start sub_81395C8
-sub_81395C8: @ 81395C8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395C8
-
- thumb_func_start sub_81395D4
-sub_81395D4: @ 81395D4
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395D4
-
- thumb_func_start sub_81395E0
-sub_81395E0: @ 81395E0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395E0
-
- thumb_func_start sub_81395EC
-sub_81395EC: @ 81395EC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395EC
-
- thumb_func_start sub_81395F8
-sub_81395F8: @ 81395F8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395F8
-
- thumb_func_start sub_8139604
-sub_8139604: @ 8139604
- push {r4,lr}
- ldr r3, _0813962C
- ldr r2, _08139630
- ldr r4, _08139634
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08139638
- bl dp01_tbl5_exec_completed
- b _08139662
- .align 2, 0
-_0813962C: .4byte gSprites
-_08139630: .4byte gUnknown_02024BE0
-_08139634: .4byte gUnknown_02024A60
-_08139638:
- ldr r1, _08139668
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0813966C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139670
- str r1, [r0]
-_08139662:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139668: .4byte gUnknown_02024E6D
-_0813966C: .4byte gUnknown_03004330
-_08139670: .4byte bx_blink_t5
- thumb_func_end sub_8139604
-
- thumb_func_start sub_8139674
-sub_8139674: @ 8139674
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139674
-
- thumb_func_start sub_8139680
-sub_8139680: @ 8139680
- push {lr}
- ldr r2, _081396A8
- ldr r0, _081396AC
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlaySE
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081396A8: .4byte gUnknown_02023A60
-_081396AC: .4byte gUnknown_02024A60
- thumb_func_end sub_8139680
-
- thumb_func_start sub_81396B0
-sub_81396B0: @ 81396B0
- push {lr}
- ldr r2, _081396D8
- ldr r0, _081396DC
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081396D8: .4byte gUnknown_02023A60
-_081396DC: .4byte gUnknown_02024A60
- thumb_func_end sub_81396B0
-
- thumb_func_start sub_81396E0
-sub_81396E0: @ 81396E0
- push {lr}
- ldr r1, _08139710
- ldr r0, _08139714
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08139718
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08139710: .4byte gUnknown_02024A6A
-_08139714: .4byte gUnknown_02024A60
-_08139718: .4byte gPlayerParty
- thumb_func_end sub_81396E0
-
- thumb_func_start dp01t_2E_5_battle_intro
-dp01t_2E_5_battle_intro: @ 813971C
- push {lr}
- ldr r1, _08139744
- ldr r0, _08139748
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0813974C
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08139744: .4byte gUnknown_02023A60
-_08139748: .4byte gUnknown_02024A60
-_0813974C: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_5_battle_intro
-
- thumb_func_start sub_8139750
-sub_8139750: @ 8139750
- push {r4-r7,lr}
- ldr r6, _08139880
- ldr r7, _08139884
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08139888
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0813988C
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08139890
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08139894
- bl oamt_set_x3A_32
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08139898
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- ldr r0, _0813989C
- ldr r0, [r0, 0x10]
- lsrs r4, 20
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _081398A0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _081398A4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldrb r3, [r7]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _081398A8
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08139864
- ldr r0, _081398AC
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _081398B0
- str r1, [r0]
-_08139864:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _081398B4
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081398B8
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08139880: .4byte gUnknown_02024BE0
-_08139884: .4byte gUnknown_02024A60
-_08139888: .4byte gSprites
-_0813988C: .4byte 0x0000ffd8
-_08139890: .4byte sub_8078B34
-_08139894: .4byte sub_8030E38
-_08139898: .4byte 0x0000d6f8
-_0813989C: .4byte gTrainerBackPicPaletteTable
-_081398A0: .4byte sub_8139A2C
-_081398A4: .4byte gTasks
-_081398A8: .4byte 0x02017810
-_081398AC: .4byte gUnknown_02024E68
-_081398B0: .4byte sub_8044CA0
-_081398B4: .4byte gUnknown_03004330
-_081398B8: .4byte nullsub_91
- thumb_func_end sub_8139750
-
- thumb_func_start sub_81398BC
-sub_81398BC: @ 81398BC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r0, r6, 2
- ldr r1, _08139A00
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- ldr r0, _08139A04
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _08139A08
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08139A0C
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08139A10
- bl object_new_hidden_with_callback
- ldr r1, _08139A14
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08139A18
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _08139A1C
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _08139A20
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08139A24
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08139A28
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_8046400
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139A00: .4byte 0x02017800
-_08139A04: .4byte gUnknown_02024A6A
-_08139A08: .4byte gUnknown_02023A60
-_08139A0C: .4byte gPlayerParty
-_08139A10: .4byte sub_80312F0
-_08139A14: .4byte gUnknown_0300434C
-_08139A18: .4byte gUnknown_02024E8C
-_08139A1C: .4byte gUnknown_02024BE0
-_08139A20: .4byte gSprites
-_08139A24: .4byte gUnknown_02024E84
-_08139A28: .4byte SpriteCallbackDummy
- thumb_func_end sub_81398BC
-
- thumb_func_start sub_8139A2C
-sub_8139A2C: @ 8139A2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08139A4C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x1E
- bgt _08139A50
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08139A86
- .align 2, 0
-_08139A4C: .4byte gTasks
-_08139A50:
- ldr r4, _08139A8C
- ldrb r5, [r4]
- ldrh r0, [r1, 0x8]
- strb r0, [r4]
- ldr r0, _08139A90
- ldrb r1, [r4]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08139A94
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_81398BC
- ldr r1, _08139A98
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139A9C
- str r1, [r0]
- strb r5, [r4]
- adds r0, r6, 0
- bl DestroyTask
-_08139A86:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139A8C: .4byte gUnknown_02024A60
-_08139A90: .4byte gUnknown_02023A60
-_08139A94: .4byte gUnknown_02024A6A
-_08139A98: .4byte gUnknown_03004330
-_08139A9C: .4byte sub_8137538
- thumb_func_end sub_8139A2C
-
- thumb_func_start sub_8139AA0
-sub_8139AA0: @ 8139AA0
- push {r4,r5,lr}
- ldr r1, _08139AC8
- ldr r0, _08139ACC
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08139AD0
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08139AD0
- bl dp01_tbl5_exec_completed
- b _08139B0A
- .align 2, 0
-_08139AC8: .4byte gUnknown_02023A60
-_08139ACC: .4byte gUnknown_02024A60
-_08139AD0:
- ldr r5, _08139B10
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08139B14
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r4, r0, 9
- ldr r3, _08139B18
- adds r1, r4, r3
- subs r2, r3, 0x3
- adds r2, r4, r2
- ldrb r2, [r2]
- subs r3, 0x2
- adds r4, r3
- ldrb r3, [r4]
- bl sub_8044804
- ldr r2, _08139B1C
- ldrb r1, [r5]
- adds r1, r2
- strb r0, [r1]
- bl dp01_tbl5_exec_completed
-_08139B0A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139B10: .4byte gUnknown_02024A60
-_08139B14: .4byte 0x02017810
-_08139B18: .4byte gUnknown_02023A64
-_08139B1C: .4byte gUnknown_02024E68
- thumb_func_end sub_8139AA0
-
- thumb_func_start sub_8139B20
-sub_8139B20: @ 8139B20
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139B20
-
- thumb_func_start sub_8139B2C
-sub_8139B2C: @ 8139B2C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139B2C
-
- thumb_func_start sub_8139B38
-sub_8139B38: @ 8139B38
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139B38
-
- thumb_func_start sub_8139B44
-sub_8139B44: @ 8139B44
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _08139B7C
- ldr r6, _08139B80
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08139B84
- bl dp01_tbl5_exec_completed
- b _08139B90
- .align 2, 0
-_08139B7C: .4byte gUnknown_02023A60
-_08139B80: .4byte gUnknown_02024A60
-_08139B84:
- ldr r0, _08139B98
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08139B9C
- str r0, [r1]
-_08139B90:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139B98: .4byte gUnknown_03004330
-_08139B9C: .4byte sub_8137940
- thumb_func_end sub_8139B44
-
- thumb_func_start sub_8139BA0
-sub_8139BA0: @ 8139BA0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139BA0
-
- thumb_func_start sub_8139BAC
-sub_8139BAC: @ 8139BAC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139BAC
-
- thumb_func_start sub_8139BB8
-sub_8139BB8: @ 8139BB8
- push {r4,lr}
- ldr r2, _08139BFC
- ldr r1, _08139C00
- ldr r4, _08139C04
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl5_exec_completed
- ldr r0, _08139C08
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _08139BF4
- ldr r0, _08139C0C
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08139C10
- str r0, [r1]
-_08139BF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139BFC: .4byte gUnknown_02024D26
-_08139C00: .4byte gUnknown_02023A60
-_08139C04: .4byte gUnknown_02024A60
-_08139C08: .4byte gUnknown_020239F8
-_08139C0C: .4byte gUnknown_03004330
-_08139C10: .4byte sub_813746C
- thumb_func_end sub_8139BB8
-
- thumb_func_start nullsub_80
-nullsub_80: @ 8139C14
- bx lr
- thumb_func_end nullsub_80
-
- thumb_func_start sub_8139C18
-sub_8139C18: @ 8139C18
- push {r4-r6,lr}
- movs r4, 0
- ldr r0, _08139C6C
- movs r1, 0x32
- bl sub_80A9684
- ldr r1, _08139C70
- ldrh r0, [r1]
- cmp r0, 0
- beq _08139C64
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _08139C64
- adds r5, r1, 0
- adds r6, r5, 0x2
-_08139C36:
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- adds r1, r6
- ldrh r1, [r1]
- bl sub_80A9760
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08139C64
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _08139C64
- adds r0, r1, r6
- ldrh r0, [r0]
- cmp r0, 0
- bne _08139C36
-_08139C64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139C6C: .4byte gSaveBlock1 + 0x498
-_08139C70: .4byte gUnknown_084062F0
- thumb_func_end sub_8139C18
-
- thumb_func_start sub_8139C74
-sub_8139C74: @ 8139C74
- push {lr}
- ldr r1, _08139C9C
- ldr r0, _08139CA0
- str r0, [r1]
- ldr r1, _08139CA4
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08139CA8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CAC
- ldr r2, _08139CB0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139C9C: .4byte gUnknown_02039314
-_08139CA0: .4byte gUnknown_084062B8
-_08139CA4: .4byte gUnknown_030007B4
-_08139CA8: .4byte TaskDummy
-_08139CAC: .4byte gOtherText_WhatWillYouDo
-_08139CB0: .4byte sub_8139CF4
- thumb_func_end sub_8139C74
-
- thumb_func_start sub_8139CB4
-sub_8139CB4: @ 8139CB4
- push {lr}
- ldr r1, _08139CDC
- ldr r0, _08139CE0
- str r0, [r1]
- ldr r1, _08139CE4
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _08139CE8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CEC
- ldr r2, _08139CF0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139CDC: .4byte gUnknown_02039314
-_08139CE0: .4byte gUnknown_084062BC
-_08139CE4: .4byte gUnknown_030007B4
-_08139CE8: .4byte TaskDummy
-_08139CEC: .4byte gOtherText_WhatWillYouDo
-_08139CF0: .4byte sub_8139CF4
- thumb_func_end sub_8139CB4
-
- thumb_func_start sub_8139CF4
-sub_8139CF4: @ 8139CF4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08139D50
- ldrb r3, [r5]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- bl MenuDrawTextWindow
- ldrb r2, [r5]
- ldr r3, _08139D54
- ldr r0, _08139D58
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
- ldr r1, _08139D5C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139D60
- str r1, [r0]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139D50: .4byte gUnknown_030007B4
-_08139D54: .4byte gUnknown_08406298
-_08139D58: .4byte gUnknown_02039314
-_08139D5C: .4byte gTasks
-_08139D60: .4byte sub_8139D64
- thumb_func_end sub_8139CF4
-
- thumb_func_start sub_8139D64
-sub_8139D64: @ 8139D64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139D88
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139D8C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08139E10
- .align 2, 0
-_08139D88: .4byte gMain
-_08139D8C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08139DA2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08139E10
-_08139DA2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08139DE0
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08139DD8
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139DDC
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _08139E10
- .align 2, 0
-_08139DD8: .4byte gUnknown_08406298
-_08139DDC: .4byte gUnknown_02039314
-_08139DE0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08139E10
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _08139E18
- ldr r0, _08139E1C
- ldrb r0, [r0]
- ldr r1, _08139E20
- ldr r1, [r1]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08139E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E18: .4byte gUnknown_08406298
-_08139E1C: .4byte gUnknown_030007B4
-_08139E20: .4byte gUnknown_02039314
- thumb_func_end sub_8139D64
-
- thumb_func_start sub_8139E24
-sub_8139E24: @ 8139E24
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139E38
- ldr r2, _08139E3C
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139E38: .4byte gOtherText_WhatWillYouDo
-_08139E3C: .4byte sub_8139CF4
- thumb_func_end sub_8139E24
-
- thumb_func_start sub_8139E40
-sub_8139E40: @ 8139E40
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_8139F58
- ldr r1, _08139E64
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139E68
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E64: .4byte gTasks
-_08139E68: .4byte sub_8139FD4
- thumb_func_end sub_8139E40
-
- thumb_func_start sub_8139E6C
-sub_8139E6C: @ 8139E6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl sub_813AF3C
- ldr r1, _08139E9C
- movs r2, 0
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- bne _08139EA8
- ldr r1, _08139EA0
- ldr r2, _08139EA4
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08139ECA
- .align 2, 0
-_08139E9C: .4byte 0x0201fe00
-_08139EA0: .4byte gOtherText_NoMailHere
-_08139EA4: .4byte sub_8139E24
-_08139EA8:
- strb r2, [r1]
- strb r2, [r1, 0x2]
- bl sub_813AF78
- adds r0, r4, 0
- bl sub_813A240
- adds r0, r4, 0
- bl sub_813B108
- ldr r0, _08139ED0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08139ED4
- str r0, [r1]
-_08139ECA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139ED0: .4byte gTasks
-_08139ED4: .4byte sub_813B174
- thumb_func_end sub_8139E6C
-
- thumb_func_start sub_8139ED8
-sub_8139ED8: @ 8139ED8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE28C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8139ED8
-
- thumb_func_start sub_8139EF8
-sub_8139EF8: @ 8139EF8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08139F24
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08139F3C
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08139F28
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08139F30
- ldr r0, _08139F2C
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F24: .4byte gUnknown_030007B4
-_08139F28: .4byte gSaveBlock2
-_08139F2C: .4byte gUnknown_08152850
-_08139F30:
- ldr r0, _08139F38
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F38: .4byte gUnknown_08152C75
-_08139F3C:
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
-_08139F4C:
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8139EF8
-
- thumb_func_start sub_8139F58
-sub_8139F58: @ 8139F58
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _08139FAC
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xA
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- ldr r0, _08139FB0
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl sub_8139FB4
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139FAC: .4byte gUnknown_084062C0
-_08139FB0: .4byte gUnknown_08406288
- thumb_func_end sub_8139F58
-
- thumb_func_start sub_8139FB4
-sub_8139FB4: @ 8139FB4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8139FB4
-
- thumb_func_start sub_8139FD4
-sub_8139FD4: @ 8139FD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139FF4
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139FF8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0813A008
- .align 2, 0
-_08139FF4: .4byte gMain
-_08139FF8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A024
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0813A008:
- bl MoveMenuCursor
- ldr r4, _0813A020
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl sub_8139FB4
- b _0813A06C
- .align 2, 0
-_0813A020: .4byte gUnknown_08406288
-_0813A024:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A050
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0813A04C
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 21
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0813A06C
- .align 2, 0
-_0813A04C: .4byte gUnknown_084062C0
-_0813A050:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A06C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0813A074
- ldr r1, [r0, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
-_0813A06C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A074: .4byte gUnknown_084062C0
- thumb_func_end sub_8139FD4
-
- thumb_func_start sub_813A078
-sub_813A078: @ 813A078
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813A09C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813A094
- bl sub_80A6A30
- adds r0, r4, 0
- bl DestroyTask
-_0813A094:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A09C: .4byte gPaletteFade
- thumb_func_end sub_813A078
-
- thumb_func_start sub_813A0A0
-sub_813A0A0: @ 813A0A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813A0C0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813A0C4
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0C0: .4byte gTasks
-_0813A0C4: .4byte sub_813A078
- thumb_func_end sub_813A0A0
-
- thumb_func_start sub_813A0C8
-sub_813A0C8: @ 813A0C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813A0E8
- ldr r0, _0813A0F0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813A0F4
- str r0, [r1]
-_0813A0E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0F0: .4byte gTasks
-_0813A0F4: .4byte sub_8139FD4
- thumb_func_end sub_813A0C8
-
- thumb_func_start sub_813A0F8
-sub_813A0F8: @ 813A0F8
- push {lr}
- bl MenuDisplayMessageBox
- movs r0, 0x1
- bl sub_8139F58
- ldr r0, _0813A114
- movs r1, 0
- bl CreateTask
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0813A114: .4byte sub_813A0C8
- thumb_func_end sub_813A0F8
-
- thumb_func_start sub_813A118
-sub_813A118: @ 813A118
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A174
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl sub_80A96E4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A17C
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- strh r0, [r4, 0xC]
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A178
- str r1, [r0]
- b _0813A188
- .align 2, 0
-_0813A174: .4byte gUnknown_03004B28
-_0813A178: .4byte sub_813A280
-_0813A17C:
- ldr r1, _0813A190
- ldr r2, _0813A194
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A188:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A190: .4byte gOtherText_NoItems
-_0813A194: .4byte sub_8139E40
- thumb_func_end sub_813A118
-
- thumb_func_start sub_813A198
-sub_813A198: @ 813A198
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A1F8
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl sub_80A96E4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A200
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A1FC
- str r1, [r0]
- b _0813A20C
- .align 2, 0
-_0813A1F8: .4byte gUnknown_03004B28
-_0813A1FC: .4byte sub_813A280
-_0813A200:
- ldr r1, _0813A214
- ldr r2, _0813A218
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A214: .4byte gOtherText_NoItems
-_0813A218: .4byte sub_8139E40
- thumb_func_end sub_813A198
-
- thumb_func_start sub_813A21C
-sub_813A21C: @ 813A21C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_8139E24
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813A21C
-
- thumb_func_start sub_813A240
-sub_813A240: @ 813A240
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813A260
- adds r1, r0
- ldrh r2, [r1, 0x4]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- ble _0813A264
- movs r0, 0x8
- b _0813A266
- .align 2, 0
-_0813A260: .4byte gUnknown_03004B28
-_0813A264:
- adds r0, r2, 0x1
-_0813A266:
- strh r0, [r1, 0x8]
- ldr r1, _0813A274
- ldrb r0, [r1, 0x3]
- cmp r0, 0x7
- bls _0813A278
- movs r0, 0x8
- b _0813A27A
- .align 2, 0
-_0813A274: .4byte 0x0201fe00
-_0813A278:
- adds r0, 0x1
-_0813A27A:
- strb r0, [r1, 0x1]
- pop {r0}
- bx r0
- thumb_func_end sub_813A240
-
- thumb_func_start sub_813A280
-sub_813A280: @ 813A280
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0813A2DC
- adds r4, r0, r1
- ldr r2, _0813A2E0
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813A306
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813A2E4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A2CC
- b _0813A460
-_0813A2CC:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _0813A34C
- b _0813A358
- .align 2, 0
-_0813A2DC: .4byte gUnknown_03004B28
-_0813A2E0: .4byte gMain
-_0813A2E4:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A2EE
- b _0813A460
-_0813A2EE:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- b _0813A394
-_0813A306:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A3A0
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- subs r0, 0x1
- cmp r1, r0
- beq _0813A370
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A340
- b _0813A460
-_0813A340:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0813A358
-_0813A34C:
- ldr r0, _0813A354
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A354: .4byte 0x0000ffff
-_0813A358:
- ldr r0, _0813A36C
- lsls r1, 2
- adds r1, r0
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A36C: .4byte gSaveBlock1
-_0813A370:
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r1, 0x12
- ldrsh r0, [r4, r1]
-_0813A394:
- cmp r0, 0
- beq _0813A460
- movs r0, 0
- bl MoveMenuCursor
- b _0813A460
-_0813A3A0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0813A3F0
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A3E8
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A3DC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- strh r0, [r4, 0x12]
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldr r0, _0813A3E4
- bl sub_813AD58
-_0813A3DC:
- adds r0, r5, 0
- bl sub_813ABE8
- b _0813A460
- .align 2, 0
-_0813A3E4: .4byte 0x0000fff7
-_0813A3E8:
- movs r0, 0x5
- bl PlaySE
- b _0813A420
-_0813A3F0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A430
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A420
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A44A
- adds r0, r5, 0
- bl sub_813A4B4
- b _0813A460
-_0813A420:
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AA30
- adds r0, r5, 0
- bl sub_813AE0C
- b _0813A460
-_0813A430:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A452
- bl sub_8072DEC
-_0813A44A:
- adds r0, r5, 0
- bl sub_813A468
- b _0813A460
-_0813A452:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_813AA30
- adds r0, r6, 0
- bl sub_813AE0C
-_0813A460:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813A280
-
- thumb_func_start sub_813A468
-sub_813A468: @ 813A468
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl BuyMenuFreeMemory
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl MenuDisplayMessageBox
- ldr r0, _0813A4AC
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x14]
- bl sub_8139F58
- ldr r0, _0813A4B0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A4AC: .4byte gTasks
-_0813A4B0: .4byte sub_8139FD4
- thumb_func_end sub_813A468
-
- thumb_func_start sub_813A4B4
-sub_813A4B4: @ 813A4B4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0813A500
- adds r4, r0, r1
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl sub_80F996C
- movs r0, 0x1
- bl sub_80F996C
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A518
- ldr r1, _0813A504
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A508
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A50C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A6FC
- b _0813A570
- .align 2, 0
-_0813A500: .4byte gUnknown_03004B28
-_0813A504: .4byte gSaveBlock1
-_0813A508: .4byte 0x0000049a
-_0813A50C:
- ldr r0, _0813A514
- bl sub_813AD58
- b _0813A542
- .align 2, 0
-_0813A514: .4byte 0x0000fffe
-_0813A518:
- ldr r1, _0813A534
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A538
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A53C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A794
- b _0813A570
- .align 2, 0
-_0813A534: .4byte gSaveBlock1
-_0813A538: .4byte 0x0000049a
-_0813A53C:
- ldr r0, _0813A578
- bl sub_813AD58
-_0813A542:
- movs r0, 0x1
- strh r0, [r4, 0x6]
- movs r0, 0x6
- movs r1, 0x8
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- ldrh r0, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x9
- bl sub_80A418C
- ldr r1, _0813A57C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813A580
- str r1, [r0]
-_0813A570:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A578: .4byte 0x0000fffc
-_0813A57C: .4byte gTasks
-_0813A580: .4byte sub_813A584
- thumb_func_end sub_813A4B4
-
- thumb_func_start sub_813A584
-sub_813A584: @ 813A584
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r7, r0, 3
- ldr r0, _0813A5D0
- mov r8, r0
- adds r4, r7, r0
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- ldr r2, _0813A5D4
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813A5E4
- movs r0, 0x6
- ldrsh r2, [r4, r0]
- ldr r1, _0813A5D8
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, _0813A5DC
- adds r0, r1
- ldrh r0, [r0]
- cmp r2, r0
- beq _0813A5E0
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- b _0813A64A
- .align 2, 0
-_0813A5D0: .4byte gUnknown_03004B28
-_0813A5D4: .4byte gMain
-_0813A5D8: .4byte gSaveBlock1
-_0813A5DC: .4byte 0x0000049a
-_0813A5E0:
- movs r0, 0x1
- b _0813A64A
-_0813A5E4:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A610
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _0813A5FA
- subs r0, r1, 0x1
- b _0813A64A
-_0813A5FA:
- ldr r0, _0813A608
- lsls r1, r3, 2
- adds r1, r0
- ldr r3, _0813A60C
- adds r1, r3
- ldrh r0, [r1]
- b _0813A64A
- .align 2, 0
-_0813A608: .4byte gSaveBlock1
-_0813A60C: .4byte 0x0000049a
-_0813A610:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0813A628
- ldrh r0, [r4, 0x6]
- subs r0, 0xA
- strh r0, [r4, 0x6]
- lsls r0, 16
- cmp r0, 0
- bgt _0813A64C
- movs r0, 0x1
- b _0813A64A
-_0813A628:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0813A668
- ldrh r0, [r4, 0x6]
- adds r0, 0xA
- strh r0, [r4, 0x6]
- movs r0, 0x6
- ldrsh r2, [r4, r0]
- ldr r1, _0813A660
- lsls r0, r6, 2
- adds r0, r1
- ldr r1, _0813A664
- adds r0, r1
- ldrh r0, [r0]
- cmp r2, r0
- ble _0813A64C
-_0813A64A:
- strh r0, [r4, 0x6]
-_0813A64C:
- ldrh r0, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x9
- bl sub_80A418C
- b _0813A6E8
- .align 2, 0
-_0813A660: .4byte gSaveBlock1
-_0813A664: .4byte 0x0000049a
-_0813A668:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A69C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A694
- adds r0, r5, 0
- bl sub_813A6FC
- b _0813A6E8
-_0813A694:
- adds r0, r5, 0
- bl sub_813A794
- b _0813A6E8
-_0813A69C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A6E8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- ldr r2, _0813A6F4
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- movs r3, 0
- ldrsh r1, [r4, r3]
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0813A6F8
- str r1, [r0]
-_0813A6E8:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A6F4: .4byte gSaveBlock1
-_0813A6F8: .4byte sub_813A280
- thumb_func_end sub_813A584
-
- thumb_func_start sub_813A6FC
-sub_813A6FC: @ 813A6FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0813A758
- adds r4, r6, r7
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- ldr r1, _0813A75C
- lsrs r0, 22
- adds r0, r1
- movs r2, 0x93
- lsls r2, 3
- adds r5, r0, r2
- ldrh r0, [r5]
- ldrh r1, [r4, 0x6]
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813A770
- ldrh r0, [r5]
- ldr r1, _0813A760
- bl itemid_copy_name
- ldr r0, _0813A764
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _0813A768
- bl sub_813AD58
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A76C
- b _0813A782
- .align 2, 0
-_0813A758: .4byte gUnknown_03004B28
-_0813A75C: .4byte gSaveBlock1
-_0813A760: .4byte gStringVar1
-_0813A764: .4byte gStringVar2
-_0813A768: .4byte 0x0000fffd
-_0813A76C: .4byte sub_813A8F0
-_0813A770:
- movs r0, 0
- strh r0, [r4, 0x6]
- ldr r0, _0813A78C
- bl sub_813AD58
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A790
-_0813A782:
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A78C: .4byte 0x0000fffa
-_0813A790: .4byte sub_813A984
- thumb_func_end sub_813A6FC
-
- thumb_func_start sub_813A794
-sub_813A794: @ 813A794
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r7, r0, 3
- ldr r0, _0813A7FC
- mov r8, r0
- adds r4, r7, r0
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- ldr r1, _0813A800
- lsrs r0, 22
- adds r0, r1
- movs r2, 0x93
- lsls r2, 3
- adds r5, r0, r2
- ldrh r0, [r5]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _0813A814
- ldrh r0, [r5]
- ldr r1, _0813A804
- bl itemid_copy_name
- ldr r0, _0813A808
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _0813A80C
- bl sub_813AD58
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0813A810
- adds r0, r6, 0
- bl sub_80F914C
- b _0813A828
- .align 2, 0
-_0813A7FC: .4byte gUnknown_03004B28
-_0813A800: .4byte gSaveBlock1
-_0813A804: .4byte gStringVar1
-_0813A808: .4byte gStringVar2
-_0813A80C: .4byte 0x0000fff8
-_0813A810: .4byte gUnknown_084062E0
-_0813A814:
- movs r0, 0
- strh r0, [r4, 0x6]
- ldr r0, _0813A834
- bl sub_813AD58
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0813A838
- str r1, [r0]
-_0813A828:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A834: .4byte 0x0000fff9
-_0813A838: .4byte sub_813A8F0
- thumb_func_end sub_813A794
-
- thumb_func_start sub_813A83C
-sub_813A83C: @ 813A83C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _0813A86C
- bl sub_813AD58
- ldr r1, _0813A870
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813A874
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A86C: .4byte 0x0000fffb
-_0813A870: .4byte gTasks
-_0813A874: .4byte sub_813A8F0
- thumb_func_end sub_813A83C
-
- thumb_func_start sub_813A878
-sub_813A878: @ 813A878
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _0813A8E4
- adds r5, r4, r6
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x2
- bl InitMenu
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- ldr r2, _0813A8E8
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- movs r3, 0
- ldrsh r1, [r5, r3]
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0813A8EC
- str r0, [r4]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A8E4: .4byte gUnknown_03004B28
-_0813A8E8: .4byte gSaveBlock1
-_0813A8EC: .4byte sub_813A280
- thumb_func_end sub_813A878
-
- thumb_func_start sub_813A8F0
-sub_813A8F0: @ 813A8F0
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0813A97C
- adds r5, r0, r1
- ldr r0, _0813A980
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813A912
- cmp r1, 0x2
- bne _0813A972
-_0813A912:
- ldrb r0, [r5, 0x2]
- ldrb r1, [r5]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x6]
- bl sub_80A97F4
- ldrh r4, [r5, 0x4]
- bl sub_80A96E4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x4]
- lsls r4, 16
- asrs r4, 16
- cmp r4, r0
- beq _0813A952
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r4, r0
- bge _0813A952
- ldrh r1, [r5, 0x2]
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0813A952
- subs r0, r1, 0x1
- strh r0, [r5, 0x2]
-_0813A952:
- adds r0, r6, 0
- bl sub_813A240
- adds r0, r6, 0
- bl sub_813A9EC
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x2
- bl InitMenu
-_0813A972:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A97C: .4byte gUnknown_03004B28
-_0813A980: .4byte gMain
- thumb_func_end sub_813A8F0
-
- thumb_func_start sub_813A984
-sub_813A984: @ 813A984
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r5, _0813A9DC
- adds r3, r4, r5
- ldr r0, _0813A9E0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813A9A4
- cmp r1, 0x2
- bne _0813A9D6
-_0813A9A4:
- ldr r2, _0813A9E4
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- movs r6, 0
- ldrsh r1, [r3, r6]
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- adds r0, r5, 0
- subs r0, 0x8
- adds r0, r4, r0
- ldr r1, _0813A9E8
- str r1, [r0]
-_0813A9D6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A9DC: .4byte gUnknown_03004B28
-_0813A9E0: .4byte gMain
-_0813A9E4: .4byte gSaveBlock1
-_0813A9E8: .4byte sub_813A280
- thumb_func_end sub_813A984
-
- thumb_func_start sub_813A9EC
-sub_813A9EC: @ 813A9EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- adds r0, r4, 0
- bl sub_813AE0C
- ldr r1, _0813AA28
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813AA2C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AA28: .4byte gTasks
-_0813AA2C: .4byte sub_813A280
- thumb_func_end sub_813A9EC
-
- thumb_func_start sub_813AA30
-sub_813AA30: @ 813AA30
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813AA80
- adds r4, r1, r0
- ldrb r0, [r4]
- ldrb r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- strh r0, [r4, 0x12]
- ldrb r0, [r4, 0x4]
- cmp r0, r5
- bls _0813AA88
- ldrb r0, [r4, 0x10]
- cmp r0, r5
- beq _0813AA88
- cmp r2, 0
- bne _0813AA88
- ldr r1, _0813AA84
- movs r0, 0x10
- ldrsh r2, [r4, r0]
- lsls r2, 2
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- adds r2, r1
- ldr r3, [r2]
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r3, [r0]
- b _0813AAB8
- .align 2, 0
-_0813AA80: .4byte gUnknown_03004B28
-_0813AA84: .4byte gSaveBlock1
-_0813AA88:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r5, r0
- bne _0813AA9C
- ldr r0, _0813AA98
- bl sub_813AD58
- b _0813AAAE
- .align 2, 0
-_0813AA98: .4byte 0x0000ffff
-_0813AA9C:
- ldr r0, _0813AAC0
- lsls r1, r5, 2
- adds r1, r0
- movs r2, 0x93
- lsls r2, 3
- adds r1, r2
- ldrh r0, [r1]
- bl sub_813AD58
-_0813AAAE:
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- subs r0, r1, r0
-_0813AAB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AAC0: .4byte gSaveBlock1
- thumb_func_end sub_813AA30
-
- thumb_func_start sub_813AAC4
-sub_813AAC4: @ 813AAC4
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r6, [sp, 0x14]
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0813AAF4
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A4164
- cmp r6, 0
- beq _0813AAFC
- ldr r0, _0813AAF8
- movs r1, 0x1A
- adds r2, r7, 0
- bl MenuPrint
- b _0813AB06
- .align 2, 0
-_0813AAF4: .4byte gStringVar1
-_0813AAF8: .4byte gUnknown_0840632A
-_0813AAFC:
- ldr r0, _0813AB0C
- movs r1, 0x1A
- adds r2, r7, 0
- bl MenuPrint
-_0813AB06:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB0C: .4byte gUnknown_08406327
- thumb_func_end sub_813AAC4
-
- thumb_func_start sub_813AB10
-sub_813AB10: @ 813AB10
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0813AB24
- movs r1, 0x19
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB24: .4byte gUnknown_08406330
- thumb_func_end sub_813AB10
-
- thumb_func_start sub_813AB28
-sub_813AB28: @ 813AB28
- push {r4,r5,lr}
- adds r4, r2, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldrh r0, [r0]
- ldr r1, _0813AB48
- bl itemid_copy_name
- cmp r4, 0
- beq _0813AB50
- ldr r0, _0813AB4C
- movs r1, 0x10
- adds r2, r5, 0
- bl MenuPrint
- b _0813AB5A
- .align 2, 0
-_0813AB48: .4byte gStringVar1
-_0813AB4C: .4byte gUnknown_0840631E
-_0813AB50:
- ldr r0, _0813AB60
- movs r1, 0x10
- adds r2, r5, 0
- bl MenuPrint
-_0813AB5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB60: .4byte gUnknown_08406318
- thumb_func_end sub_813AB28
-
- thumb_func_start sub_813AB64
-sub_813AB64: @ 813AB64
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_813AB28
- ldrh r0, [r6, 0x2]
- str r5, [sp]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x3
- bl sub_813AAC4
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813AB64
-
- thumb_func_start sub_813AB90
-sub_813AB90: @ 813AB90
- push {r4,lr}
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_813AB28
- adds r0, r4, 0
- bl sub_813AB10
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813AB90
-
- thumb_func_start sub_813ABAC
-sub_813ABAC: @ 813ABAC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- lsls r1, 24
- lsrs r5, r1, 24
- adds r1, r5, 0
- bl sub_813AB28
- ldrh r1, [r4]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _0813ABD8
- ldrh r0, [r4, 0x2]
- str r6, [sp]
- movs r1, 0x1
- adds r2, r5, 0
- movs r3, 0x3
- bl sub_813AAC4
- b _0813ABDE
-_0813ABD8:
- adds r0, r5, 0
- bl sub_813AB10
-_0813ABDE:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813ABAC
-
- thumb_func_start sub_813ABE8
-sub_813ABE8: @ 813ABE8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813AC0C
- adds r6, r1, r0
- movs r0, 0
- mov r8, r0
- ldrh r5, [r6, 0x2]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- b _0813ACC4
- .align 2, 0
-_0813AC0C: .4byte gUnknown_03004B28
-_0813AC10:
- subs r0, r5, r1
- lsls r0, 17
- lsrs r0, 16
- mov r8, r0
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r5, r0
- beq _0813AD04
- movs r7, 0
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0813AC34
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r5, r0
- bne _0813AC34
- movs r7, 0x1
-_0813AC34:
- ldr r0, _0813AC5C
- lsls r4, r5, 2
- adds r0, r4, r0
- movs r2, 0x93
- lsls r2, 3
- adds r0, r2
- ldrh r0, [r0]
- bl sub_80A9670
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x4
- bhi _0813ACBA
- lsls r0, 2
- ldr r1, _0813AC60
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813AC5C: .4byte gSaveBlock1
-_0813AC60: .4byte _0813AC64
- .align 2, 0
-_0813AC64:
- .4byte _0813AC78
- .4byte _0813AC78
- .4byte _0813ACA8
- .4byte _0813AC78
- .4byte _0813AC90
-_0813AC78:
- ldr r0, _0813AC8C
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- bl sub_813AB64
- b _0813ACBA
- .align 2, 0
-_0813AC8C: .4byte gSaveBlock1 + 0x498
-_0813AC90:
- ldr r0, _0813ACA4
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- bl sub_813AB90
- b _0813ACBA
- .align 2, 0
-_0813ACA4: .4byte gSaveBlock1 + 0x498
-_0813ACA8:
- ldr r0, _0813AD00
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- bl sub_813ABAC
-_0813ACBA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x2
- ldrsh r1, [r6, r0]
-_0813ACC4:
- movs r2, 0x8
- ldrsh r0, [r6, r2]
- adds r0, r1, r0
- cmp r5, r0
- blt _0813AC10
-_0813ACCE:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- subs r0, r5, r0
- cmp r0, 0x7
- bgt _0813ACEA
- mov r1, r8
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x10
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
-_0813ACEA:
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0813AD20
- movs r0, 0
- movs r1, 0xB8
- movs r2, 0x8
- bl sub_80F953C
- b _0813AD26
- .align 2, 0
-_0813AD00: .4byte gSaveBlock1 + 0x498
-_0813AD04:
- ldr r0, _0813AD1C
- mov r2, r8
- adds r2, 0x2
- lsls r2, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x80
- movs r3, 0x68
- bl sub_8072A18
- b _0813ACCE
- .align 2, 0
-_0813AD1C: .4byte gOtherText_CancelNoTerminator
-_0813AD20:
- movs r0, 0
- bl SetBgTilemapBuffer
-_0813AD26:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- movs r2, 0x8
- ldrsh r1, [r6, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r6, r2]
- cmp r0, r1
- bgt _0813AD44
- movs r0, 0x1
- movs r1, 0xB8
- movs r2, 0x98
- bl sub_80F953C
- b _0813AD4A
-_0813AD44:
- movs r0, 0x1
- bl SetBgTilemapBuffer
-_0813AD4A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813ABE8
-
- thumb_func_start sub_813AD58
-sub_813AD58: @ 813AD58
- push {lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _0813AD74
- adds r0, r1, r2
- cmp r0, 0x8
- bhi _0813ADE8
- lsls r0, 2
- ldr r1, _0813AD78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813AD74: .4byte 0xffff0009
-_0813AD78: .4byte _0813AD7C
- .align 2, 0
-_0813AD7C:
- .4byte _0813ADE0
- .4byte _0813ADD8
- .4byte _0813ADD0
- .4byte _0813ADC8
- .4byte _0813ADC0
- .4byte _0813ADB8
- .4byte _0813ADB0
- .4byte _0813ADA8
- .4byte _0813ADA0
-_0813ADA0:
- ldr r1, _0813ADA4
- b _0813ADF0
- .align 2, 0
-_0813ADA4: .4byte gMenuText_GoBackToPrev
-_0813ADA8:
- ldr r1, _0813ADAC
- b _0813ADF0
- .align 2, 0
-_0813ADAC: .4byte gOtherText_HowManyToWithdraw
-_0813ADB0:
- ldr r1, _0813ADB4
- b _0813ADF0
- .align 2, 0
-_0813ADB4: .4byte gOtherText_WithdrewThing
-_0813ADB8:
- ldr r1, _0813ADBC
- b _0813ADF0
- .align 2, 0
-_0813ADBC: .4byte gOtherText_HowManyToToss
-_0813ADC0:
- ldr r1, _0813ADC4
- b _0813ADF0
- .align 2, 0
-_0813ADC4: .4byte gOtherText_ThrewAwayItem
-_0813ADC8:
- ldr r1, _0813ADCC
- b _0813ADF0
- .align 2, 0
-_0813ADCC: .4byte gOtherText_NoMoreRoom
-_0813ADD0:
- ldr r1, _0813ADD4
- b _0813ADF0
- .align 2, 0
-_0813ADD4: .4byte gOtherText_TooImportant
-_0813ADD8:
- ldr r1, _0813ADDC
- b _0813ADF0
- .align 2, 0
-_0813ADDC: .4byte gOtherText_OkayToThrowAwayPrompt
-_0813ADE0:
- ldr r1, _0813ADE4
- b _0813ADF0
- .align 2, 0
-_0813ADE4: .4byte gOtherText_SwitchWhichItem
-_0813ADE8:
- adds r0, r1, 0
- bl itemid_get_description
- adds r1, r0, 0
-_0813ADF0:
- movs r0, 0x30
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r1, 0
- movs r1, 0x8
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_813AD58
-
- thumb_func_start sub_813AE0C
-sub_813AE0C: @ 813AE0C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _0813AE48
- adds r4, r1, r2
- ldrh r1, [r4]
- ldrh r2, [r4, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r5, r1, 16
- bl sub_813ABE8
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813AE62
- lsls r0, r5, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0813AE50
- ldr r0, _0813AE4C
- bl sub_813AD58
- b _0813AE62
- .align 2, 0
-_0813AE48: .4byte gUnknown_03004B28
-_0813AE4C: .4byte 0x0000ffff
-_0813AE50:
- ldr r0, _0813AE68
- lsls r1, 2
- adds r1, r0
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- bl sub_813AD58
-_0813AE62:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AE68: .4byte gSaveBlock1
- thumb_func_end sub_813AE0C
-
- thumb_func_start sub_813AE6C
-sub_813AE6C: @ 813AE6C
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, _0813AEF8
- adds r5, r0
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- bl sub_813AF04
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813AEFC
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- ldr r0, _0813AF00
- lsls r4, 3
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- adds r0, r6, 0
- bl sub_813ABE8
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AEF8: .4byte gUnknown_03004B28
-_0813AEFC: .4byte gSaveBlock1
-_0813AF00: .4byte gUnknown_084062C0
- thumb_func_end sub_813AE6C
-
- thumb_func_start sub_813AF04
-sub_813AF04: @ 813AF04
- push {lr}
- sub sp, 0x8
- ldr r1, _0813AF38
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- add r0, sp, 0x4
- movs r1, 0xDF
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- adds r0, 0x2
- movs r1, 0xD1
- movs r2, 0x2
- bl LoadPalette
- mov r0, sp
- movs r1, 0xD8
- movs r2, 0x2
- bl LoadPalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0813AF38: .4byte gUnknown_08406334
- thumb_func_end sub_813AF04
-
- thumb_func_start sub_813AF3C
-sub_813AF3C: @ 813AF3C
- push {r4,lr}
- movs r2, 0
- movs r1, 0x6
- ldr r4, _0813AF70
- ldr r3, _0813AF74
-_0813AF46:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813AF5C
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_0813AF5C:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _0813AF46
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0813AF70: .4byte gSaveBlock1
-_0813AF74: .4byte 0x00002b6c
- thumb_func_end sub_813AF3C
-
- thumb_func_start sub_813AF78
-sub_813AF78: @ 813AF78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- movs r2, 0x6
-_0813AF86:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r3, r0, 24
- mov r10, r1
- cmp r3, 0xF
- bhi _0813AFF4
- ldr r0, _0813B010
- mov r12, r0
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- add r0, r12
- ldr r1, _0813B014
- adds r1, r0
- mov r8, r1
- ldr r2, _0813B018
- mov r9, r2
- adds r4, r0, r2
-_0813AFAA:
- mov r5, r8
- ldrh r0, [r5]
- cmp r0, 0
- bne _0813AFEA
- mov r1, sp
- adds r0, r4, 0
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- add r2, r12
- add r2, r9
- adds r1, r4, 0
- adds r0, r2, 0
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- mov r0, sp
- ldm r0!, {r1,r5,r7}
- stm r2!, {r1,r5,r7}
- ldm r0!, {r1,r6,r7}
- stm r2!, {r1,r6,r7}
- ldm r0!, {r5-r7}
- stm r2!, {r5-r7}
-_0813AFEA:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _0813AFAA
-_0813AFF4:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0xE
- bls _0813AF86
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B010: .4byte gSaveBlock1
-_0813B014: .4byte 0x00002b6c
-_0813B018: .4byte 0x00002b4c
- thumb_func_end sub_813AF78
-
- thumb_func_start sub_813B01C
-sub_813B01C: @ 813B01C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r1, _0813B0B8
- ldrb r4, [r1, 0x2]
- ldrb r0, [r1, 0x1]
- adds r0, r4, r0
- cmp r4, r0
- bge _0813B08A
- adds r6, r1, 0
- ldr r0, _0813B0BC
- mov r8, r0
-_0813B036:
- ldrb r0, [r6, 0x2]
- subs r0, r4, r0
- lsls r0, 17
- lsrs r7, r0, 16
- adds r0, r7, 0x2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r3, r7, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x15
- adds r1, r5, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- ldrb r0, [r6, 0x3]
- cmp r4, r0
- beq _0813B0C4
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0813B0C0
- adds r1, r0
- mov r0, r8
- bl StringCopy
- mov r0, r8
- bl sub_814A568
- mov r0, r8
- movs r1, 0x15
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r6, 0x2]
- ldrb r1, [r6, 0x1]
- adds r0, r1
- cmp r4, r0
- blt _0813B036
-_0813B08A:
- ldr r5, _0813B0B8
- ldrb r0, [r5, 0x2]
- subs r0, r4, r0
- cmp r0, 0x8
- beq _0813B0A4
- adds r1, r7, 0x4
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x15
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
-_0813B0A4:
- ldrb r0, [r5, 0x2]
- cmp r0, 0
- beq _0813B0D4
- movs r0, 0
- movs r1, 0xC8
- movs r2, 0x8
- bl sub_80F953C
- b _0813B0DA
- .align 2, 0
-_0813B0B8: .4byte 0x0201fe00
-_0813B0BC: .4byte gStringVar1
-_0813B0C0: .4byte gSaveBlock1 + 0x2C36
-_0813B0C4:
- ldr r0, _0813B0D0
- movs r1, 0x15
- adds r2, r5, 0
- bl MenuPrint
- b _0813B08A
- .align 2, 0
-_0813B0D0: .4byte gOtherText_CancelNoTerminator
-_0813B0D4:
- movs r0, 0
- bl SetBgTilemapBuffer
-_0813B0DA:
- ldr r0, _0813B0F4
- ldrb r1, [r0, 0x2]
- ldrb r2, [r0, 0x1]
- adds r1, r2
- ldrb r0, [r0, 0x3]
- cmp r1, r0
- bgt _0813B0F8
- movs r0, 0x1
- movs r1, 0xC8
- movs r2, 0x98
- bl sub_80F953C
- b _0813B0FE
- .align 2, 0
-_0813B0F4: .4byte 0x0201fe00
-_0813B0F8:
- movs r0, 0x1
- bl SetBgTilemapBuffer
-_0813B0FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813B01C
-
- thumb_func_start sub_813B108
-sub_813B108: @ 813B108
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813B16C
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- movs r0, 0x14
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- bl sub_813B01C
- ldr r0, _0813B170
- ldrb r3, [r0, 0x1]
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x15
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B16C: .4byte gPCText_Mailbox
-_0813B170: .4byte 0x0201fe00
- thumb_func_end sub_813B108
-
- thumb_func_start sub_813B174
-sub_813B174: @ 813B174
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _0813B1AC
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0813B274
- ldr r2, _0813B1B0
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813B1CA
- ldr r4, _0813B1B4
- ldrb r0, [r4]
- cmp r0, 0
- beq _0813B1B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0813B1E6
- .align 2, 0
-_0813B1AC: .4byte gPaletteFade
-_0813B1B0: .4byte gMain
-_0813B1B4: .4byte 0x0201fe00
-_0813B1B8:
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- beq _0813B274
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0x2]
- subs r0, 0x1
- b _0813B208
-_0813B1CA:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0813B212
- ldr r4, _0813B1F0
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- cmp r1, r0
- beq _0813B1F4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0813B1E6:
- bl MoveMenuCursor
- strb r0, [r4]
- b _0813B274
- .align 2, 0
-_0813B1F0: .4byte 0x0201fe00
-_0813B1F4:
- ldrb r0, [r4, 0x2]
- adds r0, r1
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0813B274
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0x2]
- adds r0, 0x1
-_0813B208:
- strb r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813B01C
- b _0813B274
-_0813B212:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813B25C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0813B23C
- ldrb r1, [r0, 0x2]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x3]
- cmp r1, r0
- bne _0813B240
- adds r0, r5, 0
- bl sub_813B320
- b _0813B274
- .align 2, 0
-_0813B23C: .4byte 0x0201fe00
-_0813B240:
- bl sub_813B27C
- ldr r0, _0813B254
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813B258
- str r0, [r1]
- b _0813B274
- .align 2, 0
-_0813B254: .4byte gTasks
-_0813B258: .4byte sub_813B294
-_0813B25C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813B274
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_813B320
-_0813B274:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813B174
-
- thumb_func_start sub_813B27C
-sub_813B27C: @ 813B27C
- push {lr}
- bl BuyMenuFreeMemory
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_813B27C
-
- thumb_func_start sub_813B294
-sub_813B294: @ 813B294
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r4, _0813B2E8
- ldr r1, _0813B2EC
- ldrb r0, [r1]
- adds r0, 0x6
- ldrb r1, [r1, 0x2]
- adds r0, r1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813B2F0
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl sub_814A568
- ldr r4, _0813B2F4
- ldr r1, _0813B2F8
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _0813B2FC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B2E8: .4byte gStringVar1
-_0813B2EC: .4byte 0x0201fe00
-_0813B2F0: .4byte gSaveBlock1 + 0x2B5E
-_0813B2F4: .4byte gStringVar4
-_0813B2F8: .4byte gOtherText_WhatWillYouDoMail
-_0813B2FC: .4byte sub_813B348
- thumb_func_end sub_813B294
-
- thumb_func_start sub_813B300
-sub_813B300: @ 813B300
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_8139E24
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813B300
-
- thumb_func_start sub_813B320
-sub_813B320: @ 813B320
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_813B27C
- ldr r1, _0813B340
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B344
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B340: .4byte gTasks
-_0813B344: .4byte sub_813B300
- thumb_func_end sub_813B320
-
- thumb_func_start sub_813B348
-sub_813B348: @ 813B348
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _0813B394
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- ldr r1, _0813B398
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B39C
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B394: .4byte gUnknown_084062F8
-_0813B398: .4byte gTasks
-_0813B39C: .4byte sub_813B3A0
- thumb_func_end sub_813B348
-
- thumb_func_start sub_813B3A0
-sub_813B3A0: @ 813B3A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _0813B3C4
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813B3C8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0813B420
- .align 2, 0
-_0813B3C4: .4byte gMain
-_0813B3C8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813B3DE
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0813B420
-_0813B3DE:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813B40C
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0813B408
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 21
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0813B420
- .align 2, 0
-_0813B408: .4byte gUnknown_084062F8
-_0813B40C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813B420
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_813B734
-_0813B420:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813B3A0
-
- thumb_func_start sub_813B428
-sub_813B428: @ 813B428
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _0813B44C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B450
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B44C: .4byte gTasks
-_0813B450: .4byte sub_813B454
- thumb_func_end sub_813B428
-
- thumb_func_start sub_813B454
-sub_813B454: @ 813B454
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813B490
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813B488
- ldr r0, _0813B494
- ldrb r1, [r0]
- adds r1, 0x6
- ldrb r0, [r0, 0x2]
- adds r1, r0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813B498
- adds r0, r1
- ldr r1, _0813B49C
- movs r2, 0x1
- bl sub_80F890C
- adds r0, r4, 0
- bl DestroyTask
-_0813B488:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B490: .4byte gPaletteFade
-_0813B494: .4byte 0x0201fe00
-_0813B498: .4byte gSaveBlock1 + 0x2B4C
-_0813B49C: .4byte sub_813B4F0
- thumb_func_end sub_813B454
-
- thumb_func_start sub_813B4A0
-sub_813B4A0: @ 813B4A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B4C0
- ldr r0, _0813B4C8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813B4CC
- str r0, [r1]
-_0813B4C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B4C8: .4byte gTasks
-_0813B4CC: .4byte sub_813B174
- thumb_func_end sub_813B4A0
-
- thumb_func_start sub_813B4D0
-sub_813B4D0: @ 813B4D0
- push {lr}
- ldr r0, _0813B4EC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl sub_813B108
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0813B4EC: .4byte sub_813B4A0
- thumb_func_end sub_813B4D0
-
- thumb_func_start sub_813B4F0
-sub_813B4F0: @ 813B4F0
- push {lr}
- ldr r0, _0813B504
- ldr r1, _0813B508
- str r1, [r0]
- ldr r0, _0813B50C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0813B504: .4byte gUnknown_0300485C
-_0813B508: .4byte sub_813B4D0
-_0813B50C: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_813B4F0
-
- thumb_func_start sub_813B510
-sub_813B510: @ 813B510
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r0, _0813B540
- ldr r1, _0813B544
- bl StringCopy
- ldr r0, _0813B548
- movs r1, 0x1
- movs r2, 0x3
- bl MenuPrint
- ldr r1, _0813B54C
- ldr r2, _0813B550
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B540: .4byte gStringVar1
-_0813B544: .4byte gOtherText_MoveToBag
-_0813B548: .4byte gUnknown_0840633A
-_0813B54C: .4byte gOtherText_MessageWillBeLost
-_0813B550: .4byte sub_813B554
- thumb_func_end sub_813B510
-
- thumb_func_start sub_813B554
-sub_813B554: @ 813B554
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0813B574
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B574: .4byte gUnknown_084062E8
- thumb_func_end sub_813B554
-
- thumb_func_start sub_813B578
-sub_813B578: @ 813B578
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0813B5BC
- ldrb r0, [r4]
- adds r0, 0x6
- ldrb r1, [r4, 0x2]
- adds r0, r1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813B5C0
- adds r6, r1, r0
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldrh r0, [r6, 0x20]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- cmp r0, 0
- bne _0813B5CC
- ldr r1, _0813B5C4
- ldr r2, _0813B5C8
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _0813B602
- .align 2, 0
-_0813B5BC: .4byte 0x0201fe00
-_0813B5C0: .4byte gSaveBlock1 + 0x2B4C
-_0813B5C4: .4byte gOtherText_BagIsFull
-_0813B5C8: .4byte sub_813B758
-_0813B5CC:
- ldr r1, _0813B608
- ldr r2, _0813B60C
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- adds r0, r6, 0
- bl sub_80A2B40
- bl sub_813AF78
- ldrb r0, [r4, 0x3]
- subs r0, 0x1
- strb r0, [r4, 0x3]
- ldrb r1, [r4, 0x3]
- ldrb r0, [r4, 0x1]
- ldrb r2, [r4, 0x2]
- adds r0, r2
- cmp r1, r0
- bge _0813B5FC
- cmp r2, 0
- beq _0813B5FC
- subs r0, r2, 0x1
- strb r0, [r4, 0x2]
-_0813B5FC:
- adds r0, r5, 0
- bl sub_813A240
-_0813B602:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B608: .4byte gOtherText_MailWasReturned
-_0813B60C: .4byte sub_813B758
- thumb_func_end sub_813B578
-
- thumb_func_start sub_813B610
-sub_813B610: @ 813B610
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_813B758
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813B610
-
- thumb_func_start sub_813B630
-sub_813B630: @ 813B630
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _0813B648
- adds r0, r4, 0
- bl sub_813B718
- b _0813B65E
-_0813B648:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _0813B664
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813B668
- str r0, [r1]
-_0813B65E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B664: .4byte gTasks
-_0813B668: .4byte sub_813B66C
- thumb_func_end sub_813B630
-
- thumb_func_start sub_813B66C
-sub_813B66C: @ 813B66C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813B698
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813B690
- ldr r0, _0813B69C
- bl SetMainCallback2
- ldr r1, _0813B6A0
- movs r0, 0x3
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0813B690:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B698: .4byte gPaletteFade
-_0813B69C: .4byte sub_808B020
-_0813B6A0: .4byte gUnknown_02038561
- thumb_func_end sub_813B66C
-
- thumb_func_start sub_813B6A4
-sub_813B6A4: @ 813B6A4
- push {r4-r6,lr}
- ldr r0, _0813B6F0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _0813B6F4
- ldrb r4, [r5, 0x3]
- bl sub_813AF3C
- strb r0, [r5, 0x3]
- bl sub_813AF78
- ldrb r0, [r5, 0x3]
- cmp r4, r0
- beq _0813B6DA
- ldrb r1, [r5, 0x3]
- ldrb r0, [r5, 0x1]
- ldrb r2, [r5, 0x2]
- adds r0, r2
- cmp r1, r0
- bge _0813B6DA
- cmp r2, 0
- beq _0813B6DA
- subs r0, r2, 0x1
- strb r0, [r5, 0x2]
-_0813B6DA:
- adds r0, r6, 0
- bl sub_813A240
- adds r0, r6, 0
- bl sub_813B108
- bl pal_fill_black
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B6F0: .4byte sub_813B4A0
-_0813B6F4: .4byte 0x0201fe00
- thumb_func_end sub_813B6A4
-
- thumb_func_start sub_813B6F8
-sub_813B6F8: @ 813B6F8
- push {lr}
- ldr r0, _0813B70C
- ldr r1, _0813B710
- str r1, [r0]
- ldr r0, _0813B714
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0813B70C: .4byte gUnknown_0300485C
-_0813B710: .4byte sub_813B6A4
-_0813B714: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_813B6F8
-
- thumb_func_start sub_813B718
-sub_813B718: @ 813B718
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813B72C
- ldr r2, _0813B730
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_0813B72C: .4byte gOtherText_NoPokemon
-_0813B730: .4byte sub_813B758
- thumb_func_end sub_813B718
-
- thumb_func_start sub_813B734
-sub_813B734: @ 813B734
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_813B758
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813B734
-
- thumb_func_start sub_813B758
-sub_813B758: @ 813B758
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_813B108
- ldr r1, _0813B77C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B780
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B77C: .4byte gTasks
-_0813B780: .4byte sub_813B174
- thumb_func_end sub_813B758
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_81258BC.s b/asm/rom_81258BC.s
new file mode 100644
index 000000000..b81547b74
--- /dev/null
+++ b/asm/rom_81258BC.s
@@ -0,0 +1,45322 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_81258BC
+sub_81258BC: @ 81258BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ ldr r0, _08125958
+ ldr r1, [r0]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 17
+ lsrs r7, r0, 16
+ movs r5, 0
+ ldr r6, _0812595C
+_081258D8:
+ adds r0, r5, r7
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r6]
+ bl sub_8125BF8
+ ldr r0, [r6]
+ ldr r1, _08125960
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ bne _081258F4
+ ldr r0, _08125964
+ strh r5, [r0]
+_081258F4:
+ ldr r0, [r6]
+ lsls r1, 3
+ mov r2, r8
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x4]
+ bl sub_8125C10
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r2, [r6]
+ ldr r1, _08125968
+ adds r0, r2, r1
+ ldr r1, [r0]
+ ldr r0, _0812596C
+ adds r5, 0x1
+ cmp r1, r0
+ bne _08125944
+ ldr r1, _08125970
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _08125944
+ movs r2, 0
+ ldrh r0, [r4, 0x4]
+ cmp r2, r0
+ bcs _08125944
+ adds r3, r4, 0
+ ldr r4, _0812595C
+_0812592C:
+ ldr r1, [r3]
+ adds r1, r2
+ ldr r0, [r4]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r1, [r3, 0x4]
+ cmp r2, r1
+ bcc _0812592C
+_08125944:
+ lsls r0, r5, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _081258D8
+ movs r0, 0x1
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125958: .4byte gUnknown_03005EAC
+_0812595C: .4byte gUnknown_03005EB0
+_08125960: .4byte 0x00000ff4
+_08125964: .4byte gUnknown_03005E9C
+_08125968: .4byte 0x00000ff8
+_0812596C: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125970: .4byte 0x00000ff6
+ thumb_func_end sub_81258BC
+
+ thumb_func_start sub_8125974
+sub_8125974: @ 8125974
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r0
+ movs r6, 0
+ movs r5, 0
+ movs r4, 0
+ ldr r7, _08125A00
+_08125990:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldr r1, [r7]
+ bl sub_8125BF8
+ ldr r2, [r7]
+ ldr r1, _08125A04
+ adds r0, r2, r1
+ ldr r1, [r0]
+ ldr r0, _08125A08
+ cmp r1, r0
+ bne _081259E0
+ movs r5, 0x1
+ ldr r3, _08125A0C
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsls r0, 3
+ add r0, r10
+ ldrh r1, [r0, 0x4]
+ adds r0, r2, 0
+ bl sub_8125C10
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, [r7]
+ ldr r3, _08125A10
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _081259E0
+ ldr r2, _08125A14
+ adds r0, r1, r2
+ ldr r0, [r0]
+ mov r8, r0
+ subs r3, 0x2
+ adds r1, r3
+ adds r0, r5, 0
+ ldrh r1, [r1]
+ lsls r0, r1
+ orrs r6, r0
+_081259E0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xD
+ bls _08125990
+ cmp r5, 0
+ beq _08125A1C
+ ldr r0, _08125A18
+ movs r1, 0xFF
+ str r1, [sp]
+ cmp r6, r0
+ bne _08125A20
+ movs r2, 0x1
+ str r2, [sp]
+ b _08125A20
+ .align 2, 0
+_08125A00: .4byte gUnknown_03005EB0
+_08125A04: .4byte 0x00000ff8
+_08125A08: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125A0C: .4byte 0x00000ff4
+_08125A10: .4byte 0x00000ff6
+_08125A14: .4byte 0x00000ffc
+_08125A18: .4byte 0x00003fff
+_08125A1C:
+ movs r3, 0
+ str r3, [sp]
+_08125A20:
+ movs r6, 0
+ movs r5, 0
+ movs r4, 0
+ ldr r7, _08125A98
+_08125A28:
+ adds r0, r4, 0
+ adds r0, 0xE
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r7]
+ bl sub_8125BF8
+ ldr r2, [r7]
+ ldr r1, _08125A9C
+ adds r0, r2, r1
+ ldr r1, [r0]
+ ldr r0, _08125AA0
+ cmp r1, r0
+ bne _08125A7C
+ movs r5, 0x1
+ ldr r3, _08125AA4
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsls r0, 3
+ add r0, r10
+ ldrh r1, [r0, 0x4]
+ adds r0, r2, 0
+ bl sub_8125C10
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, [r7]
+ ldr r3, _08125AA8
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08125A7C
+ ldr r2, _08125AAC
+ adds r0, r1, r2
+ ldr r0, [r0]
+ mov r9, r0
+ subs r3, 0x2
+ adds r1, r3
+ adds r0, r5, 0
+ ldrh r1, [r1]
+ lsls r0, r1
+ orrs r6, r0
+_08125A7C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xD
+ bls _08125A28
+ cmp r5, 0
+ beq _08125AB4
+ ldr r0, _08125AB0
+ movs r1, 0xFF
+ cmp r6, r0
+ bne _08125AB6
+ movs r1, 0x1
+ b _08125AB6
+ .align 2, 0
+_08125A98: .4byte gUnknown_03005EB0
+_08125A9C: .4byte 0x00000ff8
+_08125AA0: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125AA4: .4byte 0x00000ff4
+_08125AA8: .4byte 0x00000ff6
+_08125AAC: .4byte 0x00000ffc
+_08125AB0: .4byte 0x00003fff
+_08125AB4:
+ movs r1, 0
+_08125AB6:
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bne _08125B28
+ cmp r1, 0x1
+ bne _08125B18
+ movs r0, 0x1
+ negs r0, r0
+ cmp r8, r0
+ bne _08125ACE
+ mov r1, r9
+ cmp r1, 0
+ beq _08125AD8
+_08125ACE:
+ mov r2, r8
+ cmp r2, 0
+ bne _08125AFC
+ cmp r9, r0
+ bne _08125AFC
+_08125AD8:
+ mov r1, r8
+ adds r1, 0x1
+ mov r0, r9
+ adds r0, 0x1
+ cmp r1, r0
+ bcs _08125AF0
+ ldr r0, _08125AEC
+ mov r3, r9
+ b _08125B10
+ .align 2, 0
+_08125AEC: .4byte gUnknown_03005EAC
+_08125AF0:
+ ldr r0, _08125AF8
+ mov r1, r8
+ str r1, [r0]
+ b _08125B40
+ .align 2, 0
+_08125AF8: .4byte gUnknown_03005EAC
+_08125AFC:
+ cmp r8, r9
+ bcs _08125B0C
+ ldr r0, _08125B08
+ mov r2, r9
+ str r2, [r0]
+ b _08125B40
+ .align 2, 0
+_08125B08: .4byte gUnknown_03005EAC
+_08125B0C:
+ ldr r0, _08125B14
+ mov r3, r8
+_08125B10:
+ str r3, [r0]
+ b _08125B40
+ .align 2, 0
+_08125B14: .4byte gUnknown_03005EAC
+_08125B18:
+ ldr r0, _08125B24
+ mov r2, r8
+ str r2, [r0]
+ cmp r1, 0xFF
+ beq _08125B38
+ b _08125B40
+ .align 2, 0
+_08125B24: .4byte gUnknown_03005EAC
+_08125B28:
+ cmp r1, 0x1
+ bne _08125B44
+ ldr r0, _08125B3C
+ mov r3, r9
+ str r3, [r0]
+ ldr r0, [sp]
+ cmp r0, 0xFF
+ bne _08125B40
+_08125B38:
+ movs r0, 0xFF
+ b _08125B70
+ .align 2, 0
+_08125B3C: .4byte gUnknown_03005EAC
+_08125B40:
+ movs r0, 0x1
+ b _08125B70
+_08125B44:
+ ldr r2, [sp]
+ cmp r2, 0
+ bne _08125B64
+ cmp r1, 0
+ bne _08125B64
+ ldr r0, _08125B5C
+ str r1, [r0]
+ ldr r0, _08125B60
+ strh r1, [r0]
+ movs r0, 0
+ b _08125B70
+ .align 2, 0
+_08125B5C: .4byte gUnknown_03005EAC
+_08125B60: .4byte gUnknown_03005E9C
+_08125B64:
+ ldr r0, _08125B80
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _08125B84
+ strh r1, [r0]
+ movs r0, 0x2
+_08125B70:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125B80: .4byte gUnknown_03005EAC
+_08125B84: .4byte gUnknown_03005E9C
+ thumb_func_end sub_8125974
+
+ thumb_func_start sub_8125B88
+sub_8125B88: @ 8125B88
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ ldr r5, _08125BDC
+ adds r1, r5, 0
+ bl sub_8125BF8
+ ldr r1, _08125BE0
+ adds r0, r5, r1
+ ldr r1, [r0]
+ ldr r0, _08125BE4
+ cmp r1, r0
+ bne _08125BF0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8125C10
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08125BE8
+ adds r1, r5, r2
+ ldrh r1, [r1]
+ cmp r1, r0
+ bne _08125BEC
+ movs r2, 0
+ cmp r2, r4
+ bcs _08125BD6
+_08125BC4:
+ adds r1, r6, r2
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r4
+ bcc _08125BC4
+_08125BD6:
+ movs r0, 0x1
+ b _08125BF2
+ .align 2, 0
+_08125BDC: .4byte 0x02000000
+_08125BE0: .4byte 0x00000ff8
+_08125BE4: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125BE8: .4byte 0x00000ff4
+_08125BEC:
+ movs r0, 0x2
+ b _08125BF2
+_08125BF0:
+ movs r0, 0
+_08125BF2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125B88
+
+ thumb_func_start sub_8125BF8
+sub_8125BF8: @ 8125BF8
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x80
+ lsls r3, 5
+ movs r1, 0
+ bl ReadFlash
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125BF8
+
+ thumb_func_start sub_8125C10
+sub_8125C10: @ 8125C10
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ movs r2, 0
+ movs r3, 0
+ lsrs r1, 18
+ cmp r2, r1
+ bcs _08125C2E
+_08125C20:
+ ldm r4!, {r0}
+ adds r2, r0
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _08125C20
+_08125C2E:
+ lsrs r0, r2, 16
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125C10
+
+ thumb_func_start sub_8125C3C
+sub_8125C3C: @ 8125C3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _08125CB6
+ lsls r0, 2
+ ldr r1, _08125C50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08125C50: .4byte _08125C54
+ .align 2, 0
+_08125C54:
+ .4byte _08125CB6
+ .4byte _08125CD8
+ .4byte _08125CF8
+ .4byte _08125C82
+ .4byte _08125D0C
+ .4byte _08125C6C
+_08125C6C:
+ movs r4, 0x1C
+ ldr r5, _08125CC4
+_08125C70:
+ ldr r1, [r5]
+ adds r0, r4, 0
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1F
+ bls _08125C70
+_08125C82:
+ movs r0, 0xA
+ bl sub_8053108
+ ldr r1, _08125CC8
+ cmp r0, r1
+ bhi _08125C94
+ movs r0, 0xA
+ bl sav12_xor_increment
+_08125C94:
+ movs r4, 0
+ ldr r5, _08125CCC
+_08125C98:
+ adds r0, r4, 0
+ adds r0, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r4, 3
+ adds r2, r5
+ ldr r1, [r2]
+ ldrh r2, [r2, 0x4]
+ bl sub_81253C8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _08125C98
+_08125CB6:
+ bl save_serialize_game
+ ldr r0, _08125CD0
+ ldr r1, _08125CD4
+ bl save_write_to_flash
+ b _08125D2E
+ .align 2, 0
+_08125CC4: .4byte EraseFlashSector
+_08125CC8: .4byte 0x000003e6
+_08125CCC: .4byte gHallOfFameSaveSectionLocations
+_08125CD0: .4byte 0x0000ffff
+_08125CD4: .4byte gSaveSectionLocations
+_08125CD8:
+ bl save_serialize_game
+ movs r4, 0
+_08125CDE:
+ adds r0, r4, 0
+ ldr r1, _08125CF4
+ bl save_write_to_flash
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08125CDE
+ b _08125D2E
+ .align 2, 0
+_08125CF4: .4byte gSaveSectionLocations
+_08125CF8:
+ bl save_serialize_game
+ ldr r1, _08125D08
+ movs r0, 0
+ bl save_write_to_flash
+ b _08125D2E
+ .align 2, 0
+_08125D08: .4byte gSaveSectionLocations
+_08125D0C:
+ movs r4, 0x1C
+ ldr r5, _08125D38
+_08125D10:
+ ldr r1, [r5]
+ adds r0, r4, 0
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1F
+ bls _08125D10
+ bl save_serialize_game
+ ldr r0, _08125D3C
+ ldr r1, _08125D40
+ bl save_write_to_flash
+_08125D2E:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125D38: .4byte EraseFlashSector
+_08125D3C: .4byte 0x0000ffff
+_08125D40: .4byte gSaveSectionLocations
+ thumb_func_end sub_8125C3C
+
+ thumb_func_start sub_8125D44
+sub_8125D44: @ 8125D44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08125D58
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _08125D5C
+ movs r0, 0xFF
+ b _08125D7A
+ .align 2, 0
+_08125D58: .4byte gUnknown_3004820
+_08125D5C:
+ adds r0, r4, 0
+ bl sub_8125C3C
+ ldr r0, _08125D74
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125D78
+ adds r0, r4, 0
+ bl fullscreen_save_activate
+ movs r0, 0xFF
+ b _08125D7A
+ .align 2, 0
+_08125D74: .4byte gUnknown_03005EA8
+_08125D78:
+ movs r0, 0x1
+_08125D7A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125D44
+
+ thumb_func_start sub_8125D80
+sub_8125D80: @ 8125D80
+ push {lr}
+ ldr r0, _08125D98
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _08125DA0
+ bl save_serialize_game
+ ldr r0, _08125D9C
+ bl sub_812546C
+ movs r0, 0
+ b _08125DA2
+ .align 2, 0
+_08125D98: .4byte gUnknown_3004820
+_08125D9C: .4byte gSaveSectionLocations
+_08125DA0:
+ movs r0, 0x1
+_08125DA2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125D80
+
+ thumb_func_start sub_8125DA8
+sub_8125DA8: @ 8125DA8
+ push {r4,lr}
+ ldr r1, _08125DCC
+ movs r0, 0xE
+ bl sub_812550C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08125DD0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125DC4
+ movs r0, 0
+ bl fullscreen_save_activate
+_08125DC4:
+ cmp r4, 0xFF
+ beq _08125DD4
+ movs r0, 0
+ b _08125DD6
+ .align 2, 0
+_08125DCC: .4byte gSaveSectionLocations
+_08125DD0: .4byte gUnknown_03005EA8
+_08125DD4:
+ movs r0, 0x1
+_08125DD6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125DA8
+
+ thumb_func_start sub_8125DDC
+sub_8125DDC: @ 8125DDC
+ push {lr}
+ ldr r1, _08125DFC
+ movs r0, 0xE
+ bl sub_812556C
+ ldr r0, _08125E00
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125DF4
+ movs r0, 0
+ bl fullscreen_save_activate
+_08125DF4:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125DFC: .4byte gSaveSectionLocations
+_08125E00: .4byte gUnknown_03005EA8
+ thumb_func_end sub_8125DDC
+
+ thumb_func_start sub_8125E04
+sub_8125E04: @ 8125E04
+ push {lr}
+ ldr r1, _08125E24
+ movs r0, 0xE
+ bl sub_8125758
+ ldr r0, _08125E28
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125E1C
+ movs r0, 0
+ bl fullscreen_save_activate
+_08125E1C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125E24: .4byte gSaveSectionLocations
+_08125E28: .4byte gUnknown_03005EA8
+ thumb_func_end sub_8125E04
+
+ thumb_func_start sub_8125E2C
+sub_8125E2C: @ 8125E2C
+ push {r4,lr}
+ ldr r0, _08125E58
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _08125E64
+ bl save_serialize_game
+ ldr r4, _08125E5C
+ adds r0, r4, 0
+ bl sub_81254C8
+ ldr r0, _08125E60
+ ldrh r0, [r0]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl sub_812556C
+ movs r0, 0
+ b _08125E66
+ .align 2, 0
+_08125E58: .4byte gUnknown_3004820
+_08125E5C: .4byte gSaveSectionLocations
+_08125E60: .4byte gUnknown_03005EB4
+_08125E64:
+ movs r0, 0x1
+_08125E66:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125E2C
+
+ thumb_func_start sub_8125E6C
+sub_8125E6C: @ 8125E6C
+ push {r4-r6,lr}
+ movs r6, 0
+ ldr r0, _08125E98
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bhi _08125EA0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _08125E9C
+ adds r1, r4, 0
+ bl sub_812556C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81257F0
+ b _08125EAA
+ .align 2, 0
+_08125E98: .4byte gUnknown_03005EB4
+_08125E9C: .4byte gSaveSectionLocations
+_08125EA0:
+ ldr r1, _08125EC0
+ adds r0, r5, 0
+ bl sub_81257F0
+ movs r6, 0x1
+_08125EAA:
+ ldr r0, _08125EC4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125EB8
+ movs r0, 0x1
+ bl fullscreen_save_activate
+_08125EB8:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125EC0: .4byte gSaveSectionLocations
+_08125EC4: .4byte gUnknown_03005EA8
+ thumb_func_end sub_8125E6C
+
+ thumb_func_start sub_8125EC8
+sub_8125EC8: @ 8125EC8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _08125EE0
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _08125EE8
+ ldr r1, _08125EE4
+ movs r0, 0x4
+ strh r0, [r1]
+ movs r0, 0xFF
+ b _08125F40
+ .align 2, 0
+_08125EE0: .4byte gUnknown_3004820
+_08125EE4: .4byte gSaveFileStatus
+_08125EE8:
+ cmp r1, 0
+ beq _08125EF0
+ cmp r1, 0x3
+ beq _08125F1C
+_08125EF0:
+ ldr r0, _08125F0C
+ ldr r1, _08125F10
+ bl sub_812587C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl save_deserialize_game
+ ldr r0, _08125F14
+ strh r4, [r0]
+ ldr r1, _08125F18
+ movs r0, 0
+ str r0, [r1]
+ b _08125F3E
+ .align 2, 0
+_08125F0C: .4byte 0x0000ffff
+_08125F10: .4byte gSaveSectionLocations
+_08125F14: .4byte gSaveFileStatus
+_08125F18: .4byte gUnknown_03005EBC
+_08125F1C:
+ ldr r5, _08125F48
+ ldr r1, [r5]
+ ldrh r2, [r5, 0x4]
+ movs r0, 0x1C
+ bl sub_8125B88
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _08125F3E
+ ldr r1, [r5, 0x8]
+ ldrh r2, [r5, 0xC]
+ movs r0, 0x1D
+ bl sub_8125B88
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08125F3E:
+ adds r0, r4, 0
+_08125F40:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125F48: .4byte gHallOfFameSaveSectionLocations
+ thumb_func_end sub_8125EC8
+
+ thumb_func_start unref_sub_8125F4C
+unref_sub_8125F4C: @ 8125F4C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ movs r1, 0
+ ldr r6, _08125F88
+ movs r5, 0
+ ldr r3, _08125F8C
+_08125F5A:
+ adds r0, r2, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bls _08125F5A
+ ldrb r0, [r6]
+ movs r3, 0x80
+ lsls r3, 5
+ movs r1, 0
+ adds r2, r4, 0
+ bl ReadFlash
+ ldr r1, _08125F90
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _08125F94
+ cmp r1, r0
+ bne _08125F98
+ movs r0, 0x1
+ b _08125F9A
+ .align 2, 0
+_08125F88: .4byte gUnknown_08401E24
+_08125F8C: .4byte 0x00000fff
+_08125F90: .4byte 0x00000ff4
+_08125F94: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125F98:
+ movs r0, 0
+_08125F9A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8125F4C
+
+ thumb_func_start unref_sub_8125FA0
+unref_sub_8125FA0: @ 8125FA0
+ push {r4-r7,lr}
+ movs r0, 0
+ bl sub_8125D44
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r7, _08125FD0
+ ldr r6, _08125FD4
+_08125FB2:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ ldr r1, [r7]
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08125FB2
+ cmp r5, 0xFF
+ bne _08125FD8
+ movs r0, 0x3
+ b _08125FE8
+ .align 2, 0
+_08125FD0: .4byte EraseFlashSector
+_08125FD4: .4byte gUnknown_08401E24
+_08125FD8:
+ cmp r5, 0x3
+ beq _08125FE6
+ movs r0, 0
+ bl sub_8125EC8
+ movs r0, 0x1
+ b _08125FE8
+_08125FE6:
+ movs r0, 0x2
+_08125FE8:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8125FA0
+
+ thumb_func_start unref_sub_8125FF0
+unref_sub_8125FF0: @ 8125FF0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ ldr r4, _08126048
+ movs r2, 0
+ ldr r7, _0812604C
+ movs r5, 0
+ ldr r1, _08126050
+_08126002:
+ adds r0, r4, r2
+ strb r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r1
+ bls _08126002
+ ldr r0, _08126054
+ adds r1, r4, r0
+ ldr r0, _08126058
+ str r0, [r1]
+ movs r2, 0
+ cmp r2, r3
+ bcs _08126030
+_0812601E:
+ adds r1, r4, r2
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bcc _0812601E
+_08126030:
+ ldrb r0, [r7]
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r4, 0
+ bl ProgramFlashSectorAndVerifyNBytes
+ ldr r1, _0812605C
+ str r0, [r1]
+ cmp r0, 0
+ bne _08126060
+ movs r0, 0x1
+ b _08126062
+ .align 2, 0
+_08126048: .4byte 0x02000000
+_0812604C: .4byte gUnknown_08401E24
+_08126050: .4byte 0x00000fff
+_08126054: .4byte 0x00000ff4
+_08126058: .4byte 0x08012025 @ TODO: figure out what this represents
+_0812605C: .4byte gUnknown_02039284
+_08126060:
+ movs r0, 0xFF
+_08126062:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8125FF0
+
+ thumb_func_start unref_sub_8126068
+unref_sub_8126068: @ 8126068
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl ProgramFlashSectorAndVerify
+ cmp r0, 0
+ bne _0812607A
+ movs r0, 0x1
+ b _0812607C
+_0812607A:
+ movs r0, 0xFF
+_0812607C:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8126068
+
+ thumb_func_start unref_sub_8126080
+unref_sub_8126080: @ 8126080
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x80
+ lsls r3, 5
+ movs r1, 0
+ bl ReadFlash
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8126080
+
+ thumb_func_start sub_8126098
+sub_8126098: @ 8126098
+ push {r4,lr}
+ adds r4, r3, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ lsrs r2, 16
+ movs r3, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _081260C6
+ ands r1, r3
+ cmp r1, 0
+ beq _081260C6
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _081260C6
+ movs r0, 0x80
+ .ifdef SAPPHIRE
+ lsls r0, 1 @ unknown difference
+ .endif
+ ands r0, r4
+ cmp r0, 0
+ beq _081260C6
+ movs r0, 0x1
+ b _081260C8
+_081260C6:
+ movs r0, 0
+_081260C8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126098
+
+ thumb_func_start sub_81260D0
+sub_81260D0: @ 81260D0
+ push {lr}
+ ldr r0, _081260E4
+ ldr r1, _081260E8
+ bl StringExpandPlaceholders
+ movs r0, 0x3
+ bl sub_8126160
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081260E4: .4byte gStringVar4
+_081260E8: .4byte gOtherText_DataCannotUseVersion
+ thumb_func_end sub_81260D0
+
+ thumb_func_start sub_81260EC
+sub_81260EC: @ 81260EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r1, _08126114
+ ldr r2, _08126118
+ bl InitScriptContext
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl SetupBytecodeScript
+ str r5, [r4, 0x64]
+ movs r0, 0
+ str r0, [r4, 0x68]
+ str r0, [r4, 0x6C]
+ str r0, [r4, 0x70]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126114: .4byte gScriptFuncs
+_08126118: .4byte gScriptFuncs_End
+ thumb_func_end sub_81260EC
+
+ thumb_func_start sub_812611C
+sub_812611C: @ 812611C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl RunScript
+ lsls r0, 24
+ cmp r0, 0
+ beq _08126134
+ ldr r0, [r4, 0x70]
+ cmp r0, 0
+ beq _08126134
+ movs r0, 0x1
+ b _08126136
+_08126134:
+ movs r0, 0
+_08126136:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812611C
+
+ thumb_func_start sub_812613C
+sub_812613C: @ 812613C
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r4, _0812615C
+ adds r0, r4, 0
+ bl sub_81260EC
+_08126148:
+ adds r0, r4, 0
+ bl sub_812611C
+ cmp r0, 0
+ bne _08126148
+ ldr r0, [r4, 0x6C]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812615C: .4byte gUnknown_02039288
+ thumb_func_end sub_812613C
+
+ thumb_func_start sub_8126160
+sub_8126160: @ 8126160
+ ldr r1, _08126168
+ str r0, [r1, 0x6C]
+ bx lr
+ .align 2, 0
+_08126168: .4byte gUnknown_02039288
+ thumb_func_end sub_8126160
+
+ thumb_func_start sub_812616C
+sub_812616C: @ 812616C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ movs r2, 0
+ cmp r3, r1
+ bcs _08126184
+_08126178:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r3, r0
+ adds r2, 0x1
+ cmp r2, r1
+ bcc _08126178
+_08126184:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812616C
+
+ thumb_func_start sub_812618C
+sub_812618C: @ 812618C
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ orrs r0, r1
+ ldrb r1, [r2, 0x2]
+ lsls r1, 16
+ orrs r0, r1
+ ldrb r1, [r2, 0x3]
+ lsls r1, 24
+ orrs r0, r1
+ bx lr
+ thumb_func_end sub_812618C
+
+ thumb_func_start sub_81261A4
+sub_81261A4: @ 81261A4
+ strb r1, [r0]
+ lsrs r2, r1, 8
+ strb r2, [r0, 0x1]
+ lsrs r2, r1, 16
+ strb r2, [r0, 0x2]
+ lsrs r1, 24
+ strb r1, [r0, 0x3]
+ bx lr
+ thumb_func_end sub_81261A4
+
+ thumb_func_start unref_sub_81261B4
+unref_sub_81261B4: @ 81261B4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _08126204
+ ldrb r0, [r5, 0x11]
+ cmp r0, 0xF
+ bne _08126204
+ adds r6, r5, 0
+ adds r6, 0x12
+ adds r0, r6, 0
+ bl sub_812618C
+ cmp r0, 0
+ bne _08126204
+ adds r0, r5, 0
+ adds r0, 0x16
+ bl sub_812618C
+ adds r4, r0, 0
+ subs r4, r7
+ adds r4, r5
+ adds r0, r5, 0
+ adds r0, 0x1A
+ bl sub_812618C
+ adds r1, r0, 0
+ subs r1, r7
+ adds r1, r5
+ subs r1, r4
+ adds r0, r4, 0
+ bl sub_812616C
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl sub_81261A4
+ movs r0, 0x1
+ b _08126206
+_08126204:
+ movs r0, 0
+_08126206:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_81261B4
+
+ thumb_func_start unref_sub_812620C
+unref_sub_812620C: @ 812620C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _08126260
+ ldrb r0, [r5, 0x11]
+ cmp r0, 0x10
+ bne _08126260
+ adds r6, r5, 0
+ adds r6, 0x12
+ adds r0, r6, 0
+ bl sub_812618C
+ cmp r0, 0
+ bne _08126260
+ adds r0, r5, 0
+ adds r0, 0x16
+ bl sub_812618C
+ adds r4, r0, 0
+ subs r4, r7
+ adds r4, r5
+ adds r0, r5, 0
+ adds r0, 0x1A
+ bl sub_812618C
+ adds r1, r0, 0
+ subs r1, r7
+ adds r1, r5
+ subs r1, r4
+ adds r0, r4, 0
+ bl sub_8041174
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r6, 0
+ bl sub_81261A4
+ movs r0, 0x1
+ b _08126262
+_08126260:
+ movs r0, 0
+_08126262:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_812620C
+
+ thumb_func_start sub_8126268
+sub_8126268: @ 8126268
+ push {lr}
+ movs r2, 0
+ ldr r3, _08126284
+ movs r1, 0
+_08126270:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r2, r0
+ adds r1, 0x1
+ cmp r1, 0xB
+ bls _08126270
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126284: .4byte gSaveBlock1 + 0x3A80
+ thumb_func_end sub_8126268
+
+ thumb_func_start sub_8126288
+sub_8126288: @ 8126288
+ push {r4,lr}
+ ldr r4, _081262B4
+ bl sub_8126268
+ adds r1, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081262B0
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _081262B0
+ ldrh r0, [r4, 0x2]
+ cmp r0, 0
+ beq _081262B0
+ cmp r1, 0
+ beq _081262B0
+ subs r0, r4, 0x4
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _081262B8
+_081262B0:
+ movs r0, 0
+ b _081262BA
+ .align 2, 0
+_081262B4: .4byte gSaveBlock1 + 0x3A80
+_081262B8:
+ movs r0, 0x1
+_081262BA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126288
+
+ thumb_func_start sub_81262C0
+sub_81262C0: @ 81262C0
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _081262DC
+ ldr r2, _081262E0
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081262DC: .4byte gSaveBlock1 + 0x3A7C
+_081262E0: .4byte 0x01000008
+ thumb_func_end sub_81262C0
+
+ thumb_func_start sub_81262E4
+sub_81262E4: @ 81262E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r5, r1, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r6, r2, 0
+ cmp r3, 0
+ beq _08126304
+ cmp r1, 0
+ beq _08126304
+ cmp r2, 0
+ bne _0812630A
+_08126304:
+ bl sub_81262C0
+ b _0812632A
+_0812630A:
+ ldr r4, _08126330
+ movs r1, 0xEA
+ lsls r1, 6
+ adds r0, r4, r1
+ strb r3, [r0]
+ adds r1, 0x1
+ adds r0, r4, r1
+ strb r5, [r0]
+ adds r1, 0x1
+ adds r0, r4, r1
+ strh r6, [r0]
+ bl sub_8126268
+ ldr r1, _08126334
+ adds r4, r1
+ str r0, [r4]
+_0812632A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126330: .4byte gSaveBlock1
+_08126334: .4byte 0x00003a7c
+ thumb_func_end sub_81262E4
+
+ thumb_func_start sub_8126338
+sub_8126338: @ 8126338
+ push {r4,r5,lr}
+ ldr r4, _0812634C
+ bl sub_8126288
+ cmp r0, 0
+ bne _08126350
+ bl sub_81262C0
+ movs r0, 0
+ b _0812636E
+ .align 2, 0
+_0812634C: .4byte gSaveBlock1 + 0x3A80
+_08126350:
+ ldrh r5, [r4, 0x2]
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ strb r0, [r4, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126364
+ bl sub_81262C0
+ b _0812636C
+_08126364:
+ bl sub_8126268
+ subs r1, r4, 0x4
+ str r0, [r1]
+_0812636C:
+ adds r0, r5, 0
+_0812636E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126338
+
+ thumb_func_start script_status_stop_and_ret_1
+script_status_stop_and_ret_1: @ 8126374
+ push {lr}
+ bl StopScript
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end script_status_stop_and_ret_1
+
+ thumb_func_start sub_8126380
+sub_8126380: @ 8126380
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ bl ScriptReadWord
+ str r0, [r7, 0x68]
+ adds r0, r7, 0
+ bl ScriptReadHalfword
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r7, 0
+ bl ScriptReadWord
+ adds r6, r0, 0
+ adds r0, r7, 0
+ bl ScriptReadHalfword
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ bl ScriptReadWord
+ adds r3, r0, 0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_8126098
+ cmp r0, 0x1
+ bne _081263C4
+ str r0, [r7, 0x70]
+ b _081263C8
+_081263C4:
+ bl sub_81260D0
+_081263C8:
+ movs r0, 0x1
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126380
+
+ thumb_func_start sub_81263D0
+sub_81263D0: @ 81263D0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81263D0
+
+ thumb_func_start sub_81263D4
+sub_81263D4: @ 81263D4
+ ldr r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ str r2, [r0, 0x6C]
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81263D4
+
+ thumb_func_start sub_81263E4
+sub_81263E4: @ 81263E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x8]
+ ldrb r5, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ adds r0, r4, 0
+ bl ScriptReadWord
+ ldr r1, [r4, 0x68]
+ subs r0, r1
+ ldr r1, [r4, 0x64]
+ adds r1, r0, r1
+ cmp r5, 0xFF
+ beq _08126408
+ ldr r0, [r4, 0x6C]
+ cmp r5, r0
+ bne _0812640E
+_08126408:
+ ldr r0, _08126418
+ bl StringExpandPlaceholders
+_0812640E:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126418: .4byte gStringVar4
+ thumb_func_end sub_81263E4
+
+ thumb_func_start sub_812641C
+sub_812641C: @ 812641C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl ScriptReadWord
+ ldr r1, [r4, 0x68]
+ subs r0, r1
+ ldr r1, [r4, 0x64]
+ adds r0, r1
+ bl ScriptContext2_RunNewScript
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812641C
+
+ thumb_func_start sub_8126438
+sub_8126438: @ 8126438
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ bl sub_80B4940
+ mov r8, r0
+ adds r0, r7, 0
+ bl ScriptReadWord
+ adds r4, r0, 0
+ ldr r0, [r7, 0x68]
+ subs r4, r0
+ ldr r0, [r7, 0x64]
+ adds r4, r0
+ ldr r6, _08126484
+ ldr r5, _08126488
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl StringCopyN
+ adds r0, r4, 0
+ bl sub_80B48A8
+ ldr r4, _0812648C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl StringCopyN
+ mov r0, r8
+ cmp r0, 0
+ bne _08126498
+ ldr r0, _08126490
+ ldr r1, _08126494
+ b _081264B8
+ .align 2, 0
+_08126484: .4byte gStringVar1
+_08126488: .4byte gSaveBlock1 + 0x3160
+_0812648C: .4byte gStringVar2
+_08126490: .4byte gStringVar4
+_08126494: .4byte gOtherText_BerryObtainedDadHasIt
+_08126498:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StringCompare
+ cmp r0, 0
+ beq _081264B4
+ ldr r0, _081264AC
+ ldr r1, _081264B0
+ b _081264B8
+ .align 2, 0
+_081264AC: .4byte gStringVar4
+_081264B0: .4byte gOtherText_BerryTransformed
+_081264B4:
+ ldr r0, _081264D4
+ ldr r1, _081264D8
+_081264B8:
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r7, 0x6C]
+ bl sub_80B4940
+ cmp r0, 0x1
+ bne _081264E0
+ ldr r0, _081264DC
+ movs r1, 0x1
+ bl VarSet
+ b _081264E4
+ .align 2, 0
+_081264D4: .4byte gStringVar4
+_081264D8: .4byte gOtherText_BerryAlreadyObtained
+_081264DC: .4byte 0x0000402d
+_081264E0:
+ movs r0, 0x1
+ str r0, [r7, 0x6C]
+_081264E4:
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126438
+
+ thumb_func_start sub_81264F0
+sub_81264F0: @ 81264F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, [r4, 0x8]
+ ldrb r0, [r2]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ ldrb r1, [r2]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ bl sub_80C5C38
+ ldr r0, _0812651C
+ ldr r1, _08126520
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812651C: .4byte gStringVar4
+_08126520: .4byte gOtherText_SpecialRibbonReceived
+ thumb_func_end sub_81264F0
+
+ thumb_func_start sub_8126524
+sub_8126524: @ 8126524
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r0, [r4, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r4, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r4, 0x8]
+ adds r0, r4, 0
+ bl ScriptReadWord
+ adds r5, r0, 0
+ ldr r0, [r4, 0x68]
+ subs r5, r0
+ ldr r0, [r4, 0x64]
+ adds r5, r0
+ adds r0, r4, 0
+ bl ScriptReadWord
+ adds r1, r0, 0
+ ldr r0, [r4, 0x68]
+ subs r1, r0
+ ldr r0, [r4, 0x64]
+ adds r1, r0
+ subs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ str r6, [sp]
+ adds r0, r5, 0
+ mov r2, r9
+ mov r3, r8
+ bl InitRamScript
+ movs r0, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126524
+
+ thumb_func_start sub_812658C
+sub_812658C: @ 812658C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80690F0
+ ldr r0, _081265A8
+ ldr r1, _081265AC
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081265A8: .4byte gStringVar4
+_081265AC: .4byte gOtherText_DexUpgraded
+ thumb_func_end sub_812658C
+
+ thumb_func_start sub_81265B0
+sub_81265B0: @ 81265B0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, [r4, 0x8]
+ ldrb r0, [r1]
+ adds r1, 0x1
+ str r1, [r4, 0x8]
+ bl sub_80EB890
+ ldr r0, _081265D4
+ ldr r1, _081265D8
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081265D4: .4byte gStringVar4
+_081265D8: .4byte gOtherText_RareWordAdded
+ thumb_func_end sub_81265B0
+
+ thumb_func_start sub_81265DC
+sub_81265DC: @ 81265DC
+ push {r4,r5,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r5, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl ScriptReadHalfword
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81262E4
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81265DC
+
+ thumb_func_start sub_8126608
+sub_8126608: @ 8126608
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x88
+ adds r6, r0, 0
+ bl ScriptReadWord
+ ldr r1, [r6, 0x68]
+ subs r0, r1
+ ldr r1, [r6, 0x64]
+ adds r5, r0, r1
+ movs r0, 0x64
+ adds r0, r5
+ mov r8, r0
+ add r4, sp, 0x24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bne _08126658
+ ldr r0, _08126650
+ ldr r1, _08126654
+ movs r2, 0xB
+ bl StringCopyN
+ b _08126662
+ .align 2, 0
+_08126650: .4byte gStringVar1
+_08126654: .4byte gSystemText_Egg
+_08126658:
+ ldr r0, _08126678
+ ldr r1, _0812667C
+ movs r2, 0xB
+ bl StringCopyN
+_08126662:
+ ldr r0, _08126680
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _0812668C
+ ldr r0, _08126684
+ ldr r1, _08126688
+ bl StringExpandPlaceholders
+ movs r0, 0x3
+ b _081266F6
+ .align 2, 0
+_08126678: .4byte gStringVar1
+_0812667C: .4byte gSystemText_Pokemon2
+_08126680: .4byte gPlayerPartyCount
+_08126684: .4byte gStringVar4
+_08126688: .4byte gOtherText_PartyIsFull
+_0812668C:
+ ldr r7, _08126708
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ mov r0, sp
+ mov r1, r8
+ movs r2, 0x24
+ bl memcpy
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ beq _081266C6
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8090D90
+_081266C6:
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _081266E4
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_80A2D88
+_081266E4:
+ bl party_compaction
+ bl CalculatePlayerPartyCount
+ ldr r0, _0812670C
+ ldr r1, _08126710
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+_081266F6:
+ str r0, [r6, 0x6C]
+ movs r0, 0
+ add sp, 0x88
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126708: .4byte gUnknown_03004554
+_0812670C: .4byte gStringVar4
+_08126710: .4byte gOtherText_PokeWasSentOver
+ thumb_func_end sub_8126608
+
+ thumb_func_start sub_8126714
+sub_8126714: @ 8126714
+ push {r4,lr}
+ adds r4, r0, 0
+ bl ScriptReadWord
+ adds r1, r0, 0
+ ldr r0, [r4, 0x68]
+ subs r1, r0
+ ldr r0, [r4, 0x64]
+ adds r1, r0
+ ldr r0, _08126748
+ movs r2, 0xBC
+ bl memcpy
+ bl sub_813601C
+ ldr r0, _0812674C
+ ldr r1, _08126750
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126748: .4byte gSaveBlock2 + 0x498
+_0812674C: .4byte gStringVar4
+_08126750: .4byte gOtherText_NewTrainerInHoenn
+ thumb_func_end sub_8126714
+
+ thumb_func_start sub_8126754
+sub_8126754: @ 8126754
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80691BC
+ ldr r0, _08126770
+ ldr r1, _08126774
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126770: .4byte gStringVar4
+_08126774: .4byte gSystemText_ClockAdjustmentUsable
+ thumb_func_end sub_8126754
+
+ thumb_func_start sub_8126778
+sub_8126778: @ 8126778
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl ScriptReadWord
+ adds r5, r0, 0
+ adds r0, r6, 0
+ bl ScriptReadWord
+ adds r4, r0, 0
+ ldr r0, [r6, 0x68]
+ subs r4, r0
+ ldr r0, [r6, 0x64]
+ adds r4, r0
+ adds r0, r6, 0
+ bl ScriptReadWord
+ adds r1, r0, 0
+ ldr r0, [r6, 0x68]
+ subs r1, r0
+ ldr r0, [r6, 0x64]
+ adds r1, r0
+ subs r1, r4
+ adds r0, r4, 0
+ bl sub_812616C
+ cmp r5, r0
+ beq _081267B6
+ movs r0, 0
+ str r0, [r6, 0x70]
+ movs r0, 0x1
+ str r0, [r6, 0x6C]
+_081267B6:
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126778
+
+ thumb_func_start sub_81267C0
+sub_81267C0: @ 81267C0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl ScriptReadWord
+ adds r5, r0, 0
+ adds r0, r6, 0
+ bl ScriptReadWord
+ adds r4, r0, 0
+ ldr r0, [r6, 0x68]
+ subs r4, r0
+ ldr r0, [r6, 0x64]
+ adds r4, r0
+ adds r0, r6, 0
+ bl ScriptReadWord
+ adds r1, r0, 0
+ ldr r0, [r6, 0x68]
+ subs r1, r0
+ ldr r0, [r6, 0x64]
+ adds r1, r0
+ subs r1, r4
+ adds r0, r4, 0
+ bl sub_8041174
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r5, r0
+ beq _08126802
+ movs r0, 0
+ str r0, [r6, 0x70]
+ movs r0, 0x1
+ str r0, [r6, 0x6C]
+_08126802:
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81267C0
+
+ thumb_func_start SetUpReflection
+SetUpReflection: @ 812680C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r5, r2, 24
+ lsrs r5, 24
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x22
+ ldrsh r2, [r4, r0]
+ adds r0, r4, 0
+ movs r3, 0x98
+ bl obj_unfreeze
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081268BC
+ adds r7, r1, r0
+ ldr r0, _081268C0
+ str r0, [r7, 0x1C]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0xC
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ ldr r2, _081268C4
+ lsrs r0, r1, 4
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 4
+ movs r2, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ movs r1, 0x3F
+ adds r1, r7
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0x40
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ ldr r0, _081268C8
+ str r0, [r7, 0x8]
+ adds r0, r7, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r0, _081268CC
+ str r0, [r7, 0x10]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x8
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ adds r2, r7, 0
+ adds r2, 0x42
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x2E]
+ strh r0, [r7, 0x2E]
+ ldrb r0, [r6, 0x8]
+ strh r0, [r7, 0x30]
+ strh r5, [r7, 0x3C]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl npc_pal_op
+ cmp r5, 0
+ bne _081268B2
+ ldrb r0, [r7, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strb r1, [r7, 0x1]
+_081268B2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081268BC: .4byte gSprites
+_081268C0: .4byte sub_81269E0
+_081268C4: .4byte gUnknown_0830FD14
+_081268C8: .4byte gDummySpriteAnimTable
+_081268CC: .4byte gDummySpriteAffineAnimTable
+ thumb_func_end SetUpReflection
+
+ thumb_func_start sub_81268D0
+sub_81268D0: @ 81268D0
+ push {lr}
+ ldrb r0, [r0, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ ldrh r0, [r0, 0xA]
+ subs r0, 0x2
+ lsls r0, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81268D0
+
+ thumb_func_start npc_pal_op
+npc_pal_op: @ 81268E4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, _0812693C
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08126940
+ ldrb r0, [r5, 0x1F]
+ bl sub_8057450
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08126926
+ ldrb r0, [r5, 0x1E]
+ bl sub_8057450
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08126940
+_08126926:
+ subs r0, 0x1
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ adds r0, r5, 0
+ bl npc_pal_op_A
+ b _0812694A
+ .align 2, 0
+_0812693C: .4byte gUnknown_08401E2C
+_08126940:
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ adds r0, r5, 0
+ bl npc_pal_op_B
+_0812694A:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end npc_pal_op
+
+ thumb_func_start npc_pal_op_B
+npc_pal_op_B: @ 8126954
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldrb r0, [r0, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x4]
+ ldr r0, _08126980
+ cmp r1, r0
+ beq _081269A8
+ ldrb r0, [r2, 0xC]
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0
+ bne _08126984
+ ldrh r0, [r2, 0x2]
+ adds r1, r4, 0
+ bl npc_load_two_palettes__no_record
+ b _081269A2
+ .align 2, 0
+_08126980: .4byte 0x000011ff
+_08126984:
+ cmp r1, 0xA
+ bne _08126992
+ ldrh r0, [r2, 0x2]
+ adds r1, r4, 0
+ bl npc_load_two_palettes__and_record
+ b _081269A2
+_08126992:
+ adds r0, r4, 0
+ bl npc_paltag_by_palslot
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl pal_patch_for_npc
+_081269A2:
+ adds r0, r4, 0
+ bl sub_807D78C
+_081269A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end npc_pal_op_B
+
+ thumb_func_start npc_pal_op_A
+npc_pal_op_A: @ 81269B0
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldrb r0, [r0, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x4]
+ ldr r0, _081269DC
+ cmp r1, r0
+ beq _081269D4
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl pal_patch_for_npc
+ adds r0, r4, 0
+ bl sub_807D78C
+_081269D4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081269DC: .4byte 0x000011ff
+ thumb_func_end npc_pal_op_A
+
+ thumb_func_start sub_81269E0
+sub_81269E0: @ 81269E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126A28
+ adds r7, r0, r1
+ ldrb r1, [r7, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126A2C
+ adds r5, r0, r1
+ ldr r0, [r7]
+ ldr r1, _08126A30
+ ands r0, r1
+ cmp r0, r1
+ bne _08126A18
+ ldrb r1, [r7, 0x8]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _08126A34
+_08126A18:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _08126B3E
+ .align 2, 0
+_08126A28: .4byte gMapObjects
+_08126A2C: .4byte gSprites
+_08126A30: .4byte 0x00020001
+_08126A34:
+ ldr r1, _08126B4C
+ ldrb r0, [r5, 0x5]
+ lsrs r0, 4
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 4
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldrb r1, [r5, 0x1]
+ lsrs r1, 6
+ lsls r1, 6
+ ldrb r2, [r4, 0x1]
+ movs r3, 0x3F
+ adds r0, r3, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r5, 0x3]
+ lsrs r0, 6
+ lsls r0, 6
+ ldrb r2, [r4, 0x3]
+ adds r1, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ movs r2, 0x10
+ orrs r0, r2
+ lsls r0, 1
+ subs r2, 0x4F
+ mov r9, r2
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ ldrh r1, [r5, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ ldrh r2, [r4, 0x4]
+ ldr r0, _08126B50
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, [r5, 0x18]
+ str r0, [r4, 0x18]
+ adds r0, r5, 0
+ adds r0, 0x42
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 26
+ adds r2, r4, 0
+ adds r2, 0x42
+ ands r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ movs r0, 0x3E
+ adds r0, r5
+ mov r8, r0
+ ldrb r0, [r0]
+ adds r6, r4, 0
+ adds r6, 0x3E
+ movs r1, 0x4
+ ands r1, r0
+ ldrb r2, [r6]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r4, 0x20]
+ adds r0, r7, 0
+ bl sub_81268D0
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ ldrh r1, [r4, 0x32]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ adds r0, r5, 0
+ adds r0, 0x28
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x28
+ strb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x29
+ strb r0, [r1]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x2
+ ands r1, r0
+ ldrb r2, [r6]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08126B3E
+ ldrb r0, [r4, 0x3]
+ mov r2, r9
+ ands r2, r0
+ strb r2, [r4, 0x3]
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08126B3E
+ movs r1, 0x2
+ adds r0, r2, 0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_08126B3E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126B4C: .4byte gUnknown_0830FD14
+_08126B50: .4byte 0xfffffc00
+ thumb_func_end sub_81269E0
+
+ thumb_func_start sub_8126B54
+sub_8126B54: @ 8126B54
+ push {r4,lr}
+ ldr r0, _08126B9C
+ ldr r0, [r0, 0x20]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x52
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r0, 0x40
+ beq _08126B92
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08126BA0
+ adds r1, r0
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ orrs r0, r3
+ strb r0, [r1]
+_08126B92:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126B9C: .4byte gFieldEffectObjectTemplatePointers
+_08126BA0: .4byte gSprites
+ thumb_func_end sub_8126B54
+
+ thumb_func_start objid_set_invisible
+objid_set_invisible: @ 8126BA4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08126BC0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08126BC0: .4byte gSprites
+ thumb_func_end objid_set_invisible
+
+ thumb_func_start sub_8126BC4
+sub_8126BC4: @ 8126BC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 16
+ lsrs r7, r2, 16
+ lsls r3, 16
+ lsrs r6, r3, 16
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _08126C68
+ adds r2, r0, r1
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _08126C0E
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _08126C0E
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r1, r0
+ beq _08126C5A
+_08126C0E:
+ lsls r0, r7, 16
+ asrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ mov r4, sp
+ adds r4, 0x2
+ mov r2, sp
+ adds r3, r4, 0
+ bl sub_80603CC
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _08126C68
+ adds r2, r0, r1
+ mov r0, sp
+ ldrh r0, [r0]
+ adds r0, 0x8
+ strh r0, [r2, 0x20]
+ ldrh r0, [r4]
+ adds r0, 0x8
+ strh r0, [r2, 0x22]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ strh r7, [r2, 0x2E]
+ strh r6, [r2, 0x30]
+ mov r1, r8
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+_08126C5A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126C68: .4byte gSprites
+ thumb_func_end sub_8126BC4
+
+ thumb_func_start oei_shadow
+oei_shadow: @ 8126C6C
+ push {r4,r5,lr}
+ ldr r5, _08126CF8
+ ldrb r0, [r5]
+ ldrb r1, [r5, 0x4]
+ ldrb r2, [r5, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08126CFC
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r4, r0, 0
+ ldr r2, _08126D00
+ ldr r1, _08126D04
+ ldrb r0, [r4, 0xC]
+ lsls r0, 26
+ lsrs r0, 30
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x94
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08126CF0
+ ldr r0, _08126D08
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ ldr r0, [r5]
+ strh r0, [r2, 0x2E]
+ ldr r0, [r5, 0x4]
+ strh r0, [r2, 0x30]
+ ldr r0, [r5, 0x8]
+ strh r0, [r2, 0x32]
+ ldrh r1, [r4, 0xA]
+ lsls r1, 16
+ asrs r1, 17
+ ldr r3, _08126D0C
+ ldrb r0, [r4, 0xC]
+ lsls r0, 26
+ lsrs r0, 30
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r2, 0x34]
+_08126CF0:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126CF8: .4byte gUnknown_0202FF84
+_08126CFC: .4byte gMapObjects
+_08126D00: .4byte gFieldEffectObjectTemplatePointers
+_08126D04: .4byte gUnknown_08401E32
+_08126D08: .4byte gSprites
+_08126D0C: .4byte gUnknown_08401E36
+ thumb_func_end oei_shadow
+
+ thumb_func_start oamc_shadow
+oamc_shadow: @ 8126D10
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r5, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _08126D3E
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl FieldEffectStop
+ b _08126DC4
+_08126D3E:
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126DCC
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08126DD0
+ adds r1, r0
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ ands r2, r0
+ ldrb r3, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+ ldrh r0, [r1, 0x20]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x34]
+ ldrh r1, [r1, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldr r0, [r4]
+ ldr r1, _08126DD4
+ ands r0, r1
+ cmp r0, r1
+ bne _08126DBC
+ ldrb r0, [r4, 0x1E]
+ bl sub_8056E14
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126DBC
+ ldrb r0, [r4, 0x1E]
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126DBC
+ ldrb r0, [r4, 0x1F]
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126DBC
+ ldrb r0, [r4, 0x1E]
+ bl MetatileBehavior_IsReflective
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126DBC
+ ldrb r0, [r4, 0x1F]
+ bl MetatileBehavior_IsReflective
+ lsls r0, 24
+ cmp r0, 0
+ beq _08126DC4
+_08126DBC:
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl FieldEffectStop
+_08126DC4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126DCC: .4byte gMapObjects
+_08126DD0: .4byte gSprites
+_08126DD4: .4byte 0x00400001
+ thumb_func_end oamc_shadow
+
+ thumb_func_start oei_grass_normal
+oei_grass_normal: @ 8126DD8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08126E70
+ ldrh r1, [r5]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r0, [r5, 0x4]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08126E74
+ ldr r0, [r0, 0x10]
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08126E64
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126E78
+ adds r3, r0, r1
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x3
+ ldrb r1, [r5, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r5, 0x8]
+ strh r0, [r3, 0x2E]
+ ldr r0, [r5]
+ strh r0, [r3, 0x30]
+ ldr r0, [r5, 0x4]
+ strh r0, [r3, 0x32]
+ ldr r0, [r5, 0x10]
+ strh r0, [r3, 0x34]
+ ldr r0, [r5, 0x14]
+ strh r0, [r3, 0x36]
+ ldr r0, [r5, 0x18]
+ strh r0, [r3, 0x38]
+ ldr r0, [r5, 0x1C]
+ cmp r0, 0
+ beq _08126E64
+ adds r0, r3, 0
+ movs r1, 0x4
+ bl SeekSpriteAnim
+_08126E64:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126E70: .4byte gUnknown_0202FF84
+_08126E74: .4byte gFieldEffectObjectTemplatePointers
+_08126E78: .4byte gSprites
+ thumb_func_end oei_grass_normal
+
+ thumb_func_start unc_grass_normal
+unc_grass_normal: @ 8126E7C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ lsrs r4, r0, 8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, _08126F24
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08126EC6
+ ldr r2, _08126F28
+ movs r0, 0x5
+ ldrsb r0, [r2, r0]
+ cmp r0, r4
+ bne _08126EAC
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r0, r7
+ beq _08126EC6
+_08126EAC:
+ ldr r1, [r3, 0x4]
+ ldrh r0, [r5, 0x30]
+ subs r0, r1
+ strh r0, [r5, 0x30]
+ ldr r1, [r3, 0x8]
+ ldrh r0, [r5, 0x32]
+ subs r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r1, [r2, 0x5]
+ lsls r1, 8
+ ldrb r0, [r2, 0x4]
+ orrs r0, r1
+ strh r0, [r5, 0x38]
+_08126EC6:
+ ldrh r0, [r5, 0x34]
+ lsrs r1, r0, 8
+ mov r8, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r0, [r5, 0x36]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r7, 0
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126F1A
+ adds r0, r6, 0
+ bl MetatileBehavior_IsTallGrass
+ lsls r0, 24
+ cmp r0, 0
+ beq _08126F1A
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08126F2C
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08126F2C
+_08126F1A:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl FieldEffectStop
+ b _08126F70
+ .align 2, 0
+_08126F24: .4byte gUnknown_0202E844
+_08126F28: .4byte gSaveBlock1
+_08126F2C:
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126F7C
+ adds r2, r0, r1
+ ldr r0, [r2, 0x10]
+ ldr r1, [r5, 0x30]
+ cmp r0, r1
+ beq _08126F4C
+ ldr r0, [r2, 0x14]
+ cmp r0, r1
+ beq _08126F4C
+ movs r0, 0x1
+ strh r0, [r5, 0x3C]
+_08126F4C:
+ movs r6, 0
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08126F5A
+ movs r6, 0x4
+_08126F5A:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806487C
+ ldrh r1, [r5, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_812882C
+_08126F70:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126F7C: .4byte gMapObjects
+ thumb_func_end unc_grass_normal
+
+ thumb_func_start sub_8126F80
+sub_8126F80: @ 8126F80
+ push {r4,lr}
+ ldr r4, _08126FE4
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0xC
+ bl sub_8060470
+ ldr r0, _08126FE8
+ ldr r0, [r0, 0x28]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08126FDC
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08126FEC
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0xC
+ strh r0, [r2, 0x30]
+_08126FDC:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126FE4: .4byte gUnknown_0202FF84
+_08126FE8: .4byte gFieldEffectObjectTemplatePointers
+_08126FEC: .4byte gSprites
+ thumb_func_end sub_8126F80
+
+ thumb_func_start sub_8126FF0
+sub_8126FF0: @ 8126FF0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r5, 0
+ ldr r0, _08127060
+ mov r8, r0
+ lsls r3, 16
+ asrs r3, 16
+ lsls r4, 16
+ asrs r4, 16
+_08127014:
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ mov r1, r8
+ adds r2, r0, r1
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08127068
+ ldr r1, [r2, 0x1C]
+ ldr r0, _08127064
+ cmp r1, r0
+ bne _08127068
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r3, r0
+ bne _08127068
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r4, r0
+ bne _08127068
+ ldrh r1, [r2, 0x34]
+ lsrs r0, r1, 8
+ cmp r12, r0
+ bne _08127068
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r7, r0
+ bne _08127068
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r6, r0
+ bne _08127068
+ adds r0, r5, 0
+ b _08127074
+ .align 2, 0
+_08127060: .4byte gSprites
+_08127064: .4byte unc_grass_normal
+_08127068:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3F
+ bls _08127014
+ movs r0, 0x40
+_08127074:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126FF0
+
+ thumb_func_start sub_8127080
+sub_8127080: @ 8127080
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _0812711C
+ ldrh r1, [r5]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r0, [r5, 0x4]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127120
+ ldr r0, [r0, 0x3C]
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08127110
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127124
+ adds r4, r0, r1
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r5, 0x8]
+ bl ZCoordToPriority
+ movs r1, 0x3
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldr r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r0, [r5]
+ strh r0, [r4, 0x30]
+ ldr r0, [r5, 0x4]
+ strh r0, [r4, 0x32]
+ ldr r0, [r5, 0x10]
+ strh r0, [r4, 0x34]
+ ldr r0, [r5, 0x14]
+ strh r0, [r4, 0x36]
+ ldr r0, [r5, 0x18]
+ strh r0, [r4, 0x38]
+ ldr r0, [r5, 0x1C]
+ cmp r0, 0
+ beq _08127110
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl SeekSpriteAnim
+_08127110:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812711C: .4byte gUnknown_0202FF84
+_08127120: .4byte gFieldEffectObjectTemplatePointers
+_08127124: .4byte gSprites
+ thumb_func_end sub_8127080
+
+ thumb_func_start unc_grass_tall
+unc_grass_tall: @ 8127128
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ lsrs r7, r0, 8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, _081271D0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08127172
+ ldr r2, _081271D4
+ movs r0, 0x5
+ ldrsb r0, [r2, r0]
+ cmp r0, r7
+ bne _08127158
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r0, r6
+ beq _08127172
+_08127158:
+ ldr r1, [r3, 0x4]
+ ldrh r0, [r5, 0x30]
+ subs r0, r1
+ strh r0, [r5, 0x30]
+ ldr r1, [r3, 0x8]
+ ldrh r0, [r5, 0x32]
+ subs r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r1, [r2, 0x5]
+ lsls r1, 8
+ ldrb r0, [r2, 0x4]
+ orrs r0, r1
+ strh r0, [r5, 0x38]
+_08127172:
+ ldrh r0, [r5, 0x34]
+ lsrs r1, r0, 8
+ mov r8, r1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r5, 0x36]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, r8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _081271C6
+ adds r0, r4, 0
+ bl MetatileBehavior_IsLongGrass
+ lsls r0, 24
+ cmp r0, 0
+ beq _081271C6
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081271D8
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081271D8
+_081271C6:
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FieldEffectStop
+ b _0812720E
+ .align 2, 0
+_081271D0: .4byte gUnknown_0202E844
+_081271D4: .4byte gSaveBlock1
+_081271D8:
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812721C
+ adds r2, r0, r1
+ ldr r0, [r2, 0x10]
+ ldr r1, [r5, 0x30]
+ cmp r0, r1
+ beq _081271F8
+ ldr r0, [r2, 0x14]
+ cmp r0, r1
+ beq _081271F8
+ movs r0, 0x1
+ strh r0, [r5, 0x3C]
+_081271F8:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806487C
+ ldrh r1, [r5, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ movs r2, 0
+ bl sub_812882C
+_0812720E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812721C: .4byte gMapObjects
+ thumb_func_end unc_grass_tall
+
+ thumb_func_start sub_8127220
+sub_8127220: @ 8127220
+ push {r4,lr}
+ ldr r4, _08127284
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127288
+ ldr r0, [r0, 0x40]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0812727C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0812728C
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0x12
+ strh r0, [r2, 0x30]
+_0812727C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127284: .4byte gUnknown_0202FF84
+_08127288: .4byte gFieldEffectObjectTemplatePointers
+_0812728C: .4byte gSprites
+ thumb_func_end sub_8127220
+
+ thumb_func_start sub_8127290
+sub_8127290: @ 8127290
+ push {r4-r6,lr}
+ ldr r6, _08127324
+ ldrb r0, [r6]
+ ldrb r1, [r6, 0x4]
+ ldrb r2, [r6, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08127328
+ adds r5, r1, r0
+ ldr r0, _0812732C
+ ldr r0, [r0, 0x78]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0812731C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r4, _08127330
+ adds r2, r4
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ movs r1, 0xC
+ ands r1, r0
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r6]
+ strh r0, [r2, 0x2E]
+ ldr r0, [r6, 0x4]
+ strh r0, [r2, 0x30]
+ ldr r0, [r6, 0x8]
+ strh r0, [r2, 0x32]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r2, 0x34]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x36]
+_0812731C:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127324: .4byte gUnknown_0202FF84
+_08127328: .4byte gMapObjects
+_0812732C: .4byte gFieldEffectObjectTemplatePointers
+_08127330: .4byte gSprites
+ thumb_func_end sub_8127290
+
+ thumb_func_start sub_8127334
+sub_8127334: @ 8127334
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08127372
+ ldr r5, _0812737C
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x2]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08127380
+_08127372:
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl FieldEffectStop
+ b _08127416
+ .align 2, 0
+_0812737C: .4byte gMapObjects
+_08127380:
+ ldrb r0, [r1, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ mov r8, r0
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127424
+ adds r6, r0, r1
+ ldrh r5, [r6, 0x22]
+ ldrh r7, [r6, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _081273BC
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _081273D6
+_081273BC:
+ strh r7, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081273D6
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_081273D6:
+ strh r7, [r4, 0x20]
+ strh r5, [r4, 0x22]
+ mov r1, r8
+ ldrh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 17
+ subs r0, 0x8
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r0, [r6, 0x5]
+ movs r1, 0xC
+ ands r1, r0
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r0, r6, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ adds r0, r4, 0
+ bl sub_806487C
+_08127416:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127424: .4byte gSprites
+ thumb_func_end sub_8127334
+
+ thumb_func_start sub_8127428
+sub_8127428: @ 8127428
+ push {r4,lr}
+ ldr r4, _08127490
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127494
+ ldr r0, [r0, 0x2C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08127486
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127498
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ movs r1, 0x3
+ ldrb r2, [r4, 0xC]
+ ands r2, r1
+ lsls r2, 2
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0xD
+ strh r1, [r0, 0x3C]
+ ldrb r1, [r4, 0x10]
+ bl StartSpriteAnim
+_08127486:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127490: .4byte gUnknown_0202FF84
+_08127494: .4byte gFieldEffectObjectTemplatePointers
+_08127498: .4byte gSprites
+ thumb_func_end sub_8127428
+
+ thumb_func_start sub_812749C
+sub_812749C: @ 812749C
+ push {r4,r5,lr}
+ ldr r4, _08127504
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127508
+ ldr r0, [r0, 0x5C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r5, r1, 0
+ cmp r1, 0x40
+ beq _081274FC
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812750C
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ movs r1, 0x3
+ ldrb r2, [r4, 0xC]
+ ands r2, r1
+ lsls r2, 2
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x18
+ strh r1, [r0, 0x3C]
+ ldrb r1, [r4, 0x10]
+ bl StartSpriteAnim
+_081274FC:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127504: .4byte gUnknown_0202FF84
+_08127508: .4byte gFieldEffectObjectTemplatePointers
+_0812750C: .4byte gSprites
+ thumb_func_end sub_812749C
+
+ thumb_func_start sub_8127510
+sub_8127510: @ 8127510
+ push {r4,r5,lr}
+ ldr r4, _08127578
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _0812757C
+ ldr r0, [r0, 0x6C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r5, r1, 0
+ cmp r1, 0x40
+ beq _08127570
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127580
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ movs r1, 0x3
+ ldrb r2, [r4, 0xC]
+ ands r2, r1
+ lsls r2, 2
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x23
+ strh r1, [r0, 0x3C]
+ ldrb r1, [r4, 0x10]
+ bl StartSpriteAnim
+_08127570:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127578: .4byte gUnknown_0202FF84
+_0812757C: .4byte gFieldEffectObjectTemplatePointers
+_08127580: .4byte gSprites
+ thumb_func_end sub_8127510
+
+ thumb_func_start sub_8127584
+sub_8127584: @ 8127584
+ push {lr}
+ ldr r2, _0812759C
+ movs r3, 0x2E
+ ldrsh r1, [r0, r3]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812759C: .4byte gUnknown_08401E40
+ thumb_func_end sub_8127584
+
+ thumb_func_start sub_81275A0
+sub_81275A0: @ 81275A0
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ adds r0, 0x1
+ strh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x28
+ ble _081275B6
+ movs r0, 0x1
+ strh r0, [r1, 0x2E]
+_081275B6:
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_806487C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81275A0
+
+ thumb_func_start sub_81275C4
+sub_81275C4: @ 81275C4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ ldrb r1, [r3]
+ lsls r1, 29
+ lsrs r1, 31
+ adds r0, r4, 0
+ bl sub_806487C
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x38
+ ble _08127608
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldEffectStop
+_08127608:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81275C4
+
+ thumb_func_start sub_8127610
+sub_8127610: @ 8127610
+ push {r4-r6,lr}
+ ldr r6, _081276A4
+ ldrb r0, [r6]
+ ldrb r1, [r6, 0x4]
+ ldrb r2, [r6, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081276A8
+ adds r5, r1, r0
+ ldr r0, _081276AC
+ ldr r0, [r0, 0x34]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _0812769A
+ ldrb r0, [r5, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ ldr r4, _081276B0
+ adds r3, r4
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r2, 0x2
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ ldrb r2, [r5, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrb r1, [r1, 0x5]
+ movs r2, 0xC
+ ands r2, r1
+ ldrb r4, [r3, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ orrs r1, r2
+ strb r1, [r3, 0x5]
+ ldr r1, [r6]
+ strh r1, [r3, 0x2E]
+ ldr r1, [r6, 0x4]
+ strh r1, [r3, 0x30]
+ ldr r1, [r6, 0x8]
+ strh r1, [r3, 0x32]
+ ldrh r0, [r0, 0xA]
+ lsls r0, 16
+ asrs r0, 17
+ subs r0, 0x4
+ strh r0, [r3, 0x26]
+ movs r0, 0x46
+ bl PlaySE
+_0812769A:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081276A4: .4byte gUnknown_0202FF84
+_081276A8: .4byte gMapObjects
+_081276AC: .4byte gFieldEffectObjectTemplatePointers
+_081276B0: .4byte gSprites
+ thumb_func_end sub_8127610
+
+ thumb_func_start sub_81276B4
+sub_81276B4: @ 81276B4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081276E4
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _081276EE
+_081276E4:
+ adds r0, r4, 0
+ movs r1, 0xF
+ bl FieldEffectStop
+ b _0812772E
+_081276EE:
+ ldr r3, _08127738
+ ldr r2, _0812773C
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x20]
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+_0812772E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127738: .4byte gSprites
+_0812773C: .4byte gMapObjects
+ thumb_func_end sub_81276B4
+
+ thumb_func_start sub_8127740
+sub_8127740: @ 8127740
+ push {r4,lr}
+ ldr r4, _081277A4
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0xC
+ bl sub_8060470
+ ldr r0, _081277A8
+ ldr r0, [r0, 0x38]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0812779C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _081277AC
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0x10
+ strh r0, [r2, 0x30]
+_0812779C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081277A4: .4byte gUnknown_0202FF84
+_081277A8: .4byte gFieldEffectObjectTemplatePointers
+_081277AC: .4byte gSprites
+ thumb_func_end sub_8127740
+
+ thumb_func_start oei_water_drop_tall
+oei_water_drop_tall: @ 81277B0
+ push {r4,lr}
+ ldr r4, _08127814
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127818
+ ldr r0, [r0, 0x30]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0812780C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0812781C
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0xE
+ strh r0, [r2, 0x30]
+_0812780C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127814: .4byte gUnknown_0202FF84
+_08127818: .4byte gFieldEffectObjectTemplatePointers
+_0812781C: .4byte gSprites
+ thumb_func_end oei_water_drop_tall
+
+ thumb_func_start sub_8127820
+sub_8127820: @ 8127820
+ push {r4-r7,lr}
+ ldr r7, _081278C0
+ ldrb r0, [r7]
+ ldrb r1, [r7, 0x4]
+ ldrb r2, [r7, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081278C4
+ adds r6, r1, r0
+ ldr r0, _081278C8
+ ldr r0, [r0, 0x34]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _081278B6
+ ldrb r0, [r6, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r4, r0, 0
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r3, _081278CC
+ adds r0, r3
+ ldr r1, _081278D0
+ str r1, [r0, 0x1C]
+ adds r5, r0, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r5]
+ ldrb r2, [r6, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrb r1, [r1, 0x5]
+ movs r2, 0xC
+ ands r2, r1
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, [r7]
+ strh r1, [r0, 0x2E]
+ ldr r1, [r7, 0x4]
+ strh r1, [r0, 0x30]
+ ldr r1, [r7, 0x8]
+ strh r1, [r0, 0x32]
+ ldr r1, _081278D4
+ strh r1, [r0, 0x34]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x36]
+ ldrh r1, [r4, 0xA]
+ lsls r1, 16
+ asrs r1, 17
+ subs r1, 0x4
+ strh r1, [r0, 0x26]
+ movs r1, 0x1
+ bl StartSpriteAnim
+_081278B6:
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081278C0: .4byte gUnknown_0202FF84
+_081278C4: .4byte gMapObjects
+_081278C8: .4byte gFieldEffectObjectTemplatePointers
+_081278CC: .4byte gSprites
+_081278D0: .4byte sub_81278D8
+_081278D4: .4byte 0x0000ffff
+ thumb_func_end sub_8127820
+
+ thumb_func_start sub_81278D8
+sub_81278D8: @ 81278D8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08127912
+ ldr r2, _0812791C
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r2
+ ldrb r0, [r5, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ blt _08127920
+_08127912:
+ adds r0, r4, 0
+ movs r1, 0x22
+ bl FieldEffectStop
+ b _0812796A
+ .align 2, 0
+_0812791C: .4byte gMapObjects
+_08127920:
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127974
+ adds r0, r1
+ ldrh r1, [r0, 0x20]
+ strh r1, [r4, 0x20]
+ ldrh r1, [r0, 0x22]
+ strh r1, [r4, 0x22]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+ ldr r1, [r5, 0x10]
+ ldr r0, [r4, 0x34]
+ cmp r1, r0
+ beq _0812796A
+ ldrh r0, [r5, 0x10]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r5, 0x12]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0812796A
+ movs r0, 0x46
+ bl PlaySE
+_0812796A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127974: .4byte gSprites
+ thumb_func_end sub_81278D8
+
+ thumb_func_start oei_ripples
+oei_ripples: @ 8127978
+ push {r4,lr}
+ ldr r0, _081279CC
+ ldr r0, [r0, 0x14]
+ ldr r4, _081279D0
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081279C4
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _081279D4
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x5
+ strh r0, [r2, 0x2E]
+_081279C4:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081279CC: .4byte gFieldEffectObjectTemplatePointers
+_081279D0: .4byte gUnknown_0202FF84
+_081279D4: .4byte gSprites
+ thumb_func_end oei_ripples
+
+ thumb_func_start sub_81279D8
+sub_81279D8: @ 81279D8
+ push {r4-r6,lr}
+ ldr r6, _08127A6C
+ ldrb r0, [r6]
+ ldrb r1, [r6, 0x4]
+ ldrb r2, [r6, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08127A70
+ adds r5, r1, r0
+ ldr r0, _08127A74
+ ldr r0, [r0, 0x7C]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127A64
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r4, _08127A78
+ adds r2, r4
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ movs r1, 0xC
+ ands r1, r0
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r6]
+ strh r0, [r2, 0x2E]
+ ldr r0, [r6, 0x4]
+ strh r0, [r2, 0x30]
+ ldr r0, [r6, 0x8]
+ strh r0, [r2, 0x32]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r2, 0x34]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x36]
+_08127A64:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127A6C: .4byte gUnknown_0202FF84
+_08127A70: .4byte gMapObjects
+_08127A74: .4byte gFieldEffectObjectTemplatePointers
+_08127A78: .4byte gSprites
+ thumb_func_end sub_81279D8
+
+ thumb_func_start sub_8127A7C
+sub_8127A7C: @ 8127A7C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08127AB6
+ ldr r5, _08127AC0
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x2]
+ lsls r0, 26
+ cmp r0, 0
+ blt _08127AC4
+_08127AB6:
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl FieldEffectStop
+ b _08127B08
+ .align 2, 0
+_08127AC0: .4byte gMapObjects
+_08127AC4:
+ ldrb r0, [r1, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ mov r1, sp
+ ldrb r2, [r1]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _08127B10
+ adds r1, r2
+ ldrh r2, [r1, 0x20]
+ strh r2, [r4, 0x20]
+ ldrh r0, [r0, 0xA]
+ lsls r0, 16
+ asrs r0, 17
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ subs r0, 0x8
+ strh r0, [r4, 0x22]
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+_08127B08:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127B10: .4byte gSprites
+ thumb_func_end sub_8127A7C
+
+ thumb_func_start sub_8127B14
+sub_8127B14: @ 8127B14
+ push {r4,lr}
+ ldr r4, _08127B74
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127B78
+ ldr r0, [r0, 0x44]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127B6C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127B7C
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x13
+ strh r0, [r2, 0x2E]
+_08127B6C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127B74: .4byte gUnknown_0202FF84
+_08127B78: .4byte gFieldEffectObjectTemplatePointers
+_08127B7C: .4byte gSprites
+ thumb_func_end sub_8127B14
+
+ thumb_func_start sub_8127B80
+sub_8127B80: @ 8127B80
+ push {r4,lr}
+ ldr r4, _08127BE0
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127BE4
+ ldr r0, [r0, 0x48]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127BD8
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127BE8
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x14
+ strh r0, [r2, 0x2E]
+_08127BD8:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127BE0: .4byte gUnknown_0202FF84
+_08127BE4: .4byte gFieldEffectObjectTemplatePointers
+_08127BE8: .4byte gSprites
+ thumb_func_end sub_8127B80
+
+ thumb_func_start sub_8127BEC
+sub_8127BEC: @ 8127BEC
+ push {r4,lr}
+ ldr r4, _08127C4C
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127C50
+ ldr r0, [r0, 0x4C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127C44
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127C54
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x15
+ strh r0, [r2, 0x2E]
+_08127C44:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127C4C: .4byte gUnknown_0202FF84
+_08127C50: .4byte gFieldEffectObjectTemplatePointers
+_08127C54: .4byte gSprites
+ thumb_func_end sub_8127BEC
+
+ thumb_func_start sub_8127C58
+sub_8127C58: @ 8127C58
+ push {r4,lr}
+ ldr r4, _08127CB8
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127CBC
+ ldr r0, [r0, 0x50]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127CB0
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127CC0
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x16
+ strh r0, [r2, 0x2E]
+_08127CB0:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127CB8: .4byte gUnknown_0202FF84
+_08127CBC: .4byte gFieldEffectObjectTemplatePointers
+_08127CC0: .4byte gSprites
+ thumb_func_end sub_8127C58
+
+ thumb_func_start ash
+ash: @ 8127CC4
+ push {r4,lr}
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _08127CF4
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [r4]
+ lsls r1, 16
+ asrs r1, 16
+ str r1, [r4, 0x4]
+ movs r0, 0x52
+ str r0, [r4, 0x8]
+ movs r0, 0x1
+ str r0, [r4, 0xC]
+ str r2, [r4, 0x10]
+ lsls r3, 16
+ asrs r3, 16
+ str r3, [r4, 0x14]
+ movs r0, 0x7
+ bl FieldEffectStart
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127CF4: .4byte gUnknown_0202FF84
+ thumb_func_end ash
+
+ thumb_func_start oei_ash
+oei_ash: @ 8127CF8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08127D78
+ ldrh r1, [r5]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r0, [r5, 0x4]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127D7C
+ ldr r0, [r0, 0x18]
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r5, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127D6E
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127D80
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r5, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r5]
+ strh r0, [r2, 0x30]
+ ldr r0, [r5, 0x4]
+ strh r0, [r2, 0x32]
+ ldr r0, [r5, 0x10]
+ strh r0, [r2, 0x34]
+ ldr r0, [r5, 0x14]
+ strh r0, [r2, 0x36]
+_08127D6E:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127D78: .4byte gUnknown_0202FF84
+_08127D7C: .4byte gFieldEffectObjectTemplatePointers
+_08127D80: .4byte gSprites
+ thumb_func_end oei_ash
+
+ thumb_func_start sub_8127D84
+sub_8127D84: @ 8127D84
+ push {lr}
+ ldr r2, _08127D9C
+ movs r3, 0x2E
+ ldrsh r1, [r0, r3]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127D9C: .4byte gUnknown_08401E48
+ thumb_func_end sub_8127D84
+
+ thumb_func_start sub_8127DA0
+sub_8127DA0: @ 8127DA0
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x36]
+ subs r0, 0x1
+ strh r0, [r3, 0x36]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08127DCA
+ movs r0, 0x1
+ strh r0, [r3, 0x2E]
+_08127DCA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127DA0
+
+ thumb_func_start sub_8127DD0
+sub_8127DD0: @ 8127DD0
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ ldrh r2, [r4, 0x34]
+ bl MapGridSetMetatileIdAt
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ ldr r2, _08127E28
+ ldr r0, _08127E2C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x2
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127E28: .4byte gMapObjects
+_08127E2C: .4byte gPlayerAvatar
+ thumb_func_end sub_8127DD0
+
+ thumb_func_start sub_8127E30
+sub_8127E30: @ 8127E30
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_806487C
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08127E50
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl FieldEffectStop
+_08127E50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127E30
+
+ thumb_func_start sub_8127E58
+sub_8127E58: @ 8127E58
+ push {r4,r5,lr}
+ ldr r4, _08127EC0
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127EC4
+ ldr r0, [r0, 0x1C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0x96
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ cmp r0, 0x40
+ beq _08127EB2
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08127EC8
+ adds r1, r0
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r1, 0x32]
+ ldr r0, _08127ECC
+ strh r0, [r1, 0x34]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1, 0x3A]
+ strh r0, [r1, 0x3C]
+_08127EB2:
+ movs r0, 0x8
+ bl FieldEffectActiveListRemove
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127EC0: .4byte gUnknown_0202FF84
+_08127EC4: .4byte gFieldEffectObjectTemplatePointers
+_08127EC8: .4byte gSprites
+_08127ECC: .4byte 0x0000ffff
+ thumb_func_end sub_8127E58
+
+ thumb_func_start sub_8127ED0
+sub_8127ED0: @ 8127ED0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _08127EF8
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrh r0, [r2, 0x2E]
+ movs r3, 0x10
+ negs r3, r3
+ ands r3, r0
+ movs r0, 0xF0
+ lsls r0, 20
+ ands r0, r1
+ lsrs r0, 24
+ orrs r0, r3
+ strh r0, [r2, 0x2E]
+ bx lr
+ .align 2, 0
+_08127EF8: .4byte gSprites
+ thumb_func_end sub_8127ED0
+
+ thumb_func_start sub_8127EFC
+sub_8127EFC: @ 8127EFC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _08127F24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrh r0, [r2, 0x2E]
+ movs r3, 0xF1
+ negs r3, r3
+ ands r3, r0
+ movs r0, 0xF0
+ lsls r0, 20
+ ands r0, r1
+ lsrs r0, 20
+ orrs r3, r0
+ strh r3, [r2, 0x2E]
+ bx lr
+ .align 2, 0
+_08127F24: .4byte gSprites
+ thumb_func_end sub_8127EFC
+
+ thumb_func_start sub_8127F28
+sub_8127F28: @ 8127F28
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r4, _08127F54
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r4
+ ldrh r0, [r3, 0x2E]
+ ldr r4, _08127F58
+ ands r4, r0
+ movs r0, 0xF0
+ lsls r0, 20
+ ands r0, r1
+ lsrs r0, 16
+ orrs r4, r0
+ strh r4, [r3, 0x2E]
+ strh r2, [r3, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127F54: .4byte gSprites
+_08127F58: .4byte 0xfffff0ff
+ thumb_func_end sub_8127F28
+
+ thumb_func_start sub_8127F5C
+sub_8127F5C: @ 8127F5C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF
+ ands r0, r1
+ bx lr
+ thumb_func_end sub_8127F5C
+
+ thumb_func_start sub_8127F64
+sub_8127F64: @ 8127F64
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF0
+ ands r0, r1
+ lsrs r0, 4
+ bx lr
+ thumb_func_end sub_8127F64
+
+ thumb_func_start sub_8127F70
+sub_8127F70: @ 8127F70
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF0
+ lsls r0, 4
+ ands r0, r1
+ lsrs r0, 8
+ bx lr
+ thumb_func_end sub_8127F70
+
+ thumb_func_start sub_8127F7C
+sub_8127F7C: @ 8127F7C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r6, r1]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08127FCC
+ adds r4, r0
+ ldrb r0, [r4, 0x4]
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ ldr r0, _08127FD0
+ adds r5, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8127FD4
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_812800C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_81280A0
+ ldrb r0, [r5, 0x5]
+ movs r1, 0xC
+ ands r1, r0
+ ldrb r2, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127FCC: .4byte gMapObjects
+_08127FD0: .4byte gSprites
+ thumb_func_end sub_8127F7C
+
+ thumb_func_start sub_8127FD4
+sub_8127FD4: @ 8127FD4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, _08128008
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ adds r0, r4, 0
+ bl sub_8127F64
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128000
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ add r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl StartSpriteAnimIfDifferent
+_08128000:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08128008: .4byte gUnknown_08401E54
+ thumb_func_end sub_8127FD4
+
+ thumb_func_start sub_812800C
+sub_812800C: @ 812800C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r1, 0
+ ldrh r2, [r0, 0x10]
+ mov r1, sp
+ strh r2, [r1]
+ ldrh r1, [r0, 0x12]
+ mov r0, sp
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r2, 0x26
+ ldrsh r3, [r4, r2]
+ mov r8, r0
+ cmp r3, 0
+ bne _08128094
+ mov r0, sp
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0x3A
+ ldrsh r0, [r4, r5]
+ cmp r2, r0
+ bne _08128048
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r5, 0x3C
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ beq _08128094
+_08128048:
+ strh r3, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ mov r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ strh r0, [r4, 0x3C]
+ movs r5, 0x1
+ mov r7, r8
+ mov r6, sp
+_0812805A:
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r7, 0
+ bl MoveCoords
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _08128080
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _08128094
+_08128080:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r6]
+ ldrh r0, [r4, 0x3C]
+ mov r1, r8
+ strh r0, [r1]
+ cmp r5, 0x4
+ bls _0812805A
+_08128094:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812800C
+
+ thumb_func_start sub_81280A0
+sub_81280A0: @ 81280A0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r4, r2, 0
+ ldr r1, _08128104
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ adds r0, r4, 0
+ bl sub_8127F5C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _0812811A
+ ldrh r1, [r4, 0x36]
+ adds r1, 0x1
+ strh r1, [r4, 0x36]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _081280E0
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+_081280E0:
+ ldrh r1, [r4, 0x36]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _081280F0
+ ldrh r0, [r4, 0x34]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+_081280F0:
+ cmp r2, 0x2
+ beq _0812811A
+ adds r0, r4, 0
+ bl sub_8127F70
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128108
+ ldrh r0, [r4, 0x26]
+ b _0812810E
+ .align 2, 0
+_08128104: .4byte gUnknown_08401E5A
+_08128108:
+ ldrh r0, [r4, 0x26]
+ ldrh r3, [r4, 0x30]
+ adds r0, r3
+_0812810E:
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+_0812811A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81280A0
+
+ thumb_func_start sub_8128124
+sub_8128124: @ 8128124
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08128168
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xFF
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r1, _0812816C
+ adds r2, r1
+ ldr r1, _08128170
+ str r1, [r2, 0x1C]
+ movs r1, 0x3E
+ adds r1, r2
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r3, 0x4
+ orrs r1, r3
+ mov r3, r12
+ strb r1, [r3]
+ strh r4, [r2, 0x2E]
+ movs r1, 0x1
+ strh r1, [r2, 0x30]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128168: .4byte gDummySpriteTemplate
+_0812816C: .4byte gSprites
+_08128170: .4byte sub_8128174
+ thumb_func_end sub_8128124
+
+ thumb_func_start sub_8128174
+sub_8128174: @ 8128174
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081281B0
+ adds r3, r0, r1
+ ldrh r1, [r2, 0x32]
+ adds r0, r1, 0x1
+ strh r0, [r2, 0x32]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0812819C
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r3, 0x26]
+ adds r0, r1
+ strh r0, [r3, 0x26]
+_0812819C:
+ ldrh r1, [r2, 0x32]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _081281AC
+ ldrh r0, [r2, 0x30]
+ negs r0, r0
+ strh r0, [r2, 0x30]
+_081281AC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081281B0: .4byte gSprites
+ thumb_func_end sub_8128174
+
+ thumb_func_start sub_81281B4
+sub_81281B4: @ 81281B4
+ push {r4,lr}
+ ldr r4, _08128218
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0xC
+ bl sub_8060470
+ ldr r0, _0812821C
+ ldr r0, [r0, 0x24]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08128210
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08128220
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0xA
+ strh r0, [r2, 0x30]
+_08128210:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128218: .4byte gUnknown_0202FF84
+_0812821C: .4byte gFieldEffectObjectTemplatePointers
+_08128220: .4byte gSprites
+ thumb_func_end sub_81281B4
+
+ thumb_func_start sub_8128224
+sub_8128224: @ 8128224
+ push {r4-r7,lr}
+ ldr r7, _081282D0
+ ldrb r0, [r7]
+ ldrb r1, [r7, 0x4]
+ ldrb r2, [r7, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081282D4
+ adds r6, r1, r0
+ ldr r0, _081282D8
+ ldr r0, [r0, 0x74]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _081282C8
+ ldrb r0, [r6, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r5, r0, 0
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r4, _081282DC
+ adds r0, r4
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ ldrb r2, [r6, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrb r1, [r1, 0x5]
+ movs r2, 0xC
+ ands r2, r1
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, [r7]
+ strh r1, [r0, 0x2E]
+ ldr r1, [r7, 0x4]
+ strh r1, [r0, 0x30]
+ ldr r1, [r7, 0x8]
+ strh r1, [r0, 0x32]
+ ldrb r2, [r6, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x20]
+ strh r1, [r0, 0x34]
+ ldrb r2, [r6, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x36]
+ ldrh r1, [r5, 0xA]
+ lsls r1, 16
+ asrs r1, 17
+ subs r1, 0x2
+ strh r1, [r0, 0x26]
+ movs r1, 0x2
+ bl SeekSpriteAnim
+_081282C8:
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081282D0: .4byte gUnknown_0202FF84
+_081282D4: .4byte gMapObjects
+_081282D8: .4byte gFieldEffectObjectTemplatePointers
+_081282DC: .4byte gSprites
+ thumb_func_end sub_8128224
+
+ thumb_func_start sub_81282E0
+sub_81282E0: @ 81282E0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812831A
+ ldr r2, _08128324
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x2]
+ lsls r0, 27
+ cmp r0, 0
+ blt _08128328
+_0812831A:
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl FieldEffectStop
+ b _0812839A
+ .align 2, 0
+_08128324: .4byte gMapObjects
+_08128328:
+ ldr r2, _081283A4
+ ldrb r1, [r1, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r5, [r0, 0x22]
+ ldrh r6, [r0, 0x20]
+ movs r2, 0x20
+ ldrsh r1, [r0, r2]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08128350
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _0812836A
+_08128350:
+ strh r6, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812836A
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_0812836A:
+ strh r6, [r4, 0x20]
+ strh r5, [r4, 0x22]
+ ldr r3, _081283A4
+ ldr r2, _081283A8
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+_0812839A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081283A4: .4byte gSprites
+_081283A8: .4byte gMapObjects
+ thumb_func_end sub_81282E0
+
+ thumb_func_start sub_81283AC
+sub_81283AC: @ 81283AC
+ push {r4,lr}
+ ldr r4, _08128404
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0
+ bl sub_8060470
+ ldr r0, _08128408
+ adds r0, 0x88
+ ldr r0, [r0]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0x52
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081283FC
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0812840C
+ adds r1, r0
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_081283FC:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128404: .4byte gUnknown_0202FF84
+_08128408: .4byte gFieldEffectObjectTemplatePointers
+_0812840C: .4byte gSprites
+ thumb_func_end sub_81283AC
+
+ thumb_func_start sub_8128410
+sub_8128410: @ 8128410
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ movs r1, 0x80
+ lsls r1, 1
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, r0
+ strh r1, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+ ldrh r1, [r4, 0x3E]
+ ldr r0, _0812844C
+ ands r0, r1
+ cmp r0, 0
+ beq _08128444
+ adds r0, r4, 0
+ movs r1, 0x35
+ bl FieldEffectStop
+_08128444:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812844C: .4byte 0x00001004
+ thumb_func_end sub_8128410
+
+ thumb_func_start sub_8128450
+sub_8128450: @ 8128450
+ push {r4,lr}
+ ldr r4, _081284B8
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x4
+ bl sub_8060470
+ ldr r0, _081284BC
+ ldr r0, [r0, 0x58]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081284B0
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _081284C0
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x50
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x17
+ strh r0, [r2, 0x2E]
+_081284B0:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081284B8: .4byte gUnknown_0202FF84
+_081284BC: .4byte gFieldEffectObjectTemplatePointers
+_081284C0: .4byte gSprites
+ thumb_func_end sub_8128450
+
+ thumb_func_start ShowTreeDisguiseFieldEffect
+ShowTreeDisguiseFieldEffect: @ 81284C4
+ push {lr}
+ movs r0, 0x1C
+ movs r1, 0x18
+ movs r2, 0x4
+ bl ShowDisguiseFieldEffect
+ pop {r1}
+ bx r1
+ thumb_func_end ShowTreeDisguiseFieldEffect
+
+ thumb_func_start ShowMountainDisguiseFieldEffect
+ShowMountainDisguiseFieldEffect: @ 81284D4
+ push {lr}
+ movs r0, 0x1D
+ movs r1, 0x19
+ movs r2, 0x3
+ bl ShowDisguiseFieldEffect
+ pop {r1}
+ bx r1
+ thumb_func_end ShowMountainDisguiseFieldEffect
+
+ thumb_func_start ShowSandDisguiseFieldEffect
+ShowSandDisguiseFieldEffect: @ 81284E4
+ push {lr}
+ movs r0, 0x24
+ movs r1, 0x1C
+ movs r2, 0x2
+ bl ShowDisguiseFieldEffect
+ pop {r1}
+ bx r1
+ thumb_func_end ShowSandDisguiseFieldEffect
+
+ thumb_func_start ShowDisguiseFieldEffect
+ShowDisguiseFieldEffect: @ 81284F4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r5, _08128528
+ ldrb r0, [r5]
+ ldrb r1, [r5, 0x4]
+ ldrb r2, [r5, 0x8]
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812852C
+ adds r0, r4, 0
+ bl FieldEffectActiveListRemove
+ movs r0, 0x40
+ b _08128598
+ .align 2, 0
+_08128528: .4byte gUnknown_0202FF84
+_0812852C:
+ ldr r1, _081285A4
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ mov r1, sp
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08128594
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _081285A8
+ adds r2, r0
+ movs r0, 0x3E
+ adds r0, r2
+ mov r12, r0
+ ldrb r3, [r0]
+ lsls r1, r3, 30
+ lsrs r1, 31
+ adds r1, 0x1
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 1
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ lsls r3, r7, 4
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x5]
+ mov r0, r8
+ strh r0, [r2, 0x30]
+ ldr r0, [r5]
+ strh r0, [r2, 0x32]
+ ldr r0, [r5, 0x4]
+ strh r0, [r2, 0x34]
+ ldr r0, [r5, 0x8]
+ strh r0, [r2, 0x36]
+_08128594:
+ mov r0, sp
+ ldrb r0, [r0]
+_08128598:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081285A4: .4byte gFieldEffectObjectTemplatePointers
+_081285A8: .4byte gSprites
+ thumb_func_end ShowDisguiseFieldEffect
+
+ thumb_func_start sub_81285AC
+sub_81285AC: @ 81285AC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x34]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r5, 0x36]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _081285DC
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldEffectStop
+_081285DC:
+ ldr r4, _08128694
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ mov r1, sp
+ ldrb r2, [r1]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ ldr r1, _08128698
+ adds r2, r1
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r3, 0x3E
+ adds r3, r5
+ mov r12, r3
+ movs r3, 0x4
+ ands r3, r1
+ mov r1, r12
+ ldrb r4, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r4
+ orrs r1, r3
+ mov r3, r12
+ strb r1, [r3]
+ ldrh r1, [r2, 0x20]
+ strh r1, [r5, 0x20]
+ ldrh r0, [r0, 0xA]
+ lsls r0, 16
+ asrs r0, 17
+ ldrh r1, [r2, 0x22]
+ adds r0, r1
+ subs r0, 0x10
+ strh r0, [r5, 0x22]
+ adds r2, 0x43
+ ldrb r0, [r2]
+ subs r0, 0x1
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ bne _0812865C
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_0812865C:
+ movs r3, 0x2E
+ ldrsh r0, [r5, r3]
+ ldrh r2, [r5, 0x2E]
+ cmp r0, 0x2
+ bne _08128678
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08128678
+ movs r0, 0x1
+ strh r0, [r5, 0x3C]
+_08128678:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0812868C
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldEffectStop
+_0812868C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08128694: .4byte gMapObjects
+_08128698: .4byte gSprites
+ thumb_func_end sub_81285AC
+
+ thumb_func_start sub_812869C
+sub_812869C: @ 812869C
+ push {lr}
+ adds r1, r0, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081286BA
+ ldr r2, _081286C0
+ ldrb r1, [r1, 0x1A]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x1
+ strh r1, [r0, 0x2E]
+_081286BA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081286C0: .4byte gSprites
+ thumb_func_end sub_812869C
+
+ thumb_func_start sub_81286C4
+sub_81286C4: @ 81286C4
+ push {lr}
+ adds r2, r0, 0
+ adds r2, 0x21
+ ldrb r1, [r2]
+ cmp r1, 0x2
+ beq _081286FA
+ cmp r1, 0
+ beq _081286FA
+ ldrb r1, [r0, 0x1A]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081286EC
+ adds r1, r0, r1
+ movs r3, 0x3C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _081286F0
+ movs r0, 0
+ b _081286FC
+ .align 2, 0
+_081286EC: .4byte gSprites
+_081286F0:
+ movs r0, 0x2
+ strb r0, [r2]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+_081286FA:
+ movs r0, 0x1
+_081286FC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81286C4
+
+ thumb_func_start sub_8128700
+sub_8128700: @ 8128700
+ push {r4,lr}
+ ldr r4, _08128768
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ str r0, [r4, 0x4]
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _0812876C
+ adds r0, 0x8C
+ ldr r0, [r0]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0x52
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _08128760
+ ldr r0, _08128770
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x3
+ ldrb r2, [r4, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+_08128760:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128768: .4byte gUnknown_0202FF84
+_0812876C: .4byte gFieldEffectObjectTemplatePointers
+_08128770: .4byte gSprites
+ thumb_func_end sub_8128700
+
+ thumb_func_start sub_8128774
+sub_8128774: @ 8128774
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _081287A8
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081287A0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_081287A0:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _081287BE
+_081287A8:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x22
+ ble _081287BE
+ adds r0, r2, 0
+ movs r1, 0x36
+ bl FieldEffectStop
+_081287BE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128774
+
+ thumb_func_start sub_81287C4
+sub_81287C4: @ 81287C4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081287E2
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldEffectStop
+ b _081287F8
+_081287E2:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0
+ bl SetObjectSubpriorityByZCoord
+_081287F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81287C4
+
+ thumb_func_start sub_8128800
+sub_8128800: @ 8128800
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812881E
+ ldrh r1, [r2, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl FieldEffectStop
+ b _08128826
+_0812881E:
+ adds r0, r2, 0
+ movs r1, 0
+ bl sub_806487C
+_08128826:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128800
+
+ thumb_func_start sub_812882C
+sub_812882C: @ 812882C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r0, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, 0
+ bl SetObjectSubpriorityByZCoord
+ movs r7, 0
+_08128842:
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _081288DC
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ lsls r0, 31
+ cmp r0, 0
+ beq _081288E4
+ ldrb r0, [r4, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081288E0
+ adds r5, r0, r1
+ adds r0, r6, 0
+ adds r0, 0x28
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrh r0, [r6, 0x20]
+ adds r1, r0, r2
+ subs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x20
+ ldrsh r2, [r5, r0]
+ cmp r1, r2
+ bge _081288E4
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, r2
+ ble _081288E4
+ adds r0, r5, 0
+ adds r0, 0x29
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r2, [r5, 0x22]
+ adds r2, r3
+ ldrh r4, [r5, 0x22]
+ adds r0, r6, 0
+ adds r0, 0x29
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrh r0, [r6, 0x22]
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ adds r3, r0, r3
+ lsls r2, 16
+ asrs r2, 16
+ lsls r3, 16
+ asrs r3, 16
+ cmp r2, r3
+ blt _081288BC
+ cmp r2, r0
+ bge _081288E4
+_081288BC:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, r3
+ ble _081288E4
+ adds r2, r6, 0
+ adds r2, 0x43
+ adds r0, r5, 0
+ adds r0, 0x43
+ ldrb r1, [r0]
+ ldrb r0, [r2]
+ cmp r0, r1
+ bhi _081288E4
+ adds r0, r1, 0x2
+ strb r0, [r2]
+ b _081288EE
+ .align 2, 0
+_081288DC: .4byte gMapObjects
+_081288E0: .4byte gSprites
+_081288E4:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0xF
+ bls _08128842
+_081288EE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812882C
+
+ thumb_func_start sub_81288F4
+sub_81288F4: @ 81288F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0812893C
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x44
+ bl memset
+ movs r3, 0x64
+ adds r2, r4, 0
+ movs r1, 0x3
+ adds r0, r2, 0
+ adds r0, 0x8
+_08128910:
+ strb r3, [r0]
+ subs r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08128910
+ adds r3, r2, 0
+ adds r3, 0x41
+ movs r1, 0
+ strb r5, [r3]
+ adds r0, r2, 0
+ adds r0, 0x40
+ strb r1, [r0]
+ ldr r1, _08128940
+ ldrb r0, [r3]
+ lsls r0, 6
+ adds r1, 0x18
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2, 0x14]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812893C: .4byte 0x020192e4
+_08128940: .4byte gUnknown_02038570
+ thumb_func_end sub_81288F4
+
+ thumb_func_start sub_8128944
+sub_8128944: @ 8128944
+ push {r4-r6,lr}
+ ldr r1, _081289A8
+ ldr r0, [r1, 0x14]
+ cmp r0, 0
+ beq _08128974
+ adds r4, r1, 0
+ movs r5, 0
+_08128952:
+ ldr r0, [r4, 0x14]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08128962
+ strb r5, [r4]
+ bl sub_81289AC
+_08128962:
+ ldr r1, [r4, 0x14]
+ lsrs r1, 1
+ str r1, [r4, 0x14]
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+ strb r5, [r4, 0x4]
+ cmp r1, 0
+ bne _08128952
+_08128974:
+ movs r6, 0x3
+ ldr r5, _081289A8
+_08128978:
+ bl Random
+ adds r4, r0, 0
+ ands r4, r6
+ adds r3, r5, 0x5
+ adds r0, r4, r3
+ ldrb r2, [r0]
+ movs r1, 0
+ ldrb r0, [r5, 0x5]
+ cmp r2, r0
+ bcc _0812899C
+_0812898E:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _0812899C
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _0812898E
+_0812899C:
+ cmp r1, 0x4
+ bne _08128978
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081289A8: .4byte 0x020192e4
+ thumb_func_end sub_8128944
+
+ thumb_func_start sub_81289AC
+sub_81289AC: @ 81289AC
+ push {r4-r6,lr}
+ ldr r1, _081289F4
+ ldrb r0, [r1]
+ adds r2, r1, 0
+ cmp r0, 0x2
+ beq _08128A76
+ adds r4, r1, 0
+ ldr r5, _081289F8
+ ldr r6, _081289FC
+_081289BE:
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _08128A0E
+ cmp r0, 0x1
+ bgt _08128A6E
+ cmp r0, 0
+ bne _08128A6E
+ ldr r1, _08128A00
+ ldrb r0, [r4, 0x10]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r5]
+ ldrb r1, [r4, 0x4]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r1, r6
+ ldrh r1, [r1]
+ adds r0, r1, 0
+ cmp r0, 0
+ bne _08128A04
+ strh r0, [r4, 0x2]
+ b _08128A06
+ .align 2, 0
+_081289F4: .4byte 0x020192e4
+_081289F8: .4byte gUnknown_02039238
+_081289FC: .4byte gUnknown_0203858E
+_08128A00: .4byte gContestAIs
+_08128A04:
+ strh r1, [r4, 0x2]
+_08128A06:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08128A6E
+_08128A0E:
+ ldrh r1, [r1, 0x2]
+ cmp r1, 0
+ beq _08128A2C
+ ldr r1, _08128A28
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ b _08128A3C
+ .align 2, 0
+_08128A28: .4byte gUnknown_08401E60
+_08128A2C:
+ adds r0, r4, 0x5
+ ldrb r2, [r4, 0x4]
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r1, [r4, 0x9]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x9]
+_08128A3C:
+ ldr r2, _08128A5C
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08128A6E
+ ldrb r0, [r2, 0x4]
+ adds r0, 0x1
+ movs r1, 0
+ strb r0, [r2, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _08128A60
+ strb r1, [r2]
+ b _08128A66
+ .align 2, 0
+_08128A5C: .4byte 0x020192e4
+_08128A60:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+_08128A66:
+ ldrb r1, [r4, 0x9]
+ movs r0, 0xFE
+ ands r0, r1
+ strb r0, [r4, 0x9]
+_08128A6E:
+ adds r1, r2, 0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _081289BE
+_08128A76:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81289AC
+
+ thumb_func_start sub_8128A7C
+sub_8128A7C: @ 8128A7C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, _08128AA4
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08128A9A
+_08128A8C:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _08128A9A
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08128A8C
+_08128A9A:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128AA4: .4byte 0x020192d0
+ thumb_func_end sub_8128A7C
+
+ thumb_func_start sub_8128AA8
+sub_8128AA8: @ 8128AA8
+ push {lr}
+ ldr r2, _08128AD0
+ adds r1, r2, 0x5
+ ldrb r0, [r2, 0x4]
+ adds r1, r0
+ ldr r3, _08128AD4
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08128AD8
+ movs r1, 0xFF
+ b _08128ADE
+ .align 2, 0
+_08128AD0: .4byte 0x020192e4
+_08128AD4: .4byte gUnknown_02039238
+_08128AD8:
+ cmp r0, 0
+ bge _08128ADE
+ movs r1, 0
+_08128ADE:
+ adds r0, r2, 0x5
+ ldrb r2, [r2, 0x4]
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, 0x2
+ str r0, [r3]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128AA8
+
+ thumb_func_start contest_ai_get_turn
+contest_ai_get_turn: @ 8128AF0
+ ldr r1, _08128B04
+ adds r0, r1, 0
+ subs r0, 0xE0
+ ldrb r0, [r0, 0x1]
+ strh r0, [r1, 0x18]
+ ldr r1, _08128B08
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08128B04: .4byte 0x020192e4
+_08128B08: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_turn
+
+ thumb_func_start sub_8128B0C
+sub_8128B0C: @ 8128B0C
+ push {lr}
+ bl contest_ai_get_turn
+ ldr r0, _08128B3C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128B40
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08128B44
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128B48
+ .align 2, 0
+_08128B3C: .4byte 0x020192e4
+_08128B40: .4byte gUnknown_02039238
+_08128B44:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128B48:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128B0C
+
+ thumb_func_start sub_8128B4C
+sub_8128B4C: @ 8128B4C
+ push {lr}
+ bl contest_ai_get_turn
+ ldr r0, _08128B7C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128B80
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08128B84
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128B88
+ .align 2, 0
+_08128B7C: .4byte 0x020192e4
+_08128B80: .4byte gUnknown_02039238
+_08128B84:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128B88:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128B4C
+
+ thumb_func_start sub_8128B8C
+sub_8128B8C: @ 8128B8C
+ push {lr}
+ bl contest_ai_get_turn
+ ldr r0, _08128BBC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128BC0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08128BC4
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128BC8
+ .align 2, 0
+_08128BBC: .4byte 0x020192e4
+_08128BC0: .4byte gUnknown_02039238
+_08128BC4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128BC8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128B8C
+
+ thumb_func_start sub_8128BCC
+sub_8128BCC: @ 8128BCC
+ push {lr}
+ bl contest_ai_get_turn
+ ldr r0, _08128BFC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128C00
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08128C04
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128C08
+ .align 2, 0
+_08128BFC: .4byte 0x020192e4
+_08128C00: .4byte gUnknown_02039238
+_08128C04:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128C08:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128BCC
+
+ thumb_func_start contest_ai_get_excitement
+contest_ai_get_excitement: @ 8128C0C
+ ldr r1, _08128C24
+ adds r0, r1, 0
+ subs r0, 0xE0
+ ldrb r0, [r0, 0x13]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x18]
+ ldr r1, _08128C28
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08128C24: .4byte 0x020192e4
+_08128C28: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_excitement
+
+ thumb_func_start sub_8128C2C
+sub_8128C2C: @ 8128C2C
+ push {lr}
+ bl contest_ai_get_excitement
+ ldr r0, _08128C5C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128C60
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08128C64
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128C68
+ .align 2, 0
+_08128C5C: .4byte 0x020192e4
+_08128C60: .4byte gUnknown_02039238
+_08128C64:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128C68:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128C2C
+
+ thumb_func_start sub_8128C6C
+sub_8128C6C: @ 8128C6C
+ push {lr}
+ bl contest_ai_get_excitement
+ ldr r0, _08128C9C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128CA0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08128CA4
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128CA8
+ .align 2, 0
+_08128C9C: .4byte 0x020192e4
+_08128CA0: .4byte gUnknown_02039238
+_08128CA4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128CA8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128C6C
+
+ thumb_func_start sub_8128CAC
+sub_8128CAC: @ 8128CAC
+ push {lr}
+ bl contest_ai_get_excitement
+ ldr r0, _08128CDC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128CE0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08128CE4
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128CE8
+ .align 2, 0
+_08128CDC: .4byte 0x020192e4
+_08128CE0: .4byte gUnknown_02039238
+_08128CE4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128CE8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128CAC
+
+ thumb_func_start sub_8128CEC
+sub_8128CEC: @ 8128CEC
+ push {lr}
+ bl contest_ai_get_excitement
+ ldr r0, _08128D1C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128D20
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08128D24
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128D28
+ .align 2, 0
+_08128D1C: .4byte 0x020192e4
+_08128D20: .4byte gUnknown_02039238
+_08128D24:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128D28:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128CEC
+
+ thumb_func_start contest_ai_get_user_order
+contest_ai_get_user_order: @ 8128D2C
+ ldr r1, _08128D48
+ adds r2, r1, 0
+ adds r2, 0x41
+ adds r0, r1, 0
+ subs r0, 0x14
+ ldrb r2, [r2]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1, 0x18]
+ ldr r1, _08128D4C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08128D48: .4byte 0x020192e4
+_08128D4C: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_user_order
+
+ thumb_func_start sub_8128D50
+sub_8128D50: @ 8128D50
+ push {lr}
+ bl contest_ai_get_user_order
+ ldr r0, _08128D80
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128D84
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08128D88
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128D8C
+ .align 2, 0
+_08128D80: .4byte 0x020192e4
+_08128D84: .4byte gUnknown_02039238
+_08128D88:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128D8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128D50
+
+ thumb_func_start sub_8128D90
+sub_8128D90: @ 8128D90
+ push {lr}
+ bl contest_ai_get_user_order
+ ldr r0, _08128DC0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128DC4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08128DC8
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128DCC
+ .align 2, 0
+_08128DC0: .4byte 0x020192e4
+_08128DC4: .4byte gUnknown_02039238
+_08128DC8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128DCC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128D90
+
+ thumb_func_start sub_8128DD0
+sub_8128DD0: @ 8128DD0
+ push {lr}
+ bl contest_ai_get_user_order
+ ldr r0, _08128E00
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128E04
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08128E08
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128E0C
+ .align 2, 0
+_08128E00: .4byte 0x020192e4
+_08128E04: .4byte gUnknown_02039238
+_08128E08:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128E0C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128DD0
+
+ thumb_func_start sub_8128E10
+sub_8128E10: @ 8128E10
+ push {lr}
+ bl contest_ai_get_user_order
+ ldr r0, _08128E40
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128E44
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08128E48
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128E4C
+ .align 2, 0
+_08128E40: .4byte 0x020192e4
+_08128E44: .4byte gUnknown_02039238
+_08128E48:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128E4C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128E10
+
+ thumb_func_start contest_ai_get_user_condition_maybe
+contest_ai_get_user_condition_maybe: @ 8128E50
+ push {r4,lr}
+ ldr r4, _08128E88
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x84
+ adds r0, r1
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x18]
+ ldr r1, _08128E8C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08128E88: .4byte 0x020192e4
+_08128E8C: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_user_condition_maybe
+
+ thumb_func_start sub_8128E90
+sub_8128E90: @ 8128E90
+ push {lr}
+ bl contest_ai_get_user_condition_maybe
+ ldr r0, _08128EC0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128EC4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08128EC8
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128ECC
+ .align 2, 0
+_08128EC0: .4byte 0x020192e4
+_08128EC4: .4byte gUnknown_02039238
+_08128EC8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128ECC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128E90
+
+ thumb_func_start sub_8128ED0
+sub_8128ED0: @ 8128ED0
+ push {lr}
+ bl contest_ai_get_user_condition_maybe
+ ldr r0, _08128F00
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128F04
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08128F08
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128F0C
+ .align 2, 0
+_08128F00: .4byte 0x020192e4
+_08128F04: .4byte gUnknown_02039238
+_08128F08:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128F0C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128ED0
+
+ thumb_func_start sub_8128F10
+sub_8128F10: @ 8128F10
+ push {lr}
+ bl contest_ai_get_user_condition_maybe
+ ldr r0, _08128F40
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128F44
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08128F48
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128F4C
+ .align 2, 0
+_08128F40: .4byte 0x020192e4
+_08128F44: .4byte gUnknown_02039238
+_08128F48:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128F4C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128F10
+
+ thumb_func_start sub_8128F50
+sub_8128F50: @ 8128F50
+ push {lr}
+ bl contest_ai_get_user_condition_maybe
+ ldr r0, _08128F80
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128F84
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08128F88
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08128F8C
+ .align 2, 0
+_08128F80: .4byte 0x020192e4
+_08128F84: .4byte gUnknown_02039238
+_08128F88:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128F8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128F50
+
+ thumb_func_start sub_8128F90
+sub_8128F90: @ 8128F90
+ ldr r2, _08128FB4
+ adds r0, r2, 0
+ adds r0, 0x41
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ subs r1, 0x84
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ strh r0, [r2, 0x18]
+ ldr r1, _08128FB8
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08128FB4: .4byte 0x020192e4
+_08128FB8: .4byte gUnknown_02039238
+ thumb_func_end sub_8128F90
+
+ thumb_func_start sub_8128FBC
+sub_8128FBC: @ 8128FBC
+ push {r4,r5,lr}
+ bl sub_8128F90
+ ldr r2, _08128FF4
+ ldr r4, _08128FF8
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bge _08128FFC
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08129000
+ .align 2, 0
+_08128FF4: .4byte 0x020192e4
+_08128FF8: .4byte gUnknown_02039238
+_08128FFC:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_08129000:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128FBC
+
+ thumb_func_start sub_8129008
+sub_8129008: @ 8129008
+ push {r4,r5,lr}
+ bl sub_8128F90
+ ldr r2, _08129040
+ ldr r4, _08129044
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ ble _08129048
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812904C
+ .align 2, 0
+_08129040: .4byte 0x020192e4
+_08129044: .4byte gUnknown_02039238
+_08129048:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_0812904C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129008
+
+ thumb_func_start sub_8129054
+sub_8129054: @ 8129054
+ push {r4,r5,lr}
+ bl sub_8128F90
+ ldr r2, _0812908C
+ ldr r4, _08129090
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _08129094
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08129098
+ .align 2, 0
+_0812908C: .4byte 0x020192e4
+_08129090: .4byte gUnknown_02039238
+_08129094:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_08129098:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129054
+
+ thumb_func_start sub_81290A0
+sub_81290A0: @ 81290A0
+ push {r4,r5,lr}
+ bl sub_8128F90
+ ldr r2, _081290D8
+ ldr r4, _081290DC
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ beq _081290E0
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _081290E4
+ .align 2, 0
+_081290D8: .4byte 0x020192e4
+_081290DC: .4byte gUnknown_02039238
+_081290E0:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_081290E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81290A0
+
+ thumb_func_start sub_81290EC
+sub_81290EC: @ 81290EC
+ ldr r2, _08129108
+ ldr r1, _0812910C
+ adds r0, r2, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0x18]
+ ldr r1, _08129110
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08129108: .4byte 0x020192e4
+_0812910C: .4byte gUnknown_02038670
+_08129110: .4byte gUnknown_02039238
+ thumb_func_end sub_81290EC
+
+ thumb_func_start sub_8129114
+sub_8129114: @ 8129114
+ push {r4,r5,lr}
+ bl sub_81290EC
+ ldr r2, _0812914C
+ ldr r4, _08129150
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bge _08129154
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08129158
+ .align 2, 0
+_0812914C: .4byte 0x020192e4
+_08129150: .4byte gUnknown_02039238
+_08129154:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_08129158:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129114
+
+ thumb_func_start sub_8129160
+sub_8129160: @ 8129160
+ push {r4,r5,lr}
+ bl sub_81290EC
+ ldr r2, _08129198
+ ldr r4, _0812919C
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ ble _081291A0
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _081291A4
+ .align 2, 0
+_08129198: .4byte 0x020192e4
+_0812919C: .4byte gUnknown_02039238
+_081291A0:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_081291A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129160
+
+ thumb_func_start sub_81291AC
+sub_81291AC: @ 81291AC
+ push {r4,r5,lr}
+ bl sub_81290EC
+ ldr r2, _081291E4
+ ldr r4, _081291E8
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _081291EC
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _081291F0
+ .align 2, 0
+_081291E4: .4byte 0x020192e4
+_081291E8: .4byte gUnknown_02039238
+_081291EC:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_081291F0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81291AC
+
+ thumb_func_start sub_81291F8
+sub_81291F8: @ 81291F8
+ push {r4,r5,lr}
+ bl sub_81290EC
+ ldr r2, _08129230
+ ldr r4, _08129234
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ beq _08129238
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812923C
+ .align 2, 0
+_08129230: .4byte 0x020192e4
+_08129234: .4byte gUnknown_02039238
+_08129238:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_0812923C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81291F8
+
+ thumb_func_start contest_ai_get_contest_type
+contest_ai_get_contest_type: @ 8129244
+ ldr r1, _08129258
+ ldr r0, _0812925C
+ ldrh r0, [r0]
+ strh r0, [r1, 0x18]
+ ldr r1, _08129260
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08129258: .4byte 0x020192e4
+_0812925C: .4byte gUnknown_0203869C
+_08129260: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_contest_type
+
+ thumb_func_start sub_8129264
+sub_8129264: @ 8129264
+ push {lr}
+ bl contest_ai_get_contest_type
+ ldr r0, _08129294
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129298
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812929C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081292A0
+ .align 2, 0
+_08129294: .4byte 0x020192e4
+_08129298: .4byte gUnknown_02039238
+_0812929C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081292A0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129264
+
+ thumb_func_start sub_81292A4
+sub_81292A4: @ 81292A4
+ push {lr}
+ bl contest_ai_get_contest_type
+ ldr r0, _081292D4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081292D8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _081292DC
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081292E0
+ .align 2, 0
+_081292D4: .4byte 0x020192e4
+_081292D8: .4byte gUnknown_02039238
+_081292DC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081292E0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81292A4
+
+ thumb_func_start contest_ai_get_move_excitement
+contest_ai_get_move_excitement: @ 81292E4
+ push {r4,lr}
+ ldr r2, _08129318
+ ldr r4, _0812931C
+ ldrb r1, [r4, 0x4]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ bl contest_get_move_excitement
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x18]
+ ldr r1, _08129320
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129318: .4byte gUnknown_02038570
+_0812931C: .4byte 0x020192e4
+_08129320: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_move_excitement
+
+ thumb_func_start sub_8129324
+sub_8129324: @ 8129324
+ push {r4,lr}
+ bl contest_ai_get_move_excitement
+ ldr r0, _08129354
+ ldr r3, _08129358
+ ldr r2, [r3]
+ movs r4, 0x18
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bge _0812935C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129360
+ .align 2, 0
+_08129354: .4byte 0x020192e4
+_08129358: .4byte gUnknown_02039238
+_0812935C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129360:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129324
+
+ thumb_func_start sub_8129368
+sub_8129368: @ 8129368
+ push {r4,lr}
+ bl contest_ai_get_move_excitement
+ ldr r0, _08129398
+ ldr r3, _0812939C
+ ldr r2, [r3]
+ movs r4, 0x18
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ ble _081293A0
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081293A4
+ .align 2, 0
+_08129398: .4byte 0x020192e4
+_0812939C: .4byte gUnknown_02039238
+_081293A0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081293A4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129368
+
+ thumb_func_start sub_81293AC
+sub_81293AC: @ 81293AC
+ push {r4,lr}
+ bl contest_ai_get_move_excitement
+ ldr r0, _081293DC
+ ldr r3, _081293E0
+ ldr r2, [r3]
+ movs r4, 0x18
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _081293E4
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081293E8
+ .align 2, 0
+_081293DC: .4byte 0x020192e4
+_081293E0: .4byte gUnknown_02039238
+_081293E4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081293E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81293AC
+
+ thumb_func_start sub_81293F0
+sub_81293F0: @ 81293F0
+ push {r4,lr}
+ bl contest_ai_get_move_excitement
+ ldr r0, _08129420
+ ldr r3, _08129424
+ ldr r2, [r3]
+ movs r4, 0x18
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ beq _08129428
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812942C
+ .align 2, 0
+_08129420: .4byte 0x020192e4
+_08129424: .4byte gUnknown_02039238
+_08129428:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812942C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81293F0
+
+ thumb_func_start contest_ai_get_move_effect
+contest_ai_get_move_effect: @ 8129434
+ ldr r2, _08129460
+ ldr r3, _08129464
+ ldrb r1, [r3, 0x4]
+ lsls r1, 1
+ adds r0, r3, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ ldr r1, _08129468
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r3, 0x18]
+ ldr r1, _0812946C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08129460: .4byte gUnknown_02038570
+_08129464: .4byte 0x020192e4
+_08129468: .4byte gContestMoves
+_0812946C: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_move_effect
+
+ thumb_func_start sub_8129470
+sub_8129470: @ 8129470
+ push {lr}
+ bl contest_ai_get_move_effect
+ ldr r0, _081294A0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081294A4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _081294A8
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081294AC
+ .align 2, 0
+_081294A0: .4byte 0x020192e4
+_081294A4: .4byte gUnknown_02039238
+_081294A8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081294AC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129470
+
+ thumb_func_start sub_81294B0
+sub_81294B0: @ 81294B0
+ push {lr}
+ bl contest_ai_get_move_effect
+ ldr r0, _081294E0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081294E4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _081294E8
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081294EC
+ .align 2, 0
+_081294E0: .4byte 0x020192e4
+_081294E4: .4byte gUnknown_02039238
+_081294E8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081294EC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81294B0
+
+ thumb_func_start contest_ai_get_move_effect_type
+contest_ai_get_move_effect_type: @ 81294F0
+ ldr r2, _08129524
+ ldr r3, _08129528
+ ldrb r1, [r3, 0x4]
+ lsls r1, 1
+ adds r0, r3, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ ldr r2, _0812952C
+ ldr r1, _08129530
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r3, 0x18]
+ ldr r1, _08129534
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08129524: .4byte gUnknown_02038570
+_08129528: .4byte 0x020192e4
+_0812952C: .4byte gContestEffects
+_08129530: .4byte gContestMoves
+_08129534: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_move_effect_type
+
+ thumb_func_start sub_8129538
+sub_8129538: @ 8129538
+ push {lr}
+ bl contest_ai_get_move_effect_type
+ ldr r0, _08129568
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812956C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08129570
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129574
+ .align 2, 0
+_08129568: .4byte 0x020192e4
+_0812956C: .4byte gUnknown_02039238
+_08129570:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129574:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129538
+
+ thumb_func_start sub_8129578
+sub_8129578: @ 8129578
+ push {lr}
+ bl contest_ai_get_move_effect_type
+ ldr r0, _081295A8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081295AC
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _081295B0
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081295B4
+ .align 2, 0
+_081295A8: .4byte 0x020192e4
+_081295AC: .4byte gUnknown_02039238
+_081295B0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081295B4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129578
+
+ thumb_func_start contest_ai_check_move_has_highest_appeal
+contest_ai_check_move_has_highest_appeal: @ 81295B8
+ push {r4-r7,lr}
+ ldr r2, _08129610
+ ldr r3, _08129614
+ ldrb r0, [r3, 0x4]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x41
+ ldrb r1, [r1]
+ lsls r1, 6
+ adds r0, r1
+ adds r2, 0x1E
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r4, _08129618
+ ldr r5, _0812961C
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r7, [r0, 0x1]
+ movs r6, 0
+ ldr r0, _08129620
+ mov r12, r0
+ adds r1, r2
+_081295EA:
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08129600
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ cmp r7, r0
+ bcc _08129608
+_08129600:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _081295EA
+_08129608:
+ cmp r6, 0x4
+ bne _08129624
+ movs r0, 0x1
+ b _08129626
+ .align 2, 0
+_08129610: .4byte gUnknown_02038570
+_08129614: .4byte 0x020192e4
+_08129618: .4byte gContestEffects
+_0812961C: .4byte gContestMoves
+_08129620: .4byte gUnknown_02039238
+_08129624:
+ movs r0, 0
+_08129626:
+ strh r0, [r3, 0x18]
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end contest_ai_check_move_has_highest_appeal
+
+ thumb_func_start sub_8129638
+sub_8129638: @ 8129638
+ push {lr}
+ bl contest_ai_check_move_has_highest_appeal
+ ldr r0, _08129664
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812966C
+ ldr r3, _08129668
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129674
+ .align 2, 0
+_08129664: .4byte 0x020192e4
+_08129668: .4byte gUnknown_02039238
+_0812966C:
+ ldr r1, _08129678
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129674:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129678: .4byte gUnknown_02039238
+ thumb_func_end sub_8129638
+
+ thumb_func_start sub_812967C
+sub_812967C: @ 812967C
+ push {r4-r7,lr}
+ ldr r2, _081296D4
+ ldr r3, _081296D8
+ ldrb r0, [r3, 0x4]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x41
+ ldrb r1, [r1]
+ lsls r1, 6
+ adds r0, r1
+ adds r2, 0x1E
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r4, _081296DC
+ ldr r5, _081296E0
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r7, [r0, 0x2]
+ movs r6, 0
+ ldr r0, _081296E4
+ mov r12, r0
+ adds r1, r2
+_081296AE:
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081296C4
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x2]
+ cmp r7, r0
+ bcc _081296CC
+_081296C4:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _081296AE
+_081296CC:
+ cmp r6, 0x4
+ bne _081296E8
+ movs r0, 0x1
+ b _081296EA
+ .align 2, 0
+_081296D4: .4byte gUnknown_02038570
+_081296D8: .4byte 0x020192e4
+_081296DC: .4byte gContestEffects
+_081296E0: .4byte gContestMoves
+_081296E4: .4byte gUnknown_02039238
+_081296E8:
+ movs r0, 0
+_081296EA:
+ strh r0, [r3, 0x18]
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812967C
+
+ thumb_func_start sub_81296FC
+sub_81296FC: @ 81296FC
+ push {lr}
+ bl sub_812967C
+ ldr r0, _08129728
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08129730
+ ldr r3, _0812972C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129738
+ .align 2, 0
+_08129728: .4byte 0x020192e4
+_0812972C: .4byte gUnknown_02039238
+_08129730:
+ ldr r1, _0812973C
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08129738:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812973C: .4byte gUnknown_02039238
+ thumb_func_end sub_81296FC
+
+ thumb_func_start sub_8129740
+sub_8129740: @ 8129740
+ push {r4,lr}
+ ldr r2, _08129784
+ ldr r4, _08129788
+ ldrb r1, [r4, 0x4]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ ldr r2, _0812978C
+ ldr r1, _08129790
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x18]
+ ldr r1, _08129794
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129784: .4byte gUnknown_02038570
+_08129788: .4byte 0x020192e4
+_0812978C: .4byte gContestEffects
+_08129790: .4byte gContestMoves
+_08129794: .4byte gUnknown_02039238
+ thumb_func_end sub_8129740
+
+ thumb_func_start sub_8129798
+sub_8129798: @ 8129798
+ push {lr}
+ bl sub_8129740
+ ldr r0, _081297C8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081297CC
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _081297D0
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081297D4
+ .align 2, 0
+_081297C8: .4byte 0x020192e4
+_081297CC: .4byte gUnknown_02039238
+_081297D0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081297D4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129798
+
+ thumb_func_start sub_81297D8
+sub_81297D8: @ 81297D8
+ push {lr}
+ bl sub_8129740
+ ldr r0, _08129808
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812980C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08129810
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129814
+ .align 2, 0
+_08129808: .4byte 0x020192e4
+_0812980C: .4byte gUnknown_02039238
+_08129810:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129814:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81297D8
+
+ thumb_func_start sub_8129818
+sub_8129818: @ 8129818
+ push {lr}
+ bl sub_8129740
+ ldr r0, _08129848
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812984C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08129850
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129854
+ .align 2, 0
+_08129848: .4byte 0x020192e4
+_0812984C: .4byte gUnknown_02039238
+_08129850:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129854:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129818
+
+ thumb_func_start sub_8129858
+sub_8129858: @ 8129858
+ push {lr}
+ bl sub_8129740
+ ldr r0, _08129888
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812988C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08129890
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129894
+ .align 2, 0
+_08129888: .4byte 0x020192e4
+_0812988C: .4byte gUnknown_02039238
+_08129890:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129894:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129858
+
+ thumb_func_start sub_8129898
+sub_8129898: @ 8129898
+ push {r4,lr}
+ ldr r2, _081298DC
+ ldr r4, _081298E0
+ ldrb r1, [r4, 0x4]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ ldr r2, _081298E4
+ ldr r1, _081298E8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x18]
+ ldr r1, _081298EC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081298DC: .4byte gUnknown_02038570
+_081298E0: .4byte 0x020192e4
+_081298E4: .4byte gContestEffects
+_081298E8: .4byte gContestMoves
+_081298EC: .4byte gUnknown_02039238
+ thumb_func_end sub_8129898
+
+ thumb_func_start sub_81298F0
+sub_81298F0: @ 81298F0
+ push {lr}
+ bl sub_8129898
+ ldr r0, _08129920
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129924
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08129928
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812992C
+ .align 2, 0
+_08129920: .4byte 0x020192e4
+_08129924: .4byte gUnknown_02039238
+_08129928:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812992C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81298F0
+
+ thumb_func_start sub_8129930
+sub_8129930: @ 8129930
+ push {lr}
+ bl sub_8129898
+ ldr r0, _08129960
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129964
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08129968
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812996C
+ .align 2, 0
+_08129960: .4byte 0x020192e4
+_08129964: .4byte gUnknown_02039238
+_08129968:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812996C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129930
+
+ thumb_func_start sub_8129970
+sub_8129970: @ 8129970
+ push {lr}
+ bl sub_8129898
+ ldr r0, _081299A0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081299A4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _081299A8
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081299AC
+ .align 2, 0
+_081299A0: .4byte 0x020192e4
+_081299A4: .4byte gUnknown_02039238
+_081299A8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081299AC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129970
+
+ thumb_func_start sub_81299B0
+sub_81299B0: @ 81299B0
+ push {lr}
+ bl sub_8129898
+ ldr r0, _081299E0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081299E4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _081299E8
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081299EC
+ .align 2, 0
+_081299E0: .4byte 0x020192e4
+_081299E4: .4byte gUnknown_02039238
+_081299E8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081299EC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81299B0
+
+ thumb_func_start contest_ai_get_move_used_count
+contest_ai_get_move_used_count: @ 81299F0
+ push {r4,lr}
+ ldr r3, _08129A20
+ ldr r4, _08129A24
+ ldrb r0, [r4, 0x4]
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x41
+ ldrb r2, [r1]
+ lsls r1, r2, 6
+ adds r0, r1
+ adds r3, 0x1E
+ adds r0, r3
+ ldrh r3, [r0]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x84
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ cmp r3, r1
+ beq _08129A28
+ movs r0, 0
+ b _08129A30
+ .align 2, 0
+_08129A20: .4byte gUnknown_02038570
+_08129A24: .4byte 0x020192e4
+_08129A28:
+ ldrb r0, [r0, 0xB]
+ lsls r0, 25
+ lsrs r0, 29
+ adds r0, 0x1
+_08129A30:
+ strh r0, [r4, 0x18]
+ ldr r1, _08129A40
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129A40: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_move_used_count
+
+ thumb_func_start sub_8129A44
+sub_8129A44: @ 8129A44
+ push {lr}
+ bl contest_ai_get_move_used_count
+ ldr r0, _08129A74
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129A78
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08129A7C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129A80
+ .align 2, 0
+_08129A74: .4byte 0x020192e4
+_08129A78: .4byte gUnknown_02039238
+_08129A7C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129A80:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129A44
+
+ thumb_func_start sub_8129A84
+sub_8129A84: @ 8129A84
+ push {lr}
+ bl contest_ai_get_move_used_count
+ ldr r0, _08129AB4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129AB8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08129ABC
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129AC0
+ .align 2, 0
+_08129AB4: .4byte 0x020192e4
+_08129AB8: .4byte gUnknown_02039238
+_08129ABC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129AC0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129A84
+
+ thumb_func_start sub_8129AC4
+sub_8129AC4: @ 8129AC4
+ push {lr}
+ bl contest_ai_get_move_used_count
+ ldr r0, _08129AF4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129AF8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08129AFC
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129B00
+ .align 2, 0
+_08129AF4: .4byte 0x020192e4
+_08129AF8: .4byte gUnknown_02039238
+_08129AFC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129B00:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129AC4
+
+ thumb_func_start sub_8129B04
+sub_8129B04: @ 8129B04
+ push {lr}
+ bl contest_ai_get_move_used_count
+ ldr r0, _08129B34
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129B38
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08129B3C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129B40
+ .align 2, 0
+_08129B34: .4byte 0x020192e4
+_08129B38: .4byte gUnknown_02039238
+_08129B3C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129B40:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129B04
+
+ thumb_func_start contest_ai_check_combo_starter
+contest_ai_check_combo_starter: @ 8129B44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r3, _08129BAC
+ ldr r2, _08129BB0
+ ldrb r1, [r2, 0x4]
+ lsls r1, 1
+ adds r2, 0x41
+ ldrb r0, [r2]
+ lsls r0, 6
+ adds r1, r0
+ adds r3, 0x1E
+ adds r1, r3
+ ldrh r6, [r1]
+ movs r4, 0
+ mov r8, r2
+ adds r7, r3, 0
+_08129B68:
+ lsls r0, r4, 1
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 6
+ adds r0, r1
+ adds r1, r0, r7
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08129B8A
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl AreMovesContestCombo
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08129B94
+_08129B8A:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08129B68
+ cmp r5, 0
+ beq _08129B96
+_08129B94:
+ movs r5, 0x1
+_08129B96:
+ ldr r0, _08129BB0
+ strh r5, [r0, 0x18]
+ ldr r1, _08129BB4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129BAC: .4byte gUnknown_02038570
+_08129BB0: .4byte 0x020192e4
+_08129BB4: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_combo_starter
+
+ thumb_func_start sub_8129BB8
+sub_8129BB8: @ 8129BB8
+ push {lr}
+ bl contest_ai_check_combo_starter
+ ldr r0, _08129BE4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08129BEC
+ ldr r3, _08129BE8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129BF4
+ .align 2, 0
+_08129BE4: .4byte 0x020192e4
+_08129BE8: .4byte gUnknown_02039238
+_08129BEC:
+ ldr r1, _08129BF8
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129BF4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129BF8: .4byte gUnknown_02039238
+ thumb_func_end sub_8129BB8
+
+ thumb_func_start sub_8129BFC
+sub_8129BFC: @ 8129BFC
+ push {lr}
+ bl contest_ai_check_combo_starter
+ ldr r0, _08129C28
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08129C30
+ ldr r3, _08129C2C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129C38
+ .align 2, 0
+_08129C28: .4byte 0x020192e4
+_08129C2C: .4byte gUnknown_02039238
+_08129C30:
+ ldr r1, _08129C3C
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129C38:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129C3C: .4byte gUnknown_02039238
+ thumb_func_end sub_8129BFC
+
+ thumb_func_start contest_ai_check_combo_finisher
+contest_ai_check_combo_finisher: @ 8129C40
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r3, _08129CA8
+ ldr r2, _08129CAC
+ ldrb r1, [r2, 0x4]
+ lsls r1, 1
+ adds r2, 0x41
+ ldrb r0, [r2]
+ lsls r0, 6
+ adds r1, r0
+ adds r3, 0x1E
+ adds r1, r3
+ ldrh r6, [r1]
+ movs r4, 0
+ mov r8, r2
+ adds r7, r3, 0
+_08129C64:
+ lsls r0, r4, 1
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 6
+ adds r0, r1
+ adds r1, r0, r7
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08129C84
+ adds r1, r6, 0
+ bl AreMovesContestCombo
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08129C8E
+_08129C84:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08129C64
+ cmp r5, 0
+ beq _08129C90
+_08129C8E:
+ movs r5, 0x1
+_08129C90:
+ ldr r0, _08129CAC
+ strh r5, [r0, 0x18]
+ ldr r1, _08129CB0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129CA8: .4byte gUnknown_02038570
+_08129CAC: .4byte 0x020192e4
+_08129CB0: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_combo_finisher
+
+ thumb_func_start sub_8129CB4
+sub_8129CB4: @ 8129CB4
+ push {lr}
+ bl contest_ai_check_combo_finisher
+ ldr r0, _08129CE0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08129CE8
+ ldr r3, _08129CE4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129CF0
+ .align 2, 0
+_08129CE0: .4byte 0x020192e4
+_08129CE4: .4byte gUnknown_02039238
+_08129CE8:
+ ldr r1, _08129CF4
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129CF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129CF4: .4byte gUnknown_02039238
+ thumb_func_end sub_8129CB4
+
+ thumb_func_start sub_8129CF8
+sub_8129CF8: @ 8129CF8
+ push {lr}
+ bl contest_ai_check_combo_finisher
+ ldr r0, _08129D24
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08129D2C
+ ldr r3, _08129D28
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129D34
+ .align 2, 0
+_08129D24: .4byte 0x020192e4
+_08129D28: .4byte gUnknown_02039238
+_08129D2C:
+ ldr r1, _08129D38
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129D34:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129D38: .4byte gUnknown_02039238
+ thumb_func_end sub_8129CF8
+
+ thumb_func_start contest_ai_check_would_finish_combo
+contest_ai_check_would_finish_combo: @ 8129D3C
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r3, _08129D8C
+ ldr r4, _08129D90
+ ldrb r0, [r4, 0x4]
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x41
+ ldrb r2, [r1]
+ lsls r1, r2, 6
+ adds r0, r1
+ adds r3, 0x1E
+ adds r0, r3
+ ldrh r3, [r0]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x84
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08129D74
+ adds r1, r3, 0
+ bl AreMovesContestCombo
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08129D74:
+ cmp r5, 0
+ beq _08129D7A
+ movs r5, 0x1
+_08129D7A:
+ strh r5, [r4, 0x18]
+ ldr r1, _08129D94
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129D8C: .4byte gUnknown_02038570
+_08129D90: .4byte 0x020192e4
+_08129D94: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_would_finish_combo
+
+ thumb_func_start sub_8129D98
+sub_8129D98: @ 8129D98
+ push {lr}
+ bl contest_ai_check_would_finish_combo
+ ldr r0, _08129DC4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08129DCC
+ ldr r3, _08129DC8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129DD4
+ .align 2, 0
+_08129DC4: .4byte 0x020192e4
+_08129DC8: .4byte gUnknown_02039238
+_08129DCC:
+ ldr r1, _08129DD8
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129DD4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129DD8: .4byte gUnknown_02039238
+ thumb_func_end sub_8129D98
+
+ thumb_func_start sub_8129DDC
+sub_8129DDC: @ 8129DDC
+ push {lr}
+ bl contest_ai_check_would_finish_combo
+ ldr r0, _08129E08
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08129E10
+ ldr r3, _08129E0C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129E18
+ .align 2, 0
+_08129E08: .4byte 0x020192e4
+_08129E0C: .4byte gUnknown_02039238
+_08129E10:
+ ldr r1, _08129E1C
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129E18:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129E1C: .4byte gUnknown_02039238
+ thumb_func_end sub_8129DDC
+
+ thumb_func_start contest_ai_get_condition
+contest_ai_get_condition: @ 8129E20
+ push {r4,r5,lr}
+ ldr r4, _08129E5C
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08129E60
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r5, 0
+ subs r0, 0x84
+ adds r1, r0
+ movs r0, 0xD
+ ldrsb r0, [r1, r0]
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x18]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129E5C: .4byte gUnknown_02039238
+_08129E60: .4byte 0x020192e4
+ thumb_func_end contest_ai_get_condition
+
+ thumb_func_start sub_8129E64
+sub_8129E64: @ 8129E64
+ push {lr}
+ bl contest_ai_get_condition
+ ldr r0, _08129E94
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129E98
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08129E9C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129EA0
+ .align 2, 0
+_08129E94: .4byte 0x020192e4
+_08129E98: .4byte gUnknown_02039238
+_08129E9C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129EA0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129E64
+
+ thumb_func_start sub_8129EA4
+sub_8129EA4: @ 8129EA4
+ push {lr}
+ bl contest_ai_get_condition
+ ldr r0, _08129ED4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129ED8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08129EDC
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129EE0
+ .align 2, 0
+_08129ED4: .4byte 0x020192e4
+_08129ED8: .4byte gUnknown_02039238
+_08129EDC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129EE0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129EA4
+
+ thumb_func_start sub_8129EE4
+sub_8129EE4: @ 8129EE4
+ push {lr}
+ bl contest_ai_get_condition
+ ldr r0, _08129F14
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129F18
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08129F1C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129F20
+ .align 2, 0
+_08129F14: .4byte 0x020192e4
+_08129F18: .4byte gUnknown_02039238
+_08129F1C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129F20:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129EE4
+
+ thumb_func_start sub_8129F24
+sub_8129F24: @ 8129F24
+ push {lr}
+ bl contest_ai_get_condition
+ ldr r0, _08129F54
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129F58
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08129F5C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129F60
+ .align 2, 0
+_08129F54: .4byte 0x020192e4
+_08129F58: .4byte gUnknown_02039238
+_08129F5C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129F60:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129F24
+
+ thumb_func_start contest_ai_get_used_combo_starter
+contest_ai_get_used_combo_starter: @ 8129F64
+ push {r4-r6,lr}
+ movs r6, 0
+ ldr r5, _08129FAC
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B214C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08129F9C
+ ldr r2, _08129FB0
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _08129FB4
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x2]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r6, r0, 31
+_08129F9C:
+ ldr r0, _08129FB8
+ strh r6, [r0, 0x18]
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129FAC: .4byte gUnknown_02039238
+_08129FB0: .4byte gContestMoves
+_08129FB4: .4byte 0x02019260
+_08129FB8: .4byte 0x020192e4
+ thumb_func_end contest_ai_get_used_combo_starter
+
+ thumb_func_start sub_8129FBC
+sub_8129FBC: @ 8129FBC
+ push {lr}
+ bl contest_ai_get_used_combo_starter
+ ldr r0, _08129FEC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129FF0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08129FF4
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129FF8
+ .align 2, 0
+_08129FEC: .4byte 0x020192e4
+_08129FF0: .4byte gUnknown_02039238
+_08129FF4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129FF8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129FBC
+
+ thumb_func_start sub_8129FFC
+sub_8129FFC: @ 8129FFC
+ push {lr}
+ bl contest_ai_get_used_combo_starter
+ ldr r0, _0812A02C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A030
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _0812A034
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A038
+ .align 2, 0
+_0812A02C: .4byte 0x020192e4
+_0812A030: .4byte gUnknown_02039238
+_0812A034:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A038:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129FFC
+
+ thumb_func_start sub_812A03C
+sub_812A03C: @ 812A03C
+ push {lr}
+ bl contest_ai_get_used_combo_starter
+ ldr r0, _0812A06C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A070
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812A074
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A078
+ .align 2, 0
+_0812A06C: .4byte 0x020192e4
+_0812A070: .4byte gUnknown_02039238
+_0812A074:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A078:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A03C
+
+ thumb_func_start sub_812A07C
+sub_812A07C: @ 812A07C
+ push {lr}
+ bl contest_ai_get_used_combo_starter
+ ldr r0, _0812A0AC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A0B0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0812A0B4
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A0B8
+ .align 2, 0
+_0812A0AC: .4byte 0x020192e4
+_0812A0B0: .4byte gUnknown_02039238
+_0812A0B4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A0B8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A07C
+
+ thumb_func_start contest_ai_check_can_participate
+contest_ai_check_can_participate: @ 812A0BC
+ push {lr}
+ ldr r0, _0812A0DC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812A0E4
+ ldr r1, _0812A0E0
+ movs r0, 0
+ b _0812A0E8
+ .align 2, 0
+_0812A0DC: .4byte gUnknown_02039238
+_0812A0E0: .4byte 0x020192e4
+_0812A0E4:
+ ldr r1, _0812A0F8
+ movs r0, 0x1
+_0812A0E8:
+ strh r0, [r1, 0x18]
+ ldr r1, _0812A0FC
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A0F8: .4byte 0x020192e4
+_0812A0FC: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_can_participate
+
+ thumb_func_start sub_812A100
+sub_812A100: @ 812A100
+ push {lr}
+ bl contest_ai_check_can_participate
+ ldr r0, _0812A12C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812A134
+ ldr r3, _0812A130
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A13C
+ .align 2, 0
+_0812A12C: .4byte 0x020192e4
+_0812A130: .4byte gUnknown_02039238
+_0812A134:
+ ldr r1, _0812A140
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A13C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A140: .4byte gUnknown_02039238
+ thumb_func_end sub_812A100
+
+ thumb_func_start sub_812A144
+sub_812A144: @ 812A144
+ push {lr}
+ bl contest_ai_check_can_participate
+ ldr r0, _0812A170
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812A178
+ ldr r3, _0812A174
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A180
+ .align 2, 0
+_0812A170: .4byte 0x020192e4
+_0812A174: .4byte gUnknown_02039238
+_0812A178:
+ ldr r1, _0812A184
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A180:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A184: .4byte gUnknown_02039238
+ thumb_func_end sub_812A144
+
+ thumb_func_start contest_ai_get_val_812A188
+contest_ai_get_val_812A188: @ 812A188
+ push {r4,lr}
+ ldr r4, _0812A1BC
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812A1C0
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r2, 0
+ subs r0, 0x84
+ adds r1, r0
+ ldrb r0, [r1, 0x15]
+ lsls r0, 28
+ lsrs r0, 31
+ strh r0, [r2, 0x18]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A1BC: .4byte gUnknown_02039238
+_0812A1C0: .4byte 0x020192e4
+ thumb_func_end contest_ai_get_val_812A188
+
+ thumb_func_start sub_812A1C4
+sub_812A1C4: @ 812A1C4
+ push {lr}
+ bl contest_ai_get_val_812A188
+ ldr r0, _0812A1F0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812A1F8
+ ldr r3, _0812A1F4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A200
+ .align 2, 0
+_0812A1F0: .4byte 0x020192e4
+_0812A1F4: .4byte gUnknown_02039238
+_0812A1F8:
+ ldr r1, _0812A204
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A200:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A204: .4byte gUnknown_02039238
+ thumb_func_end sub_812A1C4
+
+ thumb_func_start sub_812A208
+sub_812A208: @ 812A208
+ push {lr}
+ bl contest_ai_get_val_812A188
+ ldr r0, _0812A234
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812A23C
+ ldr r3, _0812A238
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A244
+ .align 2, 0
+_0812A234: .4byte 0x020192e4
+_0812A238: .4byte gUnknown_02039238
+_0812A23C:
+ ldr r1, _0812A248
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A244:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A248: .4byte gUnknown_02039238
+ thumb_func_end sub_812A208
+
+ thumb_func_start sub_812A24C
+sub_812A24C: @ 812A24C
+ push {r4,r5,lr}
+ ldr r5, _0812A28C
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0812A290
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r4, r3, 0
+ subs r4, 0x84
+ adds r1, r4
+ adds r0, r3, 0
+ adds r0, 0x41
+ ldrb r2, [r0]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r3, 0x18]
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A28C: .4byte gUnknown_02039238
+_0812A290: .4byte 0x020192e4
+ thumb_func_end sub_812A24C
+
+ thumb_func_start sub_812A294
+sub_812A294: @ 812A294
+ push {lr}
+ bl sub_812A24C
+ ldr r0, _0812A2C0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0812A2C8
+ ldr r3, _0812A2C4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A2D0
+ .align 2, 0
+_0812A2C0: .4byte 0x020192e4
+_0812A2C4: .4byte gUnknown_02039238
+_0812A2C8:
+ ldr r1, _0812A2D4
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A2D0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A2D4: .4byte gUnknown_02039238
+ thumb_func_end sub_812A294
+
+ thumb_func_start sub_812A2D8
+sub_812A2D8: @ 812A2D8
+ push {lr}
+ bl sub_812A24C
+ ldr r0, _0812A304
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _0812A30C
+ ldr r3, _0812A308
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A314
+ .align 2, 0
+_0812A304: .4byte 0x020192e4
+_0812A308: .4byte gUnknown_02039238
+_0812A30C:
+ ldr r1, _0812A318
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A314:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A318: .4byte gUnknown_02039238
+ thumb_func_end sub_812A2D8
+
+ thumb_func_start sub_812A31C
+sub_812A31C: @ 812A31C
+ push {lr}
+ bl sub_812A24C
+ ldr r0, _0812A348
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812A350
+ ldr r3, _0812A34C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A358
+ .align 2, 0
+_0812A348: .4byte 0x020192e4
+_0812A34C: .4byte gUnknown_02039238
+_0812A350:
+ ldr r1, _0812A35C
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A358:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A35C: .4byte gUnknown_02039238
+ thumb_func_end sub_812A31C
+
+ thumb_func_start sub_812A360
+sub_812A360: @ 812A360
+ push {lr}
+ bl sub_812A24C
+ ldr r0, _0812A38C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812A394
+ ldr r3, _0812A390
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A39C
+ .align 2, 0
+_0812A38C: .4byte 0x020192e4
+_0812A390: .4byte gUnknown_02039238
+_0812A394:
+ ldr r1, _0812A3A0
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A39C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A3A0: .4byte gUnknown_02039238
+ thumb_func_end sub_812A360
+
+ thumb_func_start sub_812A3A4
+sub_812A3A4: @ 812A3A4
+ push {r4,lr}
+ ldr r4, _0812A3D8
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ ldr r3, _0812A3DC
+ ldr r2, _0812A3E0
+ lsrs r0, 23
+ adds r0, r2
+ adds r1, r3, 0
+ adds r1, 0x41
+ ldrb r1, [r1]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r3, 0x18]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A3D8: .4byte gUnknown_02039238
+_0812A3DC: .4byte 0x020192e4
+_0812A3E0: .4byte gUnknown_02038670
+ thumb_func_end sub_812A3A4
+
+ thumb_func_start sub_812A3E4
+sub_812A3E4: @ 812A3E4
+ push {lr}
+ bl sub_812A3A4
+ ldr r0, _0812A410
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0812A418
+ ldr r3, _0812A414
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A420
+ .align 2, 0
+_0812A410: .4byte 0x020192e4
+_0812A414: .4byte gUnknown_02039238
+_0812A418:
+ ldr r1, _0812A424
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A420:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A424: .4byte gUnknown_02039238
+ thumb_func_end sub_812A3E4
+
+ thumb_func_start sub_812A428
+sub_812A428: @ 812A428
+ push {lr}
+ bl sub_812A3A4
+ ldr r0, _0812A454
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _0812A45C
+ ldr r3, _0812A458
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A464
+ .align 2, 0
+_0812A454: .4byte 0x020192e4
+_0812A458: .4byte gUnknown_02039238
+_0812A45C:
+ ldr r1, _0812A468
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A464:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A468: .4byte gUnknown_02039238
+ thumb_func_end sub_812A428
+
+ thumb_func_start sub_812A46C
+sub_812A46C: @ 812A46C
+ push {lr}
+ bl sub_812A3A4
+ ldr r0, _0812A498
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812A4A0
+ ldr r3, _0812A49C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A4A8
+ .align 2, 0
+_0812A498: .4byte 0x020192e4
+_0812A49C: .4byte gUnknown_02039238
+_0812A4A0:
+ ldr r1, _0812A4AC
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A4A8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A4AC: .4byte gUnknown_02039238
+ thumb_func_end sub_812A46C
+
+ thumb_func_start sub_812A4B0
+sub_812A4B0: @ 812A4B0
+ push {lr}
+ bl sub_812A3A4
+ ldr r0, _0812A4DC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812A4E4
+ ldr r3, _0812A4E0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A4EC
+ .align 2, 0
+_0812A4DC: .4byte 0x020192e4
+_0812A4E0: .4byte gUnknown_02039238
+_0812A4E4:
+ ldr r1, _0812A4F0
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A4EC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A4F0: .4byte gUnknown_02039238
+ thumb_func_end sub_812A4B0
+
+ thumb_func_start sub_812A4F4
+sub_812A4F4: @ 812A4F4
+ push {r4,lr}
+ ldr r4, _0812A52C
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldr r2, _0812A530
+ lsrs r0, 23
+ lsls r1, 3
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r2, 0xE0
+ ldr r1, _0812A534
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2, 0x18]
+ adds r3, 0x3
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A52C: .4byte gUnknown_02039238
+_0812A530: .4byte 0x02019204
+_0812A534: .4byte gContestMoves
+ thumb_func_end sub_812A4F4
+
+ thumb_func_start sub_812A538
+sub_812A538: @ 812A538
+ push {lr}
+ bl sub_812A4F4
+ ldr r0, _0812A568
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A56C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _0812A570
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A574
+ .align 2, 0
+_0812A568: .4byte 0x020192e4
+_0812A56C: .4byte gUnknown_02039238
+_0812A570:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A574:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A538
+
+ thumb_func_start sub_812A578
+sub_812A578: @ 812A578
+ push {lr}
+ bl sub_812A4F4
+ ldr r0, _0812A5A8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A5AC
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _0812A5B0
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A5B4
+ .align 2, 0
+_0812A5A8: .4byte 0x020192e4
+_0812A5AC: .4byte gUnknown_02039238
+_0812A5B0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A5B4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A578
+
+ thumb_func_start sub_812A5B8
+sub_812A5B8: @ 812A5B8
+ push {lr}
+ bl sub_812A4F4
+ ldr r0, _0812A5E8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A5EC
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812A5F0
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A5F4
+ .align 2, 0
+_0812A5E8: .4byte 0x020192e4
+_0812A5EC: .4byte gUnknown_02039238
+_0812A5F0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A5F4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A5B8
+
+ thumb_func_start sub_812A5F8
+sub_812A5F8: @ 812A5F8
+ push {lr}
+ bl sub_812A4F4
+ ldr r0, _0812A628
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A62C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0812A630
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A634
+ .align 2, 0
+_0812A628: .4byte 0x020192e4
+_0812A62C: .4byte gUnknown_02039238
+_0812A630:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A634:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A5F8
+
+ thumb_func_start sub_812A638
+sub_812A638: @ 812A638
+ push {r4,lr}
+ ldr r4, _0812A66C
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldr r2, _0812A670
+ lsls r1, 2
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x44
+ adds r0, r1
+ adds r2, 0xE0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r2, 0x18]
+ adds r3, 0x3
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A66C: .4byte gUnknown_02039238
+_0812A670: .4byte 0x02019204
+ thumb_func_end sub_812A638
+
+ thumb_func_start sub_812A674
+sub_812A674: @ 812A674
+ push {lr}
+ bl sub_812A638
+ ldr r0, _0812A6A4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A6A8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _0812A6AC
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A6B0
+ .align 2, 0
+_0812A6A4: .4byte 0x020192e4
+_0812A6A8: .4byte gUnknown_02039238
+_0812A6AC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A6B0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A674
+
+ thumb_func_start sub_812A6B4
+sub_812A6B4: @ 812A6B4
+ push {lr}
+ bl sub_812A638
+ ldr r0, _0812A6E4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A6E8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _0812A6EC
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A6F0
+ .align 2, 0
+_0812A6E4: .4byte 0x020192e4
+_0812A6E8: .4byte gUnknown_02039238
+_0812A6EC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A6F0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A6B4
+
+ thumb_func_start sub_812A6F4
+sub_812A6F4: @ 812A6F4
+ push {lr}
+ bl sub_812A638
+ ldr r0, _0812A724
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A728
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812A72C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A730
+ .align 2, 0
+_0812A724: .4byte 0x020192e4
+_0812A728: .4byte gUnknown_02039238
+_0812A72C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A730:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A6F4
+
+ thumb_func_start sub_812A734
+sub_812A734: @ 812A734
+ push {lr}
+ bl sub_812A638
+ ldr r0, _0812A764
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A768
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0812A76C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A770
+ .align 2, 0
+_0812A764: .4byte 0x020192e4
+_0812A768: .4byte gUnknown_02039238
+_0812A76C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A770:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A734
+
+ thumb_func_start sub_812A774
+sub_812A774: @ 812A774
+ push {r4,r5,lr}
+ ldr r5, _0812A7B4
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x2]
+ ldr r2, _0812A7B8
+ lsrs r0, 23
+ lsls r1, 3
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r2, 0xE0
+ ldr r4, _0812A7BC
+ ldr r1, _0812A7C0
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ strh r0, [r2, 0x18]
+ adds r3, 0x3
+ str r3, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A7B4: .4byte gUnknown_02039238
+_0812A7B8: .4byte 0x02019204
+_0812A7BC: .4byte gContestEffects
+_0812A7C0: .4byte gContestMoves
+ thumb_func_end sub_812A774
+
+ thumb_func_start sub_812A7C4
+sub_812A7C4: @ 812A7C4
+ push {lr}
+ bl sub_812A774
+ ldr r0, _0812A7F4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A7F8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812A7FC
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A800
+ .align 2, 0
+_0812A7F4: .4byte 0x020192e4
+_0812A7F8: .4byte gUnknown_02039238
+_0812A7FC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A800:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A7C4
+
+ thumb_func_start sub_812A804
+sub_812A804: @ 812A804
+ push {lr}
+ bl sub_812A774
+ ldr r0, _0812A834
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A838
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0812A83C
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A840
+ .align 2, 0
+_0812A834: .4byte 0x020192e4
+_0812A838: .4byte gUnknown_02039238
+_0812A83C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A840:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A804
+
+ thumb_func_start sub_812A844
+sub_812A844: @ 812A844
+ push {r4,lr}
+ ldr r3, _0812A864
+ ldr r4, _0812A868
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x1A
+ adds r0, r1
+ ldrh r1, [r3, 0x18]
+ strh r1, [r0]
+ adds r2, 0x2
+ str r2, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A864: .4byte 0x020192e4
+_0812A868: .4byte gUnknown_02039238
+ thumb_func_end sub_812A844
+
+ thumb_func_start sub_812A86C
+sub_812A86C: @ 812A86C
+ push {r4,lr}
+ ldr r0, _0812A890
+ ldr r4, _0812A894
+ ldr r3, [r4]
+ ldrb r2, [r3, 0x1]
+ lsls r2, 1
+ adds r0, 0x1A
+ adds r2, r0
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ adds r3, 0x4
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A890: .4byte 0x020192e4
+_0812A894: .4byte gUnknown_02039238
+ thumb_func_end sub_812A86C
+
+ thumb_func_start sub_812A898
+sub_812A898: @ 812A898
+ push {r4,lr}
+ ldr r0, _0812A8C4
+ ldr r4, _0812A8C8
+ ldr r3, [r4]
+ ldrb r2, [r3, 0x1]
+ lsls r2, 1
+ adds r0, 0x1A
+ adds r2, r0
+ movs r1, 0x2
+ ldrsb r1, [r3, r1]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2]
+ adds r1, r0
+ strh r1, [r2]
+ adds r3, 0x4
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A8C4: .4byte 0x020192e4
+_0812A8C8: .4byte gUnknown_02039238
+ thumb_func_end sub_812A898
+
+ thumb_func_start sub_812A8CC
+sub_812A8CC: @ 812A8CC
+ push {r4,lr}
+ ldr r2, _0812A8F4
+ ldr r4, _0812A8F8
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ adds r3, 0x3
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A8F4: .4byte 0x020192e4
+_0812A8F8: .4byte gUnknown_02039238
+ thumb_func_end sub_812A8CC
+
+ thumb_func_start sub_812A8FC
+sub_812A8FC: @ 812A8FC
+ push {r4,lr}
+ ldr r2, _0812A924
+ ldr r4, _0812A928
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ adds r3, 0x3
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A924: .4byte 0x020192e4
+_0812A928: .4byte gUnknown_02039238
+ thumb_func_end sub_812A8FC
+
+ thumb_func_start sub_812A92C
+sub_812A92C: @ 812A92C
+ push {r4,lr}
+ ldr r1, _0812A964
+ ldr r4, _0812A968
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ cmp r2, r1
+ bge _0812A96C
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812A972
+ .align 2, 0
+_0812A964: .4byte 0x020192e4
+_0812A968: .4byte gUnknown_02039238
+_0812A96C:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r4]
+_0812A972:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A92C
+
+ thumb_func_start sub_812A978
+sub_812A978: @ 812A978
+ push {r4,lr}
+ ldr r1, _0812A9B0
+ ldr r4, _0812A9B4
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ cmp r2, r1
+ ble _0812A9B8
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812A9BE
+ .align 2, 0
+_0812A9B0: .4byte 0x020192e4
+_0812A9B4: .4byte gUnknown_02039238
+_0812A9B8:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r4]
+_0812A9BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A978
+
+ thumb_func_start sub_812A9C4
+sub_812A9C4: @ 812A9C4
+ push {r4,lr}
+ ldr r1, _0812A9FC
+ ldr r4, _0812AA00
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ cmp r2, r1
+ bne _0812AA04
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AA0A
+ .align 2, 0
+_0812A9FC: .4byte 0x020192e4
+_0812AA00: .4byte gUnknown_02039238
+_0812AA04:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r4]
+_0812AA0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A9C4
+
+ thumb_func_start sub_812AA10
+sub_812AA10: @ 812AA10
+ push {r4,lr}
+ ldr r1, _0812AA48
+ ldr r4, _0812AA4C
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ cmp r2, r1
+ beq _0812AA50
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AA56
+ .align 2, 0
+_0812AA48: .4byte 0x020192e4
+_0812AA4C: .4byte gUnknown_02039238
+_0812AA50:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r4]
+_0812AA56:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AA10
+
+ thumb_func_start sub_812AA5C
+sub_812AA5C: @ 812AA5C
+ push {r4,lr}
+ ldr r2, _0812AA98
+ ldr r4, _0812AA9C
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bge _0812AAA0
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AAA4
+ .align 2, 0
+_0812AA98: .4byte 0x020192e4
+_0812AA9C: .4byte gUnknown_02039238
+_0812AAA0:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0812AAA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AA5C
+
+ thumb_func_start sub_812AAAC
+sub_812AAAC: @ 812AAAC
+ push {r4,lr}
+ ldr r2, _0812AAE8
+ ldr r4, _0812AAEC
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ ble _0812AAF0
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AAF4
+ .align 2, 0
+_0812AAE8: .4byte 0x020192e4
+_0812AAEC: .4byte gUnknown_02039238
+_0812AAF0:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0812AAF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AAAC
+
+ thumb_func_start sub_812AAFC
+sub_812AAFC: @ 812AAFC
+ push {r4,lr}
+ ldr r2, _0812AB38
+ ldr r4, _0812AB3C
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _0812AB40
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AB44
+ .align 2, 0
+_0812AB38: .4byte 0x020192e4
+_0812AB3C: .4byte gUnknown_02039238
+_0812AB40:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0812AB44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AAFC
+
+ thumb_func_start sub_812AB4C
+sub_812AB4C: @ 812AB4C
+ push {r4,lr}
+ ldr r2, _0812AB88
+ ldr r4, _0812AB8C
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ beq _0812AB90
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AB94
+ .align 2, 0
+_0812AB88: .4byte 0x020192e4
+_0812AB8C: .4byte gUnknown_02039238
+_0812AB90:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0812AB94:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AB4C
+
+ thumb_func_start sub_812AB9C
+sub_812AB9C: @ 812AB9C
+ push {r4,lr}
+ bl Random
+ movs r2, 0xFF
+ ands r2, r0
+ ldr r1, _0812ABD4
+ ldr r4, _0812ABD8
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r2, r0
+ bge _0812ABDC
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812ABE0
+ .align 2, 0
+_0812ABD4: .4byte 0x020192e4
+_0812ABD8: .4byte gUnknown_02039238
+_0812ABDC:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_0812ABE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AB9C
+
+ thumb_func_start sub_812ABE8
+sub_812ABE8: @ 812ABE8
+ push {r4,lr}
+ bl Random
+ movs r2, 0xFF
+ ands r2, r0
+ ldr r1, _0812AC20
+ ldr r4, _0812AC24
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r2, r0
+ ble _0812AC28
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AC2C
+ .align 2, 0
+_0812AC20: .4byte 0x020192e4
+_0812AC24: .4byte gUnknown_02039238
+_0812AC28:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_0812AC2C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812ABE8
+
+ thumb_func_start sub_812AC34
+sub_812AC34: @ 812AC34
+ ldr r3, _0812AC50
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ bx lr
+ .align 2, 0
+_0812AC50: .4byte gUnknown_02039238
+ thumb_func_end sub_812AC34
+
+ thumb_func_start sub_812AC54
+sub_812AC54: @ 812AC54
+ push {r4,lr}
+ ldr r4, _0812AC80
+ ldr r0, [r4]
+ adds r0, 0x5
+ bl sub_812ACA4
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AC80: .4byte gUnknown_02039238
+ thumb_func_end sub_812AC54
+
+ thumb_func_start sub_812AC84
+sub_812AC84: @ 812AC84
+ push {lr}
+ bl sub_812ACC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812AC9A
+ ldr r2, _0812ACA0
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+_0812AC9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812ACA0: .4byte 0x020192e4
+ thumb_func_end sub_812AC84
+
+ thumb_func_start sub_812ACA4
+sub_812ACA4: @ 812ACA4
+ push {r4,lr}
+ ldr r3, _0812ACC4
+ adds r4, r3, 0
+ adds r4, 0x40
+ ldrb r1, [r4]
+ adds r2, r1, 0x1
+ strb r2, [r4]
+ lsls r1, 24
+ lsrs r1, 22
+ adds r3, 0x20
+ adds r1, r3
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812ACC4: .4byte 0x020192e4
+ thumb_func_end sub_812ACA4
+
+ thumb_func_start sub_812ACC8
+sub_812ACC8: @ 812ACC8
+ push {lr}
+ ldr r1, _0812ACDC
+ adds r3, r1, 0
+ adds r3, 0x40
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0812ACE0
+ movs r0, 0
+ b _0812ACF4
+ .align 2, 0
+_0812ACDC: .4byte 0x020192e4
+_0812ACE0:
+ subs r0, 0x1
+ strb r0, [r3]
+ ldr r2, _0812ACF8
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r1, 0x20
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ movs r0, 0x1
+_0812ACF4:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812ACF8: .4byte gUnknown_02039238
+ thumb_func_end sub_812ACC8
+
+ thumb_func_start contest_ai_check_for_exciting_move
+contest_ai_check_for_exciting_move: @ 812ACFC
+ push {r4-r7,lr}
+ movs r5, 0
+ movs r4, 0
+ ldr r7, _0812AD28
+ ldr r6, _0812AD2C
+_0812AD06:
+ lsls r0, r4, 1
+ ldrb r1, [r7]
+ lsls r1, 6
+ adds r0, r1
+ adds r1, r0, r6
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0812AD30
+ bl contest_get_move_excitement
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0812AD30
+ movs r5, 0x1
+ b _0812AD36
+ .align 2, 0
+_0812AD28: .4byte 0x02019325
+_0812AD2C: .4byte gUnknown_0203858E
+_0812AD30:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0812AD06
+_0812AD36:
+ ldr r0, _0812AD48
+ strh r5, [r0, 0x18]
+ ldr r1, _0812AD4C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AD48: .4byte 0x020192e4
+_0812AD4C: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_for_exciting_move
+
+ thumb_func_start sub_812AD50
+sub_812AD50: @ 812AD50
+ push {lr}
+ bl contest_ai_check_for_exciting_move
+ ldr r0, _0812AD7C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812AD84
+ ldr r3, _0812AD80
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812AD8C
+ .align 2, 0
+_0812AD7C: .4byte 0x020192e4
+_0812AD80: .4byte gUnknown_02039238
+_0812AD84:
+ ldr r1, _0812AD90
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812AD8C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AD90: .4byte gUnknown_02039238
+ thumb_func_end sub_812AD50
+
+ thumb_func_start sub_812AD94
+sub_812AD94: @ 812AD94
+ push {lr}
+ bl contest_ai_check_for_exciting_move
+ ldr r0, _0812ADC0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812ADC8
+ ldr r3, _0812ADC4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812ADD0
+ .align 2, 0
+_0812ADC0: .4byte 0x020192e4
+_0812ADC4: .4byte gUnknown_02039238
+_0812ADC8:
+ ldr r1, _0812ADD4
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812ADD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812ADD4: .4byte gUnknown_02039238
+ thumb_func_end sub_812AD94
+
+ thumb_func_start sub_812ADD8
+sub_812ADD8: @ 812ADD8
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r2, _0812AE08
+ ldr r0, [r2]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ movs r3, 0
+ ldr r0, _0812AE0C
+ mov r12, r0
+ ldr r5, _0812AE10
+ adds r0, r5, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ mov r1, r12
+ adds r1, 0x1E
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r7, r2, 0
+ mov r2, r12
+ mov r12, r5
+ b _0812AE2E
+ .align 2, 0
+_0812AE08: .4byte gUnknown_02039238
+_0812AE0C: .4byte gUnknown_02038570
+_0812AE10: .4byte 0x020192e4
+_0812AE14:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _0812AE34
+ lsls r1, r3, 1
+ mov r0, r12
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x1E
+ adds r1, r0
+ ldrh r0, [r1]
+_0812AE2E:
+ cmp r0, r4
+ bne _0812AE14
+ movs r6, 0x1
+_0812AE34:
+ mov r0, r12
+ strh r6, [r0, 0x18]
+ ldr r0, [r7]
+ adds r0, 0x3
+ str r0, [r7]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812ADD8
+
+ thumb_func_start sub_812AE44
+sub_812AE44: @ 812AE44
+ push {lr}
+ bl sub_812ADD8
+ ldr r0, _0812AE70
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812AE78
+ ldr r3, _0812AE74
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812AE80
+ .align 2, 0
+_0812AE70: .4byte 0x020192e4
+_0812AE74: .4byte gUnknown_02039238
+_0812AE78:
+ ldr r1, _0812AE84
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812AE80:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AE84: .4byte gUnknown_02039238
+ thumb_func_end sub_812AE44
+
+ thumb_func_start sub_812AE88
+sub_812AE88: @ 812AE88
+ push {lr}
+ bl sub_812ADD8
+ ldr r0, _0812AEB4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812AEBC
+ ldr r3, _0812AEB8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812AEC4
+ .align 2, 0
+_0812AEB4: .4byte 0x020192e4
+_0812AEB8: .4byte gUnknown_02039238
+_0812AEBC:
+ ldr r1, _0812AEC8
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812AEC4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AEC8: .4byte gUnknown_02039238
+ thumb_func_end sub_812AE88
+
+ thumb_func_start unref_sub_812AECC
+unref_sub_812AECC: @ 812AECC
+ push {lr}
+ bl sub_812613C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _0812AEEA
+ cmp r0, 0x1
+ ble _0812AF08
+ cmp r1, 0x2
+ beq _0812AEF4
+ cmp r1, 0x3
+ beq _0812AEFA
+ b _0812AF08
+_0812AEEA:
+ movs r0, 0x16
+ bl PlaySE
+ movs r0, 0x1
+ b _0812AF0A
+_0812AEF4:
+ bl sub_812AF10
+ b _0812AF08
+_0812AEFA:
+ movs r0, 0x16
+ bl PlaySE
+ bl sub_812AF10
+ movs r0, 0x1
+ b _0812AF0A
+_0812AF08:
+ movs r0, 0
+_0812AF0A:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_812AECC
+
+ thumb_func_start sub_812AF10
+sub_812AF10: @ 812AF10
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _0812AF2C
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AF2C: .4byte gStringVar4
+ thumb_func_end sub_812AF10
+
+ thumb_func_start sub_812AF30
+sub_812AF30: @ 812AF30
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0812AF8C
+ lsls r6, r0, 2
+ adds r6, r0
+ lsls r6, 3
+ adds r6, r1
+ ldr r1, _0812AF90
+ ldrh r0, [r1]
+ strh r0, [r6, 0x8]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r6, 0xA]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl sub_807712C
+ strh r4, [r6, 0xC]
+ strh r5, [r6, 0xE]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r6, 0x10]
+ movs r0, 0xA
+ strh r0, [r6, 0x1C]
+ ldr r0, _0812AF94
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AF8C: .4byte gTasks
+_0812AF90: .4byte gUnknown_03004B00
+_0812AF94: .4byte sub_812AF98
+ thumb_func_end sub_812AF30
+
+ thumb_func_start sub_812AF98
+sub_812AF98: @ 812AF98
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812AFC8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r5, [r4, 0xC]
+ ldrb r6, [r4, 0x10]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ bne _0812AFD0
+ movs r0, 0x5
+ strh r0, [r4, 0x1C]
+ strh r1, [r4, 0x1E]
+ ldr r0, _0812AFCC
+ str r0, [r4]
+ b _0812AFFE
+ .align 2, 0
+_0812AFC8: .4byte gTasks
+_0812AFCC: .4byte sub_812B004
+_0812AFD0:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _0812AFEA
+ strh r1, [r4, 0x1C]
+ ldrh r0, [r4, 0x8]
+ lsls r1, r5, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+_0812AFEA:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r5, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8077104
+ strh r0, [r4, 0xC]
+_0812AFFE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AF98
+
+ thumb_func_start sub_812B004
+sub_812B004: @ 812B004
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812B054
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0812B04C
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ ldrh r0, [r4, 0xA]
+ lsls r1, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0812B04C
+ adds r0, r5, 0
+ bl move_anim_related_task_del
+_0812B04C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B054: .4byte gTasks
+ thumb_func_end sub_812B004
+
+ thumb_func_start sub_812B058
+sub_812B058: @ 812B058
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0812B0FC
+ ldrh r1, [r0]
+ str r1, [sp]
+ ldrb r5, [r0, 0x4]
+ ldrb r6, [r0, 0x6]
+ ldrb r3, [r0, 0x8]
+ mov r10, r3
+ ldrb r7, [r0, 0xA]
+ ldrb r1, [r0, 0xC]
+ mov r9, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r5, 0
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_807712C
+ ldr r2, _0812B100
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ mov r6, sp
+ ldrh r6, [r6]
+ strh r6, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0xE]
+ mov r0, r10
+ strh r0, [r1, 0x10]
+ strh r7, [r1, 0x12]
+ mov r3, r9
+ strh r3, [r1, 0x14]
+ strh r2, [r1, 0x1C]
+ strh r4, [r1, 0x1E]
+ strh r3, [r1, 0x20]
+ ldr r2, _0812B104
+ str r2, [r1]
+ mov r0, r8
+ bl _call_via_r2
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B0FC: .4byte gUnknown_03004B00
+_0812B100: .4byte gTasks
+_0812B104: .4byte sub_812B108
+ thumb_func_end sub_812B058
+
+ thumb_func_start sub_812B108
+sub_812B108: @ 812B108
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812B14C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x20]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _0812B150
+ movs r0, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x8]
+ movs r1, 0x1E
+ ldrsb r1, [r4, r1]
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812B150
+ adds r0, r5, 0
+ bl move_anim_related_task_del
+ b _0812B182
+ .align 2, 0
+_0812B14C: .4byte gTasks
+_0812B150:
+ ldr r1, _0812B188
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _0812B182
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0xE]
+ ldrh r1, [r4, 0x1E]
+ adds r0, r1
+ strh r0, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ bl sub_8077104
+ strh r0, [r4, 0x1E]
+_0812B182:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B188: .4byte gTasks
+ thumb_func_end sub_812B108
+
+ thumb_func_start sub_812B18C
+sub_812B18C: @ 812B18C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812B1CC
+ ldr r0, _0812B1BC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812B1C4
+ ldr r0, _0812B1C0
+ ldrh r4, [r0]
+ b _0812B272
+ .align 2, 0
+_0812B1BC: .4byte gUnknown_03004B00
+_0812B1C0: .4byte 0x02019348
+_0812B1C4:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _0812B272
+_0812B1CC:
+ ldr r0, _0812B1E0
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _0812B1E8
+ ldr r0, _0812B1E4
+ ldrb r4, [r0]
+ b _0812B20E
+ .align 2, 0
+_0812B1E0: .4byte gUnknown_03004B00
+_0812B1E4: .4byte gUnknown_0202F7C8
+_0812B1E8:
+ cmp r1, 0x1
+ bne _0812B1F8
+ ldr r0, _0812B1F4
+ ldrb r4, [r0]
+ b _0812B20E
+ .align 2, 0
+_0812B1F4: .4byte gUnknown_0202F7C9
+_0812B1F8:
+ cmp r1, 0x2
+ bne _0812B204
+ ldr r0, _0812B200
+ b _0812B206
+ .align 2, 0
+_0812B200: .4byte gUnknown_0202F7C8
+_0812B204:
+ ldr r0, _0812B230
+_0812B206:
+ ldrb r1, [r0]
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r1
+_0812B20E:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _0812B21A
+ cmp r0, 0x3
+ bne _0812B234
+_0812B21A:
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812B234
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _0812B2B0
+ .align 2, 0
+_0812B230: .4byte gUnknown_0202F7C9
+_0812B234:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812B258
+ ldr r1, _0812B250
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812B254
+ b _0812B266
+ .align 2, 0
+_0812B250: .4byte gUnknown_02024A6A
+_0812B254: .4byte gEnemyParty
+_0812B258:
+ ldr r1, _0812B290
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812B294
+_0812B266:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0812B272:
+ cmp r4, 0
+ beq _0812B2AA
+ ldr r0, _0812B298
+ ldrh r2, [r0, 0x2]
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xFF
+ bne _0812B29C
+ lsls r1, r6, 24
+ asrs r1, 24
+ adds r0, r4, 0
+ bl PlayCry1
+ b _0812B2AA
+ .align 2, 0
+_0812B290: .4byte gUnknown_02024A6A
+_0812B294: .4byte gPlayerParty
+_0812B298: .4byte gUnknown_03004B00
+_0812B29C:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl PlayCry3
+_0812B2AA:
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812B2B0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B18C
+
+ thumb_func_start sub_812B2B8
+sub_812B2B8: @ 812B2B8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812B2DC
+ ldr r0, _0812B2D8
+ b _0812B2E6
+ .align 2, 0
+_0812B2D8: .4byte 0x02019348
+_0812B2DC:
+ ldr r1, _0812B304
+ ldr r0, _0812B308
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+_0812B2E6:
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0812B2F6
+ lsls r1, r4, 24
+ asrs r1, 24
+ movs r2, 0x4
+ bl PlayCry3
+_0812B2F6:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B304: .4byte gUnknown_0202F7CA
+_0812B308: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_812B2B8
+
+ thumb_func_start sub_812B30C
+sub_812B30C: @ 812B30C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0812B33C
+ ldrh r5, [r0]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlaySE1WithPanning
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B33C: .4byte gUnknown_03004B00
+ thumb_func_end sub_812B30C
+
+ thumb_func_start sub_812B340
+sub_812B340: @ 812B340
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0812B370
+ ldrh r5, [r0]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlaySE2WithPanning
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B370: .4byte gUnknown_03004B00
+ thumb_func_end sub_812B340
+
+ thumb_func_start sub_812B374
+sub_812B374: @ 812B374
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0812B3F8
+ ldrb r5, [r0, 0x2]
+ ldrb r6, [r0, 0x4]
+ ldrh r1, [r0, 0x6]
+ mov r9, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r5, 0
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_807712C
+ ldr r2, _0812B3FC
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0xE]
+ mov r0, r9
+ strh r0, [r1, 0x12]
+ strh r2, [r1, 0x1C]
+ strh r4, [r1, 0x1E]
+ ldr r2, _0812B400
+ str r2, [r1]
+ mov r0, r8
+ bl _call_via_r2
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B3F8: .4byte gUnknown_03004B00
+_0812B3FC: .4byte gTasks
+_0812B400: .4byte sub_812B404
+ thumb_func_end sub_812B374
+
+ thumb_func_start sub_812B404
+sub_812B404: @ 812B404
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812B45C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r2, [r4, 0xE]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _0812B43E
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ adds r0, r2, r1
+ strh r0, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ bl sub_8077104
+ strh r0, [r4, 0x1E]
+_0812B43E:
+ ldr r1, _0812B460
+ ldrh r0, [r4, 0x1E]
+ strb r0, [r1]
+ movs r3, 0x1E
+ ldrsh r1, [r4, r3]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0812B456
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812B456:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B45C: .4byte gTasks
+_0812B460: .4byte gUnknown_0202F7D2
+ thumb_func_end sub_812B404
+
+ thumb_func_start unref_sub_812B464
+unref_sub_812B464: @ 812B464
+ bx lr
+ thumb_func_end unref_sub_812B464
+
+ thumb_func_start sub_812B468
+sub_812B468: @ 812B468
+ ldr r1, _0812B478
+ ldr r0, _0812B47C
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B480
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0812B478: .4byte gUnknown_03004330
+_0812B47C: .4byte gUnknown_02024A60
+_0812B480: .4byte sub_812B484
+ thumb_func_end sub_812B468
+
+ thumb_func_start sub_812B484
+sub_812B484: @ 812B484
+ push {lr}
+ ldr r2, _0812B4B8
+ ldr r1, _0812B4BC
+ ldr r0, _0812B4C0
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0812B4D0
+ ldr r0, _0812B4C4
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0812B4CC
+ ldr r0, _0812B4C8
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _0812B4D0
+ .align 2, 0
+_0812B4B8: .4byte gUnknown_02024A64
+_0812B4BC: .4byte gBitTable
+_0812B4C0: .4byte gUnknown_02024A60
+_0812B4C4: .4byte gUnknown_02023A60
+_0812B4C8: .4byte gUnknown_08402080
+_0812B4CC:
+ bl dp01_tbl6_exec_completed
+_0812B4D0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B484
+
+ thumb_func_start bx_battle_menu_t6_2
+bx_battle_menu_t6_2: @ 812B4D4
+ push {r4,r5,lr}
+ ldr r0, _0812B508
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B546
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_814A7FC
+ ldr r1, _0812B50C
+ ldr r0, _0812B510
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0812B524
+ cmp r0, 0x1
+ bgt _0812B514
+ cmp r0, 0
+ beq _0812B51E
+ b _0812B540
+ .align 2, 0
+_0812B508: .4byte gMain
+_0812B50C: .4byte gUnknown_02024E60
+_0812B510: .4byte gUnknown_02024A60
+_0812B514:
+ cmp r0, 0x2
+ beq _0812B52A
+ cmp r0, 0x3
+ beq _0812B536
+ b _0812B540
+_0812B51E:
+ movs r0, 0x1
+ movs r1, 0x5
+ b _0812B52E
+_0812B524:
+ movs r0, 0x1
+ movs r1, 0x6
+ b _0812B52E
+_0812B52A:
+ movs r0, 0x1
+ movs r1, 0x7
+_0812B52E:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _0812B540
+_0812B536:
+ movs r0, 0x1
+ movs r1, 0x8
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_0812B540:
+ bl dp01_tbl6_exec_completed
+ b _0812B64E
+_0812B546:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B584
+ ldr r5, _0812B57C
+ ldr r4, _0812B580
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0812B5F2
+ .align 2, 0
+_0812B57C: .4byte gUnknown_02024E60
+_0812B580: .4byte gUnknown_02024A60
+_0812B584:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B5C0
+ ldr r5, _0812B5B8
+ ldr r4, _0812B5BC
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0812B5F2
+ .align 2, 0
+_0812B5B8: .4byte gUnknown_02024E60
+_0812B5BC: .4byte gUnknown_02024A60
+_0812B5C0:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B60C
+ ldr r5, _0812B604
+ ldr r4, _0812B608
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+_0812B5F2:
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ b _0812B64E
+ .align 2, 0
+_0812B604: .4byte gUnknown_02024E60
+_0812B608: .4byte gUnknown_02024A60
+_0812B60C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B64E
+ ldr r5, _0812B654
+ ldr r4, _0812B658
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+_0812B64E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B654: .4byte gUnknown_02024E60
+_0812B658: .4byte gUnknown_02024A60
+ thumb_func_end bx_battle_menu_t6_2
+
+ thumb_func_start sub_812B65C
+sub_812B65C: @ 812B65C
+ push {lr}
+ ldr r2, _0812B684
+ ldr r1, _0812B688
+ ldr r0, _0812B68C
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0812B690
+ cmp r1, r0
+ bne _0812B680
+ bl dp01_tbl6_exec_completed
+_0812B680:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B684: .4byte gSprites
+_0812B688: .4byte gUnknown_02024BE0
+_0812B68C: .4byte gUnknown_02024A60
+_0812B690: .4byte SpriteCallbackDummy
+ thumb_func_end sub_812B65C
+
+ thumb_func_start sub_812B694
+sub_812B694: @ 812B694
+ push {lr}
+ ldr r0, _0812B6A8
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0812B6A2
+ bl dp01_tbl6_exec_completed
+_0812B6A2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B6A8: .4byte gUnknown_03004210
+ thumb_func_end sub_812B694
+
+ thumb_func_start sub_812B6AC
+sub_812B6AC: @ 812B6AC
+ push {lr}
+ ldr r0, _0812B6DC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B6D6
+ ldr r2, _0812B6E0
+ ldr r0, _0812B6E4
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _0812B6E8
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_0812B6D6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B6DC: .4byte gPaletteFade
+_0812B6E0: .4byte gMain
+_0812B6E4: .4byte 0x0000043d
+_0812B6E8: .4byte gUnknown_030042D0
+ thumb_func_end sub_812B6AC
+
+ thumb_func_start bx_wait_t6
+bx_wait_t6: @ 812B6EC
+ push {lr}
+ ldr r0, _0812B718
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0812B70E
+ ldr r0, _0812B71C
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812B720
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B712
+_0812B70E:
+ bl dp01_tbl6_exec_completed
+_0812B712:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B718: .4byte gUnknown_02024E6D
+_0812B71C: .4byte gUnknown_02024A60
+_0812B720: .4byte 0x02017810
+ thumb_func_end bx_wait_t6
+
+ thumb_func_start sub_812B724
+sub_812B724: @ 812B724
+ push {lr}
+ ldr r0, _0812B748
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B744
+ ldr r1, _0812B74C
+ ldr r0, _0812B750
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B754
+ str r1, [r0]
+ bl sub_810BADC
+_0812B744:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B748: .4byte gPaletteFade
+_0812B74C: .4byte gUnknown_03004330
+_0812B750: .4byte gUnknown_02024A60
+_0812B754: .4byte sub_812B758
+ thumb_func_end sub_812B724
+
+ thumb_func_start sub_812B758
+sub_812B758: @ 812B758
+ push {lr}
+ ldr r0, _0812B784
+ ldr r1, [r0, 0x4]
+ ldr r0, _0812B788
+ cmp r1, r0
+ bne _0812B77E
+ ldr r0, _0812B78C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B77E
+ ldr r0, _0812B790
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl dp01_tbl6_exec_completed
+_0812B77E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B784: .4byte gMain
+_0812B788: .4byte sub_800F808
+_0812B78C: .4byte gPaletteFade
+_0812B790: .4byte word_203855E
+ thumb_func_end sub_812B758
+
+ thumb_func_start sub_812B794
+sub_812B794: @ 812B794
+ push {lr}
+ ldr r0, _0812B7B8
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812B7BC
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B7B2
+ bl dp01_tbl6_exec_completed
+_0812B7B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B7B8: .4byte gUnknown_02024A60
+_0812B7BC: .4byte 0x02017810
+ thumb_func_end sub_812B794
+
+ thumb_func_start dp01_tbl6_exec_completed
+dp01_tbl6_exec_completed: @ 812B7C0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _0812B800
+ ldr r4, _0812B804
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B808
+ str r1, [r0]
+ ldr r0, _0812B80C
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B814
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _0812B810
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0812B826
+ .align 2, 0
+_0812B800: .4byte gUnknown_03004330
+_0812B804: .4byte gUnknown_02024A60
+_0812B808: .4byte sub_812B484
+_0812B80C: .4byte gUnknown_020239F8
+_0812B810: .4byte gUnknown_02023A60
+_0812B814:
+ ldr r2, _0812B830
+ ldr r1, _0812B834
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0812B826:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B830: .4byte gUnknown_02024A64
+_0812B834: .4byte gBitTable
+ thumb_func_end dp01_tbl6_exec_completed
+
+ thumb_func_start unref_sub_812B838
+unref_sub_812B838: @ 812B838
+ push {lr}
+ ldr r0, _0812B85C
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812B860
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B856
+ bl dp01_tbl6_exec_completed
+_0812B856:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B85C: .4byte gUnknown_02024A60
+_0812B860: .4byte 0x02017810
+ thumb_func_end unref_sub_812B838
+
+ thumb_func_start sub_812B864
+sub_812B864: @ 812B864
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B864
+
+ thumb_func_start sub_812B870
+sub_812B870: @ 812B870
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B870
+
+ thumb_func_start sub_812B87C
+sub_812B87C: @ 812B87C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B87C
+
+ thumb_func_start sub_812B888
+sub_812B888: @ 812B888
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B888
+
+ thumb_func_start sub_812B894
+sub_812B894: @ 812B894
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B894
+
+ thumb_func_start sub_812B8A0
+sub_812B8A0: @ 812B8A0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B8A0
+
+ thumb_func_start sub_812B8AC
+sub_812B8AC: @ 812B8AC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B8AC
+
+ thumb_func_start sub_812B8B8
+sub_812B8B8: @ 812B8B8
+ push {r4-r6,lr}
+ ldr r4, _0812B96C
+ ldrb r0, [r4, 0x8]
+ ldr r5, _0812B970
+ ldrb r1, [r5]
+ bl sub_8031AF4
+ ldrb r6, [r4, 0x8]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _0812B974
+ ldr r2, _0812B978
+ ldrb r1, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x50
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r6, _0812B97C
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, _0812B980
+ ldrb r3, [r5]
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0812B984
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _0812B988
+ str r1, [r0]
+ ldr r1, _0812B98C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B990
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B96C: .4byte gSaveBlock2
+_0812B970: .4byte gUnknown_02024A60
+_0812B974: .4byte gUnknown_02024E8C
+_0812B978: .4byte gTrainerBackPicCoords
+_0812B97C: .4byte gUnknown_02024BE0
+_0812B980: .4byte gSprites
+_0812B984: .4byte 0x0000fffe
+_0812B988: .4byte sub_80313A0
+_0812B98C: .4byte gUnknown_03004330
+_0812B990: .4byte sub_812B65C
+ thumb_func_end sub_812B8B8
+
+ thumb_func_start sub_812B994
+sub_812B994: @ 812B994
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B994
+
+ thumb_func_start sub_812B9A0
+sub_812B9A0: @ 812B9A0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B9A0
+
+ thumb_func_start sub_812B9AC
+sub_812B9AC: @ 812B9AC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B9AC
+
+ thumb_func_start sub_812B9B8
+sub_812B9B8: @ 812B9B8
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B9B8
+
+ thumb_func_start sub_812B9C4
+sub_812B9C4: @ 812B9C4
+ push {r4,r5,lr}
+ ldr r1, _0812BA00
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ ldr r1, _0812BA04
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r5, _0812BA08
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _0812BA0C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BA10
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BA00: .4byte 0x02017840
+_0812BA04: .4byte gUnknown_02024E6D
+_0812BA08: .4byte gUnknown_02024A60
+_0812BA0C: .4byte gUnknown_03004330
+_0812BA10: .4byte bx_wait_t6
+ thumb_func_end sub_812B9C4
+
+ thumb_func_start sub_812BA14
+sub_812BA14: @ 812BA14
+ push {r4,r5,lr}
+ ldr r1, _0812BA58
+ ldr r5, _0812BA5C
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _0812BA60
+ strb r1, [r0, 0x8]
+ ldr r1, _0812BA64
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _0812BA68
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BA6C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BA58: .4byte gUnknown_02023A60
+_0812BA5C: .4byte gUnknown_02024A60
+_0812BA60: .4byte 0x02017840
+_0812BA64: .4byte gUnknown_02024E6D
+_0812BA68: .4byte gUnknown_03004330
+_0812BA6C: .4byte bx_wait_t6
+ thumb_func_end sub_812BA14
+
+ thumb_func_start sub_812BA70
+sub_812BA70: @ 812BA70
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BA70
+
+ thumb_func_start sub_812BA7C
+sub_812BA7C: @ 812BA7C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BA7C
+
+ thumb_func_start dp01t_10_6_message
+dp01t_10_6_message: @ 812BA88
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0812BACC
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812BAD0
+ strh r1, [r0]
+ ldr r4, _0812BAD4
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _0812BAD8
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _0812BADC
+ ldr r1, _0812BAE0
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _0812BAE4
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BAE8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BACC: .4byte gUnknown_030042A4
+_0812BAD0: .4byte gUnknown_030042A0
+_0812BAD4: .4byte gUnknown_02024A60
+_0812BAD8: .4byte gUnknown_02023A62
+_0812BADC: .4byte gUnknown_03004210
+_0812BAE0: .4byte gUnknown_020238CC
+_0812BAE4: .4byte gUnknown_03004330
+_0812BAE8: .4byte sub_812B694
+ thumb_func_end dp01t_10_6_message
+
+ thumb_func_start dp01t_11_6_message_for_player_only
+dp01t_11_6_message_for_player_only: @ 812BAEC
+ push {lr}
+ ldr r0, _0812BB04
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812BB08
+ bl dp01t_10_6_message
+ b _0812BB0C
+ .align 2, 0
+_0812BB04: .4byte gUnknown_02024A60
+_0812BB08:
+ bl dp01_tbl6_exec_completed
+_0812BB0C:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_6_message_for_player_only
+
+ thumb_func_start sub_812BB10
+sub_812BB10: @ 812BB10
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _0812BBCC
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0812BBD0
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r4, _0812BBD4
+ movs r5, 0
+ strb r2, [r4, 0x6]
+ movs r0, 0x1B
+ str r0, [sp]
+ movs r0, 0x12
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0xF
+ bl FillWindowRect_DefaultPalette
+ movs r0, 0x10
+ str r0, [sp]
+ movs r0, 0x24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0x23
+ bl FillWindowRect_DefaultPalette
+ ldr r1, _0812BBD8
+ ldr r0, _0812BBDC
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BBE0
+ str r1, [r0]
+ ldr r1, _0812BBE4
+ movs r2, 0xC8
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x12
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0812BBE8
+ ldr r3, _0812BBEC
+ str r5, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ movs r4, 0
+_0812BB84:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl nullsub_8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0812BB84
+ ldr r1, _0812BBF0
+ ldr r0, _0812BBDC
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ ldr r0, _0812BBF4
+ bl get_battle_strings_
+ ldr r4, _0812BBD4
+ ldr r1, _0812BBF8
+ movs r2, 0xDC
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x2
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BBCC: .4byte gUnknown_030042A4
+_0812BBD0: .4byte gUnknown_030042A0
+_0812BBD4: .4byte gUnknown_03004210
+_0812BBD8: .4byte gUnknown_03004330
+_0812BBDC: .4byte gUnknown_02024A60
+_0812BBE0: .4byte bx_battle_menu_t6_2
+_0812BBE4: .4byte gUnknown_08400D15
+_0812BBE8: .4byte 0x0000ffff
+_0812BBEC: .4byte 0x00002d9f
+_0812BBF0: .4byte gUnknown_02024E60
+_0812BBF4: .4byte gUnknown_08400CBB
+_0812BBF8: .4byte gUnknown_020238CC
+ thumb_func_end sub_812BB10
+
+ thumb_func_start sub_812BBFC
+sub_812BBFC: @ 812BBFC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BBFC
+
+ thumb_func_start sub_812BC08
+sub_812BC08: @ 812BC08
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC08
+
+ thumb_func_start sub_812BC14
+sub_812BC14: @ 812BC14
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0812BC44
+ ldr r2, _0812BC48
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BC4C
+ str r1, [r0]
+ ldr r1, _0812BC50
+ ldrb r0, [r2]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BC44: .4byte gUnknown_03004330
+_0812BC48: .4byte gUnknown_02024A60
+_0812BC4C: .4byte sub_812B724
+_0812BC50: .4byte gUnknown_02024E6C
+ thumb_func_end sub_812BC14
+
+ thumb_func_start sub_812BC54
+sub_812BC54: @ 812BC54
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC54
+
+ thumb_func_start sub_812BC60
+sub_812BC60: @ 812BC60
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC60
+
+ thumb_func_start sub_812BC6C
+sub_812BC6C: @ 812BC6C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC6C
+
+ thumb_func_start sub_812BC78
+sub_812BC78: @ 812BC78
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC78
+
+ thumb_func_start sub_812BC84
+sub_812BC84: @ 812BC84
+ push {lr}
+ ldr r0, _0812BCB0
+ ldr r1, _0812BCB4
+ ldrb r1, [r1]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _0812BCB8
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0812BCBC
+ adds r1, r2
+ movs r2, 0xB
+ bl sub_8045A5C
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BCB0: .4byte gUnknown_03004340
+_0812BCB4: .4byte gUnknown_02024A60
+_0812BCB8: .4byte gUnknown_02024A6A
+_0812BCBC: .4byte gPlayerParty
+ thumb_func_end sub_812BC84
+
+ thumb_func_start sub_812BCC0
+sub_812BCC0: @ 812BCC0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCC0
+
+ thumb_func_start sub_812BCCC
+sub_812BCCC: @ 812BCCC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCCC
+
+ thumb_func_start sub_812BCD8
+sub_812BCD8: @ 812BCD8
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCD8
+
+ thumb_func_start sub_812BCE4
+sub_812BCE4: @ 812BCE4
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCE4
+
+ thumb_func_start sub_812BCF0
+sub_812BCF0: @ 812BCF0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCF0
+
+ thumb_func_start sub_812BCFC
+sub_812BCFC: @ 812BCFC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCFC
+
+ thumb_func_start sub_812BD08
+sub_812BD08: @ 812BD08
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD08
+
+ thumb_func_start sub_812BD14
+sub_812BD14: @ 812BD14
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD14
+
+ thumb_func_start sub_812BD20
+sub_812BD20: @ 812BD20
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD20
+
+ thumb_func_start sub_812BD2C
+sub_812BD2C: @ 812BD2C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD2C
+
+ thumb_func_start sub_812BD38
+sub_812BD38: @ 812BD38
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD38
+
+ thumb_func_start sub_812BD44
+sub_812BD44: @ 812BD44
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD44
+
+ thumb_func_start sub_812BD50
+sub_812BD50: @ 812BD50
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD50
+
+ thumb_func_start sub_812BD5C
+sub_812BD5C: @ 812BD5C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD5C
+
+ thumb_func_start sub_812BD68
+sub_812BD68: @ 812BD68
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD68
+
+ thumb_func_start sub_812BD74
+sub_812BD74: @ 812BD74
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD74
+
+ thumb_func_start sub_812BD80
+sub_812BD80: @ 812BD80
+ push {r4,lr}
+ ldr r4, _0812BDBC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _0812BD94
+ movs r3, 0xC0
+_0812BD94:
+ ldr r2, _0812BDC0
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl dp01_tbl6_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BDBC: .4byte gUnknown_02024A60
+_0812BDC0: .4byte gUnknown_02023A60
+ thumb_func_end sub_812BD80
+
+ thumb_func_start sub_812BDC4
+sub_812BDC4: @ 812BDC4
+ push {lr}
+ ldr r2, _0812BDEC
+ ldr r0, _0812BDF0
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BDEC: .4byte gUnknown_02023A60
+_0812BDF0: .4byte gUnknown_02024A60
+ thumb_func_end sub_812BDC4
+
+ thumb_func_start sub_812BDF4
+sub_812BDF4: @ 812BDF4
+ push {lr}
+ ldr r1, _0812BE24
+ ldr r0, _0812BE28
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812BE2C
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ bl PlayCry1
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BE24: .4byte gUnknown_02024A6A
+_0812BE28: .4byte gUnknown_02024A60
+_0812BE2C: .4byte gPlayerParty
+ thumb_func_end sub_812BDF4
+
+ thumb_func_start dp01t_2E_6_battle_intro
+dp01t_2E_6_battle_intro: @ 812BE30
+ push {lr}
+ ldr r1, _0812BE58
+ ldr r0, _0812BE5C
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _0812BE60
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BE58: .4byte gUnknown_02023A60
+_0812BE5C: .4byte gUnknown_02024A60
+_0812BE60: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_6_battle_intro
+
+ thumb_func_start sub_812BE64
+sub_812BE64: @ 812BE64
+ push {r4,r5,lr}
+ ldr r5, _0812BEA0
+ ldr r4, _0812BEA4
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _0812BEA8
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0812BEAC
+ adds r1, r2
+ movs r2, 0xA
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ bl dp01_tbl6_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BEA0: .4byte gUnknown_03004340
+_0812BEA4: .4byte gUnknown_02024A60
+_0812BEA8: .4byte gUnknown_02024A6A
+_0812BEAC: .4byte gPlayerParty
+ thumb_func_end sub_812BE64
+
+ thumb_func_start sub_812BEB0
+sub_812BEB0: @ 812BEB0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BEB0
+
+ thumb_func_start sub_812BEBC
+sub_812BEBC: @ 812BEBC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BEBC
+
+ thumb_func_start sub_812BEC8
+sub_812BEC8: @ 812BEC8
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BEC8
+
+ thumb_func_start sub_812BED4
+sub_812BED4: @ 812BED4
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BED4
+
+ thumb_func_start sub_812BEE0
+sub_812BEE0: @ 812BEE0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r5, _0812BF18
+ ldr r6, _0812BF1C
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812BF20
+ bl dp01_tbl6_exec_completed
+ b _0812BF2C
+ .align 2, 0
+_0812BF18: .4byte gUnknown_02023A60
+_0812BF1C: .4byte gUnknown_02024A60
+_0812BF20:
+ ldr r0, _0812BF34
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0812BF38
+ str r0, [r1]
+_0812BF2C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BF34: .4byte gUnknown_03004330
+_0812BF38: .4byte sub_812B794
+ thumb_func_end sub_812BEE0
+
+ thumb_func_start sub_812BF3C
+sub_812BF3C: @ 812BF3C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BF3C
+
+ thumb_func_start sub_812BF48
+sub_812BF48: @ 812BF48
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BF48
+
+ thumb_func_start sub_812BF54
+sub_812BF54: @ 812BF54
+ push {r4,lr}
+ ldr r2, _0812BF98
+ ldr r1, _0812BF9C
+ ldr r4, _0812BFA0
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl6_exec_completed
+ ldr r0, _0812BFA4
+ ldrh r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0812BF90
+ ldr r0, _0812BFA8
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0812BFAC
+ str r0, [r1]
+_0812BF90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BF98: .4byte gUnknown_02024D26
+_0812BF9C: .4byte gUnknown_02023A60
+_0812BFA0: .4byte gUnknown_02024A60
+_0812BFA4: .4byte gUnknown_020239F8
+_0812BFA8: .4byte gUnknown_03004330
+_0812BFAC: .4byte sub_812B6AC
+ thumb_func_end sub_812BF54
+
+ thumb_func_start nullsub_78
+nullsub_78: @ 812BFB0
+ bx lr
+ thumb_func_end nullsub_78
+
+ thumb_func_start sub_812BFB4
+sub_812BFB4: @ 812BFB4
+ ldr r1, _0812BFC4
+ ldr r0, _0812BFC8
+ str r0, [r1]
+ ldr r1, _0812BFCC
+ ldr r0, _0812BFD0
+ str r0, [r1]
+ movs r0, 0x1
+ bx lr
+ .align 2, 0
+_0812BFC4: .4byte gUnknown_0300485C
+_0812BFC8: .4byte sub_808AB90
+_0812BFCC: .4byte gUnknown_03005CE4
+_0812BFD0: .4byte sub_812BFD4
+ thumb_func_end sub_812BFB4
+
+ thumb_func_start sub_812BFD4
+sub_812BFD4: @ 812BFD4
+ push {lr}
+ movs r0, 0x33
+ bl FieldEffectStart
+ ldr r0, _0812BFE8
+ ldr r1, _0812BFEC
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BFE8: .4byte gUnknown_0202FF84
+_0812BFEC: .4byte gUnknown_03005CE0
+ thumb_func_end sub_812BFD4
+
+ thumb_func_start sub_812BFF0
+sub_812BFF0: @ 812BFF0
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C014
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0812C018
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812C014: .4byte gTasks
+_0812C018: .4byte sub_812C01C
+ thumb_func_end sub_812BFF0
+
+ thumb_func_start sub_812C01C
+sub_812C01C: @ 812C01C
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0xEC
+ bl PlaySE
+ bl GetPlayerAvatarObjectId
+ ldr r2, _0812C078
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ mvns r0, r0
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x8
+ bl BeginNormalPaletteFade
+ ldr r0, _0812C07C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C080
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ movs r0, 0x33
+ bl FieldEffectActiveListRemove
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C078: .4byte gSprites
+_0812C07C: .4byte sub_812C084
+_0812C080: .4byte gTasks
+ thumb_func_end sub_812C01C
+
+ thumb_func_start sub_812C084
+sub_812C084: @ 812C084
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0812C0C8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0812C110
+ ldr r0, _0812C0CC
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x40
+ bne _0812C10C
+ strh r2, [r4, 0x8]
+ bl sub_80852FC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812C0D0
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0812C110
+ .align 2, 0
+_0812C0C8: .4byte gPaletteFade
+_0812C0CC: .4byte gTasks
+_0812C0D0:
+ ldr r0, _0812C104
+ str r0, [r4]
+ bl GetPlayerAvatarObjectId
+ ldr r2, _0812C108
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ mvns r0, r0
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0x8
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _0812C110
+ .align 2, 0
+_0812C104: .4byte sub_812C118
+_0812C108: .4byte gSprites
+_0812C10C:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+_0812C110:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C084
+
+ thumb_func_start sub_812C118
+sub_812C118: @ 812C118
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0812C13C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812C136
+ ldr r0, _0812C140
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+_0812C136:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C13C: .4byte gPaletteFade
+_0812C140: .4byte SweetScentNothingHereScript
+ thumb_func_end sub_812C118
+
+ thumb_func_start sub_812C144
+sub_812C144: @ 812C144
+ push {lr}
+ adds r2, r0, 0
+ ldr r1, _0812C168
+ ldrh r0, [r1]
+ ldrh r3, [r2, 0x20]
+ adds r0, r3
+ strh r0, [r2, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r3, [r2, 0x22]
+ adds r0, r3
+ strh r0, [r2, 0x22]
+ movs r3, 0x6
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0812C16C
+ ldrh r0, [r1, 0x4]
+ b _0812C170
+ .align 2, 0
+_0812C168: .4byte gUnknown_03004B00
+_0812C16C:
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+_0812C170:
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r2, 0x30]
+ ldr r0, _0812C180
+ str r0, [r2, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C180: .4byte sub_812C184
+ thumb_func_end sub_812C144
+
+ thumb_func_start sub_812C184
+sub_812C184: @ 812C184
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ ble _0812C1C4
+ ldrh r1, [r3, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r3, 0x24]
+ ldrh r0, [r3, 0x2E]
+ adds r1, r0
+ strh r1, [r3, 0x32]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ b _0812C1CA
+_0812C1C4:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_0812C1CA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C184
+
+ thumb_func_start sub_812C1D0
+sub_812C1D0: @ 812C1D0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _0812C21C
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 8
+ movs r0, 0x80
+ lsls r0, 12
+ adds r4, r0
+ asrs r4, 16
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 8
+ movs r0, 0x80
+ lsls r0, 12
+ adds r1, r0
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8046234
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C21C: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_812C1D0
+
+ thumb_func_start sub_812C220
+sub_812C220: @ 812C220
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x5A
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812C258
+ str r0, [r4, 0x1C]
+ movs r0, 0x7
+ strh r0, [r4, 0x30]
+ ldr r1, _0812C25C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _0812C260
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _0812C264
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C258: .4byte sub_80782D8
+_0812C25C: .4byte sub_812C268
+_0812C260: .4byte REG_BLDCNT
+_0812C264: .4byte REG_BLDALPHA
+ thumb_func_end sub_812C220
+
+ thumb_func_start sub_812C268
+sub_812C268: @ 812C268
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _0812C29C
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0812C296
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812C2A0
+ str r0, [r3, 0x1C]
+_0812C296:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C29C: .4byte REG_BLDALPHA
+_0812C2A0: .4byte sub_812C2A4
+ thumb_func_end sub_812C268
+
+ thumb_func_start sub_812C2A4
+sub_812C2A4: @ 812C2A4
+ push {lr}
+ ldr r1, _0812C2B8
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C2B8: .4byte REG_BLDCNT
+ thumb_func_end sub_812C2A4
+
+ thumb_func_start sub_812C2BC
+sub_812C2BC: @ 812C2BC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r4, _0812C348
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldrh r0, [r5, 0x20]
+ subs r0, r7
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x22]
+ subs r1, r6
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 23
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812C31A
+ movs r1, 0x80
+ lsls r1, 7
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0812C31A:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _0812C34C
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ strh r7, [r5, 0x32]
+ strh r6, [r5, 0x36]
+ ldr r0, _0812C350
+ str r0, [r5, 0x1C]
+ ldr r1, _0812C354
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C348: .4byte gUnknown_0202F7C9
+_0812C34C: .4byte gUnknown_03004B00
+_0812C350: .4byte sub_8078B34
+_0812C354: .4byte move_anim_8072740
+ thumb_func_end sub_812C2BC
+
+ thumb_func_start sub_812C358
+sub_812C358: @ 812C358
+ ldr r2, _0812C378
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r1, r3, 0
+ strh r1, [r2]
+ adds r2, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r1, r3, 0
+ strh r1, [r2]
+ movs r1, 0x4
+ strh r1, [r0, 0x2E]
+ ldr r1, _0812C37C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_0812C378: .4byte REG_BLDCNT
+_0812C37C: .4byte sub_812C380
+ thumb_func_end sub_812C358
+
+ thumb_func_start sub_812C380
+sub_812C380: @ 812C380
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, _0812C3A0
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812C3A4
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ b _0812C3A8
+ .align 2, 0
+_0812C3A0: .4byte REG_BLDALPHA
+_0812C3A4:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+_0812C3A8:
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ beq _0812C3B6
+ cmp r0, 0x4
+ bne _0812C3BE
+_0812C3B6:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x30]
+_0812C3BE:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x46
+ ble _0812C3FC
+ ldr r0, _0812C404
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812C408
+ str r0, [r4, 0x1C]
+_0812C3FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C404: .4byte REG_BLDCNT
+_0812C408: .4byte sub_812C40C
+ thumb_func_end sub_812C380
+
+ thumb_func_start sub_812C40C
+sub_812C40C: @ 812C40C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _0812C448
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812C448
+ ldr r0, _0812C44C
+ str r0, [r3, 0x1C]
+_0812C448:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C44C: .4byte sub_812C450
+ thumb_func_end sub_812C40C
+
+ thumb_func_start sub_812C450
+sub_812C450: @ 812C450
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x6
+ bhi _0812C4A8
+ lsls r0, 2
+ ldr r1, _0812C468
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812C468: .4byte _0812C46C
+ .align 2, 0
+_0812C46C:
+ .4byte _0812C488
+ .4byte _0812C488
+ .4byte _0812C492
+ .4byte _0812C492
+ .4byte _0812C4A0
+ .4byte _0812C4A0
+ .4byte _0812C4A8
+_0812C488:
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r2, 0x24]
+ strh r1, [r2, 0x26]
+ b _0812C4B0
+_0812C492:
+ ldr r0, _0812C49C
+ strh r0, [r2, 0x24]
+ movs r0, 0
+ b _0812C4AE
+ .align 2, 0
+_0812C49C: .4byte 0x0000ffff
+_0812C4A0:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ movs r0, 0x1
+ b _0812C4AE
+_0812C4A8:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ ldr r0, _0812C4F0
+_0812C4AE:
+ strh r0, [r2, 0x26]
+_0812C4B0:
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0812C4C2
+ strh r3, [r2, 0x34]
+_0812C4C2:
+ ldrh r0, [r2, 0x36]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _0812C4EA
+ movs r0, 0x10
+ strh r0, [r2, 0x2E]
+ strh r3, [r2, 0x30]
+ ldr r1, _0812C4F4
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x2E]
+ strh r0, [r1]
+ ldr r0, _0812C4F8
+ str r0, [r2, 0x1C]
+_0812C4EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C4F0: .4byte 0x0000ffff
+_0812C4F4: .4byte REG_BLDCNT
+_0812C4F8: .4byte sub_812C4FC
+ thumb_func_end sub_812C450
+
+ thumb_func_start sub_812C4FC
+sub_812C4FC: @ 812C4FC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r4, _0812C558
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r4]
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812C526
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x2E]
+ strh r1, [r2, 0x30]
+_0812C526:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0812C53A
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+_0812C53A:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bge _0812C550
+ ldr r1, _0812C55C
+ movs r0, 0
+ strh r0, [r1]
+ strh r0, [r4]
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0812C550:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C558: .4byte REG_BLDALPHA
+_0812C55C: .4byte REG_BLDCNT
+ thumb_func_end sub_812C4FC
+
+ thumb_func_start sub_812C560
+sub_812C560: @ 812C560
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C57C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0812C580
+ str r0, [r1]
+ ldr r1, _0812C584
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0812C57C: .4byte gTasks
+_0812C580: .4byte sub_812C588
+_0812C584: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_812C560
+
+ thumb_func_start sub_812C588
+sub_812C588: @ 812C588
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80789BC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _0812C614
+ lsls r5, r4, 2
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r7
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812C5F8
+ ldr r0, _0812C618
+ lsls r2, r6, 4
+ adds r1, r2, 0
+ adds r1, 0xB
+ lsls r1, 1
+ adds r1, r0
+ ldrh r3, [r1]
+ mov r8, r3
+ movs r3, 0xA
+ mov r9, r7
+ adds r7, r5, 0
+ mov r12, r0
+ adds r5, r2, 0
+ lsls r0, r6, 5
+ add r0, r12
+ adds r2, r0, 0
+ adds r2, 0x14
+_0812C5D6:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ subs r2, 0x2
+ subs r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _0812C5D6
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r12
+ movs r1, 0
+ mov r2, r8
+ strh r2, [r0]
+ adds r0, r7, r4
+ lsls r0, 3
+ add r0, r9
+ strh r1, [r0, 0x12]
+_0812C5F8:
+ ldr r0, _0812C61C
+ ldrh r1, [r0, 0xE]
+ ldr r0, _0812C620
+ cmp r1, r0
+ bne _0812C608
+ adds r0, r4, 0
+ bl DestroyTask
+_0812C608:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C614: .4byte gTasks
+_0812C618: .4byte gPlttBufferFaded
+_0812C61C: .4byte gUnknown_03004B00
+_0812C620: .4byte 0x0000ffff
+ thumb_func_end sub_812C588
+
+ thumb_func_start sub_812C624
+sub_812C624: @ 812C624
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C640
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0812C644
+ str r0, [r1]
+ ldr r1, _0812C648
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0812C640: .4byte gTasks
+_0812C644: .4byte sub_812C64C
+_0812C648: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_812C624
+
+ thumb_func_start sub_812C64C
+sub_812C64C: @ 812C64C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl sub_80789BC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0812C70C
+ mov r0, r8
+ lsls r3, r0, 2
+ adds r1, r3, r0
+ lsls r1, 3
+ adds r1, r5
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812C6EE
+ ldr r0, _0812C710
+ lsls r2, r7, 4
+ adds r1, r2, 0
+ adds r1, 0xB
+ lsls r1, 1
+ adds r1, r0
+ ldrh r6, [r1]
+ movs r4, 0xA
+ mov r10, r3
+ mov r9, r0
+ adds r5, r2, 0
+ ldr r2, _0812C714
+ mov r12, r2
+ lsls r0, r7, 5
+ add r0, r9
+ adds r3, r0, 0
+ adds r3, 0x14
+_0812C6A0:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _0812C6A0
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ adds r1, r5, 0
+ adds r1, 0xB
+ lsls r1, 1
+ add r1, r12
+ ldrh r6, [r1]
+ movs r4, 0xA
+ lsls r0, r7, 5
+ add r0, r12
+ adds r2, r0, 0
+ adds r2, 0x14
+_0812C6CA:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ subs r2, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _0812C6CA
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r12
+ movs r1, 0
+ strh r6, [r0]
+ mov r0, r10
+ add r0, r8
+ lsls r0, 3
+ ldr r2, _0812C70C
+ adds r0, r2
+ strh r1, [r0, 0x12]
+_0812C6EE:
+ ldr r0, _0812C718
+ ldrh r1, [r0, 0xE]
+ ldr r0, _0812C71C
+ cmp r1, r0
+ bne _0812C6FE
+ mov r0, r8
+ bl DestroyTask
+_0812C6FE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C70C: .4byte gTasks
+_0812C710: .4byte gPlttBufferFaded
+_0812C714: .4byte gPlttBufferUnfaded
+_0812C718: .4byte gUnknown_03004B00
+_0812C71C: .4byte 0x0000ffff
+ thumb_func_end sub_812C64C
+
+ thumb_func_start sub_812C720
+sub_812C720: @ 812C720
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _0812C784
+ ldrb r0, [r0]
+ mov r5, sp
+ adds r5, 0x2
+ movs r1, 0
+ mov r2, sp
+ adds r3, r5, 0
+ bl sub_807A3FC
+ ldr r0, _0812C788
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812C754
+ ldr r1, _0812C78C
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_0812C754:
+ ldr r1, _0812C78C
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ mov r2, sp
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ ldrh r5, [r5]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ ldr r0, _0812C790
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _0812C794
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C784: .4byte gUnknown_0202F7C9
+_0812C788: .4byte gUnknown_0202F7C8
+_0812C78C: .4byte gUnknown_03004B00
+_0812C790: .4byte 0x0000ffce
+_0812C794: .4byte sub_812C798
+ thumb_func_end sub_812C720
+
+ thumb_func_start sub_812C798
+sub_812C798: @ 812C798
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812C7BA
+ movs r1, 0
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, _0812C7C0
+ str r0, [r4, 0x1C]
+ ldr r1, _0812C7C4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_0812C7BA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C7C0: .4byte sub_80782D8
+_0812C7C4: .4byte sub_812C7C8
+ thumb_func_end sub_812C798
+
+ thumb_func_start sub_812C7C8
+sub_812C7C8: @ 812C7C8
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812C7F4
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+_0812C7F4:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _0812C808
+ adds r0, r3, 0
+ bl move_anim_8072740
+_0812C808:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C7C8
+
+ thumb_func_start sub_812C80C
+sub_812C80C: @ 812C80C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r5, _0812C83C
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ adds r0, r4, 0
+ bl sub_807867C
+ ldrh r0, [r5, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _0812C840
+ str r0, [r4, 0x1C]
+ ldr r1, _0812C844
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C83C: .4byte gUnknown_03004B00
+_0812C840: .4byte sub_8078600
+_0812C844: .4byte move_anim_8072740
+ thumb_func_end sub_812C80C
+
+ thumb_func_start sub_812C848
+sub_812C848: @ 812C848
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812C8A8
+ adds r0, r4, 0
+ bl sub_8078650
+ ldr r5, _0812C884
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ adds r0, r4, 0
+ bl sub_807867C
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812C89C
+ ldr r0, _0812C888
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812C88C
+ ldrh r0, [r5, 0x4]
+ b _0812C8A2
+ .align 2, 0
+_0812C884: .4byte gUnknown_03004B00
+_0812C888: .4byte gUnknown_0202F7C8
+_0812C88C:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ negs r0, r0
+ b _0812C8A6
+_0812C89C:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+_0812C8A2:
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+_0812C8A6:
+ strh r0, [r4, 0x32]
+_0812C8A8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r3, 0xFF
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ strh r1, [r4, 0x24]
+ ands r0, r3
+ movs r1, 0x5
+ bl Sin
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xF0
+ bls _0812C900
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812C900:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C848
+
+ thumb_func_start sub_812C908
+sub_812C908: @ 812C908
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812C91E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0812C91E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C908
+
+ thumb_func_start sub_812C924
+sub_812C924: @ 812C924
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0812C940
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812C948
+ ldr r1, _0812C944
+ movs r0, 0
+ b _0812C94C
+ .align 2, 0
+_0812C940: .4byte gUnknown_0202F7C9
+_0812C944: .4byte gUnknown_03004B00
+_0812C948:
+ ldr r1, _0812C95C
+ movs r0, 0x1
+_0812C94C:
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C95C: .4byte gUnknown_03004B00
+ thumb_func_end sub_812C924
+
+ thumb_func_start sub_812C960
+sub_812C960: @ 812C960
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0812C974
+ ldr r0, [r0]
+ cmp r0, 0
+ ble _0812C97C
+ ldr r1, _0812C978
+ movs r0, 0
+ b _0812C980
+ .align 2, 0
+_0812C974: .4byte gUnknown_0202F7B8
+_0812C978: .4byte gUnknown_03004B00
+_0812C97C:
+ ldr r1, _0812C98C
+ movs r0, 0x1
+_0812C980:
+ strh r0, [r1, 0xE]
+ adds r0, r2, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C98C: .4byte gUnknown_03004B00
+ thumb_func_end sub_812C960
+
+ thumb_func_start sub_812C990
+sub_812C990: @ 812C990
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0812C9EC
+ ldr r2, _0812C9F0
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0812C9F4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812C9F8
+ strh r1, [r0]
+ ldr r0, _0812C9FC
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812CA00
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C9EC: .4byte REG_WINOUT
+_0812C9F0: .4byte 0x00001f3f
+_0812C9F4: .4byte gUnknown_030042C4
+_0812C9F8: .4byte gUnknown_03004240
+_0812C9FC: .4byte REG_WIN0H
+_0812CA00: .4byte sub_812CA04
+ thumb_func_end sub_812C990
+
+ thumb_func_start sub_812CA04
+sub_812CA04: @ 812CA04
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _0812CAC4
+ lsls r0, 2
+ ldr r1, _0812CA1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812CA1C: .4byte _0812CA20
+ .align 2, 0
+_0812CA20:
+ .4byte _0812CA38
+ .4byte _0812CA56
+ .4byte _0812CA76
+ .4byte _0812CA56
+ .4byte _0812CA96
+ .4byte _0812CAA6
+_0812CA38:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812CAC4
+ b _0812CA9E
+_0812CA56:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x75
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _0812CAC4
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0812CA9E
+_0812CA76:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x75
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x29
+ bne _0812CAC4
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0812CA9E
+_0812CA96:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_0812CA9E:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0812CAC4
+_0812CAA6:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812CAC4
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812CACC
+ str r0, [r4, 0x1C]
+_0812CAC4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CACC: .4byte sub_812CAD0
+ thumb_func_end sub_812CA04
+
+ thumb_func_start sub_812CAD0
+sub_812CAD0: @ 812CAD0
+ push {r4,lr}
+ ldr r2, _0812CAF4
+ ldr r3, _0812CAF8
+ adds r1, r3, 0
+ strh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 19
+ ldrh r1, [r3]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r2, r4, 0
+ eors r1, r2
+ strh r1, [r3]
+ bl move_anim_8072740
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CAF4: .4byte REG_WINOUT
+_0812CAF8: .4byte 0x00003f3f
+ thumb_func_end sub_812CAD0
+
+ thumb_func_start sub_812CAFC
+sub_812CAFC: @ 812CAFC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0812CB70
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812CB28
+ ldr r4, _0812CB74
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_0812CB28:
+ ldrh r0, [r6]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r3, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r6, 0x2]
+ ldrh r4, [r5, 0x22]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, _0812CB78
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _0812CB7C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812CB84
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldr r0, _0812CB80
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _0812CB8A
+ .align 2, 0
+_0812CB70: .4byte gUnknown_03004B00
+_0812CB74: .4byte gUnknown_0202F7C8
+_0812CB78: .4byte 0x000003ff
+_0812CB7C: .4byte 0xfffffc00
+_0812CB80: .4byte 0x0000fff4
+_0812CB84:
+ movs r0, 0xC
+ strh r0, [r5, 0x24]
+ ldr r0, _0812CBA8
+_0812CB8A:
+ strh r0, [r5, 0x30]
+ ldr r1, _0812CBAC
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xFF
+ beq _0812CB9E
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x34]
+_0812CB9E:
+ ldr r0, _0812CBB0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CBA8: .4byte 0x0000fffe
+_0812CBAC: .4byte gUnknown_03004B00
+_0812CBB0: .4byte sub_812CBB4
+ thumb_func_end sub_812CAFC
+
+ thumb_func_start sub_812CBB4
+sub_812CBB4: @ 812CBB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812CBF2
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812CC12
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812CC12
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xDE
+ bl PlaySE1WithPanning
+ b _0812CC12
+_0812CBF2:
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x30]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _0812CC04
+ negs r0, r0
+_0812CC04:
+ cmp r0, 0xC
+ bne _0812CC12
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x32]
+_0812CC12:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812CC20
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812CC20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812CBB4
+
+ thumb_func_start sub_812CC28
+sub_812CC28: @ 812CC28
+ push {lr}
+ ldrb r2, [r0, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r1, 0xFF
+ strh r1, [r0, 0x34]
+ bl sub_812CAFC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812CC28
+
+ thumb_func_start sub_812CC44
+sub_812CC44: @ 812CC44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812CC7A
+ ldr r1, _0812CC88
+ ldr r2, _0812CC8C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0812CC90
+ ldr r2, _0812CC94
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0812CC98
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, _0812CC9C
+ ldr r0, _0812CCA0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0812CCA4
+ ldrh r0, [r0]
+ strh r0, [r1]
+_0812CC7A:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CC88: .4byte REG_WININ
+_0812CC8C: .4byte 0x00001f3f
+_0812CC90: .4byte gUnknown_03004200
+_0812CC94: .4byte 0x000098f0
+_0812CC98: .4byte gUnknown_03004244
+_0812CC9C: .4byte REG_WIN1H
+_0812CCA0: .4byte gUnknown_030042C4
+_0812CCA4: .4byte gUnknown_03004240
+ thumb_func_end sub_812CC44
+
+ thumb_func_start sub_812CCA8
+sub_812CCA8: @ 812CCA8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812CCCA
+ ldr r1, _0812CCD8
+ ldr r2, _0812CCDC
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812CCE0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812CCE4
+ strh r1, [r0]
+_0812CCCA:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CCD8: .4byte REG_WININ
+_0812CCDC: .4byte 0x00003f3f
+_0812CCE0: .4byte gUnknown_03004200
+_0812CCE4: .4byte gUnknown_03004244
+ thumb_func_end sub_812CCA8
+
+ thumb_func_start sub_812CCE8
+sub_812CCE8: @ 812CCE8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0812CCFC
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812CD04
+ ldr r4, _0812CD00
+ b _0812CD06
+ .align 2, 0
+_0812CCFC: .4byte gUnknown_03004B00
+_0812CD00: .4byte gUnknown_0202F7C8
+_0812CD04:
+ ldr r4, _0812CD58
+_0812CD06:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r2, _0812CD5C
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x26]
+ movs r3, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r4, [r2, 0x6]
+ movs r6, 0x6
+ ldrsh r1, [r2, r6]
+ cmp r0, r1
+ ble _0812CD3E
+ movs r3, 0x1
+_0812CD3E:
+ strh r3, [r5, 0x2E]
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r5, 0x34]
+ strh r4, [r5, 0x36]
+ ldr r0, _0812CD60
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CD58: .4byte gUnknown_0202F7C9
+_0812CD5C: .4byte gUnknown_03004B00
+_0812CD60: .4byte sub_812CD64
+ thumb_func_end sub_812CCE8
+
+ thumb_func_start sub_812CD64
+sub_812CD64: @ 812CD64
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ ldr r1, _0812CDAC
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r1, r0, r3
+ strh r1, [r2, 0x26]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0812CDB0
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _0812CDC2
+ adds r0, r2, 0
+ bl move_anim_8072740
+ b _0812CDC2
+ .align 2, 0
+_0812CDAC: .4byte gSineTable
+_0812CDB0:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ ble _0812CDC2
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0812CDC2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812CD64
+
+ thumb_func_start sub_812CDC8
+sub_812CDC8: @ 812CDC8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0812CDE8
+ adds r5, r1, r0
+ ldr r0, _0812CDEC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812CDF4
+ ldr r4, _0812CDF0
+ b _0812CDF6
+ .align 2, 0
+_0812CDE8: .4byte gTasks
+_0812CDEC: .4byte gUnknown_03004B00
+_0812CDF0: .4byte gUnknown_0202F7C8
+_0812CDF4:
+ ldr r4, _0812CE3C
+_0812CDF6:
+ ldrb r0, [r4]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0
+ adds r1, r0, 0
+ adds r1, 0x24
+ movs r2, 0
+ strh r1, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ subs r0, 0x21
+ strh r0, [r5, 0xC]
+ cmp r0, 0
+ bge _0812CE20
+ strh r2, [r5, 0xC]
+_0812CE20:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r5, 0xE]
+ movs r0, 0x8
+ strh r0, [r5, 0x10]
+ ldr r1, _0812CE40
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x12]
+ strh r2, [r5, 0x14]
+ strh r2, [r5, 0x16]
+ cmp r7, 0x1
+ bne _0812CE48
+ ldr r0, _0812CE44
+ b _0812CE4A
+ .align 2, 0
+_0812CE3C: .4byte gUnknown_0202F7C9
+_0812CE40: .4byte gUnknown_03004B00
+_0812CE44: .4byte gUnknown_030042C0
+_0812CE48:
+ ldr r0, _0812CE68
+_0812CE4A:
+ ldrh r2, [r0]
+ strh r2, [r5, 0x18]
+ adds r3, r2, 0
+ adds r3, 0xF0
+ strh r3, [r5, 0x1A]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x1C]
+ movs r4, 0x4
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _0812CE6C
+ strh r3, [r5, 0x1E]
+ ldrh r3, [r5, 0x18]
+ b _0812CE70
+ .align 2, 0
+_0812CE68: .4byte gUnknown_03004288
+_0812CE6C:
+ strh r2, [r5, 0x1E]
+ ldrh r3, [r5, 0x1A]
+_0812CE70:
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldrh r1, [r5, 0xC]
+ lsls r2, r1, 16
+ asrs r1, r2, 16
+ movs r6, 0xE
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ bgt _0812CEA6
+ ldr r4, _0812CEB0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r0, r4
+ mov r12, r0
+_0812CE8C:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ add r1, r12
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r6, 0xE
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ ble _0812CE8C
+_0812CEA6:
+ cmp r7, 0x1
+ bne _0812CEB8
+ ldr r0, _0812CEB4
+ b _0812CEBA
+ .align 2, 0
+_0812CEB0: .4byte gUnknown_03004DE0
+_0812CEB4: .4byte REG_BG1HOFS
+_0812CEB8:
+ ldr r0, _0812CEE4
+_0812CEBA:
+ str r0, [sp]
+ ldr r0, _0812CEE8
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _0812CEEC
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CEE4: .4byte REG_BG2HOFS
+_0812CEE8: .4byte 0xa2600001
+_0812CEEC: .4byte sub_812CEF0
+ thumb_func_end sub_812CDC8
+
+ thumb_func_start sub_812CEF0
+sub_812CEF0: @ 812CEF0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _0812CF40
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0812CF18
+ strh r2, [r4, 0x8]
+_0812CF18:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0812CF44
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0812CF48
+ strh r2, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+ b _0812CF48
+ .align 2, 0
+_0812CF40: .4byte gTasks
+_0812CF44:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_0812CF48:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812CF74
+ movs r0, 0
+ strh r0, [r4, 0x14]
+ movs r1, 0
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0812CF66
+ movs r1, 0x1
+_0812CF66:
+ strh r1, [r4, 0x16]
+ cmp r1, 0
+ beq _0812CF70
+ ldrh r0, [r4, 0x18]
+ b _0812CF72
+_0812CF70:
+ ldrh r0, [r4, 0x1A]
+_0812CF72:
+ strh r0, [r4, 0x20]
+_0812CF74:
+ ldrh r1, [r4, 0x8]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bge _0812CFA8
+ ldr r5, _0812D000
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_0812CF8A:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x20]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x20]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _0812CF8A
+_0812CFA8:
+ ldrh r1, [r4, 0xA]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bgt _0812CFDC
+ ldr r5, _0812D000
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_0812CFBE:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ ble _0812CFBE
+_0812CFDC:
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0812CFF8
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812CFF2
+ ldr r1, _0812D004
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_0812CFF2:
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0812CFF8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D000: .4byte gUnknown_03004DE0
+_0812D004: .4byte gUnknown_03004DC0
+ thumb_func_end sub_812CEF0
+
+ thumb_func_start sub_812D008
+sub_812D008: @ 812D008
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _0812D05C
+ adds r4, r0
+ movs r5, 0
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r6, _0812D060
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xE]
+ movs r0, 0x20
+ strh r0, [r4, 0x10]
+ ldr r0, _0812D064
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _0812D068
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D05C: .4byte gTasks
+_0812D060: .4byte gUnknown_0202F7C8
+_0812D064: .4byte 0x0000ffec
+_0812D068: .4byte sub_812D06C
+ thumb_func_end sub_812D008
+
+ thumb_func_start sub_812D06C
+sub_812D06C: @ 812D06C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0812D098
+ adds r6, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bls _0812D08C
+ b _0812D246
+_0812D08C:
+ lsls r0, 2
+ ldr r1, _0812D09C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812D098: .4byte gTasks
+_0812D09C: .4byte _0812D0A0
+ .align 2, 0
+_0812D0A0:
+ .4byte _0812D0B8
+ .4byte _0812D178
+ .4byte _0812D1A6
+ .4byte _0812D1BA
+ .4byte _0812D1D0
+ .4byte _0812D238
+_0812D0B8:
+ movs r0, 0xC
+ ldrsh r2, [r6, r0]
+ ldrh r1, [r6, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812D0CE
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ subs r0, r2, r0
+ b _0812D0D4
+_0812D0CE:
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ adds r0, r2, r0
+_0812D0D4:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r2, [r6, 0x12]
+ ldrh r0, [r6, 0xE]
+ adds r2, r0
+ ldr r0, _0812D168
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldrb r4, [r6, 0xA]
+ movs r3, 0x6
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xBA
+ bl PlaySE12WithPanning
+ cmp r4, 0x40
+ beq _0812D138
+ ldr r5, _0812D16C
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r3, r1, r5
+ ldrh r0, [r6, 0xA]
+ movs r2, 0x1
+ ands r2, r0
+ adds r3, 0x3F
+ ldrb r4, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r4
+ orrs r0, r2
+ strb r0, [r3]
+ adds r5, 0x1C
+ adds r1, r5
+ ldr r0, _0812D170
+ str r0, [r1]
+_0812D138:
+ ldrh r1, [r6, 0xA]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0812D150
+ ldrh r0, [r6, 0x10]
+ subs r0, 0x6
+ strh r0, [r6, 0x10]
+ ldrh r0, [r6, 0x12]
+ subs r0, 0x6
+ strh r0, [r6, 0x12]
+_0812D150:
+ ldrh r1, [r6, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D174
+ adds r0, r6, 0
+ bl sub_80798F4
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r6, 0x8]
+ b _0812D246
+ .align 2, 0
+_0812D168: .4byte gBattleAnimSpriteTemplate_83D7220
+_0812D16C: .4byte gSprites
+_0812D170: .4byte SpriteCallbackDummy
+_0812D174: .4byte gUnknown_08402400
+_0812D178:
+ adds r0, r6, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0812D246
+ movs r2, 0xA
+ ldrsh r1, [r6, r2]
+ cmp r1, 0x6
+ bne _0812D198
+ movs r0, 0x8
+ strh r0, [r6, 0x14]
+ movs r0, 0x3
+ strh r0, [r6, 0x8]
+ b _0812D246
+_0812D198:
+ cmp r1, 0x2
+ bgt _0812D19E
+ movs r0, 0xA
+_0812D19E:
+ strh r0, [r6, 0x14]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ b _0812D246
+_0812D1A6:
+ ldrh r0, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r1, [r6, r2]
+ cmp r1, 0
+ beq _0812D1B6
+ subs r0, 0x1
+ strh r0, [r6, 0x14]
+ b _0812D246
+_0812D1B6:
+ strh r1, [r6, 0x8]
+ b _0812D246
+_0812D1BA:
+ ldrh r1, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ beq _0812D1CA
+ subs r0, r1, 0x1
+ strh r0, [r6, 0x14]
+ b _0812D246
+_0812D1CA:
+ movs r0, 0x4
+ strh r0, [r6, 0x8]
+ b _0812D246
+_0812D1D0:
+ movs r5, 0
+ movs r7, 0
+ ldr r3, _0812D22C
+ movs r0, 0x1C
+ adds r0, r3
+ mov r8, r0
+_0812D1DC:
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r4, r0, 2
+ adds r0, r3, 0
+ adds r0, 0x14
+ adds r0, r4, r0
+ ldr r1, [r0]
+ ldr r0, _0812D230
+ cmp r1, r0
+ bne _0812D218
+ adds r0, r4, r3
+ strh r2, [r0, 0x2E]
+ movs r1, 0x6
+ strh r1, [r0, 0x30]
+ movs r1, 0x2
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl StartSpriteAnim
+ mov r0, r8
+ adds r1, r4, r0
+ ldr r0, _0812D234
+ str r0, [r1]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ cmp r7, 0x6
+ beq _0812D222
+_0812D218:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3F
+ bls _0812D1DC
+_0812D222:
+ strh r7, [r6, 0x14]
+ movs r0, 0x5
+ strh r0, [r6, 0x8]
+ b _0812D246
+ .align 2, 0
+_0812D22C: .4byte gSprites
+_0812D230: .4byte gBattleAnimSpriteTemplate_83D7220
+_0812D234: .4byte sub_812D254
+_0812D238:
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812D246
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0812D246:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D06C
+
+ thumb_func_start sub_812D254
+sub_812D254: @ 812D254
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812D288
+ ldr r3, _0812D290
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0812D288:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D290: .4byte gTasks
+ thumb_func_end sub_812D254
+
+ thumb_func_start sub_812D294
+sub_812D294: @ 812D294
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812D2A8
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+_0812D2A8:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ bgt _0812D2DA
+ ldrh r0, [r5, 0x2E]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0812D2CC
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ b _0812D2D8
+_0812D2CC:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+_0812D2D8:
+ strb r0, [r2]
+_0812D2DA:
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1E
+ ble _0812D2F0
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812D2F0:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3D
+ bne _0812D33C
+ ldr r1, _0812D344
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldrh r0, [r5, 0x24]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x26]
+ ldrh r2, [r5, 0x22]
+ adds r0, r2
+ strh r0, [r5, 0x22]
+ strh r1, [r5, 0x24]
+ strh r1, [r5, 0x26]
+ movs r0, 0x14
+ strh r0, [r5, 0x2E]
+ ldr r4, _0812D348
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x32]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x36]
+ ldr r0, _0812D34C
+ str r0, [r5, 0x1C]
+_0812D33C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D344: .4byte move_anim_8072740
+_0812D348: .4byte gUnknown_0202F7C9
+_0812D34C: .4byte sub_8078B34
+ thumb_func_end sub_812D294
+
+ thumb_func_start sub_812D350
+sub_812D350: @ 812D350
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812D370
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812D374
+ cmp r0, 0x1
+ beq _0812D394
+ b _0812D3A6
+ .align 2, 0
+_0812D370: .4byte gTasks
+_0812D374:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D390
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D3A6
+ .align 2, 0
+_0812D390: .4byte gUnknown_084024B0
+_0812D394:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D3A6
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812D3A6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D350
+
+ thumb_func_start sub_812D3AC
+sub_812D3AC: @ 812D3AC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0812D40C
+ cmp r0, 0x1
+ bgt _0812D3CC
+ cmp r0, 0
+ beq _0812D3D6
+ b _0812D4AE
+_0812D3CC:
+ cmp r0, 0x2
+ beq _0812D43C
+ cmp r0, 0x3
+ beq _0812D490
+ b _0812D4AE
+_0812D3D6:
+ ldr r4, _0812D408
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ b _0812D484
+ .align 2, 0
+_0812D408: .4byte gUnknown_0202F7C8
+_0812D40C:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x60
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1A
+ strh r0, [r5, 0x32]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ adds r0, r6, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0812D43C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_0812D43C:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x60
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x30
+ strh r0, [r5, 0x32]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ adds r0, r6, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0812D4AE
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldr r1, _0812D48C
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8078F40
+_0812D484:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0812D4AE
+ .align 2, 0
+_0812D48C: .4byte gSprites
+_0812D490:
+ ldrh r0, [r5, 0x26]
+ subs r0, 0x6
+ strh r0, [r5, 0x26]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x26
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _0812D4AE
+ adds r0, r5, 0
+ bl move_anim_8072740
+_0812D4AE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D3AC
+
+ thumb_func_start sub_812D4B4
+sub_812D4B4: @ 812D4B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0812D4CC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812D4D4
+ ldr r0, _0812D4D0
+ b _0812D4D8
+ .align 2, 0
+_0812D4CC: .4byte gUnknown_0202F7C8
+_0812D4D0: .4byte 0x0000fff0
+_0812D4D4:
+ movs r0, 0x80
+ lsls r0, 1
+_0812D4D8:
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x22]
+ ldr r0, _0812D4E8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D4E8: .4byte sub_812D4EC
+ thumb_func_end sub_812D4B4
+
+ thumb_func_start sub_812D4EC
+sub_812D4EC: @ 812D4EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x48
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812D50C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812D510
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ b _0812D518
+ .align 2, 0
+_0812D50C: .4byte gUnknown_0202F7C8
+_0812D510:
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ negs r0, r0
+_0812D518:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x10
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r5, r0, r1
+ strh r5, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812D564
+ ldr r0, _0812D584
+ ldrh r1, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r4, 0x22]
+ adds r2, r5
+ lsls r2, 16
+ asrs r2, 16
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSpriteAndAnimate
+_0812D564:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ adds r0, 0x20
+ movs r1, 0x98
+ lsls r1, 1
+ cmp r0, r1
+ bls _0812D57E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812D57E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D584: .4byte gSpriteTemplate_8402500
+ thumb_func_end sub_812D4EC
+
+ thumb_func_start sub_812D588
+sub_812D588: @ 812D588
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0812D5A2
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ b _0812D5AA
+_0812D5A2:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x5
+_0812D5AA:
+ ldr r3, _0812D5DC
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _0812D5E0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ bl Random
+ movs r1, 0x7
+ ands r0, r1
+ adds r1, r0, 0
+ cmp r1, 0x3
+ ble _0812D5CC
+ negs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+_0812D5CC:
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _0812D5E4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D5DC: .4byte 0x000003ff
+_0812D5E0: .4byte 0xfffffc00
+_0812D5E4: .4byte sub_812D5E8
+ thumb_func_end sub_812D588
+
+ thumb_func_start sub_812D5E8
+sub_812D5E8: @ 812D5E8
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ bgt _0812D62A
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0812D65E
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r0, 0
+ b _0812D65C
+_0812D62A:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _0812D640
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812D640:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x3
+ bne _0812D658
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812D670
+ strh r0, [r3, 0x30]
+_0812D658:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+_0812D65C:
+ strh r0, [r3, 0x30]
+_0812D65E:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x3C
+ ble _0812D66C
+ adds r0, r3, 0
+ bl DestroySprite
+_0812D66C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D670: .4byte 0x0000ffff
+ thumb_func_end sub_812D5E8
+
+ thumb_func_start sub_812D674
+sub_812D674: @ 812D674
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812D6AC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812D6B4
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D6B0
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D6C6
+ .align 2, 0
+_0812D6AC: .4byte gTasks
+_0812D6B0: .4byte gUnknown_08402518
+_0812D6B4:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D6C6
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812D6C6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D674
+
+ thumb_func_start sub_812D6CC
+sub_812D6CC: @ 812D6CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812D704
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812D70C
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D708
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D71E
+ .align 2, 0
+_0812D704: .4byte gTasks
+_0812D708: .4byte gUnknown_08402540
+_0812D70C:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D71E
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812D71E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D6CC
+
+ thumb_func_start sub_812D724
+sub_812D724: @ 812D724
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812D736
+ cmp r0, 0x1
+ beq _0812D760
+ b _0812D788
+_0812D736:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ movs r0, 0x90
+ lsls r0, 4
+ strh r0, [r4, 0x30]
+ ldr r0, _0812D75C
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0812D788
+ .align 2, 0
+_0812D75C: .4byte gUnknown_0202F7C8
+_0812D760:
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ subs r2, 0x60
+ strh r2, [r4, 0x30]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _0812D788
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812D788:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D724
+
+ thumb_func_start sub_812D790
+sub_812D790: @ 812D790
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812D7C8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812D7D0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D7CC
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D7E2
+ .align 2, 0
+_0812D7C8: .4byte gTasks
+_0812D7CC: .4byte gUnknown_08402590
+_0812D7D0:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D7E2
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812D7E2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D790
+
+ thumb_func_start sub_812D7E8
+sub_812D7E8: @ 812D7E8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0812D818
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bls _0812D80E
+ b _0812DAFA
+_0812D80E:
+ lsls r0, 2
+ ldr r1, _0812D81C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812D818: .4byte gTasks
+_0812D81C: .4byte _0812D820
+ .align 2, 0
+_0812D820:
+ .4byte _0812D834
+ .4byte _0812D888
+ .4byte _0812D8C4
+ .4byte _0812DA48
+ .4byte _0812DA84
+_0812D834:
+ ldr r1, _0812D850
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _0812D854
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812D85C
+ ldr r0, _0812D858
+ b _0812D85E
+ .align 2, 0
+_0812D850: .4byte REG_MOSAIC
+_0812D854: .4byte gUnknown_0202F7C8
+_0812D858: .4byte REG_BG1CNT
+_0812D85C:
+ ldr r0, _0812D87C
+_0812D85E:
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0812D880
+ mov r6, r8
+ lsls r1, r6, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812D884
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ b _0812DA2A
+ .align 2, 0
+_0812D87C: .4byte REG_BG2CNT
+_0812D880: .4byte gTasks
+_0812D884: .4byte gUnknown_03004B00
+_0812D888:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0xC]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _0812D8A2
+ b _0812DAFA
+_0812D8A2:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xA]
+ ldr r1, _0812D8C0
+ lsls r0, r2, 4
+ orrs r0, r2
+ strh r0, [r1]
+ cmp r2, 0xF
+ beq _0812D8BC
+ b _0812DAFA
+_0812D8BC:
+ b _0812DA78
+ .align 2, 0
+_0812D8C0: .4byte REG_MOSAIC
+_0812D8C4:
+ ldr r5, _0812D8F4
+ ldrb r0, [r5]
+ ldr r1, _0812D8F8
+ ldrb r1, [r1]
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r2, r4, r2
+ lsls r2, 3
+ adds r2, r3
+ ldrb r2, [r2, 0x1C]
+ bl sub_8031FC4
+ ldrb r1, [r5]
+ mov r0, sp
+ bl sub_8078954
+ bl sub_8076BE0
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ beq _0812D8FC
+ movs r1, 0
+ b _0812D906
+ .align 2, 0
+_0812D8F4: .4byte gUnknown_0202F7C8
+_0812D8F8: .4byte gUnknown_0202F7C9
+_0812D8FC:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0812D906:
+ ldr r0, _0812D9CC
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, _0812D9D0
+ ldr r0, _0812D9D4
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 11
+ ldr r1, [r1]
+ adds r1, r0
+ ldr r2, [sp]
+ ldr r0, _0812D9D8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0812D9DC
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812DA20
+ ldr r5, _0812D9E0
+ ldrh r0, [r5]
+ bl sub_80AEB1C
+ adds r4, r0, 0
+ ldrh r0, [r5, 0x2]
+ bl sub_80AEB1C
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _0812D9A2
+ ldr r6, [sp, 0x4]
+ movs r5, 0
+ movs r0, 0x7
+ mov r12, r0
+ movs r7, 0
+_0812D956:
+ movs r4, 0
+ adds r3, r7, r6
+ mov r1, r12
+ lsls r0, r1, 1
+ adds r2, r0, r6
+_0812D960:
+ ldrh r1, [r3]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ strh r1, [r2]
+ adds r3, 0x2
+ subs r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0812D960
+ movs r2, 0x20
+ add r12, r2
+ adds r7, 0x40
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0812D956
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 3
+ adds r3, r0, 0
+_0812D986:
+ adds r2, r5, 0x1
+ lsls r0, r5, 6
+ adds r1, r0, r6
+ movs r4, 0x7
+_0812D98E:
+ ldrh r0, [r1]
+ eors r0, r3
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0812D98E
+ adds r5, r2, 0
+ cmp r5, 0x7
+ ble _0812D986
+_0812D9A2:
+ ldr r0, _0812D9E0
+ ldrh r0, [r0, 0x2]
+ bl sub_80AEB1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812D9F0
+ ldr r3, _0812D9E4
+ ldr r4, _0812D9E8
+ ldr r2, _0812D9D4
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _0812D9EC
+ b _0812DA0A
+ .align 2, 0
+_0812D9CC: .4byte gUnknown_081FAF4C
+_0812D9D0: .4byte gUnknown_02024E84
+_0812D9D4: .4byte gUnknown_0202F7C8
+_0812D9D8: .4byte 0x040000d4
+_0812D9DC: .4byte 0x84000200
+_0812D9E0: .4byte 0x02019348
+_0812D9E4: .4byte gSprites
+_0812D9E8: .4byte gUnknown_02024BE0
+_0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
+_0812D9F0:
+ ldr r3, _0812DA34
+ ldr r4, _0812DA38
+ ldr r2, _0812DA3C
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _0812DA40
+_0812DA0A:
+ str r1, [r0]
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_0812DA20:
+ ldr r0, _0812DA44
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+_0812DA2A:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0812DAFA
+ .align 2, 0
+_0812DA34: .4byte gSprites
+_0812DA38: .4byte gUnknown_02024BE0
+_0812DA3C: .4byte gUnknown_0202F7C8
+_0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC
+_0812DA44: .4byte gTasks
+_0812DA48:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0xC]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812DAFA
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xA]
+ ldr r1, _0812DA80
+ lsls r0, r2, 4
+ orrs r0, r2
+ strh r0, [r1]
+ cmp r2, 0
+ bne _0812DAFA
+_0812DA78:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812DAFA
+ .align 2, 0
+_0812DA80: .4byte REG_MOSAIC
+_0812DA84:
+ ldr r1, _0812DAA0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _0812DAA4
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812DAAC
+ ldr r2, _0812DAA8
+ b _0812DAAE
+ .align 2, 0
+_0812DAA0: .4byte REG_MOSAIC
+_0812DAA4: .4byte gUnknown_0202F7C8
+_0812DAA8: .4byte REG_BG1CNT
+_0812DAAC:
+ ldr r2, _0812DB08
+_0812DAAE:
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812DAF4
+ ldr r4, _0812DB0C
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812DAF4
+ ldr r0, _0812DB10
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ bne _0812DAF4
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ ldr r2, _0812DB14
+ adds r1, r2
+ ldrh r1, [r1, 0x2]
+ bl sub_8032984
+_0812DAF4:
+ mov r0, r8
+ bl move_anim_task_del
+_0812DAFA:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DB08: .4byte REG_BG2CNT
+_0812DB0C: .4byte gUnknown_0202F7C8
+_0812DB10: .4byte gTasks
+_0812DB14: .4byte 0x02017800
+ thumb_func_end sub_812D7E8
+
+ thumb_func_start c3_80DFBE4
+c3_80DFBE4: @ 812DB18
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0812DB48
+ ldr r3, _0812DB4C
+ ldr r2, _0812DB50
+ ldr r1, _0812DB54
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r4, 0xE]
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DB48: .4byte gUnknown_03004B00
+_0812DB4C: .4byte gSprites
+_0812DB50: .4byte gUnknown_02024BE0
+_0812DB54: .4byte gUnknown_0202F7C8
+ thumb_func_end c3_80DFBE4
+
+ thumb_func_start sub_812DB58
+sub_812DB58: @ 812DB58
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0812DB7C
+ ldrb r0, [r0]
+ ldr r1, _0812DB80
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl sub_8031FC4
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DB7C: .4byte gUnknown_0202F7C8
+_0812DB80: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_812DB58
+
+ thumb_func_start sub_812DB84
+sub_812DB84: @ 812DB84
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _0812DBB4
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _0812DBA8
+ b _0812DE80
+_0812DBA8:
+ lsls r0, 2
+ ldr r1, _0812DBB8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812DBB4: .4byte gTasks
+_0812DBB8: .4byte _0812DBBC
+ .align 2, 0
+_0812DBBC:
+ .4byte _0812DBD0
+ .4byte _0812DCFC
+ .4byte _0812DD4C
+ .4byte _0812DDB6
+ .4byte _0812DDEA
+_0812DBD0:
+ ldr r1, _0812DC70
+ ldr r4, _0812DC74
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _0812DC78
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812DC12
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_0812DC12:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r2, _0812DC7C
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0812DC80
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0812DC84
+ bl LZDecompressVram
+ ldr r0, _0812DC88
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0812DC8C
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812DC9C
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+ ldr r1, _0812DC90
+ ldr r2, _0812DC94
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812DC98
+ strh r4, [r0]
+ b _0812DCCE
+ .align 2, 0
+_0812DC70: .4byte REG_BLDCNT
+_0812DC74: .4byte 0x00003f42
+_0812DC78: .4byte REG_BG1CNT
+_0812DC7C: .4byte 0x040000d4
+_0812DC80: .4byte 0x85000400
+_0812DC84: .4byte gUnknown_08D2AA98
+_0812DC88: .4byte gUnknown_08D2A9E0
+_0812DC8C: .4byte gUnknown_08D2AA80
+_0812DC90: .4byte gUnknown_030042C0
+_0812DC94: .4byte 0x0000ffc8
+_0812DC98: .4byte gUnknown_030041B4
+_0812DC9C:
+ ldr r0, _0812DCB4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812DCC0
+ ldr r1, _0812DCB8
+ ldr r4, _0812DCBC
+ adds r0, r4, 0
+ b _0812DCC6
+ .align 2, 0
+_0812DCB4: .4byte gUnknown_0202F7C8
+_0812DCB8: .4byte gUnknown_030042C0
+_0812DCBC: .4byte 0x0000ff79
+_0812DCC0:
+ ldr r1, _0812DCEC
+ ldr r2, _0812DCF0
+ adds r0, r2, 0
+_0812DCC6:
+ strh r0, [r1]
+ ldr r1, _0812DCF4
+ movs r0, 0
+ strh r0, [r1]
+_0812DCCE:
+ ldr r0, _0812DCF8
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812DCEC
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ ldr r0, _0812DCF4
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ b _0812DDD2
+ .align 2, 0
+_0812DCEC: .4byte gUnknown_030042C0
+_0812DCF0: .4byte 0x0000fff6
+_0812DCF4: .4byte gUnknown_030041B4
+_0812DCF8: .4byte gTasks
+_0812DCFC:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x10]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0812DD12
+ b _0812DE80
+_0812DD12:
+ movs r0, 0
+ strh r0, [r3, 0x10]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0812DD28
+ movs r0, 0xC
+ strh r0, [r3, 0xA]
+_0812DD28:
+ ldr r2, _0812DD48
+ ldrh r1, [r3, 0xA]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r4, 0xA
+ ldrsh r0, [r3, r4]
+ cmp r0, 0xC
+ beq _0812DD40
+ b _0812DE80
+_0812DD40:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _0812DE80
+ .align 2, 0
+_0812DD48: .4byte REG_BLDALPHA
+_0812DD4C:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0812DD64
+ movs r0, 0
+ strh r0, [r3, 0xA]
+_0812DD64:
+ ldr r2, _0812DDA4
+ ldrh r1, [r3, 0xA]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _0812DD7C
+ b _0812DE80
+_0812DD7C:
+ ldr r2, _0812DDA8
+ ldr r1, _0812DDAC
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r3, 0x1C]
+ adds r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812DDB0
+ strh r0, [r3, 0x8]
+ b _0812DE80
+ .align 2, 0
+_0812DDA4: .4byte REG_BLDALPHA
+_0812DDA8: .4byte gUnknown_030042C0
+_0812DDAC: .4byte gUnknown_084025C0
+_0812DDB0:
+ movs r0, 0x3
+ strh r0, [r3, 0x8]
+ b _0812DE80
+_0812DDB6:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812DE80
+ movs r0, 0
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+_0812DDD2:
+ strh r0, [r1, 0x8]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xE4
+ bl PlaySE12WithPanning
+ b _0812DE80
+_0812DDEA:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0xC
+ movs r6, 0
+ ldr r1, _0812DE90
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _0812DE94
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_0812DE0C:
+ str r6, [sp, 0xC]
+ mov r0, r8
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r2, r4
+ subs r3, r4
+ cmp r3, r4
+ bhi _0812DE0C
+ str r6, [sp, 0xC]
+ str r5, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r9
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r0, _0812DE90
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0812DE98
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812DE5A
+ ldr r2, _0812DE9C
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812DE5A:
+ ldr r2, _0812DE9C
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812DEA0
+ strh r4, [r0]
+ ldr r0, _0812DEA4
+ strh r4, [r0]
+ ldr r0, _0812DEA8
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0812DE80:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DE90: .4byte 0x040000d4
+_0812DE94: .4byte 0x85000400
+_0812DE98: .4byte 0x85000200
+_0812DE9C: .4byte REG_BG1CNT
+_0812DEA0: .4byte gUnknown_030042C0
+_0812DEA4: .4byte gUnknown_030041B4
+_0812DEA8: .4byte REG_BLDCNT
+ thumb_func_end sub_812DB84
+
+ thumb_func_start sub_812DEAC
+sub_812DEAC: @ 812DEAC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFC
+ lsls r1, 14
+ ands r1, r0
+ lsrs r5, r1, 16
+ adds r1, r5, 0
+ cmp r1, 0x1F
+ ble _0812DED6
+ movs r0, 0x20
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0812DED6:
+ ldr r4, _0812DFD0
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r5
+ strh r0, [r7, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r7, 0x22]
+ ldr r1, _0812DFD4
+ ldrh r0, [r1]
+ strh r0, [r7, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r7, 0x32]
+ ldr r4, _0812DFD8
+ movs r0, 0x20
+ ldrsh r1, [r7, r0]
+ movs r0, 0x22
+ ldrsh r2, [r7, r0]
+ adds r5, r7, 0
+ adds r5, 0x43
+ ldrb r3, [r5]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl CreateSprite
+ mov r9, r0
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0x20
+ ldrsh r1, [r7, r0]
+ movs r0, 0x22
+ ldrsh r2, [r7, r0]
+ ldrb r3, [r5]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl CreateSprite
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r0, r9
+ lsls r2, r0, 4
+ add r2, r9
+ lsls r2, 2
+ ldr r1, _0812DFDC
+ mov r10, r1
+ adds r5, r2, r1
+ adds r0, r5, 0
+ movs r1, 0x1
+ str r2, [sp]
+ bl StartSpriteAnim
+ mov r0, r8
+ lsls r6, r0, 4
+ add r6, r8
+ lsls r6, 2
+ mov r1, r10
+ adds r4, r6, r1
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r1, _0812DFD4
+ ldrh r0, [r1]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ ldr r0, _0812DFE0
+ strh r0, [r5, 0x3C]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ adds r5, 0x3E
+ ldrb r0, [r5]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ orrs r0, r1
+ strb r0, [r4]
+ movs r0, 0x1C
+ add r10, r0
+ ldr r2, [sp]
+ add r2, r10
+ ldr r0, _0812DFE4
+ str r0, [r2]
+ add r6, r10
+ str r0, [r6]
+ mov r1, r9
+ strh r1, [r7, 0x3A]
+ mov r0, r8
+ strh r0, [r7, 0x3C]
+ ldr r0, _0812DFE8
+ str r0, [r7, 0x1C]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DFD0: .4byte gUnknown_0202F7C8
+_0812DFD4: .4byte gUnknown_03004B00
+_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
+_0812DFDC: .4byte gSprites
+_0812DFE0: .4byte 0x0000ffff
+_0812DFE4: .4byte sub_812E0F8
+_0812DFE8: .4byte sub_812DFEC
+ thumb_func_end sub_812DEAC
+
+ thumb_func_start sub_812DFEC
+sub_812DFEC: @ 812DFEC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x32]
+ ldrh r0, [r3, 0x34]
+ adds r2, r0
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r3, 0x26]
+ subs r1, r0
+ strh r1, [r3, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x34]
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0812E03A
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x8
+ negs r1, r1
+ cmp r0, r1
+ bge _0812E03A
+ ldr r2, _0812E094
+ movs r0, 0x3A
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r3, 0x36]
+ adds r0, 0x1
+ strh r0, [r3, 0x36]
+_0812E03A:
+ movs r1, 0x36
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _0812E06E
+ movs r2, 0x26
+ ldrsh r1, [r3, r2]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _0812E06E
+ ldr r2, _0812E094
+ movs r0, 0x3C
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrh r0, [r3, 0x36]
+ adds r0, 0x1
+ strh r0, [r3, 0x36]
+_0812E06E:
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812E090
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812E098
+ str r0, [r3, 0x1C]
+_0812E090:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E094: .4byte gSprites
+_0812E098: .4byte sub_812E09C
+ thumb_func_end sub_812DFEC
+
+ thumb_func_start sub_812E09C
+sub_812E09C: @ 812E09C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _0812E0F0
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r6, r5, 0
+ adds r6, 0x1C
+ adds r0, r3, r6
+ ldr r2, [r0]
+ ldr r0, _0812E0F4
+ cmp r2, r0
+ bne _0812E0E8
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldr r0, [r1]
+ cmp r0, r2
+ bne _0812E0E8
+ adds r0, r3, r5
+ bl DestroySprite
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E0E8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E0F0: .4byte gSprites
+_0812E0F4: .4byte SpriteCallbackDummy
+ thumb_func_end sub_812E09C
+
+ thumb_func_start sub_812E0F8
+sub_812E0F8: @ 812E0F8
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0812E144
+ ldrh r2, [r3, 0x32]
+ ldrh r1, [r3, 0x34]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x26]
+ subs r0, r1
+ strh r0, [r3, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x34]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812E144
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0x4
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r0, _0812E148
+ str r0, [r3, 0x1C]
+_0812E144:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E148: .4byte SpriteCallbackDummy
+ thumb_func_end sub_812E0F8
+
+ thumb_func_start sub_812E14C
+sub_812E14C: @ 812E14C
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0812E174
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _0812E16A
+ b _0812E476
+_0812E16A:
+ lsls r0, 2
+ ldr r1, _0812E178
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812E174: .4byte gTasks
+_0812E178: .4byte _0812E17C
+ .align 2, 0
+_0812E17C:
+ .4byte _0812E194
+ .4byte _0812E300
+ .4byte _0812E388
+ .4byte _0812E3BC
+ .4byte _0812E3E8
+ .4byte _0812E420
+_0812E194:
+ ldr r1, _0812E230
+ ldr r3, _0812E234
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0812E238
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _0812E23C
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E1D4
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_0812E1D4:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r2, _0812E240
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0812E244
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0812E248
+ bl LZDecompressVram
+ ldr r0, _0812E24C
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0812E250
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812E260
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+ ldr r1, _0812E254
+ ldr r3, _0812E258
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0812E25C
+ strh r4, [r0]
+ b _0812E2D2
+ .align 2, 0
+_0812E230: .4byte REG_BLDCNT
+_0812E234: .4byte 0x00003f42
+_0812E238: .4byte 0x00000d03
+_0812E23C: .4byte REG_BG1CNT
+_0812E240: .4byte 0x040000d4
+_0812E244: .4byte 0x85000400
+_0812E248: .4byte gUnknown_08D2AA98
+_0812E24C: .4byte gUnknown_08D2A9E0
+_0812E250: .4byte gUnknown_08D2AA80
+_0812E254: .4byte gUnknown_030042C0
+_0812E258: .4byte 0x0000ffc8
+_0812E25C: .4byte gUnknown_030041B4
+_0812E260:
+ ldr r0, _0812E2A0
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812E2B4
+ ldr r1, _0812E2A4
+ cmp r4, 0x1
+ bne _0812E284
+ ldr r2, _0812E2A8
+ adds r0, r2, 0
+ strh r0, [r1]
+_0812E284:
+ cmp r4, 0x3
+ bne _0812E28E
+ ldr r3, _0812E2AC
+ adds r0, r3, 0
+ strh r0, [r1]
+_0812E28E:
+ cmp r4, 0
+ bne _0812E296
+ movs r0, 0xE
+ strh r0, [r1]
+_0812E296:
+ cmp r4, 0x2
+ bne _0812E2CC
+ ldr r1, _0812E2A4
+ ldr r2, _0812E2B0
+ b _0812E2C8
+ .align 2, 0
+_0812E2A0: .4byte gUnknown_0202F7C9
+_0812E2A4: .4byte gUnknown_030042C0
+_0812E2A8: .4byte 0x0000ff65
+_0812E2AC: .4byte 0x0000ff8d
+_0812E2B0: .4byte 0x0000ffec
+_0812E2B4:
+ cmp r4, 0x1
+ bne _0812E2C0
+ ldr r1, _0812E2EC
+ ldr r3, _0812E2F0
+ adds r0, r3, 0
+ strh r0, [r1]
+_0812E2C0:
+ cmp r4, 0
+ bne _0812E2CC
+ ldr r1, _0812E2EC
+ ldr r2, _0812E2F4
+_0812E2C8:
+ adds r0, r2, 0
+ strh r0, [r1]
+_0812E2CC:
+ ldr r1, _0812E2F8
+ movs r0, 0
+ strh r0, [r1]
+_0812E2D2:
+ ldr r0, _0812E2FC
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812E2EC
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ ldr r0, _0812E2F8
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1E]
+ b _0812E380
+ .align 2, 0
+_0812E2EC: .4byte gUnknown_030042C0
+_0812E2F0: .4byte 0x0000ff79
+_0812E2F4: .4byte 0x0000fff6
+_0812E2F8: .4byte gUnknown_030041B4
+_0812E2FC: .4byte gTasks
+_0812E300:
+ ldr r1, _0812E334
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0
+ strh r0, [r5, 0xE]
+ ldr r0, _0812E338
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812E344
+ ldr r2, _0812E33C
+ ldr r1, _0812E340
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r5, [r5, 0x1C]
+ adds r0, r5
+ b _0812E356
+ .align 2, 0
+_0812E334: .4byte gTasks
+_0812E338: .4byte gUnknown_0202F7C9
+_0812E33C: .4byte gUnknown_030042C0
+_0812E340: .4byte gUnknown_08402604
+_0812E344:
+ ldr r2, _0812E374
+ ldr r1, _0812E378
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrh r0, [r5, 0x1C]
+ subs r0, r1
+_0812E356:
+ strh r0, [r2]
+ ldr r0, _0812E37C
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0812E380
+ strh r0, [r1, 0x8]
+ b _0812E476
+ .align 2, 0
+_0812E374: .4byte gUnknown_030042C0
+_0812E378: .4byte gUnknown_08402604
+_0812E37C: .4byte gTasks
+_0812E380:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0812E476
+_0812E388:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _0812E3A2
+ movs r0, 0x5
+ strh r0, [r4, 0xA]
+_0812E3A2:
+ ldr r2, _0812E3B8
+ ldrh r0, [r4, 0xA]
+ lsls r0, 8
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bne _0812E476
+ b _0812E3DC
+ .align 2, 0
+_0812E3B8: .4byte REG_BLDALPHA
+_0812E3BC:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r1, [r4, 0xE]
+ adds r1, 0x1
+ strh r1, [r4, 0xE]
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _0812E3E4
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ ble _0812E476
+_0812E3DC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E476
+ .align 2, 0
+_0812E3E4: .4byte gUnknown_08402608
+_0812E3E8:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ ble _0812E402
+ movs r0, 0xD
+ strh r0, [r4, 0xA]
+_0812E402:
+ ldr r2, _0812E41C
+ ldrh r0, [r4, 0xA]
+ lsls r0, 8
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xD
+ bne _0812E476
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E476
+ .align 2, 0
+_0812E41C: .4byte REG_BLDALPHA
+_0812E420:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r1, _0812E480
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0812E484
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E450
+ ldr r2, _0812E488
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812E450:
+ ldr r2, _0812E488
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812E48C
+ strh r4, [r0]
+ ldr r0, _0812E490
+ strh r4, [r0]
+ ldr r0, _0812E494
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0812E476:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E480: .4byte 0x040000d4
+_0812E484: .4byte 0x85000200
+_0812E488: .4byte REG_BG1CNT
+_0812E48C: .4byte gUnknown_030042C0
+_0812E490: .4byte gUnknown_030041B4
+_0812E494: .4byte REG_BLDCNT
+ thumb_func_end sub_812E14C
+
+ thumb_func_start sub_812E498
+sub_812E498: @ 812E498
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812E4D0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812E4D8
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812E4D4
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E4EA
+ .align 2, 0
+_0812E4D0: .4byte gTasks
+_0812E4D4: .4byte gUnknown_08402610
+_0812E4D8:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E4EA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812E4EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E498
+
+ thumb_func_start sub_812E4F0
+sub_812E4F0: @ 812E4F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _0812E50E
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0812E562
+_0812E50E:
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ cmp r1, 0x14
+ ble _0812E562
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x80
+ strh r0, [r4, 0x32]
+ ldr r0, _0812E53C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812E540
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _0812E546
+ .align 2, 0
+_0812E53C: .4byte gUnknown_0202F7C8
+_0812E540:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_0812E546:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ ble _0812E562
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E562:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E4F0
+
+ thumb_func_start sub_812E568
+sub_812E568: @ 812E568
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0812E58C
+ adds r4, r0, r1
+ ldr r5, _0812E590
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812E594
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _0812E628
+ .align 2, 0
+_0812E58C: .4byte gTasks
+_0812E590: .4byte gUnknown_03004B00
+_0812E594:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bge _0812E5A0
+ movs r0, 0
+ strh r0, [r5, 0x4]
+_0812E5A0:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ ble _0812E5AC
+ movs r0, 0x2
+ strh r0, [r5, 0x4]
+_0812E5AC:
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ movs r0, 0x8
+ subs r0, r1
+ strh r0, [r4, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ lsls r0, 7
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0x4]
+ adds r0, 0x2
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x14]
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812E5F8
+ ldr r0, _0812E5F4
+ b _0812E5FA
+ .align 2, 0
+_0812E5F4: .4byte gUnknown_0202F7C8
+_0812E5F8:
+ ldr r0, _0812E630
+_0812E5FA:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812E618
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x12]
+_0812E618:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _0812E634
+ str r0, [r4]
+_0812E628:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E630: .4byte gUnknown_0202F7C9
+_0812E634: .4byte sub_812E638
+ thumb_func_end sub_812E568
+
+ thumb_func_start sub_812E638
+sub_812E638: @ 812E638
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0812E65C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r6, [r4, r0]
+ cmp r6, 0x1
+ beq _0812E6C0
+ cmp r6, 0x1
+ bgt _0812E660
+ cmp r6, 0
+ beq _0812E66C
+ b _0812E798
+ .align 2, 0
+_0812E65C: .4byte gTasks
+_0812E660:
+ cmp r6, 0x2
+ beq _0812E718
+ cmp r6, 0x3
+ bne _0812E66A
+ b _0812E788
+_0812E66A:
+ b _0812E798
+_0812E66C:
+ ldr r2, _0812E6BC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0xC]
+ ldrh r1, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0812E798
+ strh r6, [r4, 0xA]
+ b _0812E780
+ .align 2, 0
+_0812E6BC: .4byte gSprites
+_0812E6C0:
+ ldr r2, _0812E714
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ cmp r1, r0
+ blt _0812E798
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _0812E780
+ .align 2, 0
+_0812E714: .4byte gSprites
+_0812E718:
+ ldr r2, _0812E77C
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ movs r5, 0
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0xC]
+ ldrh r1, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0812E798
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0812E780
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0x8]
+ b _0812E798
+ .align 2, 0
+_0812E77C: .4byte gSprites
+_0812E780:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E798
+_0812E788:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812E798:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E638
+
+ thumb_func_start sub_812E7A0
+sub_812E7A0: @ 812E7A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0812E7BC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0812E7C4
+ strh r0, [r4, 0x20]
+ ldr r1, _0812E7C0
+ ldrh r0, [r1]
+ b _0812E7CE
+ .align 2, 0
+_0812E7BC: .4byte gUnknown_0202F7C8
+_0812E7C0: .4byte gUnknown_03004B00
+_0812E7C4:
+ movs r0, 0xF0
+ strh r0, [r4, 0x20]
+ ldr r1, _0812E7E8
+ ldrh r0, [r1]
+ subs r0, 0x1E
+_0812E7CE:
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r1, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _0812E7EC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E7E8: .4byte gUnknown_03004B00
+_0812E7EC: .4byte sub_812E7F0
+ thumb_func_end sub_812E7A0
+
+ thumb_func_start sub_812E7F0
+sub_812E7F0: @ 812E7F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812E830
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E834
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x5
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xF0
+ ble _0812E822
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E822:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r1, 0x10
+ bl Sin
+ b _0812E858
+ .align 2, 0
+_0812E830: .4byte gUnknown_0202F7C8
+_0812E834:
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x5
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ cmp r1, 0
+ bge _0812E84C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E84C:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r1, 0x10
+ bl Cos
+_0812E858:
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E7F0
+
+ thumb_func_start sub_812E860
+sub_812E860: @ 812E860
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _0812E8A8
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ strh r0, [r4, 0x22]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r4, 0x24]
+ ldr r0, _0812E8AC
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _0812E8B0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E8A8: .4byte gTasks
+_0812E8AC: .4byte gUnknown_03004B00
+_0812E8B0: .4byte sub_812E8B4
+ thumb_func_end sub_812E860
+
+ thumb_func_start sub_812E8B4
+sub_812E8B4: @ 812E8B4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0812E8E0
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ mov r8, r0
+ cmp r0, 0x1
+ beq _0812E950
+ cmp r0, 0x1
+ bgt _0812E8E4
+ cmp r0, 0
+ beq _0812E8EC
+ b _0812E9CA
+ .align 2, 0
+_0812E8E0: .4byte gTasks
+_0812E8E4:
+ mov r2, r8
+ cmp r2, 0x2
+ beq _0812E9B8
+ b _0812E9CA
+_0812E8EC:
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ldrh r1, [r7, 0xC]
+ adds r2, r0, r1
+ strh r2, [r7, 0xC]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r3, [r7, 0x24]
+ mov r8, r3
+ movs r3, 0x24
+ ldrsh r1, [r7, r3]
+ cmp r0, r1
+ blt _0812E9CA
+ mov r0, r8
+ subs r5, r0, r2
+ lsls r5, 16
+ asrs r5, 16
+ adds r6, r1, 0
+ lsls r6, 1
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl __divsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x1
+ ands r4, r1
+ cmp r4, 0
+ bne _0812E944
+ lsls r0, 16
+ asrs r0, 16
+ mov r2, r8
+ subs r0, r2, r0
+ b _0812E9A2
+_0812E944:
+ lsls r0, 16
+ asrs r0, 16
+ mov r3, r8
+ subs r0, r3
+ strh r0, [r7, 0xC]
+ b _0812E9CA
+_0812E950:
+ ldr r1, _0812E9A8
+ adds r0, r1, 0
+ ldrh r2, [r7, 0xC]
+ adds r1, r0, r2
+ strh r1, [r7, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r7, r3]
+ movs r2, 0x24
+ ldrsh r6, [r7, r2]
+ cmn r0, r6
+ bgt _0812E9CA
+ ldrh r3, [r7, 0x24]
+ mov r9, r3
+ mov r0, r9
+ subs r4, r0, r1
+ lsls r4, 16
+ asrs r4, 16
+ lsls r6, 1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ mov r1, r8
+ ands r1, r5
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _0812E9AC
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r2, r9
+ subs r0, r2
+_0812E9A2:
+ strh r0, [r7, 0xC]
+ strh r1, [r7, 0x8]
+ b _0812E9CA
+ .align 2, 0
+_0812E9A8: .4byte 0xfffffe00
+_0812E9AC:
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r3, r9
+ subs r0, r3, r0
+ strh r0, [r7, 0xC]
+ b _0812E9CA
+_0812E9B8:
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _0812EA40
+_0812E9CA:
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r7, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldr r2, _0812EA38
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ movs r2, 0xC
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bge _0812E9FE
+ adds r0, 0x3F
+_0812E9FE:
+ asrs r0, 6
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r7, 0xA]
+ adds r0, 0x1
+ strh r0, [r7, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0812EA40
+ ldrh r1, [r7, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _0812EA3C
+ subs r0, r1, 0x1
+ strh r0, [r7, 0x20]
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x22]
+ subs r0, r1
+ strh r0, [r7, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _0812EA40
+ movs r0, 0x10
+ strh r0, [r7, 0x24]
+ b _0812EA40
+ .align 2, 0
+_0812EA38: .4byte gSprites
+_0812EA3C:
+ movs r0, 0x2
+ strh r0, [r7, 0x8]
+_0812EA40:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E8B4
+
+ thumb_func_start sub_812EA4C
+sub_812EA4C: @ 812EA4C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812EAAC
+ ldr r6, _0812EAA4
+ movs r2, 0x4
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0812EA80
+ ldr r4, _0812EAA8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+_0812EA80:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r1, [r6, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r1, r2
+ strh r0, [r5, 0x22]
+ movs r0, 0x80
+ strh r0, [r5, 0x30]
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0812EB0A
+ .align 2, 0
+_0812EAA4: .4byte gUnknown_03004B00
+_0812EAA8: .4byte gUnknown_0202F7C8
+_0812EAAC:
+ ldrh r1, [r5, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ strh r0, [r5, 0x26]
+ movs r2, 0x36
+ ldrsh r0, [r5, r2]
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _0812EAEA
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmn r1, r0
+ ble _0812EAEA
+ movs r0, 0x1
+ strh r0, [r5, 0x36]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 1
+ strh r0, [r5, 0x32]
+_0812EAEA:
+ adds r0, r4, 0
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x80
+ strh r0, [r5, 0x32]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812EB0A
+ adds r0, r5, 0
+ bl move_anim_8072740
+_0812EB0A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812EA4C
+
+ thumb_func_start sub_812EB10
+sub_812EB10: @ 812EB10
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldr r1, _0812EB40
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0812EC1C
+ ldr r0, _0812EB44
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ mov r8, r0
+ cmp r1, 0
+ bne _0812EB4C
+ ldr r0, _0812EB48
+ b _0812EB4E
+ .align 2, 0
+_0812EB40: .4byte gTasks
+_0812EB44: .4byte gUnknown_03004B00
+_0812EB48: .4byte gUnknown_0202F7C8
+_0812EB4C:
+ ldr r0, _0812EB88
+_0812EB4E:
+ ldrb r0, [r0]
+ strh r0, [r2, 0x1E]
+ mov r1, r8
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812EB8C
+ lsls r4, r7, 2
+ adds r0, r4, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ strh r5, [r6, 0x1C]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ mov r2, r8
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x1
+ beq _0812EBB0
+ cmp r0, 0x1
+ bgt _0812EB90
+ cmp r0, 0
+ beq _0812EB98
+ lsls r2, r5, 4
+ b _0812EBF8
+ .align 2, 0
+_0812EB88: .4byte gUnknown_0202F7C9
+_0812EB8C: .4byte gTasks
+_0812EB90:
+ cmp r0, 0x2
+ beq _0812EBBA
+ lsls r2, r5, 4
+ b _0812EBF8
+_0812EB98:
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r5, 0
+ movs r1, 0xE0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ lsls r2, r5, 4
+ b _0812EBF8
+_0812EBB0:
+ movs r2, 0x98
+ lsls r2, 1
+ movs r3, 0xF0
+ lsls r3, 4
+ b _0812EBC2
+_0812EBBA:
+ movs r2, 0x98
+ lsls r2, 1
+ movs r3, 0xF1
+ lsls r3, 8
+_0812EBC2:
+ adds r0, r5, 0
+ movs r1, 0xD0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812EBE8
+ ldrb r0, [r6, 0x1E]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsls r2, r5, 4
+ cmp r0, 0
+ bne _0812EBF8
+_0812EBE8:
+ ldr r0, _0812EC14
+ lsls r2, r5, 4
+ adds r1, r2, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x10
+ strh r0, [r1, 0x26]
+_0812EBF8:
+ ldr r1, _0812EC14
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x24]
+ ldr r0, _0812EC18
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0812EC68
+ .align 2, 0
+_0812EC14: .4byte gSprites
+_0812EC18: .4byte gTasks
+_0812EC1C:
+ ldrb r5, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0812EC40
+ strh r4, [r2, 0xC]
+ ldr r0, _0812EC74
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x24]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+_0812EC40:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _0812EC68
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _0812EC74
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r4, [r0, 0x24]
+ strh r4, [r0, 0x26]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0812EC68:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EC74: .4byte gSprites
+ thumb_func_end sub_812EB10
+
+ thumb_func_start sub_812EC78
+sub_812EC78: @ 812EC78
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xC
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, r0
+ ldr r3, _0812ECC4
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _0812ECC8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ bl Random
+ ldr r5, _0812ECCC
+ ands r5, r0
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _0812ECD0
+ movs r2, 0xBC
+ lsls r2, 3
+ adds r0, r5, r2
+ b _0812ECD8
+ .align 2, 0
+_0812ECC4: .4byte 0x000003ff
+_0812ECC8: .4byte 0xfffffc00
+_0812ECCC: .4byte 0x000001ff
+_0812ECD0:
+ movs r3, 0xBC
+ lsls r3, 3
+ adds r0, r3, 0
+ subs r0, r5
+_0812ECD8:
+ strh r0, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812ECEA
+ movs r2, 0x90
+ lsls r2, 3
+ adds r0, r1, r2
+ b _0812ECF2
+_0812ECEA:
+ movs r3, 0x90
+ lsls r3, 3
+ adds r0, r3, 0
+ subs r0, r1
+_0812ECF2:
+ strh r0, [r4, 0x30]
+ ldr r0, _0812ED04
+ ldrh r0, [r0]
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812ED0C
+ ldr r0, _0812ED08
+ b _0812ED0E
+ .align 2, 0
+_0812ED04: .4byte gUnknown_03004B00
+_0812ED08: .4byte 0x0000fff8
+_0812ED0C:
+ movs r0, 0xF8
+_0812ED0E:
+ strh r0, [r4, 0x20]
+ movs r0, 0x68
+ strh r0, [r4, 0x22]
+ ldr r0, _0812ED20
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812ED20: .4byte sub_812ED24
+ thumb_func_end sub_812EC78
+
+ thumb_func_start sub_812ED24
+sub_812ED24: @ 812ED24
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812ED3C
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _0812ED46
+_0812ED3C:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_0812ED46:
+ strh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ adds r0, r3, 0
+ subs r0, 0x16
+ strh r0, [r4, 0x2E]
+ adds r1, r2, 0
+ subs r1, 0x30
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0812ED6A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0812ED6A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0812ED7E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812ED7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812ED24
+
+ thumb_func_start sub_812ED84
+sub_812ED84: @ 812ED84
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0812EDE4
+ ldr r2, _0812EDE8
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0812EDEC
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812EDF0
+ strh r1, [r0]
+ ldr r0, _0812EDF4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r0, _0812EDF8
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812EDFC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EDE4: .4byte REG_WINOUT
+_0812EDE8: .4byte 0x00001f3f
+_0812EDEC: .4byte gUnknown_030042C4
+_0812EDF0: .4byte gUnknown_03004240
+_0812EDF4: .4byte REG_WIN0H
+_0812EDF8: .4byte gUnknown_03004B00
+_0812EDFC: .4byte sub_812EE00
+ thumb_func_end sub_812ED84
+
+ thumb_func_start sub_812EE00
+sub_812EE00: @ 812EE00
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0812EE3E
+ cmp r0, 0x1
+ bgt _0812EE16
+ cmp r0, 0
+ beq _0812EE20
+ b _0812EE94
+_0812EE16:
+ cmp r0, 0x2
+ beq _0812EE54
+ cmp r0, 0x3
+ beq _0812EE76
+ b _0812EE94
+_0812EE20:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812EE94
+ b _0812EE6E
+_0812EE3E:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812EE94
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _0812EE6E
+_0812EE54:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812EE94
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0812EE6E:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ b _0812EE94
+_0812EE76:
+ ldr r1, _0812EE9C
+ ldr r2, _0812EEA0
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r1, r3, 0
+ eors r0, r1
+ strh r0, [r2]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812EE94:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EE9C: .4byte REG_WINOUT
+_0812EEA0: .4byte 0x00003f3f
+ thumb_func_end sub_812EE00
+
+ thumb_func_start sub_812EEA4
+sub_812EEA4: @ 812EEA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _0812EEE0
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x20]
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r1, _0812EEE4
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldr r1, _0812EEE8
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EEE0: .4byte gUnknown_0202F7C8
+_0812EEE4: .4byte gUnknown_03004B00
+_0812EEE8: .4byte sub_812EEEC
+ thumb_func_end sub_812EEA4
+
+ thumb_func_start sub_812EEEC
+sub_812EEEC: @ 812EEEC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ ldrh r1, [r4, 0x32]
+ lsls r1, 16
+ asrs r1, 24
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ ldrh r1, [r4, 0x34]
+ lsls r1, 16
+ asrs r1, 24
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x9
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ lsls r1, r0, 16
+ cmp r0, 0x3F
+ bls _0812EF26
+ asrs r0, r1, 16
+ cmp r0, 0xC3
+ ble _0812EF38
+_0812EF26:
+ ldr r0, _0812EF34
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ b _0812EF42
+ .align 2, 0
+_0812EF34: .4byte gUnknown_0202F7C8
+_0812EF38:
+ ldr r0, _0812EF84
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x1
+_0812EF42:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r3, 0x38
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ bne _0812EF88
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r3, [r4, 0x32]
+ adds r0, r3
+ strh r0, [r4, 0x32]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r3, [r4, 0x34]
+ adds r0, r3
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _0812EFB8
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+ b _0812EFB8
+ .align 2, 0
+_0812EF84: .4byte gUnknown_0202F7C8
+_0812EF88:
+ cmp r2, 0x1
+ bne _0812EFB8
+ ldr r1, _0812EFC0
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, _0812EFC4
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _0812EFB8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812EFB8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EFC0: .4byte 0xfffffc00
+_0812EFC4: .4byte 0xffffff00
+ thumb_func_end sub_812EEEC
+
+ thumb_func_start sub_812EFC8
+sub_812EFC8: @ 812EFC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812F004
+ movs r0, 0x1
+ str r0, [sp, 0x14]
+ ldr r0, _0812F000
+ ldr r1, [r0, 0x10]
+ mov r9, r1
+ ldr r2, [r0, 0xC]
+ mov r8, r2
+ ldrh r6, [r0, 0x2]
+ movs r3, 0x14
+ b _0812F13C
+ .align 2, 0
+_0812F000: .4byte 0x02019348
+_0812F004:
+ ldr r0, _0812F070
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812F0AC
+ movs r0, 0
+ str r0, [sp, 0x14]
+ ldr r6, _0812F074
+ ldr r4, _0812F078
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r7, _0812F07C
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ movs r1, 0x1
+ bl GetMonData
+ mov r8, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _0812F080
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0812F0A4
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812F084
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ b _0812F092
+ .align 2, 0
+_0812F070: .4byte gUnknown_0202F7C8
+_0812F074: .4byte gUnknown_02024A6A
+_0812F078: .4byte gUnknown_0202F7C9
+_0812F07C: .4byte gPlayerParty
+_0812F080: .4byte 0x02017800
+_0812F084:
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ ldr r1, _0812F0A0
+ adds r0, r1
+_0812F092:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0812F0A6
+ .align 2, 0
+_0812F0A0: .4byte gEnemyParty
+_0812F0A4:
+ ldrh r6, [r1, 0x2]
+_0812F0A6:
+ movs r1, 0x14
+ mov r10, r1
+ b _0812F13E
+_0812F0AC:
+ movs r2, 0x1
+ str r2, [sp, 0x14]
+ ldr r6, _0812F10C
+ ldr r4, _0812F110
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r7, _0812F114
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ movs r1, 0x1
+ bl GetMonData
+ mov r8, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _0812F118
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0812F138
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812F120
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ ldr r1, _0812F11C
+ adds r0, r1
+ b _0812F12C
+ .align 2, 0
+_0812F10C: .4byte gUnknown_02024A6A
+_0812F110: .4byte gUnknown_0202F7C9
+_0812F114: .4byte gEnemyParty
+_0812F118: .4byte 0x02017800
+_0812F11C: .4byte gPlayerParty
+_0812F120:
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+_0812F12C:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0812F13A
+_0812F138:
+ ldrh r6, [r1, 0x2]
+_0812F13A:
+ ldr r3, _0812F218
+_0812F13C:
+ mov r10, r3
+_0812F13E:
+ ldr r0, _0812F21C
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0812F21C
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ mov r3, r9
+ str r3, [sp, 0x8]
+ mov r0, r8
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ ldr r1, [sp, 0x14]
+ movs r2, 0
+ adds r3, r4, 0
+ bl sub_8079F44
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0812F220
+ lsls r5, r6, 4
+ adds r5, r6
+ lsls r5, 2
+ adds r5, r0
+ movs r0, 0x3
+ ands r7, r0
+ lsls r7, 2
+ mov r8, r7
+ ldrb r0, [r5, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r0
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x1]
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ ldr r0, _0812F224
+ lsrs r1, 4
+ lsls r1, 4
+ movs r3, 0x80
+ lsls r3, 1
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x20
+ bl FillPalette
+ ldrb r0, [r5, 0x5]
+ ands r4, r0
+ mov r0, r8
+ orrs r4, r0
+ strb r4, [r5, 0x5]
+ ldr r1, _0812F228
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r3, _0812F22C
+ ldr r0, _0812F230
+ ldr r2, [sp, 0x10]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r0, r2
+ strh r0, [r3]
+ strh r6, [r1, 0x8]
+ ldr r0, _0812F234
+ str r0, [r1]
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F218: .4byte 0x0000ffec
+_0812F21C: .4byte gUnknown_0202F7C8
+_0812F220: .4byte gSprites
+_0812F224: .4byte 0x00007fff
+_0812F228: .4byte REG_BLDCNT
+_0812F22C: .4byte REG_BLDALPHA
+_0812F230: .4byte gTasks
+_0812F234: .4byte sub_812F238
+ thumb_func_end sub_812EFC8
+
+ thumb_func_start sub_812F238
+sub_812F238: @ 812F238
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812F284
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812F280
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0xA]
+ adds r1, 0x1
+ strh r1, [r3, 0xA]
+ ldr r2, _0812F288
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xA
+ bne _0812F280
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r3, 0x1C]
+ strh r0, [r3, 0x1E]
+ ldr r0, _0812F28C
+ str r0, [r3]
+_0812F280:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F284: .4byte gTasks
+_0812F288: .4byte REG_BLDALPHA
+_0812F28C: .4byte sub_812F290
+ thumb_func_end sub_812F238
+
+ thumb_func_start sub_812F290
+sub_812F290: @ 812F290
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812F308
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrb r2, [r5, 0x8]
+ ldrh r0, [r5, 0x1C]
+ subs r0, 0x10
+ movs r4, 0
+ strh r0, [r5, 0x1C]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x80
+ strh r0, [r5, 0x1E]
+ ldr r1, _0812F30C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrb r2, [r6, 0x1]
+ lsls r1, r2, 30
+ lsrs r1, 30
+ movs r0, 0x2
+ orrs r1, r0
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ movs r0, 0x1C
+ ldrsh r2, [r5, r0]
+ movs r0, 0x1E
+ ldrsh r3, [r5, r0]
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8078FDC
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0812F2FE
+ adds r0, r6, 0
+ bl sub_8079098
+ adds r0, r6, 0
+ bl sub_807A0F4
+ ldr r0, _0812F310
+ str r0, [r5]
+_0812F2FE:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F308: .4byte gTasks
+_0812F30C: .4byte gSprites
+_0812F310: .4byte sub_8078634
+ thumb_func_end sub_812F290
+
+ thumb_func_start sub_812F314
+sub_812F314: @ 812F314
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0812F334
+ adds r4, r1, r0
+ ldr r0, _0812F338
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812F340
+ ldr r0, _0812F33C
+ b _0812F342
+ .align 2, 0
+_0812F334: .4byte gTasks
+_0812F338: .4byte gUnknown_03004B00
+_0812F33C: .4byte gUnknown_0202F7C8
+_0812F340:
+ ldr r0, _0812F3C0
+_0812F342:
+ ldrb r5, [r0]
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ strh r6, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ movs r0, 0x10
+ strh r0, [r4, 0xE]
+ strh r6, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ movs r0, 0x20
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0x16]
+ movs r0, 0x18
+ strh r0, [r4, 0x18]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812F374
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x18]
+_0812F374:
+ adds r0, r5, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x22
+ strh r0, [r4, 0x22]
+ cmp r0, 0
+ bge _0812F388
+ strh r6, [r4, 0x22]
+_0812F388:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x42
+ strh r0, [r4, 0x24]
+ ldr r0, _0812F3C4
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ adds r0, r5, 0
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812F3DC
+ ldr r0, _0812F3C8
+ str r0, [sp]
+ ldr r1, _0812F3CC
+ ldr r2, _0812F3D0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812F3D4
+ ldrh r5, [r0]
+ ldr r0, _0812F3D8
+ b _0812F3EE
+ .align 2, 0
+_0812F3C0: .4byte gUnknown_0202F7C9
+_0812F3C4: .4byte gUnknown_03004B00
+_0812F3C8: .4byte REG_BG1HOFS
+_0812F3CC: .4byte REG_BLDCNT
+_0812F3D0: .4byte 0x00003f42
+_0812F3D4: .4byte gUnknown_030042C0
+_0812F3D8: .4byte gUnknown_030041B4
+_0812F3DC:
+ ldr r0, _0812F454
+ str r0, [sp]
+ ldr r1, _0812F458
+ ldr r2, _0812F45C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812F460
+ ldrh r5, [r0]
+ ldr r0, _0812F464
+_0812F3EE:
+ ldrh r3, [r0]
+ movs r7, 0
+ movs r2, 0
+ ldr r6, _0812F468
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r0, r6
+ mov r12, r0
+_0812F3FE:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r6
+ strh r5, [r0]
+ add r1, r12
+ strh r5, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 1
+ adds r1, r0, r6
+ strh r3, [r1]
+ add r0, r12
+ strh r3, [r0]
+ lsls r0, r7, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ adds r2, 0x2
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r7, r0, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _0812F3FE
+ ldr r0, _0812F46C
+ str r0, [sp, 0x4]
+ mov r1, sp
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ mov r0, sp
+ strb r2, [r0, 0x9]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ bl sub_80895F8
+ ldr r0, _0812F470
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F454: .4byte REG_BG2HOFS
+_0812F458: .4byte REG_BLDCNT
+_0812F45C: .4byte 0x00003f44
+_0812F460: .4byte gUnknown_03004288
+_0812F464: .4byte gUnknown_03004280
+_0812F468: .4byte gUnknown_03004DE0
+_0812F46C: .4byte 0xa6600001
+_0812F470: .4byte sub_812F474
+ thumb_func_end sub_812F314
+
+ thumb_func_start sub_812F474
+sub_812F474: @ 812F474
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0812F4A8
+ adds r6, r0, r1
+ ldrb r0, [r6, 0x12]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812F4B4
+ ldr r0, _0812F4AC
+ ldrh r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, _0812F4B0
+ b _0812F4BC
+ .align 2, 0
+_0812F4A8: .4byte gTasks
+_0812F4AC: .4byte gUnknown_030042C0
+_0812F4B0: .4byte gUnknown_030041B4
+_0812F4B4:
+ ldr r0, _0812F4D4
+ ldrh r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, _0812F4D8
+_0812F4BC:
+ ldrh r0, [r0]
+ str r0, [sp, 0x8]
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _0812F4CA
+ b _0812F6A6
+_0812F4CA:
+ cmp r0, 0x1
+ bgt _0812F4DC
+ cmp r0, 0
+ beq _0812F4EA
+ b _0812F712
+ .align 2, 0
+_0812F4D4: .4byte gUnknown_03004288
+_0812F4D8: .4byte gUnknown_03004280
+_0812F4DC:
+ cmp r0, 0x2
+ bne _0812F4E2
+ b _0812F6C4
+_0812F4E2:
+ cmp r0, 0x3
+ bne _0812F4E8
+ b _0812F70C
+_0812F4E8:
+ b _0812F712
+_0812F4EA:
+ movs r2, 0x24
+ ldrsh r0, [r6, r2]
+ lsls r0, 17
+ lsrs r5, r0, 16
+ movs r3, 0
+ str r3, [sp]
+ mov r9, r3
+ movs r4, 0
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0xA]
+ ldrh r7, [r6, 0xA]
+ mov r8, r7
+ movs r0, 0x14
+ ldrsh r1, [r6, r0]
+ movs r0, 0xFC
+ lsls r0, 3
+ bl __divsi3
+ strh r0, [r6, 0x1A]
+ movs r1, 0x16
+ ldrsh r0, [r6, r1]
+ lsls r0, 1
+ movs r2, 0x1A
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r6, 0x1C]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r6, 0x1E]
+ lsls r0, 16
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r7, r0, 16
+ strh r7, [r6, 0x20]
+ ldrh r2, [r6, 0x24]
+ lsls r3, r2, 16
+ mov r12, r3
+ asrs r1, r3, 16
+ movs r3, 0x22
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ ble _0812F60A
+ ldr r0, _0812F660
+ mov r10, r0
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 16
+ asrs r0, 16
+ str r0, [sp, 0xC]
+_0812F55A:
+ lsls r5, 16
+ asrs r5, 16
+ adds r2, r5, 0x1
+ lsls r2, 1
+ mov r3, r10
+ ldrb r1, [r3, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ ldr r0, _0812F664
+ adds r2, r0
+ lsls r4, 16
+ asrs r4, 16
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ subs r0, r4, r0
+ ldr r3, [sp, 0xC]
+ adds r0, r3, r0
+ strh r0, [r2]
+ lsls r3, r5, 1
+ mov r0, r10
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r3, r0
+ ldr r1, _0812F664
+ adds r3, r1
+ lsls r1, r7, 16
+ asrs r1, 16
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ mov r7, r8
+ lsls r2, r7, 16
+ asrs r2, 16
+ lsls r0, r2, 1
+ ldr r7, _0812F668
+ adds r0, r7
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ adds r1, r0
+ strh r1, [r3]
+ adds r2, 0xA
+ mov r8, r2
+ movs r0, 0xFF
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldrh r0, [r6, 0x1C]
+ ldrh r2, [r6, 0x1E]
+ adds r0, r2
+ strh r0, [r6, 0x1E]
+ lsls r0, 16
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r7, r0, 16
+ strh r7, [r6, 0x20]
+ adds r4, 0x1
+ lsls r4, 16
+ lsrs r4, 16
+ subs r5, 0x2
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r3, [sp]
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ str r2, [sp]
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, _0812F66C
+ add r0, r12
+ lsrs r2, r0, 16
+ lsls r3, r2, 16
+ mov r12, r3
+ asrs r1, r3, 16
+ movs r3, 0x22
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ bgt _0812F55A
+_0812F60A:
+ lsls r1, r2, 17
+ cmp r1, 0
+ blt _0812F636
+ ldr r4, _0812F664
+ ldr r7, [sp, 0x4]
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0xF0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r5, r4, r0
+_0812F622:
+ asrs r2, r1, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ adds r1, r5
+ strh r3, [r1]
+ subs r2, 0x2
+ lsls r1, r2, 16
+ cmp r1, 0
+ bge _0812F622
+_0812F636:
+ ldrh r0, [r6, 0x14]
+ adds r0, 0x1
+ strh r0, [r6, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _0812F69C
+ movs r0, 0x40
+ strh r0, [r6, 0x14]
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812F670
+ ldrh r0, [r6, 0xE]
+ subs r0, 0x1
+ strh r0, [r6, 0xE]
+ b _0812F676
+ .align 2, 0
+_0812F660: .4byte gUnknown_03004DC0
+_0812F664: .4byte gUnknown_03004DE0
+_0812F668: .4byte gSineTable
+_0812F66C: .4byte 0xffff0000
+_0812F670:
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x1
+ strh r0, [r6, 0x10]
+_0812F676:
+ ldr r0, _0812F698
+ ldrh r1, [r6, 0x10]
+ lsls r1, 8
+ ldrh r2, [r6, 0xE]
+ orrs r1, r2
+ strh r1, [r0]
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ cmp r1, 0
+ bne _0812F712
+ movs r3, 0x10
+ ldrsh r0, [r6, r3]
+ cmp r0, 0x10
+ bne _0812F712
+ strh r1, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ b _0812F700
+ .align 2, 0
+_0812F698: .4byte REG_BLDALPHA
+_0812F69C:
+ ldrh r0, [r6, 0x18]
+ ldrh r7, [r6, 0x16]
+ adds r0, r7
+ strh r0, [r6, 0x16]
+ b _0812F712
+_0812F6A6:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0812F712
+ ldr r1, _0812F6C0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ b _0812F700
+ .align 2, 0
+_0812F6C0: .4byte gUnknown_03004DC0
+_0812F6C4:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812F6DA
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ b _0812F6E0
+_0812F6DA:
+ ldrh r0, [r6, 0x10]
+ subs r0, 0x1
+ strh r0, [r6, 0x10]
+_0812F6E0:
+ ldr r2, _0812F708
+ ldrh r0, [r6, 0x10]
+ lsls r0, 8
+ ldrh r1, [r6, 0xE]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x10
+ bne _0812F712
+ movs r2, 0x10
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0812F712
+ strh r0, [r6, 0xC]
+ strh r0, [r6, 0xE]
+_0812F700:
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0812F712
+ .align 2, 0
+_0812F708: .4byte REG_BLDALPHA
+_0812F70C:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_0812F712:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812F474
+
+ thumb_func_start sub_812F724
+sub_812F724: @ 812F724
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _0812F75C
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _0812F760
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, _0812F764
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _0812F768
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F75C: .4byte gTasks
+_0812F760: .4byte gUnknown_03004B00
+_0812F764: .4byte gUnknown_08402750
+_0812F768: .4byte sub_812F76C
+ thumb_func_end sub_812F724
+
+ thumb_func_start sub_812F76C
+sub_812F76C: @ 812F76C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, _0812F7C4
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ adds r1, r0, 0x1
+ movs r5, 0
+ strh r1, [r3, 0x8]
+ subs r0, 0x14
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x16
+ bhi _0812F7D0
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812F7E0
+ strh r5, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _0812F7D0
+ ldr r2, _0812F7C8
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0812F7CC
+ strh r1, [r0, 0x24]
+ b _0812F7E0
+ .align 2, 0
+_0812F7C4: .4byte gTasks
+_0812F7C8: .4byte gSprites
+_0812F7CC: .4byte 0x0000ffff
+_0812F7D0:
+ ldr r2, _0812F800
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+_0812F7E0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812F7F8
+ adds r0, r4, 0
+ bl move_anim_task_del
+_0812F7F8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F800: .4byte gSprites
+ thumb_func_end sub_812F76C
+
+ thumb_func_start sub_812F804
+sub_812F804: @ 812F804
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r5, r2, 0
+ adds r0, r3, 0
+ ldr r4, [sp, 0x14]
+ ldr r6, [sp, 0x18]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r2, r8
+ strh r1, [r2, 0x20]
+ strh r5, [r2, 0x22]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, r1, 4
+ mov r3, r8
+ strh r2, [r3, 0x36]
+ lsls r5, 16
+ asrs r5, 16
+ lsls r2, r5, 4
+ strh r2, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 4
+ adds r1, r6, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1, 0x3A]
+ lsls r4, 16
+ asrs r4, 16
+ subs r4, r5
+ lsls r4, 4
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812F804
+
+ thumb_func_start sub_812F86C
+sub_812F86C: @ 812F86C
+ ldrh r1, [r0, 0x3A]
+ ldrh r2, [r0, 0x36]
+ adds r1, r2
+ strh r1, [r0, 0x36]
+ ldrh r2, [r0, 0x3C]
+ ldrh r3, [r0, 0x38]
+ adds r2, r3
+ strh r2, [r0, 0x38]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r0, 0x20]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r0, 0x22]
+ bx lr
+ thumb_func_end sub_812F86C
+
+ thumb_func_start sub_812F88C
+sub_812F88C: @ 812F88C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldrh r6, [r4, 0x20]
+ ldrh r5, [r4, 0x22]
+ bl sub_8078650
+ ldr r0, _0812F8D4
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x22
+ ldrsh r2, [r4, r0]
+ lsls r6, 16
+ asrs r6, 16
+ lsls r5, 16
+ asrs r5, 16
+ str r5, [sp]
+ movs r0, 0x40
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl sub_812F804
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812F8D8
+ str r0, [r4, 0x1C]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F8D4: .4byte gUnknown_03004B00
+_0812F8D8: .4byte sub_812F8DC
+ thumb_func_end sub_812F88C
+
+ thumb_func_start sub_812F8DC
+sub_812F8DC: @ 812F8DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ lsls r4, 3
+ movs r0, 0xFF
+ ands r4, r0
+ adds r0, r5, 0
+ bl sub_812F86C
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r5, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3A
+ ble _0812F942
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812F942
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldrh r1, [r5, 0x32]
+ adds r1, 0x1
+ strh r1, [r5, 0x32]
+ movs r0, 0x1
+ ands r1, r0
+ adds r3, r5, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3
+ ble _0812F942
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_0812F942:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812F8DC
+
+ thumb_func_start sub_812F948
+sub_812F948: @ 812F948
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0812F9A0
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrb r1, [r6]
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ ldr r0, _0812F9A4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812F96E
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+_0812F96E:
+ ldr r4, _0812F9A8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r6, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x4]
+ adds r0, r6
+ strh r0, [r5, 0x22]
+ ldr r0, _0812F9AC
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F9A0: .4byte gUnknown_03004B00
+_0812F9A4: .4byte gUnknown_0202F7C9
+_0812F9A8: .4byte gUnknown_0202F7C8
+_0812F9AC: .4byte sub_80DA48C
+ thumb_func_end sub_812F948
+
+ thumb_func_start sub_812F9B0
+sub_812F9B0: @ 812F9B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ ldr r2, _0812FA00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _0812FA32
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812FA32
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0812FA04
+ ldrh r0, [r3, 0x10]
+ strh r0, [r3, 0x1A]
+ negs r0, r0
+ strh r0, [r3, 0x10]
+ b _0812FA06
+ .align 2, 0
+_0812FA00: .4byte gTasks
+_0812FA04:
+ strh r7, [r3, 0x1A]
+_0812FA06:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0812FA22
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x1C]
+ negs r0, r0
+ strh r0, [r1, 0x12]
+ b _0812FA26
+_0812FA22:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_0812FA26:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ add r0, r8
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0xA]
+_0812FA32:
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldrh r6, [r4, 0x16]
+ ldrh r7, [r4, 0x18]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r12, r2
+ cmp r0, 0
+ beq _0812FA70
+ ldr r3, _0812FA6C
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ lsrs r2, r6, 8
+ ldrh r0, [r4, 0x1A]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ adds r2, r3, 0
+ b _0812FA86
+ .align 2, 0
+_0812FA6C: .4byte gSprites
+_0812FA70:
+ ldr r2, _0812FAB4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ lsrs r1, r6, 8
+ ldrh r4, [r4, 0x1A]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+_0812FA86:
+ mov r1, r12
+ adds r0, r1, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0812FAB8
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r2, r7, 8
+ ldrh r0, [r4, 0x1C]
+ subs r0, r2
+ b _0812FACA
+ .align 2, 0
+_0812FAB4: .4byte gSprites
+_0812FAB8:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, r7, 8
+ ldrh r4, [r4, 0x1C]
+ adds r0, r4
+_0812FACA:
+ strh r0, [r1, 0x26]
+ mov r2, r12
+ adds r0, r2, r5
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bgt _0812FAEA
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r1, _0812FAF4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0812FAEA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FAF4: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_812F9B0
+
+ thumb_func_start sub_812FAF8
+sub_812FAF8: @ 812FAF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r7, 0
+ ldr r2, _0812FB4C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _0812FB7E
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812FB7E
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0812FB50
+ ldrh r0, [r3, 0x10]
+ strh r0, [r3, 0x1A]
+ negs r0, r0
+ strh r0, [r3, 0x10]
+ b _0812FB52
+ .align 2, 0
+_0812FB4C: .4byte gTasks
+_0812FB50:
+ strh r7, [r3, 0x1A]
+_0812FB52:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0812FB6E
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x1C]
+ negs r0, r0
+ strh r0, [r1, 0x12]
+ b _0812FB72
+_0812FB6E:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_0812FB72:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ add r0, r8
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0xA]
+_0812FB7E:
+ lsls r3, r6, 2
+ adds r0, r3, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldrh r2, [r4, 0xC]
+ ldr r1, _0812FBD0
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r2, [r4, 0x16]
+ adds r0, r2
+ lsls r5, r0, 16
+ lsrs r0, r5, 16
+ mov r9, r0
+ ldrh r0, [r4, 0xE]
+ ands r1, r0
+ ldrh r2, [r4, 0x18]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r12, r3
+ cmp r0, 0
+ beq _0812FBD8
+ ldr r3, _0812FBD4
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ lsrs r2, r5, 24
+ ldrh r0, [r4, 0x1A]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ adds r2, r3, 0
+ b _0812FBEE
+ .align 2, 0
+_0812FBD0: .4byte 0x00007fff
+_0812FBD4: .4byte gSprites
+_0812FBD8:
+ ldr r2, _0812FC1C
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ lsrs r1, r5, 24
+ ldrh r4, [r4, 0x1A]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+_0812FBEE:
+ mov r1, r12
+ adds r0, r1, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0812FC20
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r2, r7, 8
+ ldrh r0, [r4, 0x1C]
+ subs r0, r2
+ b _0812FC32
+ .align 2, 0
+_0812FC1C: .4byte gSprites
+_0812FC20:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, r7, 8
+ ldrh r4, [r4, 0x1C]
+ adds r0, r4
+_0812FC32:
+ strh r0, [r1, 0x26]
+ mov r2, r12
+ adds r0, r2, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r2, r0, r1
+ mov r0, r9
+ strh r0, [r2, 0x16]
+ strh r7, [r2, 0x18]
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bgt _0812FC58
+ movs r0, 0x1E
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ strh r0, [r2, 0x22]
+ ldr r0, _0812FC64
+ str r0, [r2]
+_0812FC58:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FC64: .4byte sub_812F9B0
+ thumb_func_end sub_812FAF8
+
+ thumb_func_start sub_812FC68
+sub_812FC68: @ 812FC68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0812FCC8
+ mov r8, r0
+ lsls r7, r6, 2
+ adds r0, r7, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldr r1, _0812FCCC
+ ldr r2, _0812FCD0
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x26]
+ ldr r5, _0812FCD4
+ ldrh r0, [r5]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x22]
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ beq _0812FCAC
+ ldrh r0, [r4, 0x14]
+ ldr r3, _0812FCD8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r4, 0x14]
+_0812FCAC:
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812FCDC
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xE]
+ mov r3, r8
+ adds r4, r7, 0
+ b _0812FD4C
+ .align 2, 0
+_0812FCC8: .4byte gTasks
+_0812FCCC: .4byte gUnknown_02024BE0
+_0812FCD0: .4byte gUnknown_0202F7C8
+_0812FCD4: .4byte gUnknown_03004B00
+_0812FCD8: .4byte 0xffff8000
+_0812FCDC:
+ movs r7, 0x2
+ ldrsh r0, [r5, r7]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0812FCF8
+ ldrh r1, [r5, 0x2]
+ ldr r0, _0812FCF4
+ ands r0, r1
+ b _0812FD00
+ .align 2, 0
+_0812FCF4: .4byte 0x00007fff
+_0812FCF8:
+ ldrh r0, [r5, 0x2]
+ ldr r2, _0812FD28
+ adds r1, r2, 0
+ orrs r0, r1
+_0812FD00:
+ strh r0, [r4, 0xC]
+ ldr r0, _0812FD2C
+ movs r3, 0x4
+ ldrsh r1, [r0, r3]
+ movs r2, 0x80
+ lsls r2, 8
+ ands r1, r2
+ adds r5, r0, 0
+ cmp r1, 0
+ beq _0812FD38
+ ldr r3, _0812FD30
+ lsls r4, r6, 2
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r3
+ ldrh r2, [r5, 0x4]
+ ldr r0, _0812FD34
+ ands r0, r2
+ b _0812FD4A
+ .align 2, 0
+_0812FD28: .4byte 0xffff8000
+_0812FD2C: .4byte gUnknown_03004B00
+_0812FD30: .4byte gTasks
+_0812FD34: .4byte 0x00007fff
+_0812FD38:
+ ldr r3, _0812FD70
+ lsls r4, r6, 2
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r3
+ ldrh r2, [r5, 0x4]
+ ldr r7, _0812FD74
+ adds r0, r7, 0
+ orrs r0, r2
+_0812FD4A:
+ strh r0, [r1, 0xE]
+_0812FD4C:
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x18]
+ strh r1, [r0, 0x16]
+ ldrh r1, [r5, 0x8]
+ strh r1, [r0, 0x10]
+ ldrh r1, [r5, 0xA]
+ strh r1, [r0, 0x12]
+ ldr r1, _0812FD78
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FD70: .4byte gTasks
+_0812FD74: .4byte 0xffff8000
+_0812FD78: .4byte sub_812FAF8
+ thumb_func_end sub_812FC68
+
+ thumb_func_start sub_812FD7C
+sub_812FD7C: @ 812FD7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0812FDB4
+ adds r5, r0, r1
+ ldr r4, _0812FDB8
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812FD9C
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0812FD9C:
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0xE]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812FDC0
+ ldr r0, _0812FDBC
+ b _0812FDC2
+ .align 2, 0
+_0812FDB4: .4byte gTasks
+_0812FDB8: .4byte gUnknown_03004B00
+_0812FDBC: .4byte gUnknown_0202F7C8
+_0812FDC0:
+ ldr r0, _0812FE10
+_0812FDC2:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ adds r0, r4, 0
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldr r0, _0812FE14
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r5, 0x26]
+ ldr r2, _0812FE18
+ adds r0, r5, 0
+ bl sub_80798F4
+ ldr r0, _0812FE1C
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FE10: .4byte gUnknown_0202F7C9
+_0812FE14: .4byte gUnknown_03004B00
+_0812FE18: .4byte gUnknown_084028AC
+_0812FE1C: .4byte sub_812FE20
+ thumb_func_end sub_812FD7C
+
+ thumb_func_start sub_812FE20
+sub_812FE20: @ 812FE20
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0812FE40
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812FE44
+ cmp r0, 0x1
+ beq _0812FEA4
+ b _0812FEB2
+ .align 2, 0
+_0812FE40: .4byte gTasks
+_0812FE44:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0812FE5A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_812FEB8
+_0812FE5A:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bne _0812FE6A
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_812FEB8
+_0812FE6A:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0812FEB2
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812FE8C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812FEB2
+_0812FE8C:
+ strh r1, [r4, 0xA]
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812FEA0
+ adds r0, r4, 0
+ bl sub_80798F4
+ b _0812FEB2
+ .align 2, 0
+_0812FEA0: .4byte gUnknown_084028AC
+_0812FEA4:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812FEB2
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812FEB2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812FE20
+
+ thumb_func_start sub_812FEB8
+sub_812FEB8: @ 812FEB8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, _0812FEDC
+ adds r4, r0, r2
+ cmp r1, 0
+ bne _0812FEE0
+ movs r1, 0x12
+ movs r3, 0xEC
+ b _0812FEE4
+ .align 2, 0
+_0812FEDC: .4byte gTasks
+_0812FEE0:
+ movs r1, 0x1E
+ movs r3, 0x14
+_0812FEE4:
+ mov r2, sp
+ ldrh r0, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x10]
+ subs r0, r1
+ subs r0, 0x4
+ strh r0, [r2, 0x2]
+ ldrh r0, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r2, 0x4]
+ ldrh r0, [r4, 0x10]
+ adds r0, r1
+ adds r0, 0x4
+ strh r0, [r2, 0x6]
+ add r2, sp, 0x8
+ lsls r1, r3, 24
+ asrs r1, 24
+ ldrh r0, [r4, 0x12]
+ adds r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x12]
+ adds r0, r1
+ adds r0, 0x6
+ strh r0, [r2, 0x2]
+ movs r5, 0
+ mov r8, r2
+ ldr r7, _0812FF88
+_0812FF1C:
+ lsls r0, r5, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ ands r0, r5
+ lsls r0, 1
+ add r0, r8
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ ldrb r3, [r4, 0x14]
+ subs r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _0812FF8C
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0812FF70
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r7
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ movs r0, 0x2
+ cmp r5, 0x1
+ bhi _0812FF5E
+ movs r2, 0x2
+ negs r2, r2
+ adds r0, r2, 0
+_0812FF5E:
+ strh r0, [r1, 0x30]
+ ldr r0, _0812FF90
+ strh r0, [r1, 0x32]
+ strh r6, [r1, 0x34]
+ movs r0, 0x2
+ strh r0, [r1, 0x36]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_0812FF70:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0812FF1C
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FF88: .4byte gSprites
+_0812FF8C: .4byte gSpriteTemplate_84028CC
+_0812FF90: .4byte 0x0000ffff
+ thumb_func_end sub_812FEB8
+
+ thumb_func_start sub_812FF94
+sub_812FF94: @ 812FF94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _0812FFDA
+ ldr r3, _0812FFE0
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x34
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_0812FFDA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FFE0: .4byte gTasks
+ thumb_func_end sub_812FF94
+
+ thumb_func_start sub_812FFE4
+sub_812FFE4: @ 812FFE4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0813002C
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r1, _08130030
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xA]
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08130034
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, _08130038
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813002C: .4byte gTasks
+_08130030: .4byte gUnknown_03004B00
+_08130034: .4byte gSprites
+_08130038: .4byte sub_813003C
+ thumb_func_end sub_812FFE4
+
+ thumb_func_start sub_813003C
+sub_813003C: @ 813003C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08130084
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0813008C
+ ldrh r0, [r4, 0xC]
+ ldr r2, _08130088
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0x8
+ bl BlendPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _0813007C
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_0813007C:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0813009E
+ .align 2, 0
+_08130084: .4byte gTasks
+_08130088: .4byte gUnknown_084028E4
+_0813008C:
+ ldrh r0, [r4, 0xC]
+ movs r1, 0x10
+ movs r2, 0
+ movs r3, 0
+ bl BlendPalette
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0813009E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813003C
+
+ thumb_func_start sub_81300A4
+sub_81300A4: @ 81300A4
+ push {lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xD0
+ lsls r2, 1
+ ldr r1, _081300E0
+ ldrb r3, [r1]
+ ldr r1, _081300E4
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0x2
+ str r1, [sp, 0x8]
+ movs r1, 0x1E
+ str r1, [sp, 0xC]
+ ldr r1, _081300E8
+ str r1, [sp, 0x10]
+ ldr r1, _081300EC
+ str r1, [sp, 0x14]
+ ldr r1, _081300F0
+ str r1, [sp, 0x18]
+ movs r1, 0
+ bl sub_80E3C4C
+ add sp, 0x1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081300E0: .4byte gUnknown_0202F7C8
+_081300E4: .4byte gUnknown_03004B00
+_081300E8: .4byte gUnknown_08D2E014
+_081300EC: .4byte gUnknown_08D2E170
+_081300F0: .4byte gUnknown_08D2E150
+ thumb_func_end sub_81300A4
+
+ thumb_func_start sub_81300F4
+sub_81300F4: @ 81300F4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0813014C
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08130110
+ ldr r1, _08130150
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_08130110:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _08130150
+ lsrs r0, 24
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrb r0, [r6]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08130158
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+ ldr r0, _08130154
+ strh r0, [r5, 0x30]
+ b _08130180
+ .align 2, 0
+_0813014C: .4byte gUnknown_0202F7C8
+_08130150: .4byte gUnknown_03004B00
+_08130154: .4byte 0x0000fd80
+_08130158:
+ cmp r0, 0x1
+ bne _08130172
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ b _08130180
+_08130172:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+_08130180:
+ ldr r0, _081301AC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _081301A0
+ ldrh r0, [r5, 0x2E]
+ negs r0, r0
+ strh r0, [r5, 0x2E]
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_081301A0:
+ ldr r0, _081301B0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081301AC: .4byte gUnknown_0202F7C8
+_081301B0: .4byte sub_81301B4
+ thumb_func_end sub_81300F4
+
+ thumb_func_start sub_81301B4
+sub_81301B4: @ 81301B4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x3A]
+ adds r0, r1
+ strh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x3C]
+ adds r1, r3
+ strh r1, [r2, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x38]
+ adds r0, 0x1
+ strh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bne _081301E8
+ adds r0, r2, 0
+ bl move_anim_8072740
+_081301E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81301B4
+
+ thumb_func_start sub_81301EC
+sub_81301EC: @ 81301EC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08130218
+ adds r6, r1, r0
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0813021C
+ movs r0, 0x8
+ strh r0, [r6, 0x12]
+ movs r0, 0x3
+ strh r0, [r6, 0x14]
+ movs r0, 0x1
+ strh r0, [r6, 0x16]
+ b _08130226
+ .align 2, 0
+_08130218: .4byte gTasks
+_0813021C:
+ movs r0, 0xC
+ strh r0, [r6, 0x12]
+ movs r0, 0x3
+ strh r0, [r6, 0x14]
+ strh r1, [r6, 0x16]
+_08130226:
+ ldr r5, _0813025C
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08130260
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08130254
+ adds r0, 0x3
+_08130254:
+ asrs r0, 2
+ adds r0, r4, r0
+ b _08130284
+ .align 2, 0
+_0813025C: .4byte gUnknown_0202F7C8
+_08130260:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08130280
+ adds r0, 0x3
+_08130280:
+ asrs r0, 2
+ subs r0, r4, r0
+_08130284:
+ strh r0, [r6, 0x1E]
+ ldr r5, _081302D8
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081302A8
+ adds r0, 0x3
+_081302A8:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x20]
+ ldr r4, _081302DC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x24]
+ ldr r0, _081302E0
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081302D8: .4byte gUnknown_0202F7C8
+_081302DC: .4byte gUnknown_0202F7C9
+_081302E0: .4byte sub_81302E4
+ thumb_func_end sub_81301EC
+
+ thumb_func_start sub_81302E4
+sub_81302E4: @ 81302E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _0813030C
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _08130310
+ cmp r1, 0x1
+ bne _08130308
+ b _08130408
+_08130308:
+ b _08130416
+ .align 2, 0
+_0813030C: .4byte gTasks
+_08130310:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08130416
+ strh r1, [r5, 0xA]
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r4, 0x24
+ ldrsh r3, [r5, r4]
+ ldrb r4, [r5, 0x12]
+ str r4, [sp]
+ ldrb r4, [r5, 0xC]
+ str r4, [sp, 0x4]
+ add r4, sp, 0x10
+ str r4, [sp, 0x8]
+ adds r4, 0x2
+ str r4, [sp, 0xC]
+ bl sub_8130424
+ movs r6, 0
+ mov r8, r4
+ ldr r4, _08130384
+_0813034A:
+ add r0, sp, 0x10
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r3, r8
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ ldr r0, _08130388
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081303DE
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0813039E
+ cmp r6, 0
+ bne _0813038C
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ strh r0, [r1, 0x24]
+ b _081303C6
+ .align 2, 0
+_08130384: .4byte gSprites
+_08130388: .4byte gSpriteTemplate_840294C
+_0813038C:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x24]
+ b _081303C6
+_0813039E:
+ cmp r6, 0
+ bne _081303B4
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r5, 0x14]
+ b _081303C4
+_081303B4:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x24]
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+_081303C4:
+ strh r0, [r1, 0x26]
+_081303C6:
+ ldr r1, _08130404
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r7, [r0, 0x30]
+ movs r1, 0xA
+ strh r1, [r0, 0x32]
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+_081303DE:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ bls _0813034A
+ ldrh r2, [r5, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ movs r4, 0x12
+ ldrsh r0, [r5, r4]
+ cmp r1, r0
+ bne _081303FC
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_081303FC:
+ adds r0, r2, 0x1
+ strh r0, [r5, 0xC]
+ b _08130416
+ .align 2, 0
+_08130404: .4byte gSprites
+_08130408:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08130416
+ adds r0, r7, 0
+ bl move_anim_task_del
+_08130416:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81302E4
+
+ thumb_func_start sub_8130424
+sub_8130424: @ 8130424
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ ldr r6, [sp, 0x34]
+ mov r10, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r2, 16
+ lsrs r2, 16
+ adds r7, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r4, 24
+ lsrs r6, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r8, r5
+ cmp r5, 0
+ bne _0813046C
+ mov r2, r9
+ strh r0, [r2]
+ mov r6, r10
+ strh r1, [r6]
+ b _081304CA
+_0813046C:
+ cmp r5, r6
+ bcc _0813047A
+ mov r0, r9
+ strh r2, [r0]
+ mov r1, r10
+ strh r3, [r1]
+ b _081304CA
+_0813047A:
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r2, r12
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r5, r1, 8
+ lsls r0, r7, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 8
+ adds r1, r6, 0
+ bl __divsi3
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r5, r0
+ ldr r2, [sp]
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r4, r1, 8
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 8
+ adds r1, r6, 0
+ bl __divsi3
+ mov r6, r8
+ muls r6, r0
+ adds r0, r6, 0
+ adds r4, r0
+ asrs r5, 8
+ mov r0, r9
+ strh r5, [r0]
+ asrs r4, 8
+ mov r1, r10
+ strh r4, [r1]
+_081304CA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130424
+
+ thumb_func_start sub_81304DC
+sub_81304DC: @ 81304DC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x24
+ ble _08130512
+ ldr r3, _08130518
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x30
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroySprite
+_08130512:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130518: .4byte gTasks
+ thumb_func_end sub_81304DC
+
+ thumb_func_start sub_813051C
+sub_813051C: @ 813051C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _08130548
+ ldrh r0, [r1]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, _0813054C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _08130550
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130548: .4byte gUnknown_03004B00
+_0813054C: .4byte move_anim_8072740
+_08130550: .4byte sub_8078CC0
+ thumb_func_end sub_813051C
+
+ thumb_func_start sub_8130554
+sub_8130554: @ 8130554
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ ldr r1, _08130674
+ adds r7, r0, r1
+ ldr r0, _08130678
+ mov r10, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x1E]
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x20]
+ ldr r0, _0813067C
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x22]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r4, r0, 0
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081305C6
+ adds r0, 0x3
+_081305C6:
+ asrs r0, 2
+ adds r0, r4, r0
+ strh r0, [r7, 0x24]
+ ldr r4, _08130680
+ movs r0, 0x1E
+ ldrsh r5, [r7, r0]
+ movs r1, 0x20
+ ldrsh r6, [r7, r1]
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_8079E90
+ adds r3, r0, 0
+ subs r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x26]
+ cmp r0, 0x40
+ beq _08130690
+ ldr r4, _08130684
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r7, 0x22]
+ strh r1, [r0, 0x32]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r7, 0x24]
+ strh r1, [r0, 0x36]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08130688
+ strh r1, [r0, 0x38]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80786EC
+ mov r1, r10
+ ldrb r0, [r1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813066E
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_0813066E:
+ ldr r0, _0813068C
+ str r0, [r7]
+ b _08130696
+ .align 2, 0
+_08130674: .4byte gTasks
+_08130678: .4byte gUnknown_0202F7C8
+_0813067C: .4byte gUnknown_0202F7C9
+_08130680: .4byte gSpriteTemplate_84029AC
+_08130684: .4byte gSprites
+_08130688: .4byte 0x0000ffe0
+_0813068C: .4byte sub_81306A4
+_08130690:
+ mov r0, r9
+ bl move_anim_task_del
+_08130696:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130554
+
+ thumb_func_start sub_81306A4
+sub_81306A4: @ 81306A4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _081306C8
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0813070C
+ cmp r1, 0x1
+ bgt _081306CC
+ cmp r1, 0
+ beq _081306D6
+ b _081307AA
+ .align 2, 0
+_081306C8: .4byte gTasks
+_081306CC:
+ cmp r1, 0x2
+ beq _08130730
+ cmp r1, 0x3
+ beq _081307A4
+ b _081307AA
+_081306D6:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081307AA
+ strh r1, [r4, 0xA]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08130708
+ adds r0, r1
+ bl sub_8078718
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _081307AA
+ b _08130796
+ .align 2, 0
+_08130708: .4byte gSprites
+_0813070C:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813072C
+ adds r0, r1
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _081307AA
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ b _08130796
+ .align 2, 0
+_0813072C: .4byte gSprites
+_08130730:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081307AA
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xC]
+ adds r2, 0x1
+ strh r2, [r4, 0xC]
+ ldr r5, _081307A0
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x1
+ ands r2, r0
+ adds r1, 0x3E
+ lsls r2, 2
+ ldrb r3, [r1]
+ subs r0, 0x6
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081307AA
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_08130796:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081307AA
+ .align 2, 0
+_081307A0: .4byte gSprites
+_081307A4:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_081307AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81306A4
+
+ thumb_func_start sub_81307B0
+sub_81307B0: @ 81307B0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, _081307C4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r6, r0, 0
+ cmp r1, 0
+ bne _081307CC
+ ldr r0, _081307C8
+ b _081307CE
+ .align 2, 0
+_081307C4: .4byte gUnknown_03004B00
+_081307C8: .4byte gUnknown_0202F7C8
+_081307CC:
+ ldr r0, _08130834
+_081307CE:
+ ldrb r5, [r0]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _08130838
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _0813083C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x3A]
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ movs r1, 0x1
+ cmp r0, 0
+ bne _081307FC
+ movs r3, 0x1
+ negs r3, r3
+ adds r1, r3, 0
+_081307FC:
+ strh r1, [r4, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08130840
+ ldrb r2, [r4, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ subs r0, 0x8
+ b _0813084A
+ .align 2, 0
+_08130834: .4byte gUnknown_0202F7C9
+_08130838: .4byte 0x000003ff
+_0813083C: .4byte 0xfffffc00
+_08130840:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ adds r0, 0x8
+_0813084A:
+ strh r0, [r4, 0x20]
+ ldr r0, _08130858
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130858: .4byte sub_813085C
+ thumb_func_end sub_81307B0
+
+ thumb_func_start sub_813085C
+sub_813085C: @ 813085C
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x1
+ beq _081308A4
+ cmp r1, 0x1
+ bgt _08130872
+ cmp r1, 0
+ beq _0813087C
+ b _08130914
+_08130872:
+ cmp r1, 0x2
+ beq _081308B4
+ cmp r1, 0x3
+ beq _081308DA
+ b _08130914
+_0813087C:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08130914
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x3C]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _08130914
+ b _081308D2
+_081308A4:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _08130914
+ b _081308CE
+_081308B4:
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r1, 2
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08130914
+_081308CE:
+ movs r0, 0
+ strh r0, [r2, 0x30]
+_081308D2:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08130914
+_081308DA:
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _08130914
+ ldrh r0, [r2, 0x3A]
+ subs r0, 0x1
+ strh r0, [r2, 0x3A]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0813090E
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08130914
+_0813090E:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_08130914:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813085C
+
+ thumb_func_start sub_8130918
+sub_8130918: @ 8130918
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, _08130930
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _08130934
+ adds r0, r1, 0
+ bl move_anim_task_del
+ b _0813095C
+ .align 2, 0
+_08130930: .4byte gUnknown_03004B00
+_08130934:
+ ldr r0, _08130964
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x8]
+ ldrb r0, [r2]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, _08130968
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _0813096C
+ str r0, [r4]
+_0813095C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130964: .4byte gTasks
+_08130968: .4byte gUnknown_084029DC
+_0813096C: .4byte sub_8130970
+ thumb_func_end sub_8130918
+
+ thumb_func_start sub_8130970
+sub_8130970: @ 8130970
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _081309B0
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081309CA
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081309B8
+ ldr r2, _081309B4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ b _081309C8
+ .align 2, 0
+_081309B0: .4byte gTasks
+_081309B4: .4byte gSprites
+_081309B8:
+ ldr r2, _08130A10
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08130A14
+_081309C8:
+ strh r1, [r0, 0x24]
+_081309CA:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08130A26
+ ldr r2, _08130A10
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08130A20
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _08130A18
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08130A1C
+ bl sub_80798F4
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ b _08130A26
+ .align 2, 0
+_08130A10: .4byte gSprites
+_08130A14: .4byte 0x0000fffe
+_08130A18: .4byte gTasks
+_08130A1C: .4byte gUnknown_084029DC
+_08130A20:
+ adds r0, r6, 0
+ bl move_anim_task_del
+_08130A26:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130970
+
+ thumb_func_start sub_8130A2C
+sub_8130A2C: @ 8130A2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _08130A40
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08130A48
+ ldr r4, _08130A44
+ b _08130A4A
+ .align 2, 0
+_08130A40: .4byte gUnknown_03004B00
+_08130A44: .4byte gUnknown_0202F7C8
+_08130A48:
+ ldr r4, _08130A88
+_08130A4A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ strh r0, [r5, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x7
+ bgt _08130A6E
+ movs r0, 0x8
+ strh r0, [r5, 0x22]
+_08130A6E:
+ movs r2, 0
+ strh r2, [r5, 0x2E]
+ ldr r1, _08130A8C
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x30]
+ strh r2, [r5, 0x32]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x34]
+ ldr r0, _08130A90
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130A88: .4byte gUnknown_0202F7C9
+_08130A8C: .4byte gUnknown_03004B00
+_08130A90: .4byte sub_8130A94
+ thumb_func_end sub_8130A2C
+
+ thumb_func_start sub_8130A94
+sub_8130A94: @ 8130A94
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ blt _08130AE8
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x32]
+ adds r1, 0x1
+ movs r0, 0x1
+ ands r1, r0
+ strh r1, [r3, 0x32]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r1, 2
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _08130AE8
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08130AE8
+ adds r0, r3, 0
+ bl move_anim_8072740
+_08130AE8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130A94
+
+ thumb_func_start sub_8130AEC
+sub_8130AEC: @ 8130AEC
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _08130B18
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08130B1C
+ ldrb r2, [r3, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ movs r0, 0x64
+ strh r0, [r3, 0x20]
+ movs r0, 0x1
+ b _08130B22
+ .align 2, 0
+_08130B18: .4byte gUnknown_03004B00
+_08130B1C:
+ movs r0, 0x8C
+ strh r0, [r3, 0x20]
+ ldr r0, _08130B30
+_08130B22:
+ strh r0, [r3, 0x3C]
+ movs r0, 0x38
+ strh r0, [r3, 0x22]
+ ldr r0, _08130B34
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130B30: .4byte 0x0000ffff
+_08130B34: .4byte sub_8130B38
+ thumb_func_end sub_8130AEC
+
+ thumb_func_start sub_8130B38
+sub_8130B38: @ 8130B38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bls _08130B46
+ b _08130D18
+_08130B46:
+ lsls r0, 2
+ ldr r1, _08130B50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08130B50: .4byte _08130B54
+ .align 2, 0
+_08130B54:
+ .4byte _08130B78
+ .4byte _08130BAA
+ .4byte _08130BBC
+ .4byte _08130BFC
+ .4byte _08130C0E
+ .4byte _08130C4C
+ .4byte _08130CB0
+ .4byte _08130CD0
+ .4byte _08130CF6
+_08130B78:
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ ldrh r1, [r4, 0x22]
+ subs r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r2, [r4, 0x30]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _08130B9A
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+_08130B9A:
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ beq _08130BA8
+ b _08130D18
+_08130BA8:
+ b _08130CEA
+_08130BAA:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _08130BBA
+ b _08130D18
+_08130BBA:
+ b _08130CEA
+_08130BBC:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r3, 0x3C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, _08130BF8
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xC
+ beq _08130BF4
+ b _08130D18
+_08130BF4:
+ b _08130CEA
+ .align 2, 0
+_08130BF8: .4byte gSineTable
+_08130BFC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ beq _08130C0C
+ b _08130D18
+_08130C0C:
+ b _08130CEA
+_08130C0E:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x22]
+ subs r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, _08130C48
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xC
+ bne _08130D18
+ b _08130CEE
+ .align 2, 0
+_08130C48: .4byte gSineTable
+_08130C4C:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r3, 0x3C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, _08130CA4
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xF
+ bne _08130C98
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _08130CA8
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _08130CAC
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+_08130C98:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bne _08130D18
+ b _08130CEA
+ .align 2, 0
+_08130CA4: .4byte gSineTable
+_08130CA8: .4byte 0x000003ff
+_08130CAC: .4byte 0xfffffc00
+_08130CB0:
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _08130D18
+ b _08130CEA
+_08130CD0:
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ ldrh r3, [r4, 0x20]
+ adds r0, r3
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08130D18
+_08130CEA:
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08130CEE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08130D18
+_08130CF6:
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08130D18
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08130D18:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130B38
+
+ thumb_func_start sub_8130D20
+sub_8130D20: @ 8130D20
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08130D7C
+ adds r6, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x26]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08130DA8
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x1
+ bne _08130D8C
+ ldr r5, _08130D80
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r1, [r5]
+ movs r0, 0x2
+ eors r0, r1
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _08130D84
+ strh r7, [r6, 0x24]
+ b _08130DAC
+ .align 2, 0
+_08130D7C: .4byte gTasks
+_08130D80: .4byte gUnknown_0202F7C8
+_08130D84:
+ ldr r0, _08130D88
+ b _08130DAA
+ .align 2, 0
+_08130D88: .4byte 0x0000ffff
+_08130D8C:
+ ldr r0, _08130DA0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08130DA8
+ ldr r0, _08130DA4
+ b _08130DAA
+ .align 2, 0
+_08130DA0: .4byte gUnknown_0202F7C8
+_08130DA4: .4byte 0x0000ffff
+_08130DA8:
+ movs r0, 0x1
+_08130DAA:
+ strh r0, [r6, 0x24]
+_08130DAC:
+ ldr r0, _08130DB8
+ str r0, [r6]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130DB8: .4byte sub_8130DBC
+ thumb_func_end sub_8130D20
+
+ thumb_func_start sub_8130DBC
+sub_8130DBC: @ 8130DBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _08130DE0
+ adds r3, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x8
+ bls _08130DD6
+ b _08130F50
+_08130DD6:
+ lsls r0, 2
+ ldr r1, _08130DE4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08130DE0: .4byte gTasks
+_08130DE4: .4byte _08130DE8
+ .align 2, 0
+_08130DE8:
+ .4byte _08130E0C
+ .4byte _08130E1E
+ .4byte _08130E50
+ .4byte _08130E80
+ .4byte _08130EA6
+ .4byte _08130ED0
+ .4byte _08130EE0
+ .4byte _08130F00
+ .4byte _08130F38
+_08130E0C:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ beq _08130E1C
+ b _08130F50
+_08130E1C:
+ b _08130F28
+_08130E1E:
+ ldr r2, _08130E4C
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ ldrh r0, [r1, 0x24]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ beq _08130E4A
+ b _08130F50
+_08130E4A:
+ b _08130F28
+ .align 2, 0
+_08130E4C: .4byte gSprites
+_08130E50:
+ ldr r2, _08130E7C
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x24
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08130F50
+ b _08130F28
+ .align 2, 0
+_08130E7C: .4byte gSprites
+_08130E80:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08130F50
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _08130F2C
+ adds r0, r1, 0x1
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0x8]
+ b _08130F50
+_08130EA6:
+ ldr r2, _08130ECC
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r3, 0x24]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _08130F50
+ b _08130F28
+ .align 2, 0
+_08130ECC: .4byte gSprites
+_08130ED0:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08130F50
+ b _08130F28
+_08130EE0:
+ ldr r2, _08130EFC
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x24
+ ldrsh r2, [r3, r0]
+ lsls r2, 2
+ ldrh r0, [r1, 0x24]
+ subs r0, r2
+ b _08130F18
+ .align 2, 0
+_08130EFC: .4byte gSprites
+_08130F00:
+ ldr r2, _08130F34
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ lsls r0, 2
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+_08130F18:
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08130F50
+_08130F28:
+ movs r0, 0
+ strh r0, [r3, 0xA]
+_08130F2C:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _08130F50
+ .align 2, 0
+_08130F34: .4byte gSprites
+_08130F38:
+ ldr r2, _08130F58
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08130F50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130F58: .4byte gSprites
+ thumb_func_end sub_8130DBC
+
+ thumb_func_start sub_8130F5C
+sub_8130F5C: @ 8130F5C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08130F78
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08130F80
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _08130F7C
+ b _08130F82
+ .align 2, 0
+_08130F78: .4byte gUnknown_03004B00
+_08130F7C: .4byte gUnknown_0202F7C8
+_08130F80:
+ ldr r0, _08130FD8
+_08130F82:
+ ldrb r0, [r0]
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08130FA6
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_08130FA6:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079ED4
+ movs r2, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x1]
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ ldr r0, _08130FDC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130FD8: .4byte gUnknown_0202F7C9
+_08130FDC: .4byte sub_8130FE0
+ thumb_func_end sub_8130F5C
+
+ thumb_func_start sub_8130FE0
+sub_8130FE0: @ 8130FE0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _08130FEE
+ b _081311DE
+_08130FEE:
+ lsls r0, 2
+ ldr r1, _08130FF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08130FF8: .4byte _08130FFC
+ .align 2, 0
+_08130FFC:
+ .4byte _08131010
+ .4byte _08131110
+ .4byte _08131178
+ .4byte _0813118C
+ .4byte _081311D8
+_08131010:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bhi _08131040
+ lsls r0, 2
+ ldr r1, _08131024
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08131024: .4byte _08131028
+ .align 2, 0
+_08131028:
+ .4byte _08131044
+ .4byte _08131060
+ .4byte _08131082
+ .4byte _0813109E
+ .4byte _08131044
+ .4byte _081310C4
+_08131040:
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+_08131044:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ b _081310B8
+_08131060:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x4
+ b _081310BE
+_08131082:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ b _081310B8
+_0813109E:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+_081310B8:
+ bl sub_807A100
+ subs r0, 0x4
+_081310BE:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _081310E4
+_081310C4:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r1, r0, 24
+_081310E4:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ bne _081310F0
+ movs r0, 0x18
+ b _081310FA
+_081310F0:
+ cmp r0, 0x5
+ bne _081310F8
+ movs r0, 0x6
+ b _081310FA
+_081310F8:
+ movs r0, 0xC
+_081310FA:
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ strh r1, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ b _081311CA
+_08131110:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _081311DE
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ beq _08131148
+ cmp r0, 0x5
+ beq _08131168
+ ldrh r0, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _08131160
+_08131148:
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+ strh r1, [r4, 0x26]
+ strh r1, [r4, 0x24]
+ strh r1, [r4, 0x38]
+_08131160:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ b _081311DE
+_08131168:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ movs r1, 0x10
+ strh r1, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ movs r0, 0x3
+ strh r0, [r4, 0x38]
+ b _081311DE
+_08131178:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _081311DE
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ b _081311DE
+_0813118C:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813119E
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ b _081311A4
+_0813119E:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+_081311A4:
+ ldr r2, _081311D4
+ ldrh r0, [r4, 0x32]
+ lsls r0, 8
+ ldrh r1, [r4, 0x30]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ bne _081311DE
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_081311CA:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _081311DE
+ .align 2, 0
+_081311D4: .4byte REG_BLDALPHA
+_081311D8:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_081311DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130FE0
+
+ thumb_func_start sub_81311E4
+sub_81311E4: @ 81311E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ adds r5, r0, 0
+ strh r5, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ adds r3, r0, 0
+ strh r3, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08131242
+ ldr r0, _08131260
+ ldrh r1, [r4, 0x20]
+ adds r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r4, 0x22]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x5
+ bl CreateSprite
+_08131242:
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08131254
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08131254:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131260: .4byte gSpriteTemplate_8402500
+ thumb_func_end sub_81311E4
+
+ thumb_func_start sub_8131264
+sub_8131264: @ 8131264
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _081312A0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08131290
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _081312A8
+_08131290:
+ ldr r2, _081312A4
+ ldrh r1, [r5, 0x20]
+ ldrh r0, [r2]
+ subs r0, r1, r0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ subs r1, r0
+ b _081312B6
+ .align 2, 0
+_081312A0: .4byte gUnknown_0202F7C9
+_081312A4: .4byte gUnknown_03004B00
+_081312A8:
+ ldr r2, _081312DC
+ ldrh r1, [r5, 0x20]
+ ldrh r0, [r2]
+ adds r0, r1, r0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ adds r1, r0
+_081312B6:
+ strh r1, [r5, 0x32]
+ adds r3, r2, 0
+ ldrh r1, [r5, 0x22]
+ ldrh r2, [r3, 0x2]
+ adds r2, r1, r2
+ strh r2, [r5, 0x30]
+ ldrh r0, [r3, 0x6]
+ adds r1, r0
+ strh r1, [r5, 0x34]
+ ldrh r0, [r3, 0x8]
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x20]
+ strh r2, [r5, 0x22]
+ ldr r0, _081312E0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081312DC: .4byte gUnknown_03004B00
+_081312E0: .4byte sub_81311E4
+ thumb_func_end sub_8131264
+
+ thumb_func_start sub_81312E4
+sub_81312E4: @ 81312E4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r0, _08131328
+ mov r9, r0
+ lsls r7, r6, 2
+ adds r0, r7, r6
+ lsls r0, 3
+ mov r8, r0
+ mov r4, r8
+ add r4, r9
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813132C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ b _08131378
+ .align 2, 0
+_08131328: .4byte gTasks
+_0813132C:
+ cmp r0, 0x1
+ bne _08131384
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x60
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0xD
+ strh r0, [r4, 0xC]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r0, 0xC
+ ldrsh r2, [r4, r0]
+ adds r0, r5, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _081313E8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _08131380
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08131378:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081313E8
+ .align 2, 0
+_08131380: .4byte gSprites
+_08131384:
+ ldr r4, _081313F4
+ ldrb r0, [r4]
+ movs r1, 0
+ bl refresh_graphics_maybe
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _081313C6
+ ldr r3, _081313F8
+ ldr r2, _081313FC
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _08131400
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_081313C6:
+ mov r4, r9
+ adds r3, r7, 0
+ ldr r5, _08131404
+ movs r1, 0xF
+ mov r2, r8
+ adds r0, r4, r2
+ adds r0, 0x26
+ movs r2, 0
+_081313D6:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081313D6
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r0, r4
+ str r5, [r0]
+_081313E8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081313F4: .4byte gUnknown_0202F7C8
+_081313F8: .4byte gSprites
+_081313FC: .4byte gUnknown_02024BE0
+_08131400: .4byte gSpriteAffineAnimTable_81E7C18
+_08131404: .4byte sub_8131408
+ thumb_func_end sub_81312E4
+
+ thumb_func_start sub_8131408
+sub_8131408: @ 8131408
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08131434
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _0813146C
+ cmp r5, 0x1
+ bgt _08131438
+ cmp r5, 0
+ beq _08131442
+ b _0813155A
+ .align 2, 0
+_08131434: .4byte gTasks
+_08131438:
+ cmp r5, 0x2
+ beq _081314D8
+ cmp r5, 0x3
+ beq _08131514
+ b _0813155A
+_08131442:
+ ldr r0, _08131464
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08131468
+ strh r0, [r1, 0x26]
+ movs r0, 0xC8
+ strh r0, [r1, 0x24]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ subs r0, 0xCD
+ ands r0, r2
+ strb r0, [r1]
+ strh r5, [r4, 0x1C]
+ b _08131506
+ .align 2, 0
+_08131464: .4byte gSprites
+_08131468: .4byte 0x0000ff38
+_0813146C:
+ ldrh r1, [r4, 0x1C]
+ adds r1, 0x70
+ movs r5, 0
+ strh r1, [r4, 0x1C]
+ ldr r2, _081314D0
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r2, r0, r2
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r3, [r2, 0x26]
+ adds r1, r3
+ strh r1, [r2, 0x26]
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r3, 0x26
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ blt _0813149C
+ strh r5, [r2, 0x24]
+_0813149C:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _081314A6
+ strh r5, [r2, 0x26]
+_081314A6:
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0813155A
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+ ldr r1, _081314D4
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x1C]
+ adds r0, r2
+ strh r0, [r4, 0x1C]
+ b _08131506
+ .align 2, 0
+_081314D0: .4byte gSprites
+_081314D4: .4byte 0xfffff800
+_081314D8:
+ ldrh r0, [r4, 0x1C]
+ subs r0, 0x70
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081314E8
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+_081314E8:
+ ldr r0, _08131510
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r4, 0x1C]
+ lsls r2, 16
+ asrs r2, 24
+ ldrh r0, [r1, 0x26]
+ subs r0, r2
+ strh r0, [r1, 0x26]
+ movs r3, 0x1C
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0813155A
+_08131506:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0813155A
+ .align 2, 0
+_08131510: .4byte gSprites
+_08131514:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x70
+ strh r0, [r4, 0x1C]
+ ldr r2, _08131560
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r1, 0x26]
+ adds r0, r2
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08131538
+ movs r0, 0
+ strh r0, [r1, 0x26]
+_08131538:
+ movs r3, 0x26
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0813155A
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0813155A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131560: .4byte gSprites
+ thumb_func_end sub_8131408
+
+ thumb_func_start sub_8131564
+sub_8131564: @ 8131564
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08131588
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131590
+ ldrb r0, [r4]
+ bl sub_8079E90
+ subs r0, 0x2
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r4, _0813158C
+ b _081315A0
+ .align 2, 0
+_08131588: .4byte gUnknown_0202F7C9
+_0813158C: .4byte 0x0000ff70
+_08131590:
+ ldrb r0, [r4]
+ bl sub_8079E90
+ adds r0, 0x2
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r4, _081315BC
+_081315A0:
+ ldr r0, _081315C0
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x26]
+ ldr r0, _081315C4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081315BC: .4byte 0x0000ffa0
+_081315C0: .4byte gUnknown_0202F7C9
+_081315C4: .4byte sub_81315C8
+ thumb_func_end sub_8131564
+
+ thumb_func_start sub_81315C8
+sub_81315C8: @ 81315C8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _081315D6
+ b _081316F2
+_081315D6:
+ lsls r0, 2
+ ldr r1, _081315E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081315E0: .4byte _081315E4
+ .align 2, 0
+_081315E4:
+ .4byte _081315F8
+ .4byte _0813161C
+ .4byte _0813165C
+ .4byte _0813168C
+ .4byte _081316B8
+_081315F8:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _081316F2
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ b _081316B0
+_0813161C:
+ ldrh r1, [r4, 0x30]
+ adds r1, 0x4
+ movs r5, 0
+ strh r1, [r4, 0x30]
+ ldr r2, _08131658
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _081316F2
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x26]
+ b _081316B0
+ .align 2, 0
+_08131658: .4byte gSineTable
+_0813165C:
+ ldrh r1, [r4, 0x30]
+ adds r1, 0x6
+ movs r3, 0
+ strh r1, [r4, 0x30]
+ ldr r2, _08131688
+ movs r5, 0x30
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _081316F2
+ strh r3, [r4, 0x30]
+ strh r3, [r4, 0x26]
+ b _081316B0
+ .align 2, 0
+_08131688: .4byte gSineTable
+_0813168C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _081316F2
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC0
+ bl PlaySE12WithPanning
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_081316B0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081316F2
+_081316B8:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _081316F2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ movs r0, 0x1
+ ands r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bne _081316F2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_081316F2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81315C8
+
+ thumb_func_start sub_81316F8
+sub_81316F8: @ 81316F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r10, r4
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0813173E
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r7, r0, 16
+ cmp r7, 0
+ blt _0813173E
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0813174C
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _08131748
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+_0813173E:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _081317EE
+ .align 2, 0
+_08131748: .4byte gSprites
+_0813174C:
+ ldr r1, _081317FC
+ mov r9, r1
+ lsls r1, r0, 4
+ mov r8, r1
+ add r8, r0
+ mov r0, r8
+ lsls r0, 2
+ mov r8, r0
+ mov r4, r8
+ add r4, r9
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x18
+ strh r0, [r4, 0x24]
+ lsls r6, r7, 4
+ adds r6, r7
+ lsls r6, 2
+ mov r1, r9
+ adds r2, r6, r1
+ ldrh r0, [r2, 0x24]
+ subs r0, 0x18
+ strh r0, [r2, 0x24]
+ strh r5, [r4, 0x2E]
+ strh r5, [r2, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r2, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r2, 0x32]
+ movs r0, 0x10
+ strh r0, [r4, 0x34]
+ ldr r0, _08131800
+ strh r0, [r2, 0x34]
+ strh r5, [r4, 0x36]
+ movs r0, 0x80
+ strh r0, [r2, 0x36]
+ movs r0, 0x18
+ strh r0, [r4, 0x38]
+ strh r0, [r2, 0x38]
+ mov r0, r10
+ strh r0, [r4, 0x3A]
+ strh r0, [r2, 0x3A]
+ strh r5, [r4, 0x3C]
+ strh r5, [r2, 0x3C]
+ ldr r0, _08131804
+ mov r1, r10
+ lsls r3, r1, 2
+ add r3, r10
+ lsls r3, 3
+ adds r3, r0
+ movs r0, 0x2
+ strh r0, [r3, 0x8]
+ adds r5, r4, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ subs r0, 0x7
+ ands r0, r1
+ strb r0, [r5]
+ adds r5, r2, 0
+ adds r5, 0x3E
+ ldrb r0, [r5]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5]
+ ldrb r5, [r4, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r5
+ strb r0, [r4, 0x1]
+ ldrb r0, [r2, 0x1]
+ ands r1, r0
+ strb r1, [r2, 0x1]
+ movs r0, 0x1C
+ add r9, r0
+ add r8, r9
+ ldr r0, _08131808
+ mov r1, r8
+ str r0, [r1]
+ add r6, r9
+ str r0, [r6]
+ ldr r0, _0813180C
+ str r0, [r3]
+_081317EE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081317FC: .4byte gSprites
+_08131800: .4byte 0x0000fff0
+_08131804: .4byte gTasks
+_08131808: .4byte sub_8131838
+_0813180C: .4byte sub_8131810
+ thumb_func_end sub_81316F8
+
+ thumb_func_start sub_8131810
+sub_8131810: @ 8131810
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08131834
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0813182E
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0813182E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131834: .4byte gTasks
+ thumb_func_end sub_8131810
+
+ thumb_func_start sub_8131838
+sub_8131838: @ 8131838
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08131868
+ strh r5, [r4, 0x30]
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08131868:
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x36]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08131890
+ cmp r0, 0x1
+ beq _081318A8
+ b _081318E6
+_08131890:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ bne _081318E6
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081318E6
+_081318A8:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081318E6
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x2
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081318E6
+ ldr r3, _081318EC
+ movs r2, 0x3C
+ ldrsh r1, [r4, r2]
+ lsls r1, 1
+ movs r0, 0x3A
+ ldrsh r2, [r4, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r3, 0x8
+ adds r1, r3
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_081318E6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081318EC: .4byte gTasks
+ thumb_func_end sub_8131838
+
+ thumb_func_start sub_81318F0
+sub_81318F0: @ 81318F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, _0813193C
+ movs r2, 0
+ strh r2, [r3, 0xE]
+ ldr r1, _08131940
+ ldrb r0, [r1]
+ ldrb r1, [r1]
+ adds r0, r1, 0
+ subs r0, 0x3D
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r1, 0
+ cmp r0, 0x1E
+ bhi _08131914
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+_08131914:
+ adds r0, r2, 0
+ subs r0, 0x5C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6C
+ bhi _08131924
+ movs r0, 0x2
+ strh r0, [r3, 0xE]
+_08131924:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0xC8
+ bls _08131930
+ movs r0, 0x3
+ strh r0, [r3, 0xE]
+_08131930:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813193C: .4byte gUnknown_03004B00
+_08131940: .4byte gUnknown_0202F7BE
+ thumb_func_end sub_81318F0
+
+ thumb_func_start sub_8131944
+sub_8131944: @ 8131944
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _08131974
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _0813196A
+ b _08131EA0
+_0813196A:
+ lsls r0, 2
+ ldr r1, _08131978
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08131974: .4byte gTasks
+_08131978: .4byte _0813197C
+ .align 2, 0
+_0813197C:
+ .4byte _08131990
+ .4byte _08131A44
+ .4byte _08131C20
+ .4byte _08131D40
+ .4byte _08131DC4
+_08131990:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _081319DC
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r0, r4, r2
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r3, 0x80
+ lsls r3, 4
+ adds r0, r3, 0
+ ldrh r1, [r6, 0xA]
+ adds r0, r1
+ strh r0, [r6, 0xA]
+ ldr r0, _081319E0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _081319E8
+ ldr r2, _081319E4
+ lsls r3, r7, 4
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+ b _08131A02
+ .align 2, 0
+_081319DC: .4byte gTasks
+_081319E0: .4byte gUnknown_0202F7C8
+_081319E4: .4byte gSprites
+_081319E8:
+ ldr r3, _08131A3C
+ lsls r4, r7, 4
+ adds r2, r4, r7
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_08131A02:
+ ldr r1, _08131A40
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r0, [r4, 0xA]
+ strh r0, [r4, 0xA]
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _08131A2E
+ b _08131EA0
+_08131A2E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08131EA0
+ .align 2, 0
+_08131A3C: .4byte gSprites
+_08131A40: .4byte gTasks
+_08131A44:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08131A74
+ ldr r0, _08131A6C
+ ldr r2, [r0, 0x8]
+ mov r10, r2
+ ldr r3, [r0, 0xC]
+ mov r9, r3
+ ldrh r5, [r0]
+ ldr r0, _08131A70
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ b _08131B92
+ .align 2, 0
+_08131A6C: .4byte 0x02019348
+_08131A70: .4byte gUnknown_0202F7C8
+_08131A74:
+ ldr r4, _08131AD4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131B10
+ ldr r7, _08131AD8
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08131ADC
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _08131AE0
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08131AE4
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _08131AE6
+ .align 2, 0
+_08131AD4: .4byte gUnknown_0202F7C8
+_08131AD8: .4byte gUnknown_02024A6A
+_08131ADC: .4byte gPlayerParty
+_08131AE0: .4byte 0x02017800
+_08131AE4:
+ ldrh r5, [r1, 0x2]
+_08131AE6:
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _08131B0C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ movs r6, 0x88
+ lsls r6, 1
+ b _08131B94
+ .align 2, 0
+_08131B0C: .4byte gSprites
+_08131B10:
+ ldr r7, _08131B64
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08131B68
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _08131B6C
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08131B70
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _08131B72
+ .align 2, 0
+_08131B64: .4byte gUnknown_02024A6A
+_08131B68: .4byte gEnemyParty
+_08131B6C: .4byte 0x02017800
+_08131B70:
+ ldrh r5, [r1, 0x2]
+_08131B72:
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _08131C04
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0x1
+_08131B92:
+ ldr r6, _08131C08
+_08131B94:
+ ldr r0, _08131C0C
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r6, 16
+ asrs r3, 16
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r4, r10
+ str r4, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8079F44
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08131C10
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _08131C14
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08131BF2
+ ldr r1, _08131C04
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ orrs r0, r1
+ ldr r3, _08131C18
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+_08131BF2:
+ ldr r0, _08131C1C
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ strh r5, [r1, 0x26]
+ b _08131DB6
+ .align 2, 0
+_08131C04: .4byte gSprites
+_08131C08: .4byte 0x0000ffe0
+_08131C0C: .4byte gUnknown_0202F7C9
+_08131C10: .4byte gUnknown_0202F7C8
+_08131C14: .4byte 0x02017800
+_08131C18: .4byte 0x00007fff
+_08131C1C: .4byte gTasks
+_08131C20:
+ ldr r1, _08131C6C
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r0, [r6, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r2, [r6, 0xA]
+ adds r0, r2
+ strh r0, [r6, 0xA]
+ ldr r0, _08131C70
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _08131C78
+ ldr r3, _08131C74
+ lsls r4, r5, 4
+ adds r2, r4, r5
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+ b _08131C8E
+ .align 2, 0
+_08131C6C: .4byte gTasks
+_08131C70: .4byte gUnknown_0202F7C8
+_08131C74: .4byte gSprites
+_08131C78:
+ ldr r2, _08131CDC
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+_08131C8E:
+ ldr r1, _08131CE0
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrb r0, [r6, 0xA]
+ strh r0, [r6, 0xA]
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r1, 0x24
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08131D0E
+ ldr r0, _08131CE4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131CEC
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, _08131CE8
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bge _08131D0E
+ b _08131D02
+ .align 2, 0
+_08131CDC: .4byte gSprites
+_08131CE0: .4byte gTasks
+_08131CE4: .4byte gUnknown_0202F7C8
+_08131CE8: .4byte gUnknown_0202F7C9
+_08131CEC:
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, _08131D30
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _08131D0E
+_08131D02:
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ ldr r1, _08131D34
+ ldr r0, _08131D38
+ strh r0, [r1, 0xE]
+_08131D0E:
+ lsls r0, r5, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r2
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _08131D20
+ b _08131EA0
+_08131D20:
+ ldr r0, _08131D3C
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _08131DB6
+ .align 2, 0
+_08131D30: .4byte gUnknown_0202F7C9
+_08131D34: .4byte gUnknown_03004B00
+_08131D38: .4byte 0x0000ffff
+_08131D3C: .4byte gTasks
+_08131D40:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08131D8C
+ mov r3, r8
+ lsls r4, r3, 2
+ adds r0, r4, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r5, _08131D90
+ adds r0, r5
+ bl sub_807A0F4
+ ldr r0, _08131D94
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _08131D98
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r1, 0x24]
+ b _08131DAC
+ .align 2, 0
+_08131D8C: .4byte gTasks
+_08131D90: .4byte gSprites
+_08131D94: .4byte gUnknown_0202F7C8
+_08131D98:
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r5
+ ldrh r2, [r0, 0x20]
+ movs r4, 0x88
+ lsls r4, 1
+ adds r1, r4, 0
+ subs r1, r2
+ strh r1, [r0, 0x24]
+_08131DAC:
+ ldr r0, _08131DC0
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+_08131DB6:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08131EA0
+ .align 2, 0
+_08131DC0: .4byte gTasks
+_08131DC4:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08131E38
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r3, [r2, 0xA]
+ adds r0, r3
+ strh r0, [r2, 0xA]
+ ldr r0, _08131E3C
+ mov r10, r0
+ ldrb r0, [r0]
+ str r2, [sp, 0x10]
+ bl battle_side_get_owner
+ lsls r0, 24
+ mov r9, r4
+ ldr r2, [sp, 0x10]
+ cmp r0, 0
+ bne _08131E44
+ ldr r1, _08131E40
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x24
+ ldrsh r4, [r6, r2]
+ movs r3, 0x20
+ ldrsh r0, [r6, r3]
+ adds r4, r0
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ blt _08131E7C
+ movs r2, 0
+ strh r2, [r6, 0x24]
+ b _08131E7C
+ .align 2, 0
+_08131E38: .4byte gTasks
+_08131E3C: .4byte gUnknown_0202F7C8
+_08131E40: .4byte gSprites
+_08131E44:
+ ldr r1, _08131EB0
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r1, [r2, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r6, 0x24]
+ subs r0, r1
+ strh r0, [r6, 0x24]
+ movs r3, 0x24
+ ldrsh r4, [r6, r3]
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ adds r4, r0
+ mov r2, r10
+ ldrb r0, [r2]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ bgt _08131E7C
+ movs r4, 0
+ strh r4, [r6, 0x24]
+_08131E7C:
+ ldr r1, _08131EB4
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ strh r1, [r0, 0xA]
+ ldr r1, _08131EB0
+ adds r0, r3, r7
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08131EA0
+ mov r0, r8
+ bl move_anim_task_del
+_08131EA0:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131EB0: .4byte gSprites
+_08131EB4: .4byte gTasks
+ thumb_func_end sub_8131944
+
+ thumb_func_start sub_8131EB8
+sub_8131EB8: @ 8131EB8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08131ECA
+ cmp r0, 0x1
+ beq _08131F72
+ b _08131FF4
+_08131ECA:
+ ldr r0, _08131F50
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08131F64
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7A
+ bl PlaySE12WithPanning
+ ldr r0, _08131F54
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ ldr r0, _08131F58
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08131F5C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08131FF4
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131FF4
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _08131F60
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ b _08131FF4
+ .align 2, 0
+_08131F50: .4byte gUnknown_03004B00
+_08131F54: .4byte gUnknown_0202F7C9
+_08131F58: .4byte 0x0000ffe0
+_08131F5C: .4byte gUnknown_0202F7C8
+_08131F60: .4byte gSprites
+_08131F64:
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _08131FF4
+_08131F72:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x30]
+ adds r0, r2, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ ble _08131FA6
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r2, 0
+ subs r0, 0x7A
+ strh r0, [r4, 0x30]
+_08131FA6:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldr r0, _08131FD0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131FD4
+ ldrh r2, [r4, 0x32]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ adds r1, r2, 0
+ b _08131FE0
+ .align 2, 0
+_08131FD0: .4byte gUnknown_0202F7C8
+_08131FD4:
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+_08131FE0:
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ bne _08131FF4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08131FF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8131EB8
+
+ thumb_func_start sub_8131FFC
+sub_8131FFC: @ 8131FFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08132024
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bls _08132018
+ b _0813216A
+_08132018:
+ lsls r0, 2
+ ldr r1, _08132028
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08132024: .4byte gTasks
+_08132028: .4byte _0813202C
+ .align 2, 0
+_0813202C:
+ .4byte _08132040
+ .4byte _08132090
+ .4byte _081320EC
+ .4byte _08132104
+ .4byte _0813216A
+_08132040:
+ ldr r0, _08132084
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _08132088
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r1, _0813208C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x6
+ strh r0, [r1, 0x8]
+ cmp r5, r2
+ ble _08132076
+ negs r0, r0
+ strh r0, [r1, 0x8]
+_08132076:
+ strh r5, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08132188
+ .align 2, 0
+_08132084: .4byte gUnknown_0202F7C8
+_08132088: .4byte gUnknown_0202F7C9
+_0813208C: .4byte gTasks
+_08132090:
+ ldr r1, _081320CC
+ ldr r0, _081320D0
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, _081320D4
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _081320D8
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ b _0813215E
+ .align 2, 0
+_081320CC: .4byte gUnknown_02024BE0
+_081320D0: .4byte gUnknown_0202F7C8
+_081320D4: .4byte gSprites
+_081320D8:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08132188
+ b _08132162
+_081320EC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0, 0x8]
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ strh r1, [r0, 0x26]
+ b _08132188
+_08132104:
+ ldr r1, _08132144
+ ldr r0, _08132148
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, _0813214C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _08132150
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08132188
+ b _08132162
+ .align 2, 0
+_08132144: .4byte gUnknown_02024BE0
+_08132148: .4byte gUnknown_0202F7C8
+_0813214C: .4byte gSprites
+_08132150:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+_0813215E:
+ cmp r0, r1
+ blt _08132188
+_08132162:
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ b _08132188
+_0813216A:
+ ldr r1, _08132190
+ ldr r0, _08132194
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, _08132198
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08132188:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132190: .4byte gUnknown_02024BE0
+_08132194: .4byte gUnknown_0202F7C8
+_08132198: .4byte gSprites
+ thumb_func_end sub_8131FFC
+
+ thumb_func_start sub_813219C
+sub_813219C: @ 813219C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08132204
+ adds r4, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0xE]
+ ldr r0, _08132208
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r2, 0x1
+ negs r2, r2
+ adds r1, r2, 0
+ cmp r0, 0
+ bne _081321D0
+ movs r1, 0x1
+_081321D0:
+ strh r1, [r4, 0x10]
+ ldr r2, _0813220C
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x1A]
+ strh r5, [r4, 0x1E]
+ movs r0, 0x1
+ strh r0, [r4, 0x1C]
+ strh r5, [r4, 0x20]
+ ldr r0, _08132210
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132204: .4byte gTasks
+_08132208: .4byte gUnknown_0202F7C8
+_0813220C: .4byte gSprites
+_08132210: .4byte sub_8132214
+ thumb_func_end sub_813219C
+
+ thumb_func_start sub_8132214
+sub_8132214: @ 8132214
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _08132238
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _081322BC
+ cmp r0, 0x1
+ bgt _0813223C
+ cmp r0, 0
+ beq _08132242
+ b _08132312
+ .align 2, 0
+_08132238: .4byte gTasks
+_0813223C:
+ cmp r0, 0x2
+ beq _0813230C
+ b _08132312
+_08132242:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r4, 0x1E]
+ ldr r5, _081322B4
+ movs r6, 0xE
+ ldrsh r0, [r4, r6]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldr r3, _081322B8
+ movs r6, 0x1E
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x2
+ ands r0, r2
+ strh r0, [r4, 0x1A]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x10]
+ muls r0, r1
+ ldrh r1, [r4, 0x12]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _08132312
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x20]
+ b _081322FC
+ .align 2, 0
+_081322B4: .4byte gSprites
+_081322B8: .4byte gSineTable
+_081322BC:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x1E]
+ ldr r3, _08132304
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, _08132308
+ movs r5, 0x1E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ movs r6, 0x1E
+ ldrsh r2, [r4, r6]
+ cmp r2, 0
+ bne _08132312
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ strh r2, [r1, 0x24]
+_081322FC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08132312
+ .align 2, 0
+_08132304: .4byte gSprites
+_08132308: .4byte gSineTable
+_0813230C:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_08132312:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8132214
+
+ thumb_func_start sub_8132318
+sub_8132318: @ 8132318
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0813236C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0813235E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0813235E:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813236C: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_8132318
+
+ thumb_func_start sub_8132370
+sub_8132370: @ 8132370
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _081323A8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _081323B4
+ ldr r2, _081323AC
+ ldrh r0, [r4, 0x20]
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r0, _081323B0
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _081323CE
+ .align 2, 0
+_081323A8: .4byte gUnknown_0202F7C9
+_081323AC: .4byte gUnknown_03004B00
+_081323B0: .4byte 0x0000fff5
+_081323B4:
+ movs r0, 0xB
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ ldr r1, _081323D8
+ ldrh r0, [r1]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+_081323CE:
+ ldr r0, _081323DC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081323D8: .4byte gUnknown_03004B00
+_081323DC: .4byte sub_8132318
+ thumb_func_end sub_8132370
+
+ thumb_func_start sub_81323E0
+sub_81323E0: @ 81323E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08132424
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _0813240A
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_0813240A:
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+ movs r1, 0x10
+ strh r1, [r5, 0x3C]
+ ldr r0, _08132428
+ str r0, [r5, 0x1C]
+ ldr r0, _0813242C
+ lsls r1, 8
+ strh r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132424: .4byte gUnknown_0202F7C8
+_08132428: .4byte sub_8132430
+_0813242C: .4byte REG_BLDALPHA
+ thumb_func_end sub_81323E0
+
+ thumb_func_start sub_8132430
+sub_8132430: @ 8132430
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r0, 0x32
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _081324A8
+ cmp r1, 0x1
+ bgt _08132446
+ cmp r1, 0
+ beq _08132450
+ b _08132522
+_08132446:
+ cmp r1, 0x2
+ beq _081324BE
+ cmp r1, 0x3
+ beq _0813251C
+ b _08132522
+_08132450:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08132522
+ strh r1, [r3, 0x2E]
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813247A
+ ldrh r2, [r3, 0x3A]
+ movs r4, 0x3A
+ ldrsh r0, [r3, r4]
+ cmp r0, 0xF
+ bgt _08132488
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _08132488
+_0813247A:
+ ldrh r2, [r3, 0x3C]
+ movs r4, 0x3C
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _08132488
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3C]
+_08132488:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ ldr r2, _081324A4
+ ldrh r0, [r3, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r3, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08132522
+ b _08132510
+ .align 2, 0
+_081324A4: .4byte REG_BLDALPHA
+_081324A8:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _08132522
+ strh r1, [r3, 0x2E]
+ strh r1, [r3, 0x30]
+ b _08132510
+_081324BE:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08132522
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081324EA
+ ldrh r2, [r3, 0x3A]
+ movs r4, 0x3A
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _081324F8
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _081324F8
+_081324EA:
+ ldrh r2, [r3, 0x3C]
+ movs r4, 0x3C
+ ldrsh r0, [r3, r4]
+ cmp r0, 0xF
+ bgt _081324F8
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3C]
+_081324F8:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ ldr r2, _08132518
+ ldrh r0, [r3, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r3, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x10
+ bne _08132522
+_08132510:
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ b _08132522
+ .align 2, 0
+_08132518: .4byte REG_BLDALPHA
+_0813251C:
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_08132522:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8132430
+
+ thumb_func_start sub_8132528
+sub_8132528: @ 8132528
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _08132544
+ movs r0, 0
+ strh r0, [r2, 0xE]
+ ldr r0, _08132548
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0813254C
+ movs r0, 0x1
+ b _0813256E
+ .align 2, 0
+_08132544: .4byte gUnknown_03004B00
+_08132548: .4byte gUnknown_0202F7C0
+_0813254C:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08132558
+ movs r0, 0x2
+ b _0813256E
+_08132558:
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08132564
+ movs r0, 0x3
+ b _0813256E
+_08132564:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132570
+ movs r0, 0x4
+_0813256E:
+ strh r0, [r2, 0xE]
+_08132570:
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8132528
+
+ thumb_func_start sub_813257C
+sub_813257C: @ 813257C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _081325B4
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _081325B8
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, _081325BC
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _081325C0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081325B4: .4byte gTasks
+_081325B8: .4byte gUnknown_03004B00
+_081325BC: .4byte gUnknown_08402B28
+_081325C0: .4byte sub_81325C4
+ thumb_func_end sub_813257C
+
+ thumb_func_start sub_81325C4
+sub_81325C4: @ 81325C4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, _0813261C
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ adds r1, r0, 0x1
+ movs r5, 0
+ strh r1, [r3, 0x8]
+ subs r0, 0x10
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x16
+ bhi _08132628
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08132638
+ strh r5, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _08132628
+ ldr r2, _08132620
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08132624
+ strh r1, [r0, 0x24]
+ b _08132638
+ .align 2, 0
+_0813261C: .4byte gTasks
+_08132620: .4byte gSprites
+_08132624: .4byte 0x0000ffff
+_08132628:
+ ldr r2, _08132658
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+_08132638:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132650
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08132650:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132658: .4byte gSprites
+ thumb_func_end sub_81325C4
+
+ thumb_func_start sub_813265C
+sub_813265C: @ 813265C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813265C
+
+ thumb_func_start sub_8132670
+sub_8132670: @ 8132670
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _08132698
+ movs r1, 0xA
+ bl CreateTask
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132698: .4byte sub_813269C
+ thumb_func_end sub_8132670
+
+ thumb_func_start sub_813269C
+sub_813269C: @ 813269C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _081326C8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081326C0
+ ldr r0, _081326CC
+ bl SetMainCallback2
+ ldr r1, _081326D0
+ ldr r0, _081326D4
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_081326C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081326C8: .4byte gPaletteFade
+_081326CC: .4byte sub_81326D8
+_081326D0: .4byte gUnknown_0300485C
+_081326D4: .4byte sub_8080990
+ thumb_func_end sub_813269C
+
+ thumb_func_start sub_81326D8
+sub_81326D8: @ 81326D8
+ push {r4,r5,lr}
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r4, _08132778
+ ldr r0, _0813277C
+ str r0, [r4]
+ bl sub_81332A0
+ ldr r1, [r4]
+ ldr r0, _08132780
+ ldrh r0, [r0]
+ ldr r2, _08132784
+ adds r1, r2
+ movs r5, 0
+ strb r0, [r1]
+ bl sub_8133558
+ ldr r0, _08132788
+ bl SetVBlankCallback
+ ldr r4, _0813278C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r4, _08132790
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r0, _08132794
+ strh r5, [r0]
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ strh r5, [r0]
+ ldr r0, _08132798
+ bl LoadSpriteSheet
+ ldr r0, _0813279C
+ bl LoadSpritePalette
+ bl sub_8133358
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r0, _081327A0
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132778: .4byte gUnknown_030007B0
+_0813277C: .4byte 0x02017000
+_08132780: .4byte gUnknown_0202E8CC
+_08132784: .4byte 0x000002c5
+_08132788: .4byte sub_813265C
+_0813278C: .4byte gWindowConfig_81E7240
+_08132790: .4byte gWindowConfig_81E6CE4
+_08132794: .4byte REG_BG0VOFS
+_08132798: .4byte gUnknown_08402D80
+_0813279C: .4byte gUnknown_08402D88
+_081327A0: .4byte sub_8132870
+ thumb_func_end sub_81326D8
+
+ thumb_func_start sub_81327A4
+sub_81327A4: @ 81327A4
+ push {r4,r5,lr}
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r4, _08132844
+ ldr r0, _08132848
+ str r0, [r4]
+ bl sub_8133558
+ ldr r1, [r4]
+ ldr r0, _0813284C
+ ldrh r0, [r0]
+ ldr r2, _08132850
+ adds r1, r2
+ movs r5, 0
+ strb r0, [r1]
+ ldr r0, _08132854
+ bl SetVBlankCallback
+ ldr r4, _08132858
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r4, _0813285C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08132860
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ strh r5, [r0]
+ ldr r0, _08132864
+ bl LoadSpriteSheet
+ ldr r0, _08132868
+ bl LoadSpritePalette
+ bl sub_8133358
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r0, _0813286C
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132844: .4byte gUnknown_030007B0
+_08132848: .4byte 0x02017000
+_0813284C: .4byte gUnknown_0202E8CE
+_08132850: .4byte 0x000002c6
+_08132854: .4byte sub_813265C
+_08132858: .4byte gWindowConfig_81E7240
+_0813285C: .4byte gWindowConfig_81E6CE4
+_08132860: .4byte REG_BG0VOFS
+_08132864: .4byte gUnknown_08402D80
+_08132868: .4byte gUnknown_08402D88
+_0813286C: .4byte sub_8132870
+ thumb_func_end sub_81327A4
+
+ thumb_func_start sub_8132870
+sub_8132870: @ 8132870
+ push {r4,lr}
+ bl sub_8132908
+ ldr r4, _081328E0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1D]
+ cmp r0, 0
+ beq _08132896
+ movs r0, 0
+ strb r0, [r1, 0x1D]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x18]
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 27
+ lsrs r1, 24
+ movs r0, 0x58
+ bl sub_814AD7C
+_08132896:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1E]
+ cmp r0, 0
+ beq _081328A6
+ movs r0, 0
+ strb r0, [r1, 0x1E]
+ bl sub_8133800
+_081328A6:
+ ldr r1, [r4]
+ ldr r2, _081328E4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081328C8
+ adds r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8133AEC
+ ldr r0, [r4]
+ ldr r1, _081328E4
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_081328C8:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081328E0: .4byte gUnknown_030007B0
+_081328E4: .4byte 0x000002c3
+ thumb_func_end sub_8132870
+
+ thumb_func_start sub_81328E8
+sub_81328E8: @ 81328E8
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r4, _08132904
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132904: .4byte gStringVar4
+ thumb_func_end sub_81328E8
+
+ thumb_func_start sub_8132908
+sub_8132908: @ 8132908
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _0813292C
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0x21
+ bls _08132920
+ b _08132FD6
+_08132920:
+ lsls r0, 2
+ ldr r1, _08132930
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813292C: .4byte gUnknown_030007B0
+_08132930: .4byte _08132934
+ .align 2, 0
+_08132934:
+ .4byte _081329BC
+ .4byte _08132A0C
+ .4byte _08132A24
+ .4byte _08132A2C
+ .4byte _08132A60
+ .4byte _08132A66
+ .4byte _08132A98
+ .4byte _08132FD6
+ .4byte _08132AAA
+ .4byte _08132AD0
+ .4byte _08132FD6
+ .4byte _08132FD6
+ .4byte _08132B74
+ .4byte _08132B98
+ .4byte _08132DD8
+ .4byte _08132DF8
+ .4byte _08132BF0
+ .4byte _08132C08
+ .4byte _08132C2C
+ .4byte _08132D40
+ .4byte _08132D68
+ .4byte _08132DB8
+ .4byte _08132DC6
+ .4byte _08132FD6
+ .4byte _08132C74
+ .4byte _08132C8C
+ .4byte _08132CB0
+ .4byte _08132D0C
+ .4byte _08132E18
+ .4byte _08132E7C
+ .4byte _08132F58
+ .4byte _08132F84
+ .4byte _08132FA4
+ .4byte _08132FBC
+_081329BC:
+ ldr r1, [r7]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r4, 0
+ strb r0, [r1]
+ bl sub_8132FEC
+ movs r0, 0
+ bl sub_8133030
+ bl sub_8133800
+ ldr r0, _08132A04
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ ldr r0, [r7]
+ ldr r1, _08132A08
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08132FD6
+ .align 2, 0
+_08132A04: .4byte gSprites
+_08132A08: .4byte 0x000002c3
+_08132A0C:
+ ldr r0, _08132A20
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132A1A
+ b _08132FD6
+_08132A1A:
+ ldr r1, [r7]
+ movs r0, 0x4
+ b _08132FD4
+ .align 2, 0
+_08132A20: .4byte gPaletteFade
+_08132A24:
+ ldr r1, [r7]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+_08132A2C:
+ movs r0, 0
+ bl sub_8133030
+ bl sub_8133800
+ ldr r2, _08132A54
+ ldr r0, [r2]
+ ldr r1, _08132A58
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _08132A5C
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ b _08132FD6
+ .align 2, 0
+_08132A54: .4byte gUnknown_030007B0
+_08132A58: .4byte 0x000002c3
+_08132A5C: .4byte gSprites
+_08132A60:
+ bl sub_81330E8
+ b _08132A9C
+_08132A66:
+ movs r0, 0
+ bl sub_8133140
+ bl sub_8133800
+ ldr r2, _08132A8C
+ ldr r0, [r2]
+ ldr r1, _08132A90
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08132A94
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132A8C: .4byte gUnknown_030007B0
+_08132A90: .4byte 0x000002c3
+_08132A94: .4byte gSprites
+_08132A98:
+ bl sub_8133248
+_08132A9C:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132AA4
+ b _08132FD6
+_08132AA4:
+ bl sub_813362C
+ b _08132FD6
+_08132AAA:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132AB6
+ b _08132FD6
+_08132AB6:
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _08132ACC
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132ACC: .4byte gUnknown_030007B0
+_08132AD0:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08132B3A
+ bl sub_8133CA4
+ ldr r4, _08132B1C
+ ldr r2, [r4]
+ ldr r1, _08132B20
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08132B24
+ adds r0, r1
+ ldrb r1, [r2, 0x1B]
+ lsls r1, 1
+ adds r2, 0x20
+ adds r2, r1
+ ldrh r1, [r2]
+ bl GiveMoveToMon
+ lsls r0, 16
+ ldr r1, _08132B28
+ cmp r0, r1
+ beq _08132B34
+ ldr r0, _08132B2C
+ bl sub_81328E8
+ ldr r1, _08132B30
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, [r4]
+ movs r0, 0x1F
+ b _08132FD4
+ .align 2, 0
+_08132B1C: .4byte gUnknown_030007B0
+_08132B20: .4byte 0x000002c5
+_08132B24: .4byte gPlayerParty
+_08132B28: .4byte 0xffff0000
+_08132B2C: .4byte gOtherText_PokeLearnedMove
+_08132B30: .4byte gUnknown_0202E8CC
+_08132B34:
+ ldr r1, [r4]
+ movs r0, 0x10
+ b _08132FD4
+_08132B3A:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08132B48
+ cmp r1, 0x1
+ beq _08132B48
+ b _08132FD6
+_08132B48:
+ bl sub_8133CA4
+ ldr r3, _08132B70
+ ldr r1, [r3]
+ movs r2, 0xB1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132B60
+ movs r0, 0x3
+ strb r0, [r1]
+_08132B60:
+ ldr r1, [r3]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08132B6C
+ b _08132FD6
+_08132B6C:
+ movs r0, 0x5
+ b _08132FD4
+ .align 2, 0
+_08132B70: .4byte gUnknown_030007B0
+_08132B74:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132B80
+ b _08132FD6
+_08132B80:
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _08132B94
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132B94: .4byte gUnknown_030007B0
+_08132B98:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r4, r0, 24
+ cmp r4, 0
+ bne _08132BB4
+ bl sub_8133CA4
+ ldr r0, _08132BB0
+ strh r4, [r0]
+ b _08132FCE
+ .align 2, 0
+_08132BB0: .4byte gUnknown_0202E8CC
+_08132BB4:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08132BC2
+ cmp r4, 0x1
+ beq _08132BC2
+ b _08132FD6
+_08132BC2:
+ bl sub_8133CA4
+ ldr r3, _08132BEC
+ ldr r1, [r3]
+ movs r2, 0xB1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132BDA
+ movs r0, 0x3
+ strb r0, [r1]
+_08132BDA:
+ ldr r1, [r3]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08132BE6
+ b _08132FD6
+_08132BE6:
+ movs r0, 0x5
+ b _08132FD4
+ .align 2, 0
+_08132BEC: .4byte gUnknown_030007B0
+_08132BF0:
+ ldr r0, _08132C00
+ bl sub_81328E8
+ ldr r0, _08132C04
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132C00: .4byte gOtherText_DeleteOlderMove
+_08132C04: .4byte gUnknown_030007B0
+_08132C08:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132C14
+ b _08132FD6
+_08132C14:
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _08132C28
+ ldr r1, [r0]
+ movs r0, 0x12
+ b _08132FD4
+ .align 2, 0
+_08132C28: .4byte gUnknown_030007B0
+_08132C2C:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08132C54
+ bl sub_8133CA4
+ ldr r0, _08132C4C
+ bl sub_81328E8
+ ldr r0, _08132C50
+ ldr r1, [r0]
+ movs r0, 0x13
+ b _08132FD4
+ .align 2, 0
+_08132C4C: .4byte gOtherText_WhichMoveToForget
+_08132C50: .4byte gUnknown_030007B0
+_08132C54:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08132C62
+ cmp r1, 0x1
+ beq _08132C62
+ b _08132FD6
+_08132C62:
+ bl sub_8133CA4
+ ldr r0, _08132C70
+ ldr r1, [r0]
+ movs r0, 0x18
+ b _08132FD4
+ .align 2, 0
+_08132C70: .4byte gUnknown_030007B0
+_08132C74:
+ ldr r0, _08132C84
+ bl sub_81328E8
+ ldr r0, _08132C88
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132C84: .4byte gOtherText_StopLearningMove
+_08132C88: .4byte gUnknown_030007B0
+_08132C8C:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132C98
+ b _08132FD6
+_08132C98:
+ ldr r0, _08132CAC
+ ldr r1, [r0]
+ movs r0, 0x1A
+ strb r0, [r1]
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ b _08132FD6
+ .align 2, 0
+_08132CAC: .4byte gUnknown_030007B0
+_08132CB0:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08132CCC
+ bl sub_8133CA4
+ ldr r0, _08132CC8
+ ldr r1, [r0]
+ movs r0, 0x1B
+ b _08132FD4
+ .align 2, 0
+_08132CC8: .4byte gUnknown_030007B0
+_08132CCC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08132CDA
+ cmp r1, 0x1
+ beq _08132CDA
+ b _08132FD6
+_08132CDA:
+ bl sub_8133CA4
+ ldr r1, _08132D08
+ ldr r2, [r1]
+ movs r3, 0xB1
+ lsls r3, 2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132CF2
+ movs r0, 0x3
+ strb r0, [r2]
+_08132CF2:
+ ldr r2, [r1]
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08132D00
+ movs r0, 0x5
+ strb r0, [r2]
+_08132D00:
+ ldr r1, [r1]
+ movs r0, 0x10
+ b _08132FD4
+ .align 2, 0
+_08132D08: .4byte gUnknown_030007B0
+_08132D0C:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132D18
+ b _08132FD6
+_08132D18:
+ ldr r3, _08132D3C
+ ldr r1, [r3]
+ movs r2, 0xB1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132D2C
+ movs r0, 0x3
+ strb r0, [r1]
+_08132D2C:
+ ldr r1, [r3]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08132D38
+ b _08132FD6
+_08132D38:
+ movs r0, 0x5
+ b _08132FD4
+ .align 2, 0
+_08132D3C: .4byte gUnknown_030007B0
+_08132D40:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132D4C
+ b _08132FD6
+_08132D4C:
+ ldr r0, _08132D64
+ ldr r1, [r0]
+ movs r2, 0
+ movs r0, 0x14
+ strb r0, [r1]
+ subs r0, 0x15
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08132FD6
+ .align 2, 0
+_08132D64: .4byte gUnknown_030007B0
+_08132D68:
+ ldr r0, _08132DA4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132D76
+ b _08132FD6
+_08132D76:
+ ldr r0, _08132DA8
+ ldr r5, [r7]
+ ldr r2, _08132DAC
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ ldr r2, _08132DB0
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08132DB4
+ ldrb r4, [r5, 0x1B]
+ lsls r4, 1
+ adds r5, 0x20
+ adds r5, r4
+ ldrh r4, [r5]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldr r1, [r7]
+ movs r0, 0x1C
+ b _08132FD4
+ .align 2, 0
+_08132DA4: .4byte gPaletteFade
+_08132DA8: .4byte gPlayerParty
+_08132DAC: .4byte 0x000002c5
+_08132DB0: .4byte gPlayerPartyCount
+_08132DB4: .4byte sub_81327A4
+_08132DB8:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132DC4
+ b _08132FD6
+_08132DC4:
+ b _08132FCE
+_08132DC6:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08132FD6
+_08132DD8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08132DF4
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132DF4: .4byte gUnknown_030007B0
+_08132DF8:
+ ldr r0, _08132E10
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132E06
+ b _08132FD6
+_08132E06:
+ ldr r0, _08132E14
+ bl SetMainCallback2
+ b _08132FD6
+ .align 2, 0
+_08132E10: .4byte gPaletteFade
+_08132E14: .4byte c2_exit_to_overworld_2_switch
+_08132E18:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r5, _08132E74
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_8132FEC
+ bl sub_8133800
+ ldr r0, [r5]
+ movs r4, 0xB1
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132E4E
+ movs r0, 0x1
+ bl sub_8133030
+_08132E4E:
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08132E66
+ ldr r0, _08132E78
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ movs r0, 0x1
+ bl sub_8133140
+_08132E66:
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8133AEC
+ b _08132FD6
+ .align 2, 0
+_08132E74: .4byte gUnknown_030007B0
+_08132E78: .4byte gSprites
+_08132E7C:
+ ldr r0, _08132E9C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132E8A
+ b _08132FD6
+_08132E8A:
+ ldr r1, [r7]
+ ldr r0, _08132EA0
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0x4
+ bne _08132EA4
+ movs r0, 0x18
+ b _08132FD4
+ .align 2, 0
+_08132E9C: .4byte gPaletteFade
+_08132EA0: .4byte 0x000002c6
+_08132EA4:
+ ldr r4, _08132F38
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08132F3C
+ adds r0, r5
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08132F40
+ movs r1, 0xD
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ ldr r0, _08132F44
+ mov r8, r0
+ add r1, r8
+ adds r0, r2, 0
+ bl StringCopy
+ ldr r1, [r7]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ ldr r2, _08132F48
+ adds r1, r2
+ ldrb r1, [r1]
+ bl RemoveMonPPBonus
+ ldr r3, [r7]
+ adds r4, r3, r4
+ ldrb r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ ldrb r2, [r3, 0x1B]
+ lsls r2, 1
+ adds r1, r3, 0
+ adds r1, 0x20
+ adds r1, r2
+ ldrh r1, [r1]
+ ldr r2, _08132F48
+ adds r3, r2
+ ldrb r2, [r3]
+ bl SetMonMoveSlot
+ ldr r0, _08132F4C
+ ldr r1, [r7]
+ ldrb r2, [r1, 0x1B]
+ lsls r2, 1
+ adds r1, 0x20
+ adds r1, r2
+ ldrh r1, [r1]
+ mov r2, r9
+ muls r2, r1
+ adds r1, r2, 0
+ add r1, r8
+ bl StringCopy
+ ldr r0, _08132F50
+ bl sub_81328E8
+ ldr r1, [r7]
+ movs r0, 0x1E
+ strb r0, [r1]
+ ldr r1, _08132F54
+ movs r0, 0x1
+ strh r0, [r1]
+ b _08132FD6
+ .align 2, 0
+_08132F38: .4byte 0x000002c5
+_08132F3C: .4byte gPlayerParty
+_08132F40: .4byte gStringVar3
+_08132F44: .4byte gMoveNames
+_08132F48: .4byte 0x000002c6
+_08132F4C: .4byte gStringVar2
+_08132F50: .4byte gOtherText_ForgotMove123
+_08132F54: .4byte gUnknown_0202E8CC
+_08132F58:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132FD6
+ ldr r0, _08132F78
+ bl sub_81328E8
+ ldr r0, _08132F7C
+ ldr r1, [r0]
+ movs r0, 0x1F
+ strb r0, [r1]
+ ldr r0, _08132F80
+ bl PlayFanfare
+ b _08132FD6
+ .align 2, 0
+_08132F78: .4byte gOtherText_ForgotOrDidNotLearnMove
+_08132F7C: .4byte gUnknown_030007B0
+_08132F80: .4byte 0x0000016f
+_08132F84:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132FD6
+ ldr r0, _08132F9C
+ bl PlayFanfare
+ ldr r0, _08132FA0
+ ldr r1, [r0]
+ movs r0, 0x20
+ b _08132FD4
+ .align 2, 0
+_08132F9C: .4byte 0x0000016f
+_08132FA0: .4byte gUnknown_030007B0
+_08132FA4:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132FD6
+ ldr r0, _08132FB8
+ ldr r1, [r0]
+ movs r0, 0x21
+ b _08132FD4
+ .align 2, 0
+_08132FB8: .4byte gUnknown_030007B0
+_08132FBC:
+ ldr r0, _08132FE4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08132FD6
+ movs r0, 0x5
+ bl PlaySE
+_08132FCE:
+ ldr r0, _08132FE8
+ ldr r1, [r0]
+ movs r0, 0xE
+_08132FD4:
+ strb r0, [r1]
+_08132FD6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132FE4: .4byte gMain
+_08132FE8: .4byte gUnknown_030007B0
+ thumb_func_end sub_8132908
+
+ thumb_func_start sub_8132FEC
+sub_8132FEC: @ 8132FEC
+ push {r4-r6,lr}
+ ldr r0, _08133024
+ bl BasicInitMenuWindow
+ movs r5, 0
+ ldr r4, _08133028
+ adds r6, r4, 0
+_08132FFA:
+ lsls r3, r5, 2
+ ldrb r0, [r4]
+ adds r1, r6, 0x1
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r6, 0x2
+ adds r3, r2
+ ldrb r2, [r3]
+ ldrb r3, [r4, 0x3]
+ bl MenuDrawTextWindow
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0x3
+ bls _08132FFA
+ ldr r0, _0813302C
+ bl BasicInitMenuWindow
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133024: .4byte gWindowConfig_81E7240
+_08133028: .4byte gUnknown_08402CF8
+_0813302C: .4byte gWindowConfig_81E6CE4
+ thumb_func_end sub_8132FEC
+
+ thumb_func_start sub_8133030
+sub_8133030: @ 8133030
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, _081330D4
+ ldr r5, _081330D8
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r2, 0
+ ldr r6, _081330DC
+ movs r3, 0x4
+_08133070:
+ ldr r0, [r5]
+ adds r0, r2
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0xF
+ ble _08133070
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _081330B4
+ ldr r5, _081330E0
+ adds r4, r6, 0
+_08133096:
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x40
+ movs r3, 0x2
+ bl sub_8072C74
+ ldrb r1, [r4, 0x4]
+ ldrb r2, [r4, 0x5]
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r4, 0x8
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _08133096
+_081330B4:
+ cmp r7, 0
+ bne _081330CC
+ ldr r0, _081330E4
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0x78
+ movs r3, 0xC0
+ bl sub_8072AB0
+_081330CC:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081330D4: .4byte gSprites
+_081330D8: .4byte gUnknown_030007B0
+_081330DC: .4byte gUnknown_08402D08
+_081330E0: .4byte gTileBuffer
+_081330E4: .4byte gOtherText_TeachWhichMove
+ thumb_func_end sub_8133030
+
+ thumb_func_start sub_81330E8
+sub_81330E8: @ 81330E8
+ push {r4,lr}
+ ldr r0, _08133134
+ ldrh r2, [r0, 0x2E]
+ movs r1, 0x30
+ ands r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ ldr r0, _08133138
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0813310C
+ movs r0, 0xC0
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0813310C
+ adds r4, 0x1
+_0813310C:
+ cmp r4, 0
+ beq _0813312A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0813313C
+ ldr r1, [r2]
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0xB1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0813312A:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08133134: .4byte gMain
+_08133138: .4byte gSaveBlock2
+_0813313C: .4byte gUnknown_030007B0
+ thumb_func_end sub_81330E8
+
+ thumb_func_start sub_8133140
+sub_8133140: @ 8133140
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ ldr r4, _08133234
+ ldr r5, _08133238
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x5
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+ movs r6, 0
+ ldr r7, _0813323C
+_0813318A:
+ ldr r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0, 0x7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _0813318A
+ movs r6, 0
+ ldr r0, [r7]
+ cmp r0, 0
+ beq _08133208
+ mov r9, r7
+ mov r10, r6
+ movs r0, 0x24
+ add r0, r9
+ mov r8, r0
+_081331BA:
+ mov r0, r9
+ adds r0, 0x20
+ add r0, r10
+ ldr r1, [r0]
+ ldr r0, _08133240
+ movs r2, 0x40
+ movs r3, 0x2
+ bl sub_8072C74
+ mov r0, r8
+ ldrb r5, [r0]
+ ldrb r4, [r0, 0x1]
+ ldr r0, _08133240
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ cmp r6, 0
+ beq _081331F8
+ adds r1, r4, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r5, 0x7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r4, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ bl MenuZeroFillWindowRect
+_081331F8:
+ movs r0, 0x8
+ add r10, r0
+ add r8, r0
+ adds r7, 0x8
+ adds r6, 0x1
+ ldr r0, [r7]
+ cmp r0, 0
+ bne _081331BA
+_08133208:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _08133222
+ ldr r0, _08133244
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0x78
+ movs r3, 0xC0
+ bl sub_8072AB0
+_08133222:
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133234: .4byte gSprites
+_08133238: .4byte gUnknown_030007B0
+_0813323C: .4byte gUnknown_08402D08
+_08133240: .4byte gTileBuffer
+_08133244: .4byte gOtherText_TeachWhichMove
+ thumb_func_end sub_8133140
+
+ thumb_func_start sub_8133248
+sub_8133248: @ 8133248
+ push {r4,lr}
+ ldr r0, _08133294
+ ldrh r2, [r0, 0x2E]
+ movs r1, 0x30
+ ands r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ ldr r0, _08133298
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0813326C
+ movs r0, 0xC0
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0813326C
+ adds r4, 0x1
+_0813326C:
+ cmp r4, 0
+ beq _0813328A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0813329C
+ ldr r1, [r2]
+ movs r3, 0
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0xB1
+ lsls r1, 2
+ adds r0, r1
+ strb r3, [r0]
+_0813328A:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08133294: .4byte gMain
+_08133298: .4byte gSaveBlock2
+_0813329C: .4byte gUnknown_030007B0
+ thumb_func_end sub_8133248
+
+ thumb_func_start sub_81332A0
+sub_81332A0: @ 81332A0
+ push {r4,lr}
+ ldr r2, _081332F8
+ ldr r0, [r2]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r1, [r0, 0x2]
+ ldr r0, [r2]
+ strb r1, [r0, 0x19]
+ ldr r0, [r2]
+ strb r1, [r0, 0x18]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1C]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1A]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1B]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1D]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1E]
+ ldr r0, [r2]
+ ldr r3, _081332FC
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r3, 0x1
+ adds r0, r3
+ strb r1, [r0]
+ movs r3, 0
+ adds r4, r2, 0
+ movs r2, 0
+_081332E0:
+ ldr r0, [r4]
+ lsls r1, r3, 1
+ adds r0, 0x20
+ adds r0, r1
+ strh r2, [r0]
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _081332E0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081332F8: .4byte gUnknown_030007B0
+_081332FC: .4byte 0x000002c3
+ thumb_func_end sub_81332A0
+
+ thumb_func_start sub_8133300
+sub_8133300: @ 8133300
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ movs r0, 0xFF
+ ands r1, r0
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ beq _08133324
+ cmp r0, 0x1
+ ble _0813334A
+ cmp r0, 0x2
+ beq _08133338
+ b _0813334A
+_08133324:
+ adds r0, r1, 0
+ movs r1, 0x3
+ bl Sin
+ ldrh r1, [r4, 0x32]
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ strh r0, [r4, 0x24]
+ b _0813334A
+_08133338:
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl Sin
+ ldrh r1, [r4, 0x32]
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ strh r0, [r4, 0x26]
+_0813334A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8133300
+
+ thumb_func_start sub_8133358
+sub_8133358: @ 8133358
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r6, _0813353C
+ adds r0, r6, 0
+ movs r1, 0x8
+ movs r2, 0x10
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _08133540
+ ldr r1, [r4]
+ strb r0, [r1, 0x3]
+ ldr r5, _08133544
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ mov r8, r1
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08133548
+ strh r1, [r0, 0x32]
+ adds r0, r6, 0
+ movs r1, 0x48
+ movs r2, 0x10
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x4]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldr r0, _0813354C
+ mov r9, r0
+ movs r1, 0xA0
+ movs r2, 0x4
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x5]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r6, 0x2
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x32]
+ mov r0, r9
+ movs r1, 0xA0
+ movs r2, 0x3C
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x6]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r2, 0x6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ movs r5, 0
+ ldr r6, _08133550
+_0813344E:
+ adds r2, r5, 0
+ cmp r5, 0
+ bge _08133456
+ adds r2, r5, 0x3
+_08133456:
+ asrs r2, 2
+ lsls r1, r2, 2
+ subs r1, r5, r1
+ lsls r1, 19
+ movs r0, 0xE0
+ lsls r0, 13
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, 19
+ movs r0, 0xD0
+ lsls r0, 14
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r6, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ adds r2, r5, 0x4
+ adds r1, 0x3
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x3
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08133544
+ adds r0, r1
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0813344E
+ movs r5, 0
+ ldr r7, _08133550
+ ldr r6, _08133540
+_081334A6:
+ adds r2, r5, 0
+ cmp r5, 0
+ bge _081334AE
+ adds r2, r5, 0x3
+_081334AE:
+ asrs r2, 2
+ lsls r1, r2, 2
+ subs r1, r5, r1
+ lsls r1, 19
+ movs r0, 0xE0
+ lsls r0, 13
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, 19
+ movs r0, 0xB8
+ lsls r0, 15
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r2, r5, 0
+ adds r2, 0xC
+ adds r1, 0x3
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x3
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08133544
+ adds r0, r4
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _081334A6
+ movs r5, 0
+ ldr r3, _08133540
+ movs r2, 0x4
+_08133500:
+ ldr r0, [r3]
+ adds r0, 0x3
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08133500
+ ldr r1, _08133548
+ ldr r3, _08133554
+ movs r0, 0x12
+ str r0, [sp]
+ movs r0, 0x10
+ movs r2, 0xC
+ bl sub_814AC58
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813353C: .4byte gSpriteTemplate_8402D90
+_08133540: .4byte gUnknown_030007B0
+_08133544: .4byte gSprites
+_08133548: .4byte 0x0000ffff
+_0813354C: .4byte gSpriteTemplate_8402DC0
+_08133550: .4byte gSpriteTemplate_8402E08
+_08133554: .4byte 0x00002d9f
+ thumb_func_end sub_8133358
+
+ thumb_func_start sub_8133558
+sub_8133558: @ 8133558
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r5, _081335F4
+ ldr r1, [r5]
+ ldr r2, _081335F8
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _081335FC
+ adds r0, r2
+ adds r1, 0x20
+ bl sub_80403CC
+ ldr r1, [r5]
+ strb r0, [r1, 0x1A]
+ movs r4, 0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1A]
+ cmp r4, r0
+ bge _081335AA
+ adds r6, r5, 0
+ movs r5, 0x52
+_08133586:
+ lsls r2, r4, 1
+ ldr r1, [r6]
+ adds r0, r1, r5
+ adds r1, 0x20
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08133600
+ adds r1, r2
+ bl StringCopy
+ adds r5, 0x19
+ adds r4, 0x1
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1A]
+ cmp r4, r0
+ blt _08133586
+_081335AA:
+ ldr r4, _081335F4
+ ldr r0, [r4]
+ ldr r1, _081335F8
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081335FC
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ ldr r0, _08133604
+ mov r1, sp
+ bl StringCopy10
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x1A]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r2
+ adds r1, 0x52
+ adds r0, r1
+ ldr r1, _08133608
+ bl StringCopy
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1A]
+ adds r0, 0x1
+ strb r0, [r1, 0x1A]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081335F4: .4byte gUnknown_030007B0
+_081335F8: .4byte 0x000002c5
+_081335FC: .4byte gPlayerParty
+_08133600: .4byte gMoveNames
+_08133604: .4byte gStringVar1
+_08133608: .4byte gUnknownText_Exit
+ thumb_func_end sub_8133558
+
+ thumb_func_start sub_813360C
+sub_813360C: @ 813360C
+ lsls r0, 24
+ ldr r3, _08133628
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x18]
+ strb r1, [r2, 0x1C]
+ ldr r1, [r3]
+ lsrs r0, 24
+ ldrb r2, [r1, 0x18]
+ adds r0, r2
+ strb r0, [r1, 0x18]
+ ldr r1, [r3]
+ movs r0, 0x1
+ strb r0, [r1, 0x1D]
+ bx lr
+ .align 2, 0
+_08133628: .4byte gUnknown_030007B0
+ thumb_func_end sub_813360C
+
+ thumb_func_start sub_813362C
+sub_813362C: @ 813362C
+ push {r4,r5,lr}
+ ldr r2, _08133670
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08133688
+ ldr r4, _08133674
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1B]
+ cmp r0, 0
+ bne _08133646
+ b _08133796
+_08133646:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1B]
+ subs r0, 0x1
+ strb r0, [r1, 0x1B]
+ ldr r0, [r4]
+ ldr r1, _08133678
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0
+ beq _0813367C
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_813360C
+ b _08133796
+ .align 2, 0
+_08133670: .4byte gMain
+_08133674: .4byte gUnknown_030007B0
+_08133678: .4byte 0x000002c3
+_0813367C:
+ ldrb r0, [r1, 0x19]
+ cmp r0, 0
+ bne _08133684
+ b _08133796
+_08133684:
+ subs r0, 0x1
+ b _081336DC
+_08133688:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081336E8
+ ldr r4, _081336C8
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1B]
+ ldrb r0, [r0, 0x1A]
+ subs r0, 0x1
+ cmp r1, r0
+ blt _081336A0
+ b _08133796
+_081336A0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1B]
+ adds r0, 0x1
+ strb r0, [r1, 0x1B]
+ ldr r0, [r4]
+ ldr r3, _081336CC
+ adds r0, r3
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0x2
+ beq _081336D0
+ movs r0, 0x1
+ bl sub_813360C
+ b _08133796
+ .align 2, 0
+_081336C8: .4byte gUnknown_030007B0
+_081336CC: .4byte 0x000002c3
+_081336D0:
+ ldrb r2, [r1, 0x19]
+ ldrb r0, [r1, 0x1A]
+ subs r0, 0x3
+ cmp r2, r0
+ beq _08133796
+ adds r0, r2, 0x1
+_081336DC:
+ strb r0, [r1, 0x19]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1E]
+ adds r0, 0x1
+ strb r0, [r1, 0x1E]
+ b _08133796
+_081336E8:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813376C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _08133738
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1B]
+ ldrb r0, [r2, 0x1A]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08133748
+ movs r0, 0x8
+ strb r0, [r2]
+ ldr r0, _0813373C
+ ldr r1, [r5]
+ ldrb r3, [r1, 0x1B]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 3
+ adds r2, r3
+ adds r2, 0x52
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08133740
+ ldr r1, _08133744
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ b _08133796
+ .align 2, 0
+_08133738: .4byte gUnknown_030007B0
+_0813373C: .4byte gStringVar2
+_08133740: .4byte gStringVar4
+_08133744: .4byte gOtherText_TeachSpecificMove
+_08133748:
+ ldr r4, _08133764
+ ldr r1, _08133768
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r1, [r5]
+ movs r0, 0xC
+ strb r0, [r1]
+ b _08133796
+ .align 2, 0
+_08133764: .4byte gStringVar4
+_08133768: .4byte gOtherText_GiveUpTeachingMove
+_0813376C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08133796
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _081337D4
+ ldr r1, [r0]
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r4, _081337D8
+ ldr r1, _081337DC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+_08133796:
+ ldr r0, _081337D4
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x1A]
+ cmp r0, 0x3
+ bls _081337F8
+ ldr r3, _081337E0
+ adds r5, r3, 0
+ adds r5, 0xC6
+ ldrb r0, [r5]
+ movs r1, 0x5
+ negs r1, r1
+ adds r2, r1, 0
+ ands r2, r0
+ strb r2, [r5]
+ movs r0, 0x85
+ lsls r0, 1
+ adds r0, r3
+ mov r12, r0
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ ands r3, r0
+ mov r1, r12
+ strb r3, [r1]
+ ldrb r0, [r4, 0x19]
+ cmp r0, 0
+ bne _081337E4
+ movs r1, 0x4
+ adds r0, r2, 0
+ orrs r0, r1
+ strb r0, [r5]
+ b _081337F8
+ .align 2, 0
+_081337D4: .4byte gUnknown_030007B0
+_081337D8: .4byte gStringVar4
+_081337DC: .4byte gOtherText_GiveUpTeachingMove
+_081337E0: .4byte gSprites
+_081337E4:
+ ldrb r1, [r4, 0x19]
+ ldrb r0, [r4, 0x1A]
+ subs r0, 0x3
+ cmp r1, r0
+ bne _081337F8
+ movs r1, 0x4
+ adds r0, r3, 0
+ orrs r0, r1
+ mov r3, r12
+ strb r0, [r3]
+_081337F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813362C
+
+ thumb_func_start sub_8133800
+sub_8133800: @ 8133800
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _08133834
+ ldr r0, [r1]
+ ldrb r6, [r0, 0x19]
+ ldr r3, _08133838
+ mov r10, r1
+ ldr r0, _0813383C
+ mov r9, r0
+ movs r1, 0x2
+ mov r8, r1
+_0813381C:
+ mov r4, r10
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x1A]
+ cmp r6, r0
+ bcc _08133844
+ adds r0, r3, 0
+ ldr r1, _08133840
+ movs r2, 0x90
+ movs r3, 0
+ bl sub_8072C74
+ b _081338FA
+ .align 2, 0
+_08133834: .4byte gUnknown_030007B0
+_08133838: .4byte gTileBuffer
+_0813383C: .4byte gBattleMoves
+_08133840: .4byte gEmptyString_81E72B0
+_08133844:
+ ldrb r0, [r2, 0x1A]
+ subs r0, 0x1
+ cmp r6, r0
+ bne _08133860
+ adds r0, r3, 0
+ ldr r1, _0813385C
+ movs r2, 0x90
+ movs r3, 0
+ bl sub_8072C74
+ b _081338FA
+ .align 2, 0
+_0813385C: .4byte gUnknownText_Exit
+_08133860:
+ lsls r1, r6, 1
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r1
+ ldrh r5, [r0]
+ movs r4, 0xB1
+ lsls r4, 2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _081338A4
+ ldr r1, _0813389C
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 27
+ ldr r1, _081338A0
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r3, 0
+ movs r2, 0x27
+ movs r3, 0
+ bl sub_8072C74
+ adds r3, r0, 0
+ lsls r4, r5, 1
+ b _081338C2
+ .align 2, 0
+_0813389C: .4byte gContestMoves
+_081338A0: .4byte gUnknown_083CAF70
+_081338A4:
+ lsls r4, r5, 1
+ adds r0, r4, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x2]
+ lsls r1, r0, 3
+ subs r1, r0
+ ldr r0, _08133938
+ adds r1, r0
+ adds r0, r3, 0
+ movs r2, 0x27
+ movs r3, 0
+ bl sub_8072C74
+ adds r3, r0, 0
+_081338C2:
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r6
+ adds r0, 0x52
+ mov r2, r10
+ ldr r1, [r2]
+ adds r1, r0
+ adds r0, r3, 0
+ movs r2, 0x72
+ movs r3, 0
+ bl sub_8072C74
+ adds r3, r0, 0
+ movs r0, 0xCA
+ strb r0, [r3]
+ strb r0, [r3, 0x1]
+ movs r0, 0xBA
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ adds r0, r4, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x4]
+ adds r0, r3, 0
+ movs r2, 0x90
+ movs r3, 0
+ bl sub_8072C14
+_081338FA:
+ adds r3, r0, 0
+ movs r0, 0xFE
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0x1
+ negs r4, r4
+ add r8, r4
+ mov r0, r8
+ cmp r0, 0
+ blt _08133916
+ b _0813381C
+_08133916:
+ movs r0, 0xFF
+ strb r0, [r3]
+ ldr r0, _0813393C
+ movs r1, 0xB
+ movs r2, 0x1
+ bl MenuPrint
+ movs r0, 0
+ bl sub_813360C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133938: .4byte gTypeNames
+_0813393C: .4byte gTileBuffer
+ thumb_func_end sub_8133800
+
+ thumb_func_start sub_8133940
+sub_8133940: @ 8133940
+ push {r4-r7,lr}
+ sub sp, 0x34
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _08133968
+ mov r0, sp
+ bl StringCopy
+ ldrb r0, [r4, 0x2]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bls _0813395C
+ b _08133AE2
+_0813395C:
+ lsls r0, 2
+ ldr r1, _0813396C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08133968: .4byte gExpandedPlaceholder_Empty
+_0813396C: .4byte _08133970
+ .align 2, 0
+_08133970:
+ .4byte _08133AE2
+ .4byte _0813398C
+ .4byte _08133AE2
+ .4byte _081339A4
+ .4byte _08133AE2
+ .4byte _081339E4
+ .4byte _08133A64
+_0813398C:
+ ldr r0, _081339A0
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ bls _081339B4
+ ldrb r1, [r1, 0x1]
+ b _081339CE
+ .align 2, 0
+_081339A0: .4byte gBattleMoves
+_081339A4:
+ ldr r0, _081339C4
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _081339CC
+_081339B4:
+ ldr r1, _081339C8
+ mov r0, sp
+ movs r2, 0x20
+ movs r3, 0x2
+ bl sub_8072C74
+ b _081339D8
+ .align 2, 0
+_081339C4: .4byte gBattleMoves
+_081339C8: .4byte gOtherText_ThreeDashes2
+_081339CC:
+ ldrb r1, [r1, 0x3]
+_081339CE:
+ mov r0, sp
+ movs r2, 0x20
+ movs r3, 0x2
+ bl sub_8072C14
+_081339D8:
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ mov r0, sp
+ bl MenuPrint
+ b _08133AE2
+_081339E4:
+ ldrb r2, [r4]
+ ldrb r1, [r4, 0x1]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ ldr r2, _08133A34
+ ldr r1, _08133A38
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xFF
+ bne _08133A14
+ movs r5, 0
+_08133A14:
+ movs r4, 0
+ ldr r7, _08133A3C
+ ldr r6, _08133A40
+_08133A1A:
+ cmp r4, r5
+ bcs _08133A44
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _08133A58
+ .align 2, 0
+_08133A34: .4byte gContestEffects
+_08133A38: .4byte gContestMoves
+_08133A3C: .4byte gUnknown_030007B0
+_08133A40: .4byte gSprites
+_08133A44:
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ bl StartSpriteAnim
+_08133A58:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08133A1A
+ b _08133AE2
+_08133A64:
+ ldrb r2, [r4]
+ ldrb r1, [r4, 0x1]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ ldr r2, _08133AB4
+ ldr r1, _08133AB8
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xFF
+ bne _08133A94
+ movs r5, 0
+_08133A94:
+ movs r4, 0
+ ldr r7, _08133ABC
+ ldr r6, _08133AC0
+_08133A9A:
+ cmp r4, r5
+ bcs _08133AC4
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _08133AD8
+ .align 2, 0
+_08133AB4: .4byte gContestEffects
+_08133AB8: .4byte gContestMoves
+_08133ABC: .4byte gUnknown_030007B0
+_08133AC0: .4byte gSprites
+_08133AC4:
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x2
+ bl StartSpriteAnim
+_08133AD8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08133A9A
+_08133AE2:
+ add sp, 0x34
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8133940
+
+ thumb_func_start sub_8133AEC
+sub_8133AEC: @ 8133AEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r6, _08133B88
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x1B]
+ ldrb r0, [r2, 0x1A]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08133B08
+ b _08133C04
+_08133B08:
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r1
+ ldrh r5, [r0]
+ cmp r3, 0
+ beq _08133BA0
+ movs r4, 0
+ lsls r0, r5, 3
+ mov r8, r0
+ ldr r7, _08133B8C
+ adds r3, r6, 0
+ movs r6, 0x5
+ negs r6, r6
+_08133B24:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0, 0x7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _08133B24
+ movs r4, 0
+_08133B48:
+ ldr r0, _08133B90
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, _08133B94
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_8133940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _08133B48
+ ldr r1, _08133B98
+ ldr r0, _08133B9C
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x58
+ movs r2, 0x48
+ movs r3, 0x90
+ bl sub_8072AB0
+ b _08133C92
+ .align 2, 0
+_08133B88: .4byte gUnknown_030007B0
+_08133B8C: .4byte gSprites
+_08133B90: .4byte gUnknown_08402E3D
+_08133B94: .4byte gUnknown_08402E24
+_08133B98: .4byte gUnknown_083CADD4
+_08133B9C: .4byte gContestMoves
+_08133BA0:
+ movs r4, 0
+ subs r6, r5, 0x1
+_08133BA4:
+ ldr r0, _08133BF8
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, _08133BFC
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_8133940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08133BA4
+ ldr r1, _08133C00
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x58
+ movs r2, 0x48
+ movs r3, 0x90
+ bl sub_8072A18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08133C92
+ lsls r1, r0, 25
+ movs r0, 0x90
+ lsls r0, 20
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xB
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuFillWindowRectWithBlankTile
+ b _08133C92
+ .align 2, 0
+_08133BF8: .4byte gUnknown_08402E39
+_08133BFC: .4byte gUnknown_08402E24
+_08133C00: .4byte gMoveDescriptions
+_08133C04:
+ cmp r3, 0
+ beq _08133C5C
+ ldr r4, _08133C54
+ ldrb r2, [r4, 0xF]
+ ldrb r1, [r4, 0x10]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ ldrb r2, [r4, 0x12]
+ ldrb r1, [r4, 0x13]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ movs r4, 0
+ ldr r5, _08133C58
+ adds r3, r6, 0
+ movs r2, 0x4
+_08133C32:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _08133C32
+ b _08133C86
+ .align 2, 0
+_08133C54: .4byte gUnknown_08402E24
+_08133C58: .4byte gSprites
+_08133C5C:
+ ldr r4, _08133CA0
+ ldrb r0, [r4, 0x3]
+ ldrb r1, [r4, 0x4]
+ adds r2, r0, 0x3
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ ldrb r0, [r4, 0x9]
+ ldrb r1, [r4, 0xA]
+ adds r2, r0, 0x3
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+_08133C86:
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+_08133C92:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133CA0: .4byte gUnknown_08402E24
+ thumb_func_end sub_8133AEC
+
+ thumb_func_start sub_8133CA4
+sub_8133CA4: @ 8133CA4
+ push {lr}
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1B
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ ldr r0, _08133CC8
+ ldr r0, [r0]
+ movs r1, 0xB1
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8133AEC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133CC8: .4byte gUnknown_030007B0
+ thumb_func_end sub_8133CA4
+
+ thumb_func_start sub_8133CCC
+sub_8133CCC: @ 8133CCC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _08133D14
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r4, _08133D18
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r1, r8
+ ldrb r0, [r1]
+ muls r0, r6
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bcs _08133D1C
+ movs r0, 0
+ b _08133D1E
+ .align 2, 0
+_08133D14: .4byte gUnknown_03005CE0
+_08133D18: .4byte gPlayerParty
+_08133D1C:
+ movs r0, 0x1
+_08133D1E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8133CCC
+
+ thumb_func_start unref_sub_8133D28
+unref_sub_8133D28: @ 8133D28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08133D44
+ ldr r2, _08133D48
+ str r2, [r1, 0xC]
+ ldr r2, _08133D4C
+ adds r1, r2
+ movs r2, 0x3
+ strh r2, [r1]
+ bl sub_808A004
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133D44: .4byte 0x02001000
+_08133D48: .4byte sub_8133D50
+_08133D4C: .4byte 0x0001a272
+ thumb_func_end unref_sub_8133D28
+
+ thumb_func_start sub_8133D50
+sub_8133D50: @ 8133D50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08133DA0
+ mov r9, r0
+ ldr r1, _08133DA4
+ mov r10, r1
+ ldrb r1, [r1, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r2, r10
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x2E]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ cmp r0, 0x5
+ bhi _08133D96
+ cmp r6, 0x5
+ bls _08133DA8
+_08133D96:
+ adds r0, r7, 0
+ bl sub_806CD44
+ b _08133E4E
+ .align 2, 0
+_08133DA0: .4byte gSprites
+_08133DA4: .4byte 0x02001000
+_08133DA8:
+ movs r5, 0xD8
+ lsls r5, 9
+ add r5, r10
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ movs r1, 0x64
+ muls r0, r1
+ ldr r2, _08133DE4
+ adds r0, r2
+ str r0, [r5]
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08133DDA
+ cmp r8, r6
+ beq _08133DDA
+ ldr r0, [r5]
+ movs r1, 0x3A
+ bl GetMonData
+ cmp r0, r4
+ bne _08133DE8
+_08133DDA:
+ adds r0, r7, 0
+ bl sub_8133EB8
+ b _08133E4E
+ .align 2, 0
+_08133DE4: .4byte gPlayerParty
+_08133DE8:
+ movs r0, 0x1
+ bl PlaySE
+ mov r0, r10
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ movs r1, 0
+ strb r0, [r5, 0x5]
+ ldrb r0, [r5, 0x5]
+ movs r2, 0x64
+ muls r0, r2
+ ldr r2, _08133E5C
+ adds r0, r2
+ str r0, [r5]
+ strh r1, [r5, 0x6]
+ ldr r1, _08133E60
+ str r1, [r5, 0xC]
+ ldr r1, _08133E64
+ str r1, [r5, 0x10]
+ movs r1, 0x3A
+ bl GetMonData
+ ldr r1, _08133E68
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r1
+ strh r0, [r4, 0x1C]
+ ldr r0, [r5]
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r4, 0x1E]
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r4, 0x20]
+ bl sub_806D5A4
+ ldr r0, _08133E6C
+ str r0, [r4]
+ ldrh r1, [r4, 0x1E]
+ ldr r0, _08133E70
+ add r0, r10
+ strh r1, [r0]
+_08133E4E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133E5C: .4byte gPlayerParty
+_08133E60: .4byte 0xffff8000
+_08133E64: .4byte sub_8133EF8
+_08133E68: .4byte gTasks
+_08133E6C: .4byte sub_806FA18
+_08133E70: .4byte 0x0001a282
+ thumb_func_end sub_8133D50
+
+ thumb_func_start sub_8133E74
+sub_8133E74: @ 8133E74
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08133EAC
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08133EA4
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _08133EB0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08133EB4
+ str r0, [r1]
+_08133EA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133EAC: .4byte gUnknown_0202E8F6
+_08133EB0: .4byte gTasks
+_08133EB4: .4byte sub_806CB74
+ thumb_func_end sub_8133E74
+
+ thumb_func_start sub_8133EB8
+sub_8133EB8: @ 8133EB8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08133EE8
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_806D5A4
+ ldr r0, _08133EEC
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08133EF0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08133EF4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133EE8: .4byte gUnknown_0202E8F4
+_08133EEC: .4byte gOtherText_CantUseOnPoke
+_08133EF0: .4byte gTasks
+_08133EF4: .4byte sub_8133E74
+ thumb_func_end sub_8133EB8
+
+ thumb_func_start sub_8133EF8
+sub_8133EF8: @ 8133EF8
+ push {r4,lr}
+ bl sub_806CCE4
+ ldr r4, _08133F3C
+ ldr r0, _08133F40
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _08133F44
+ adds r4, r0
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08133F48
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldrb r0, [r4]
+ bl SwitchTaskToFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133F3C: .4byte 0x0201b000
+_08133F40: .4byte 0x00000261
+_08133F44: .4byte 0xfffe6000
+_08133F48: .4byte gSprites
+ thumb_func_end sub_8133EF8
+
+ thumb_func_start sub_8133F4C
+sub_8133F4C: @ 8133F4C
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r3, 0
+ ldr r1, _08133F7C
+ lsrs r2, r0, 21
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcs _08133F76
+ adds r5, r1, 0
+ movs r4, 0
+_08133F62:
+ adds r0, r2, r5
+ ldr r1, [r0]
+ adds r1, r3
+ strb r4, [r1]
+ adds r1, r3, 0x1
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _08133F62
+_08133F76:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133F7C: .4byte gUnknown_08402E40
+ thumb_func_end sub_8133F4C
+
+ thumb_func_start sub_8133F80
+sub_8133F80: @ 8133F80
+ push {r4,lr}
+ movs r4, 0
+_08133F84:
+ adds r0, r4, 0
+ bl sub_8133F4C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08133F84
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8133F80
+
+ thumb_func_start sub_8133F9C
+sub_8133F9C: @ 8133F9C
+ push {r4,lr}
+ lsls r0, 24
+ movs r2, 0
+ ldr r1, _08133FC8
+ lsrs r0, 21
+ adds r0, r1
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ cmp r2, r1
+ bge _08133FD8
+ adds r4, r0, 0
+ adds r3, r1, 0
+_08133FB4:
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ ldr r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08133FCC
+ adds r0, r1, 0
+ b _08133FDC
+ .align 2, 0
+_08133FC8: .4byte gUnknown_08402E40
+_08133FCC:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, r3
+ blt _08133FB4
+_08133FD8:
+ movs r0, 0x1
+ negs r0, r0
+_08133FDC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8133F9C
+
+ thumb_func_start sub_8133FE4
+sub_8133FE4: @ 8133FE4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08134010
+ lsls r0, r3, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ movs r2, 0
+ ldr r1, _08134014
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+ cmp r2, r1
+ bcs _08134022
+ ldr r4, [r0]
+_08134002:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _08134018
+ movs r0, 0x1
+ b _08134024
+ .align 2, 0
+_08134010: .4byte gDecorations
+_08134014: .4byte gUnknown_08402E40
+_08134018:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _08134002
+_08134022:
+ movs r0, 0
+_08134024:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8133FE4
+
+ thumb_func_start IsThereStorageSpaceForDecoration
+IsThereStorageSpaceForDecoration: @ 813402C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _0813406C
+ ldr r1, _08134064
+ lsls r0, r4, 5
+ adds r0, r1
+ ldrb r5, [r0, 0x13]
+ adds r0, r5, 0
+ bl sub_8133F9C
+ lsls r0, 24
+ asrs r2, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _0813406C
+ ldr r0, _08134068
+ lsls r1, r5, 3
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, r2
+ strb r4, [r0]
+ movs r0, 0x1
+ b _0813406E
+ .align 2, 0
+_08134064: .4byte gDecorations
+_08134068: .4byte gUnknown_08402E40
+_0813406C:
+ movs r0, 0
+_0813406E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end IsThereStorageSpaceForDecoration
+
+ thumb_func_start sub_8134074
+sub_8134074: @ 8134074
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081340A0
+ ldr r1, _0813409C
+ lsls r0, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ bl sub_8133F9C
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _081340A0
+ movs r0, 0x1
+ b _081340A2
+ .align 2, 0
+_0813409C: .4byte gDecorations
+_081340A0:
+ movs r0, 0
+_081340A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8134074
+
+ thumb_func_start sub_81340A8
+sub_81340A8: @ 81340A8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ cmp r5, 0
+ bne _081340C4
+ b _081340F2
+_081340B6:
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl sub_8134104
+ movs r0, 0x1
+ b _081340F4
+_081340C4:
+ ldr r2, _081340FC
+ ldr r1, _08134100
+ lsls r0, r5, 5
+ adds r0, r1
+ ldrb r4, [r0, 0x13]
+ lsls r0, r4, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ cmp r3, r1
+ bcs _081340F2
+ adds r6, r4, 0
+ adds r4, r0, 0
+ adds r2, r1, 0
+_081340DE:
+ ldr r0, [r4]
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, r5
+ beq _081340B6
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r2
+ bcc _081340DE
+_081340F2:
+ movs r0, 0
+_081340F4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081340FC: .4byte gUnknown_08402E40
+_08134100: .4byte gDecorations
+ thumb_func_end sub_81340A8
+
+ thumb_func_start sub_8134104
+sub_8134104: @ 8134104
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ movs r6, 0
+ ldr r2, _08134190
+ lsrs r1, r0, 21
+ adds r0, r1, r2
+ ldrb r0, [r0, 0x4]
+ cmp r6, r0
+ bcs _08134180
+ adds r7, r1, 0
+ mov r8, r0
+ str r0, [sp]
+_08134126:
+ adds r1, r6, 0x1
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ adds r2, r7, 0
+ mov r12, r1
+ cmp r3, r8
+ bcs _08134174
+ ldr r1, _08134190
+ mov r10, r1
+ adds r0, r1, 0
+ mov r9, r0
+_0813413C:
+ mov r1, r10
+ adds r5, r2, r1
+ ldr r1, [r5]
+ adds r0, r1, r3
+ ldrb r4, [r0]
+ adds r2, r4, 0
+ cmp r2, 0
+ beq _08134162
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08134158
+ cmp r1, r2
+ bls _08134162
+_08134158:
+ ldrb r1, [r0]
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, r3
+ strb r1, [r0]
+_08134162:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r7, 0
+ mov r1, r9
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _0813413C
+_08134174:
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp]
+ cmp r6, r0
+ bcc _08134126
+_08134180:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134190: .4byte gUnknown_08402E40
+ thumb_func_end sub_8134104
+
+ thumb_func_start sub_8134194
+sub_8134194: @ 8134194
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r4, 0
+ movs r3, 0
+ ldr r2, _081341D0
+ lsrs r1, r0, 21
+ adds r0, r1, r2
+ ldrb r0, [r0, 0x4]
+ cmp r4, r0
+ bcs _081341C8
+ adds r5, r2, 0
+_081341AA:
+ adds r2, r1, r5
+ ldr r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081341BC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081341BC:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r2, [r2, 0x4]
+ cmp r3, r2
+ bcc _081341AA
+_081341C8:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081341D0: .4byte gUnknown_08402E40
+ thumb_func_end sub_8134194
+
+ thumb_func_start sub_81341D4
+sub_81341D4: @ 81341D4
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_081341DA:
+ adds r0, r4, 0
+ bl sub_8134194
+ adds r0, r5, r0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _081341DA
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81341D4
+
+ thumb_func_start sub_81341F8
+sub_81341F8: @ 81341F8
+ push {lr}
+ ldr r0, _08134208
+ movs r1, 0
+ movs r2, 0x1C
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134208: .4byte gSaveBlock1 + 0x3144
+ thumb_func_end sub_81341F8
+
+ thumb_func_start sub_813420C
+sub_813420C: @ 813420C
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r6, _08134238
+ ldr r4, _0813423C
+ movs r3, 0
+ adds r5, r4, 0x1
+_08134218:
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r1, r5
+ strb r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _08134218
+ movs r0, 0
+ strb r0, [r6]
+ strb r0, [r6, 0x1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134238: .4byte gUnknown_02039302
+_0813423C: .4byte gUnknown_020392FC
+ thumb_func_end sub_813420C
+
+ thumb_func_start sub_8134240
+sub_8134240: @ 8134240
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x10
+ ldr r5, _081342FC
+ .ifdef SAPPHIRE
+ ldr r6, _sub_8134240_Latias
+ .else
+ movs r6, 0xCC
+ lsls r6, 1
+ .endif
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x28
+ movs r3, 0x20
+ bl CreateMon
+ ldr r4, _08134300
+ movs r0, 0
+ mov r8, r0
+ strh r6, [r4, 0x8]
+ movs r0, 0x28
+ strb r0, [r4, 0xC]
+ mov r0, r8
+ strb r0, [r4, 0xD]
+ movs r0, 0x1
+ strb r0, [r4, 0x13]
+ adds r0, r5, 0
+ movs r1, 0x42
+ bl GetMonData
+ str r0, [r4]
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r4, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r4, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x16
+ bl GetMonData
+ strb r0, [r4, 0xE]
+ adds r0, r5, 0
+ movs r1, 0x17
+ bl GetMonData
+ strb r0, [r4, 0xF]
+ adds r0, r5, 0
+ movs r1, 0x18
+ bl GetMonData
+ strb r0, [r4, 0x10]
+ adds r0, r5, 0
+ movs r1, 0x21
+ bl GetMonData
+ strb r0, [r4, 0x11]
+ adds r0, r5, 0
+ movs r1, 0x2F
+ bl GetMonData
+ strb r0, [r4, 0x12]
+ ldr r4, _08134304
+ mov r0, r8
+ strb r0, [r4]
+ bl Random
+ ldr r5, _08134308
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, r5
+ ldrb r0, [r1]
+ strb r0, [r4, 0x1]
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081342FC: .4byte gEnemyParty
+ .ifdef SAPPHIRE
+_sub_8134240_Latias: .4byte 407
+ .endif
+_08134300: .4byte gSaveBlock1 + 0x3144
+_08134304: .4byte gUnknown_02039302
+_08134308: .4byte gUnknown_08402E80
+ thumb_func_end sub_8134240
+
+ thumb_func_start sub_813430C
+sub_813430C: @ 813430C
+ push {lr}
+ bl sub_81341F8
+ bl sub_813420C
+ bl sub_8134240
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813430C
+
+ thumb_func_start mapnumbers_history_shift_sav1_0_2_4_out
+mapnumbers_history_shift_sav1_0_2_4_out: @ 8134320
+ ldr r0, _08134340
+ ldrb r1, [r0, 0x2]
+ strb r1, [r0, 0x4]
+ ldrb r1, [r0, 0x3]
+ strb r1, [r0, 0x5]
+ ldrb r1, [r0]
+ strb r1, [r0, 0x2]
+ ldrb r1, [r0, 0x1]
+ strb r1, [r0, 0x3]
+ ldr r2, _08134344
+ ldrb r1, [r2, 0x4]
+ strb r1, [r0]
+ ldrb r1, [r2, 0x5]
+ strb r1, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_08134340: .4byte gUnknown_020392FC
+_08134344: .4byte gSaveBlock1
+ thumb_func_end mapnumbers_history_shift_sav1_0_2_4_out
+
+ thumb_func_start sub_8134348
+sub_8134348: @ 8134348
+ push {r4,r5,lr}
+ movs r1, 0
+ ldr r0, _08134388
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _08134380
+ ldr r0, _0813438C
+ strb r1, [r0]
+ ldr r5, _08134390
+ adds r4, r0, 0
+_0813435C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, r5
+ ldrb r1, [r1]
+ ldrb r0, [r4, 0x1]
+ cmp r0, r1
+ beq _0813435C
+ strb r1, [r4, 0x1]
+_08134380:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134388: .4byte gSaveBlock1 + 0x3144
+_0813438C: .4byte gUnknown_02039302
+_08134390: .4byte gUnknown_08402E80
+ thumb_func_end sub_8134348
+
+ thumb_func_start sub_8134394
+sub_8134394: @ 8134394
+ push {r4-r7,lr}
+ movs r4, 0
+ bl Random
+ lsls r0, 16
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r1, r0
+ cmp r1, 0
+ bne _081343AE
+ bl sub_8134348
+ b _08134416
+_081343AE:
+ ldr r0, _081343FC
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _08134416
+ ldr r7, _08134400
+ ldr r3, _08134404
+_081343BA:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r2, r0, 1
+ adds r1, r2, r3
+ ldrb r0, [r7, 0x1]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0813440C
+ ldr r6, _08134404
+ adds r5, r2, 0x1
+ ldr r4, _08134408
+_081343D0:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, r5
+ adds r0, r6
+ ldrb r1, [r0]
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ bne _081343F4
+ ldrb r0, [r4, 0x5]
+ cmp r0, r1
+ beq _081343D0
+_081343F4:
+ cmp r1, 0xFF
+ beq _081343D0
+ strb r1, [r7, 0x1]
+ b _08134416
+ .align 2, 0
+_081343FC: .4byte gSaveBlock1 + 0x3144
+_08134400: .4byte gUnknown_02039302
+_08134404: .4byte gUnknown_08402E80
+_08134408: .4byte gUnknown_020392FC
+_0813440C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _081343BA
+_08134416:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8134394
+
+ thumb_func_start sub_813441C
+sub_813441C: @ 813441C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08134440
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _08134448
+ ldr r0, _08134444
+ ldrb r3, [r0]
+ cmp r2, r3
+ bne _08134448
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bne _08134448
+ movs r0, 0x1
+ b _0813444A
+ .align 2, 0
+_08134440: .4byte gSaveBlock1 + 0x3144
+_08134444: .4byte gUnknown_02039302
+_08134448:
+ movs r0, 0
+_0813444A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813441C
+
+ thumb_func_start sub_8134450
+sub_8134450: @ 8134450
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r4, _081344C4
+ ldr r5, _081344C8
+ ldrh r1, [r5, 0x8]
+ ldrb r2, [r5, 0xC]
+ ldr r3, [r5]
+ ldr r0, [r5, 0x4]
+ str r0, [sp]
+ adds r0, r4, 0
+ bl CreateMonWithIVsPersonality
+ adds r2, r5, 0
+ adds r2, 0xD
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0xA
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0xE
+ adds r0, r4, 0
+ movs r1, 0x16
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0xF
+ adds r0, r4, 0
+ movs r1, 0x17
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0x10
+ adds r0, r4, 0
+ movs r1, 0x18
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0x11
+ adds r0, r4, 0
+ movs r1, 0x21
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0x12
+ adds r0, r4, 0
+ movs r1, 0x2F
+ bl SetMonData
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081344C4: .4byte gEnemyParty
+_081344C8: .4byte gSaveBlock1 + 0x3144
+ thumb_func_end sub_8134450
+
+ thumb_func_start sub_81344CC
+sub_81344CC: @ 81344CC
+ push {lr}
+ ldr r1, _081344F8
+ ldrb r0, [r1, 0x4]
+ ldrb r1, [r1, 0x5]
+ bl sub_813441C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081344FC
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ bne _081344FC
+ bl sub_8134450
+ movs r0, 0x1
+ b _081344FE
+ .align 2, 0
+_081344F8: .4byte gSaveBlock1
+_081344FC:
+ movs r0, 0
+_081344FE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81344CC
+
+ thumb_func_start sub_8134504
+sub_8134504: @ 8134504
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ ldr r4, _08134528
+ strh r0, [r4, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x37
+ bl GetMonData
+ strb r0, [r4, 0xD]
+ bl sub_8134348
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134528: .4byte gSaveBlock1 + 0x3144
+ thumb_func_end sub_8134504
+
+ thumb_func_start sub_813452C
+sub_813452C: @ 813452C
+ ldr r1, _08134534
+ movs r0, 0
+ strb r0, [r1, 0x13]
+ bx lr
+ .align 2, 0
+_08134534: .4byte gSaveBlock1 + 0x3144
+ thumb_func_end sub_813452C
+
+ thumb_func_start sub_8134538
+sub_8134538: @ 8134538
+ ldr r3, _08134544
+ ldrb r2, [r3]
+ strb r2, [r0]
+ ldrb r0, [r3, 0x1]
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08134544: .4byte gUnknown_02039302
+ thumb_func_end sub_8134538
+
+ thumb_func_start sub_8134548
+sub_8134548: @ 8134548
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_0813454E:
+ ldr r0, _08134568
+ ldr r1, _0813456C
+ adds r0, r1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _08134590
+ lsls r0, 2
+ ldr r1, _08134570
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08134568: .4byte gSaveBlock2
+_0813456C: .4byte 0x00000556
+_08134570: .4byte _08134574
+ .align 2, 0
+_08134574:
+ .4byte _08134590
+ .4byte _081345A8
+ .4byte _081345C8
+ .4byte _081345D8
+ .4byte _081345B8
+ .4byte _081345C0
+ .4byte _081345D8
+_08134590:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_813461C
+ cmp r4, 0
+ bne _081345D8
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x5
+ bl VarSet
+ b _081345D8
+_081345A8:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_813461C
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x1
+ b _081345CE
+_081345B8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x2
+ b _081345CE
+_081345C0:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x3
+ b _081345CE
+_081345C8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x4
+_081345CE:
+ bl VarSet
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081345D8:
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _0813454E
+ ldr r1, _08134610
+ ldr r2, _08134614
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081345EE
+ cmp r0, 0x6
+ bne _08134606
+_081345EE:
+ ldr r2, _08134618
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081345FC
+ cmp r0, 0x6
+ bne _08134606
+_081345FC:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x5
+ bl VarSet
+_08134606:
+ bl sub_8135C44
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134610: .4byte gSaveBlock2
+_08134614: .4byte 0x00000556
+_08134618: .4byte 0x00000557
+ thumb_func_end sub_8134548
+
+ thumb_func_start sub_813461C
+sub_813461C: @ 813461C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08134644
+ ldr r2, _08134648
+ adds r1, r3, r2
+ adds r1, r0, r1
+ movs r2, 0
+ strb r2, [r1]
+ lsls r0, 1
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r1, r3, r2
+ adds r1, r0, r1
+ movs r2, 0x1
+ strh r2, [r1]
+ ldr r1, _0813464C
+ adds r3, r1
+ adds r0, r3
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_08134644: .4byte gSaveBlock2
+_08134648: .4byte 0x00000556
+_0813464C: .4byte 0x0000055c
+ thumb_func_end sub_813461C
+
+ thumb_func_start sub_8134650
+sub_8134650: @ 8134650
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ add r4, sp, 0x28
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_813601C
+ ldr r0, _08134684
+ ldrh r0, [r0]
+ adds r7, r4, 0
+ cmp r0, 0
+ bne _08134680
+ ldr r1, _08134688
+ ldr r2, _0813468C
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ beq _08134690
+_08134680:
+ movs r0, 0
+ b _081346E2
+ .align 2, 0
+_08134684: .4byte gScriptResult
+_08134688: .4byte gSaveBlock2
+_0813468C: .4byte 0x0000049a
+_08134690:
+ movs r6, 0x32
+ cmp r5, 0
+ beq _08134698
+ movs r6, 0x64
+_08134698:
+ movs r4, 0
+ mov r8, r1
+_0813469C:
+ movs r0, 0x2C
+ muls r0, r4
+ mov r3, r8
+ adds r1, r0, r3
+ movs r2, 0x9B
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ cmp r2, r6
+ bne _08134680
+ ldr r3, _081346F0
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ adds r3, 0x2
+ adds r1, r3
+ ldrh r1, [r1]
+ str r2, [sp]
+ add r2, sp, 0x10
+ str r2, [sp, 0x4]
+ add r2, sp, 0x1C
+ str r2, [sp, 0x8]
+ str r7, [sp, 0xC]
+ movs r2, 0x1
+ adds r3, r5, 0
+ bl sub_8135200
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _0813469C
+ movs r1, 0
+ ldrb r0, [r7]
+ cmp r0, 0x3
+ bne _081346E0
+ movs r1, 0x1
+_081346E0:
+ adds r0, r1, 0
+_081346E2:
+ add sp, 0x2C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081346F0: .4byte 0x000004cc
+ thumb_func_end sub_8134650
+
+ thumb_func_start sub_81346F4
+sub_81346F4: @ 81346F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r0, 0
+ mov r9, r0
+ ldr r4, _08134738
+ ldr r1, _0813473C
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r7, r0, 31
+ adds r0, r7, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r7, 0
+ mov r1, r8
+ bl sub_8134650
+ lsls r0, 24
+ adds r1, r4, 0
+ cmp r0, 0
+ beq _08134744
+ ldr r2, _08134740
+ adds r1, r2
+ movs r0, 0xC8
+ strb r0, [r1]
+ b _081347DE
+ .align 2, 0
+_08134738: .4byte gSaveBlock2
+_0813473C: .4byte 0x00000554
+_08134740: .4byte 0x00000564
+_08134744:
+ movs r5, 0
+ movs r3, 0xA4
+ mov r12, r3
+ mov r10, sp
+_0813474C:
+ mov r0, r12
+ muls r0, r5
+ movs r4, 0
+ movs r1, 0
+ movs r2, 0
+ adds r6, r5, 0x1
+ str r6, [sp, 0x14]
+ ldr r6, _081347B4
+ adds r3, r0, r6
+_0813475E:
+ ldm r3!, {r0}
+ orrs r4, r0
+ adds r1, r0
+ adds r2, 0x1
+ cmp r2, 0x27
+ bls _0813475E
+ mov r3, r12
+ muls r3, r5
+ ldr r0, _081347B8
+ adds r2, r3, r0
+ movs r6, 0xA7
+ lsls r6, 1
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ cmp r0, r8
+ bne _081347A4
+ subs r6, 0x2
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r7
+ bne _081347A4
+ cmp r4, 0
+ beq _081347A4
+ ldr r2, _081347BC
+ adds r0, r3, r2
+ ldr r0, [r0]
+ cmp r0, r1
+ bne _081347A4
+ mov r3, r10
+ adds r3, 0x4
+ mov r10, r3
+ subs r3, 0x4
+ stm r3!, {r5}
+ movs r6, 0x1
+ add r9, r6
+_081347A4:
+ ldr r5, [sp, 0x14]
+ cmp r5, 0x4
+ ble _0813474C
+ mov r0, r9
+ cmp r0, 0
+ bne _081347C0
+ movs r0, 0
+ b _081347E0
+ .align 2, 0
+_081347B4: .4byte gSaveBlock2 + 0x14C
+_081347B8: .4byte gSaveBlock2
+_081347BC: .4byte gSaveBlock2 + 0x1EC
+_081347C0:
+ bl Random
+ ldr r4, _081347F0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r9
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ adds r0, 0x64
+ ldr r1, _081347F4
+ adds r4, r1
+ strb r0, [r4]
+_081347DE:
+ movs r0, 0x1
+_081347E0:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081347F0: .4byte gSaveBlock2
+_081347F4: .4byte 0x00000564
+ thumb_func_end sub_81346F4
+
+ thumb_func_start sub_81347F8
+sub_81347F8: @ 81347F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r5, _08134838
+ ldr r1, _0813483C
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r6, r0, 31
+ bl sub_81346F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08134848
+ ldr r2, _08134840
+ adds r4, r5, r2
+ ldrb r0, [r4]
+ bl sub_81349FC
+ lsls r0, r6, 1
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r1, r5, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, r5, r0
+ ldr r1, _08134844
+ adds r0, r1
+ ldrb r1, [r4]
+ b _081349DC
+ .align 2, 0
+_08134838: .4byte gSaveBlock2
+_0813483C: .4byte 0x00000554
+_08134840: .4byte 0x00000564
+_08134844: .4byte 0x00000569
+_08134848:
+ lsls r0, r6, 1
+ ldr r2, _081348D8
+ adds r1, r5, r2
+ adds r1, r0, r1
+ ldrh r1, [r1]
+ adds r7, r0, 0
+ cmp r1, 0x7
+ bls _0813485A
+ b _0813495C
+_0813485A:
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r0, r5, r3
+ adds r1, r7, r0
+ ldrh r0, [r1]
+ cmp r0, 0x7
+ bne _081348E4
+ adds r6, r5, 0
+ mov r9, r7
+ adds r5, r1, 0
+ ldr r0, _081348DC
+ adds r0, r6
+ mov r10, r0
+ mov r8, r5
+_08134876:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r2, r1, 2
+ adds r2, r1
+ ldr r1, _081348D8
+ adds r4, r6, r1
+ mov r3, r9
+ adds r0, r3, r4
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x14
+ lsrs r2, 7
+ adds r2, r0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081348C8
+ mov r3, r10
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081348C8
+ subs r0, r4, 0x4
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ subs r3, r0, 0x1
+ adds r4, 0xE
+_081348BA:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _081348C8
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081348BA
+_081348C8:
+ mov r3, r8
+ ldrh r0, [r3]
+ subs r0, 0x1
+ ldr r4, _081348E0
+ cmp r1, r0
+ bne _08134876
+ b _081349B6
+ .align 2, 0
+_081348D8: .4byte 0x0000055c
+_081348DC: .4byte 0x0000056a
+_081348E0: .4byte gSaveBlock2
+_081348E4:
+ adds r6, r5, 0
+ mov r9, r7
+ adds r5, r1, 0
+ ldr r2, _08134950
+ adds r2, r6
+ mov r10, r2
+ mov r8, r5
+_081348F2:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsrs r2, r0, 6
+ ldr r3, _08134954
+ adds r4, r6, r3
+ mov r1, r9
+ adds r0, r1, r4
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08134942
+ mov r3, r10
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08134942
+ subs r0, r4, 0x4
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ subs r3, r0, 0x1
+ adds r4, 0xE
+_08134934:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _08134942
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08134934
+_08134942:
+ mov r3, r8
+ ldrh r0, [r3]
+ subs r0, 0x1
+ ldr r4, _08134958
+ cmp r1, r0
+ bne _081348F2
+ b _081349B6
+ .align 2, 0
+_08134950: .4byte 0x0000056a
+_08134954: .4byte 0x0000055c
+_08134958: .4byte gSaveBlock2
+_0813495C:
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r0, r5, r2
+ adds r6, r7, r0
+ ldr r3, _081349EC
+ adds r3, r5
+ mov r8, r3
+ adds r5, r6, 0
+_0813496C:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 1
+ asrs r0, 8
+ adds r0, 0x46
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldrh r0, [r6]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081349AC
+ mov r3, r8
+ ldrb r0, [r3]
+ ldr r4, _081349F0
+ cmp r0, r2
+ beq _081349AC
+ ldrh r0, [r5]
+ subs r3, r0, 0x1
+ ldr r0, _081349EC
+ adds r4, r0
+_0813499E:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _081349AC
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0813499E
+_081349AC:
+ ldrh r0, [r6]
+ subs r0, 0x1
+ ldr r4, _081349F0
+ cmp r1, r0
+ bne _0813496C
+_081349B6:
+ ldr r1, _081349F4
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r2, _081349F4
+ adds r5, r4, r2
+ ldrb r0, [r5]
+ bl sub_81349FC
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r0, r4, r3
+ adds r1, r7, r0
+ ldrh r0, [r1]
+ cmp r0, 0x6
+ bhi _081349DE
+ adds r0, r4, r0
+ ldr r1, _081349F8
+ adds r0, r1
+ ldrb r1, [r5]
+_081349DC:
+ strb r1, [r0]
+_081349DE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081349EC: .4byte 0x0000056a
+_081349F0: .4byte gSaveBlock2
+_081349F4: .4byte 0x00000564
+_081349F8: .4byte 0x00000569
+ thumb_func_end sub_81347F8
+
+ thumb_func_start sub_81349FC
+sub_81349FC: @ 81349FC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, r2, 0
+ cmp r2, 0x63
+ bhi _08134A18
+ ldr r1, _08134A14
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ b _08134A38
+ .align 2, 0
+_08134A14: .4byte gBattleTowerTrainers
+_08134A18:
+ cmp r1, 0xC7
+ bhi _08134A34
+ ldr r2, _08134A2C
+ subs r1, 0x64
+ movs r0, 0xA4
+ muls r0, r1
+ adds r0, r2
+ ldr r1, _08134A30
+ b _08134A38
+ .align 2, 0
+_08134A2C: .4byte gSaveBlock2
+_08134A30: .4byte 0x0000014d
+_08134A34:
+ ldr r0, _08134A5C
+ ldr r1, _08134A60
+_08134A38:
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0
+ ldr r3, _08134A64
+ ldrb r0, [r3]
+ cmp r0, r1
+ beq _08134A54
+_08134A46:
+ adds r2, 0x1
+ cmp r2, 0x1D
+ bhi _08134A54
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08134A46
+_08134A54:
+ cmp r2, 0x1E
+ beq _08134A6C
+ ldr r0, _08134A68
+ b _08134A8A
+ .align 2, 0
+_08134A5C: .4byte gSaveBlock2
+_08134A60: .4byte 0x00000499
+_08134A64: .4byte gUnknown_08405E60
+_08134A68: .4byte gUnknown_08405E92
+_08134A6C:
+ movs r2, 0
+ ldr r3, _08134A98
+ ldrb r0, [r3]
+ cmp r0, r1
+ beq _08134A84
+_08134A76:
+ adds r2, 0x1
+ cmp r2, 0x13
+ bhi _08134A84
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08134A76
+_08134A84:
+ cmp r2, 0x14
+ beq _08134AA4
+ ldr r0, _08134A9C
+_08134A8A:
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r0, _08134AA0
+ bl VarSet
+ b _08134AAC
+ .align 2, 0
+_08134A98: .4byte gUnknown_08405E7E
+_08134A9C: .4byte gUnknown_08405EB0
+_08134AA0: .4byte 0x00004010
+_08134AA4:
+ ldr r0, _08134AB0
+ movs r1, 0x7
+ bl VarSet
+_08134AAC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134AB0: .4byte 0x00004010
+ thumb_func_end sub_81349FC
+
+ thumb_func_start sub_8134AB4
+sub_8134AB4: @ 8134AB4
+ push {lr}
+ movs r0, 0xC8
+ bl sub_81349FC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8134AB4
+
+ thumb_func_start sub_8134AC0
+sub_8134AC0: @ 8134AC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ movs r7, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _08134B3C
+ mov r12, r0
+ mov r1, r8
+ ldrb r1, [r1, 0xC]
+ str r1, [sp, 0x18]
+ movs r2, 0xAA
+ lsls r2, 1
+ add r2, r12
+ mov r10, r2
+ mov r9, r5
+_08134AE6:
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _08134B40
+ add r0, r9
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bne _08134B14
+ movs r0, 0xA4
+ muls r0, r5
+ ldr r1, _08134B40
+ adds r2, r0, r1
+ mov r4, r8
+ adds r4, 0xC
+_08134B02:
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08134B14
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08134B02
+_08134B14:
+ cmp r3, 0x4
+ bne _08134B54
+ movs r6, 0
+ mov r2, r10
+ ldrb r0, [r2]
+ mov r3, r8
+ ldrb r3, [r3, 0x8]
+ cmp r0, r3
+ bne _08134B54
+ adds r1, r0, 0
+ movs r0, 0xA4
+ muls r0, r5
+ adds r0, 0x4
+ ldr r3, _08134B44
+ adds r2, r0, r3
+_08134B32:
+ cmp r1, 0xFF
+ bne _08134B48
+ movs r6, 0x7
+ b _08134B54
+ .align 2, 0
+_08134B3C: .4byte gSaveBlock2
+_08134B40: .4byte gSaveBlock2 + 0x158
+_08134B44: .4byte gSaveBlock2 + 0x150
+_08134B48:
+ adds r6, 0x1
+ cmp r6, 0x6
+ bgt _08134B54
+ ldrb r0, [r2]
+ cmp r0, r1
+ beq _08134B32
+_08134B54:
+ cmp r6, 0x7
+ beq _08134B64
+ movs r0, 0xA4
+ add r10, r0
+ add r9, r0
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _08134AE6
+_08134B64:
+ cmp r5, 0x4
+ bgt _08134B76
+ movs r0, 0xA4
+ muls r0, r5
+ add r0, r12
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ b _08134B9E
+_08134B76:
+ movs r5, 0
+ movs r1, 0xA7
+ lsls r1, 1
+ add r1, r12
+ b _08134B88
+_08134B80:
+ adds r1, 0xA4
+ adds r5, 0x1
+ cmp r5, 0x4
+ bgt _08134BA8
+_08134B88:
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08134B80
+ cmp r5, 0x4
+ bgt _08134BA8
+ movs r0, 0xA4
+ muls r0, r5
+ add r0, r12
+ movs r2, 0xA6
+ lsls r2, 1
+ adds r0, r2
+_08134B9E:
+ mov r1, r8
+ movs r2, 0xA4
+ bl memcpy
+ b _08134C5E
+_08134BA8:
+ mov r2, sp
+ movs r3, 0xA7
+ lsls r3, 1
+ mov r1, r12
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ movs r1, 0
+ strh r0, [r2]
+ add r0, sp, 0xC
+ strh r1, [r0]
+ adds r7, 0x1
+ movs r5, 0x1
+ add r2, sp, 0xC
+ mov r9, r2
+ mov r10, r3
+_08134BC6:
+ movs r3, 0
+ adds r0, r5, 0x1
+ mov r12, r0
+ cmp r3, r7
+ bge _08134C0A
+ movs r1, 0xA4
+ adds r0, r5, 0
+ muls r0, r1
+ ldr r2, _08134BFC
+ adds r0, r2
+ mov r1, r10
+ adds r4, r0, r1
+ mov r6, sp
+_08134BE0:
+ lsls r0, r3, 1
+ add r0, sp
+ ldrh r2, [r4]
+ adds r1, r2, 0
+ ldrh r0, [r0]
+ cmp r1, r0
+ bcs _08134C00
+ movs r3, 0
+ movs r7, 0x1
+ strh r2, [r6]
+ mov r2, r9
+ strh r5, [r2]
+ b _08134C0A
+ .align 2, 0
+_08134BFC: .4byte gSaveBlock2
+_08134C00:
+ cmp r1, r0
+ bhi _08134C0A
+ adds r3, 0x1
+ cmp r3, r7
+ blt _08134BE0
+_08134C0A:
+ cmp r3, r7
+ bne _08134C2A
+ lsls r1, r7, 1
+ mov r3, sp
+ adds r2, r3, r1
+ movs r3, 0xA4
+ adds r0, r5, 0
+ muls r0, r3
+ ldr r3, _08134C70
+ adds r0, r3
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r2]
+ add r1, r9
+ strh r5, [r1]
+ adds r7, 0x1
+_08134C2A:
+ mov r5, r12
+ cmp r5, 0x4
+ ble _08134BC6
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r7, 0
+ bl __modsi3
+ adds r5, r0, 0
+ ldr r2, _08134C70
+ lsls r0, r5, 1
+ add r0, sp
+ adds r0, 0xC
+ ldrh r1, [r0]
+ movs r0, 0xA4
+ muls r0, r1
+ adds r0, r2
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ mov r1, r8
+ movs r2, 0xA4
+ bl memcpy
+_08134C5E:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134C70: .4byte gSaveBlock2
+ thumb_func_end sub_8134AC0
+
+ thumb_func_start get_trainer_class_pic_index
+get_trainer_class_pic_index: @ 8134C74
+ push {lr}
+ ldr r3, _08134C90
+ ldr r0, _08134C94
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134CA0
+ ldr r1, _08134C98
+ ldr r2, _08134C9C
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ b _08134CD2
+ .align 2, 0
+_08134C90: .4byte gSaveBlock2
+_08134C94: .4byte 0x00000564
+_08134C98: .4byte gTrainerClassToPicIndex
+_08134C9C: .4byte 0x00000499
+_08134CA0:
+ cmp r0, 0x63
+ bls _08134CC0
+ ldr r2, _08134CBC
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r3
+ adds r1, 0xA9
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+ b _08134CD2
+ .align 2, 0
+_08134CBC: .4byte gTrainerClassToPicIndex
+_08134CC0:
+ ldr r3, _08134CD8
+ ldr r2, _08134CDC
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+_08134CD2:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08134CD8: .4byte gTrainerClassToPicIndex
+_08134CDC: .4byte gBattleTowerTrainers
+ thumb_func_end get_trainer_class_pic_index
+
+ thumb_func_start get_trainer_class_name_index
+get_trainer_class_name_index: @ 8134CE0
+ push {lr}
+ ldr r3, _08134CFC
+ ldr r0, _08134D00
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134D0C
+ ldr r1, _08134D04
+ ldr r2, _08134D08
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ b _08134D40
+ .align 2, 0
+_08134CFC: .4byte gSaveBlock2
+_08134D00: .4byte 0x00000564
+_08134D04: .4byte gTrainerClassToNameIndex
+_08134D08: .4byte 0x00000499
+_08134D0C:
+ cmp r0, 0x63
+ bhi _08134D2C
+ ldr r3, _08134D24
+ ldr r2, _08134D28
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+ b _08134D40
+ .align 2, 0
+_08134D24: .4byte gTrainerClassToNameIndex
+_08134D28: .4byte gBattleTowerTrainers
+_08134D2C:
+ ldr r2, _08134D48
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r3
+ adds r1, 0xA9
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+_08134D40:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08134D48: .4byte gTrainerClassToNameIndex
+ thumb_func_end get_trainer_class_name_index
+
+ thumb_func_start get_trainer_name
+get_trainer_name: @ 8134D4C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, _08134D74
+ ldr r0, _08134D78
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134D80
+ movs r3, 0
+ ldr r5, _08134D7C
+ adds r2, r5
+_08134D62:
+ adds r0, r4, r3
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134D62
+ b _08134DC8
+ .align 2, 0
+_08134D74: .4byte gSaveBlock2
+_08134D78: .4byte 0x00000564
+_08134D7C: .4byte 0x0000049c
+_08134D80:
+ cmp r0, 0x63
+ bhi _08134DA8
+ movs r3, 0
+ ldr r2, _08134DA4
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x1
+ adds r2, r0, r2
+_08134D94:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134D94
+ b _08134DC8
+ .align 2, 0
+_08134DA4: .4byte gBattleTowerTrainers
+_08134DA8:
+ movs r3, 0
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r1, r0
+ movs r5, 0xA8
+ lsls r5, 1
+ adds r0, r2, r5
+ adds r2, r1, r0
+_08134DBA:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134DBA
+_08134DC8:
+ adds r1, r4, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end get_trainer_name
+
+ thumb_func_start sub_8134DD4
+sub_8134DD4: @ 8134DD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r1, 0x3C
+ str r1, [sp, 0x1C]
+ add r4, sp, 0xC
+ movs r0, 0xFF
+ strb r0, [r4]
+ bl ZeroEnemyPartyMons
+ ldr r1, _08134E04
+ ldr r2, _08134E08
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bhi _08134E0C
+ movs r3, 0x6
+ str r3, [sp, 0x14]
+ b _08134ED8
+ .align 2, 0
+_08134E04: .4byte gSaveBlock2
+_08134E08: .4byte 0x00000564
+_08134E0C:
+ cmp r0, 0x1D
+ bhi _08134E1A
+ movs r0, 0x9
+ str r0, [sp, 0x14]
+ movs r1, 0x1E
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E1A:
+ cmp r0, 0x27
+ bhi _08134E28
+ movs r2, 0xC
+ str r2, [sp, 0x14]
+ movs r3, 0x3C
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E28:
+ cmp r0, 0x31
+ bhi _08134E36
+ movs r0, 0xF
+ str r0, [sp, 0x14]
+ movs r1, 0x5A
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E36:
+ cmp r0, 0x3B
+ bhi _08134E44
+ movs r2, 0x12
+ str r2, [sp, 0x14]
+ movs r3, 0x78
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E44:
+ cmp r0, 0x45
+ bhi _08134E52
+ movs r0, 0x15
+ str r0, [sp, 0x14]
+ movs r1, 0x96
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E52:
+ cmp r0, 0x4F
+ bhi _08134E60
+ movs r2, 0x1F
+ str r2, [sp, 0x14]
+ movs r3, 0xB4
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E60:
+ cmp r0, 0x63
+ bhi _08134E72
+ movs r0, 0x1F
+ str r0, [sp, 0x14]
+ movs r1, 0xC8
+ str r1, [sp, 0x18]
+ movs r2, 0x64
+ str r2, [sp, 0x1C]
+ b _08134ED8
+_08134E72:
+ cmp r0, 0xC8
+ bne _08134E9C
+ movs r6, 0
+_08134E78:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _08134E94
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r6
+ ldr r2, _08134E98
+ adds r1, r2
+ bl sub_803ADE8
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _08134E78
+ b _08135082
+ .align 2, 0
+_08134E94: .4byte gEnemyParty
+_08134E98: .4byte gSaveBlock2 + 0x4CC
+_08134E9C:
+ movs r6, 0
+ adds r4, r1, 0
+ ldr r3, _08134ECC
+ adds r5, r4, r3
+_08134EA4:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _08134ED0
+ adds r0, r1
+ ldr r2, _08134ED4
+ adds r1, r4, r2
+ ldrb r2, [r1]
+ movs r1, 0xA4
+ muls r1, r2
+ adds r1, r5
+ movs r2, 0x2C
+ muls r2, r6
+ adds r1, r2
+ bl sub_803ADE8
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _08134EA4
+ b _08135082
+ .align 2, 0
+_08134ECC: .4byte 0xffffc158
+_08134ED0: .4byte gEnemyParty
+_08134ED4: .4byte 0x00000564
+_08134ED8:
+ ldr r2, _08134EF4
+ ldr r3, _08134EF8
+ adds r0, r2, r3
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _08134F00
+ ldr r0, _08134EFC
+ mov r10, r0
+ movs r2, 0x64
+ str r2, [sp, 0x10]
+ b _08134F08
+ .align 2, 0
+_08134EF4: .4byte gSaveBlock2
+_08134EF8: .4byte 0x00000554
+_08134EFC: .4byte gBattleTowerLevel100Mons
+_08134F00:
+ ldr r3, _08134F54
+ mov r10, r3
+ movs r0, 0x32
+ str r0, [sp, 0x10]
+_08134F08:
+ ldr r2, _08134F58
+ ldr r3, _08134F5C
+ adds r0, r1, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x9]
+ str r0, [sp, 0x20]
+ movs r6, 0
+_08134F1E:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldr r2, [sp, 0x1C]
+ adds r0, r1, 0
+ muls r0, r2
+ asrs r0, 8
+ ldr r3, [sp, 0x18]
+ adds r7, r0, r3
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ beq _08134F48
+ lsls r0, r7, 4
+ add r0, r10
+ ldrb r0, [r0, 0x3]
+ ldr r1, [sp, 0x20]
+ ands r0, r1
+ cmp r0, r1
+ beq _08134F48
+ b _0813507C
+_08134F48:
+ movs r5, 0
+ lsls r0, r7, 4
+ mov r2, r10
+ adds r3, r0, r2
+ movs r4, 0
+ b _08134F64
+ .align 2, 0
+_08134F54: .4byte gBattleTowerLevel50Mons
+_08134F58: .4byte gBattleTowerTrainers
+_08134F5C: .4byte 0x00000564
+_08134F60:
+ adds r4, 0x64
+ adds r5, 0x1
+_08134F64:
+ cmp r5, r6
+ bge _08134F7E
+ ldr r1, _08135094
+ adds r0, r4, r1
+ movs r1, 0xB
+ movs r2, 0
+ str r3, [sp, 0x24]
+ bl GetMonData
+ ldr r3, [sp, 0x24]
+ ldrh r2, [r3]
+ cmp r0, r2
+ bne _08134F60
+_08134F7E:
+ cmp r5, r6
+ bne _0813507C
+ movs r5, 0
+ cmp r5, r6
+ bge _08134FCC
+ ldr r3, _08135098
+ mov r9, r3
+ lsls r0, r7, 4
+ add r0, r10
+ mov r8, r0
+ movs r3, 0
+_08134F94:
+ ldr r0, _08135094
+ adds r4, r3, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ movs r2, 0
+ str r3, [sp, 0x24]
+ bl GetMonData
+ ldr r3, [sp, 0x24]
+ cmp r0, 0
+ beq _08134FC4
+ adds r0, r4, 0
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ mov r2, r8
+ ldrb r1, [r2, 0x2]
+ lsls r1, 1
+ add r1, r9
+ ldr r3, [sp, 0x24]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08134FCC
+_08134FC4:
+ adds r3, 0x64
+ adds r5, 0x1
+ cmp r5, r6
+ blt _08134F94
+_08134FCC:
+ cmp r5, r6
+ bne _0813507C
+ movs r5, 0
+ cmp r5, r6
+ bge _08134FEE
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08134FEE
+ add r1, sp, 0x4
+_08134FE0:
+ adds r1, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ bge _08134FEE
+ ldrh r0, [r1]
+ cmp r0, r7
+ bne _08134FE0
+_08134FEE:
+ cmp r5, r6
+ bne _0813507C
+ lsls r0, r6, 1
+ add r0, sp
+ adds r0, 0x4
+ strh r7, [r0]
+ movs r3, 0x64
+ adds r0, r6, 0
+ muls r0, r3
+ ldr r1, _08135094
+ adds r0, r1
+ lsls r4, r7, 4
+ mov r3, r10
+ adds r2, r4, r3
+ ldrh r1, [r2]
+ ldrb r2, [r2, 0xC]
+ str r2, [sp]
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ bl CreateMonWithEVSpread
+ movs r5, 0
+ adds r0, r6, 0x1
+ mov r9, r0
+ mov r8, r4
+ movs r0, 0x64
+ adds r7, r6, 0
+ muls r7, r0
+ mov r0, r10
+ adds r0, 0x4
+ adds r4, r0
+ ldr r3, _08135094
+_0813502E:
+ ldrh r1, [r4]
+ lsls r2, r5, 24
+ lsrs r2, 24
+ adds r0, r7, r3
+ str r3, [sp, 0x24]
+ bl SetMonMoveSlot
+ ldrh r0, [r4]
+ ldr r3, [sp, 0x24]
+ cmp r0, 0xDA
+ bne _0813504A
+ movs r0, 0
+ mov r1, sp
+ strb r0, [r1, 0xC]
+_0813504A:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0813502E
+ movs r2, 0x64
+ adds r4, r6, 0
+ muls r4, r2
+ ldr r3, _08135094
+ adds r4, r3
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0xC
+ bl SetMonData
+ mov r0, r8
+ add r0, r10
+ ldrb r2, [r0, 0x2]
+ lsls r2, 1
+ ldr r0, _08135098
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r6, r9
+_0813507C:
+ cmp r6, 0x3
+ beq _08135082
+ b _08134F1E
+_08135082:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135094: .4byte gEnemyParty
+_08135098: .4byte gBattleTowerHeldItems
+ thumb_func_end sub_8134DD4
+
+ thumb_func_start sub_813509C
+sub_813509C: @ 813509C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r2, _081350D8
+ ldrh r0, [r2]
+ ldr r1, _081350DC
+ cmp r0, r1
+ beq _081350CE
+ adds r6, r1, 0
+ adds r4, r2, 0
+_081350AE:
+ ldrh r0, [r4]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _081350C6
+ adds r5, 0x1
+_081350C6:
+ adds r4, 0x2
+ ldrh r0, [r4]
+ cmp r0, r6
+ bne _081350AE
+_081350CE:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081350D8: .4byte gBattleTowerBanlist
+_081350DC: .4byte 0x0000ffff
+ thumb_func_end sub_813509C
+
+ thumb_func_start sub_81350E0
+sub_81350E0: @ 81350E0
+ push {r4-r6,lr}
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r0, r6, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _081351E6
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ subs r0, r4, 0x1
+ cmp r0, 0xA
+ bhi _081351B0
+ lsls r0, 2
+ ldr r1, _08135118
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08135118: .4byte _0813511C
+ .align 2, 0
+_0813511C:
+ .4byte _08135148
+ .4byte _08135178
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+_08135148:
+ cmp r5, r4
+ bne _08135160
+ ldr r0, _08135158
+ ldr r1, _0813515C
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_08135158: .4byte gStringVar1
+_0813515C: .4byte gUnknown_08400E23
+_08135160:
+ cmp r5, r4
+ ble _081351D8
+ ldr r0, _08135170
+ ldr r1, _08135174
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_08135170: .4byte gStringVar1
+_08135174: .4byte gUnknown_08400E29
+_08135178:
+ cmp r4, r5
+ bne _08135190
+ ldr r0, _08135188
+ ldr r1, _0813518C
+ bl StringAppend
+ b _08135198
+ .align 2, 0
+_08135188: .4byte gStringVar1
+_0813518C: .4byte gUnknown_08400E23
+_08135190:
+ ldr r0, _081351A4
+ ldr r1, _081351A8
+ bl StringAppend
+_08135198:
+ ldr r0, _081351A4
+ ldr r1, _081351AC
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_081351A4: .4byte gStringVar1
+_081351A8: .4byte gUnknown_08400E29
+_081351AC: .4byte gUnknown_08400E30
+_081351B0:
+ cmp r4, r5
+ bne _081351C8
+ ldr r0, _081351C0
+ ldr r1, _081351C4
+ bl StringAppend
+ b _081351D0
+ .align 2, 0
+_081351C0: .4byte gStringVar1
+_081351C4: .4byte gUnknown_08400E23
+_081351C8:
+ ldr r0, _081351F0
+ ldr r1, _081351F4
+ bl StringAppend
+_081351D0:
+ ldr r0, _081351F0
+ ldr r1, _081351F8
+ bl StringAppend
+_081351D8:
+ ldr r0, _081351F0
+ movs r1, 0xB
+ muls r1, r6
+ ldr r2, _081351FC
+ adds r1, r2
+ bl StringAppend
+_081351E6:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081351F0: .4byte gStringVar1
+_081351F4: .4byte gUnknown_08400E29
+_081351F8: .4byte gUnknown_08400E2E
+_081351FC: .4byte gSpeciesNames
+ thumb_func_end sub_81350E0
+
+ thumb_func_start sub_8135200
+sub_8135200: @ 8135200
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ mov r9, r4
+ ldr r4, [sp, 0x28]
+ mov r10, r4
+ ldr r7, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r12, r3
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r2, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ beq _081352CE
+ cmp r4, 0
+ beq _081352CE
+ ldr r0, _081352DC
+ ldrh r1, [r0]
+ ldr r5, _081352E0
+ adds r3, r0, 0
+ cmp r1, r5
+ beq _08135264
+ cmp r1, r4
+ beq _08135258
+ adds r1, r3, 0
+_0813524A:
+ adds r1, 0x2
+ adds r2, 0x1
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _08135264
+ cmp r0, r4
+ bne _0813524A
+_08135258:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ ldr r0, _081352E0
+ cmp r1, r0
+ bne _081352CE
+_08135264:
+ mov r0, r12
+ cmp r0, 0
+ bne _08135270
+ mov r1, r8
+ cmp r1, 0x32
+ bhi _081352CE
+_08135270:
+ movs r2, 0
+ ldrb r3, [r7]
+ cmp r2, r3
+ bge _08135290
+ mov r1, r9
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _08135290
+ adds r5, r3, 0
+_08135282:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _08135290
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08135282
+_08135290:
+ cmp r2, r3
+ bne _081352CE
+ cmp r6, 0
+ beq _081352BA
+ movs r2, 0
+ cmp r2, r3
+ bge _081352B6
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, r6
+ beq _081352B6
+ adds r5, r3, 0
+_081352A8:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _081352B6
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _081352A8
+_081352B6:
+ cmp r2, r3
+ bne _081352CE
+_081352BA:
+ lsls r0, r3, 1
+ add r0, r9
+ strh r4, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ add r0, r10
+ strh r6, [r0]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+_081352CE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081352DC: .4byte gBattleTowerBanlist
+_081352E0: .4byte 0x0000ffff
+ thumb_func_end sub_8135200
+
+ thumb_func_start sub_81352E4
+sub_81352E4: @ 81352E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ add r1, sp, 0x28
+ movs r0, 0
+ strb r0, [r1]
+ movs r7, 0
+ mov r9, r1
+ add r0, sp, 0x1C
+ mov r10, r0
+_081352FE:
+ movs r0, 0x64
+ adds r5, r7, 0
+ muls r5, r0
+ ldr r0, _081353C4
+ adds r5, r0
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r5, _081353C8
+ ldrb r3, [r5]
+ str r4, [sp]
+ add r0, sp, 0x10
+ str r0, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ mov r0, r8
+ adds r1, r6, 0
+ bl sub_8135200
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _081352FE
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08135420
+ ldr r1, _081353CC
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _081353D0
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ mov r1, r9
+ strb r0, [r1]
+ bl sub_813509C
+ adds r6, r0, 0
+ ldr r2, _081353D4
+ ldrh r0, [r2]
+ ldr r1, _081353D8
+ cmp r0, r1
+ beq _081353A8
+ mov r5, r9
+ adds r7, r1, 0
+ adds r4, r2, 0
+_08135394:
+ ldrh r0, [r4]
+ ldrb r1, [r5]
+ adds r2, r6, 0
+ bl sub_81350E0
+ strb r0, [r5]
+ adds r4, 0x2
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _08135394
+_081353A8:
+ mov r0, r9
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _081353E4
+ ldr r4, _081353CC
+ ldr r1, _081353DC
+ adds r0, r4, 0
+ bl StringAppend
+ ldr r1, _081353E0
+ adds r0, r4, 0
+ bl StringAppend
+ b _0813543E
+ .align 2, 0
+_081353C4: .4byte gPlayerParty
+_081353C8: .4byte gScriptResult
+_081353CC: .4byte gStringVar1
+_081353D0: .4byte gUnknown_0202E8CC
+_081353D4: .4byte gBattleTowerBanlist
+_081353D8: .4byte 0x0000ffff
+_081353DC: .4byte gUnknown_08400E2C
+_081353E0: .4byte gUnknown_08400E32
+_081353E4:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08135400
+ ldr r0, _081353F8
+ ldr r1, _081353FC
+ bl StringAppend
+ b _08135408
+ .align 2, 0
+_081353F8: .4byte gStringVar1
+_081353FC: .4byte gUnknown_08400E2E
+_08135400:
+ ldr r0, _08135414
+ ldr r1, _08135418
+ bl StringAppend
+_08135408:
+ ldr r0, _08135414
+ ldr r1, _0813541C
+ bl StringAppend
+ b _0813543E
+ .align 2, 0
+_08135414: .4byte gStringVar1
+_08135418: .4byte gUnknown_08400E2C
+_0813541C: .4byte gUnknown_08400E36
+_08135420:
+ ldr r1, _08135450
+ movs r0, 0
+ strh r0, [r1]
+ ldr r2, _08135454
+ ldrb r0, [r5]
+ ldr r1, _08135458
+ adds r2, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+_0813543E:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135450: .4byte gUnknown_0202E8CC
+_08135454: .4byte gSaveBlock2
+_08135458: .4byte 0x00000554
+ thumb_func_end sub_81352E4
+
+ thumb_func_start sub_813545C
+sub_813545C: @ 813545C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08135470
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_80EB544
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135470: .4byte gStringVar4
+ thumb_func_end sub_813545C
+
+ thumb_func_start sub_8135474
+sub_8135474: @ 8135474
+ push {lr}
+ ldr r2, _08135490
+ ldr r0, _08135494
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08135498
+ movs r1, 0x95
+ lsls r1, 3
+ adds r0, r2, r1
+ bl sub_813545C
+ b _081354C4
+ .align 2, 0
+_08135490: .4byte gSaveBlock2
+_08135494: .4byte 0x00000564
+_08135498:
+ cmp r0, 0x63
+ bhi _081354B4
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _081354B0
+ adds r0, r1
+ bl sub_813545C
+ b _081354C4
+ .align 2, 0
+_081354B0: .4byte gBattleTowerTrainers + 0xC
+_081354B4:
+ ldrb r1, [r1]
+ movs r0, 0xA4
+ muls r0, r1
+ ldr r3, _081354C8
+ adds r1, r2, r3
+ adds r0, r1
+ bl sub_813545C
+_081354C4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081354C8: .4byte 0xffffc14c
+ thumb_func_end sub_8135474
+
+ thumb_func_start sub_81354CC
+sub_81354CC: @ 81354CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _081354E4
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _081354E8
+ cmp r0, 0x1
+ ble _08135520
+ cmp r0, 0x2
+ beq _0813551C
+ b _08135520
+ .align 2, 0
+_081354E4: .4byte gUnknown_0202E8CC
+_081354E8:
+ movs r5, 0
+_081354EA:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08135514
+ adds r0, r4, r0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, _08135518
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081354EA
+ b _08135520
+ .align 2, 0
+_08135514: .4byte gSaveBlock1 + 0x238
+_08135518: .4byte gPlayerParty
+_0813551C:
+ bl sub_81360D0
+_08135520:
+ ldr r0, _08135530
+ bl SetMainCallback2
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_81354CC
+
+ thumb_func_start sub_8135534
+sub_8135534: @ 8135534
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_811AAE8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08135558
+ ldr r0, _08135560
+ ldr r1, _08135564
+ str r1, [r0, 0x8]
+ ldr r0, _08135568
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08135558:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135560: .4byte gMain
+_08135564: .4byte sub_81354CC
+_08135568: .4byte sub_800E7C4
+ thumb_func_end sub_8135534
+
+ thumb_func_start sub_813556C
+sub_813556C: @ 813556C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08135584
+ ldrh r2, [r0]
+ cmp r2, 0x1
+ beq _081355AC
+ cmp r2, 0x1
+ bgt _08135588
+ cmp r2, 0
+ beq _0813558E
+ b _08135648
+ .align 2, 0
+_08135584: .4byte gUnknown_0202E8CC
+_08135588:
+ cmp r2, 0x2
+ beq _08135600
+ b _08135648
+_0813558E:
+ ldr r1, _081355A4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _081355A8
+ strh r2, [r0]
+ bl sub_8134DD4
+ b _081355D6
+ .align 2, 0
+_081355A4: .4byte gUnknown_020239F8
+_081355A8: .4byte word_202FF5E
+_081355AC:
+ movs r5, 0
+_081355AE:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _081355F4
+ adds r0, r4, r0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, _081355F8
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081355AE
+_081355D6:
+ ldr r0, _081355FC
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl current_map_music_set__default_for_battle
+ bl sub_8082138
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AABC
+ b _08135648
+ .align 2, 0
+_081355F4: .4byte gPlayerParty
+_081355F8: .4byte gSaveBlock1 + 0x238
+_081355FC: .4byte sub_8135534
+_08135600:
+ bl ZeroEnemyPartyMons
+ movs r5, 0
+_08135606:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08135650
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r5
+ ldr r2, _08135654
+ adds r1, r2
+ bl sub_803ADE8
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08135606
+ ldr r1, _08135658
+ ldr r2, _0813565C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08135660
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08135664
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl current_map_music_set__default_for_battle
+ bl sub_8082138
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AABC
+_08135648:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135650: .4byte gEnemyParty
+_08135654: .4byte gSaveBlock2 + 0x4CC
+_08135658: .4byte gUnknown_020239F8
+_0813565C: .4byte 0x00000808
+_08135660: .4byte word_202FF5E
+_08135664: .4byte sub_8135534
+ thumb_func_end sub_813556C
+
+ thumb_func_start sub_8135668
+sub_8135668: @ 8135668
+ push {r4,r5,lr}
+ ldr r1, _0813568C
+ ldr r2, _08135690
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r4, r0, 31
+ ldr r0, _08135694
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xE
+ bls _08135682
+ b _0813589A
+_08135682:
+ lsls r0, 2
+ ldr r1, _08135698
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813568C: .4byte gSaveBlock2
+_08135690: .4byte 0x00000554
+_08135694: .4byte gUnknown_0202E8CC
+_08135698: .4byte _0813569C
+ .align 2, 0
+_0813569C:
+ .4byte _081356D8
+ .4byte _08135700
+ .4byte _0813571C
+ .4byte _08135726
+ .4byte _08135740
+ .4byte _08135754
+ .4byte _08135774
+ .4byte _081357D0
+ .4byte _081357FC
+ .4byte _0813589A
+ .4byte _08135820
+ .4byte _08135834
+ .4byte _0813584C
+ .4byte _0813586C
+ .4byte _08135888
+_081356D8:
+ ldr r0, _081356F0
+ ldr r3, _081356F4
+ adds r1, r5, r3
+ adds r1, r4, r1
+ ldrb r2, [r1]
+ ldr r3, _081356F8
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, _081356FC
+ ldrh r0, [r0]
+ b _08135898
+ .align 2, 0
+_081356F0: .4byte 0x02000000
+_081356F4: .4byte 0x00000556
+_081356F8: .4byte 0x000160fb
+_081356FC: .4byte gUnknown_0202E8CE
+_08135700:
+ ldr r0, _08135714
+ ldrb r0, [r0]
+ ldr r1, _08135718
+ adds r3, r5, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ b _08135810
+ .align 2, 0
+_08135714: .4byte gUnknown_0202E8CE
+_08135718: .4byte 0x00000554
+_0813571C:
+ lsls r1, r4, 1
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r0, r5, r2
+ b _0813572C
+_08135726:
+ lsls r1, r4, 1
+ ldr r3, _08135738
+ adds r0, r5, r3
+_0813572C:
+ adds r1, r0
+ ldr r0, _0813573C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _0813589A
+ .align 2, 0
+_08135738: .4byte 0x0000055c
+_0813573C: .4byte gUnknown_0202E8CE
+_08135740:
+ ldr r0, _0813574C
+ ldrh r1, [r0]
+ ldr r2, _08135750
+ adds r0, r5, r2
+ strb r1, [r0]
+ b _0813589A
+ .align 2, 0
+_0813574C: .4byte gUnknown_0202E8CE
+_08135750: .4byte 0x00000564
+_08135754:
+ movs r2, 0
+ ldr r4, _0813576C
+ ldr r3, _08135770
+_0813575A:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _0813575A
+ b _0813589A
+ .align 2, 0
+_0813576C: .4byte gSaveBlock2 + 0x565
+_08135770: .4byte gUnknown_02039270
+_08135774:
+ ldr r3, _081357C0
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ cmp r0, 0xC8
+ bne _08135788
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r5, r1
+ bl sub_81360AC
+_08135788:
+ movs r3, 0xAE
+ lsls r3, 3
+ adds r2, r5, r3
+ ldrh r1, [r2]
+ ldr r0, _081357C4
+ cmp r1, r0
+ bhi _0813579A
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_0813579A:
+ lsls r4, 1
+ movs r1, 0xAB
+ lsls r1, 3
+ adds r0, r5, r1
+ adds r4, r0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ bl sub_8135A3C
+ ldr r1, _081357C8
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldr r1, _081357CC
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ b _0813589A
+ .align 2, 0
+_081357C0: .4byte 0x00000564
+_081357C4: .4byte 0x0000270e
+_081357C8: .4byte gScriptResult
+_081357CC: .4byte gStringVar1
+_081357D0:
+ lsls r0, r4, 1
+ ldr r2, _081357F0
+ adds r1, r5, r2
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ ldr r0, _081357F4
+ cmp r1, r0
+ bhi _081357E4
+ adds r0, r1, 0x1
+ strh r0, [r4]
+_081357E4:
+ bl sub_8135A3C
+ ldr r1, _081357F8
+ ldrh r0, [r4]
+ strh r0, [r1]
+ b _0813589A
+ .align 2, 0
+_081357F0: .4byte 0x0000055c
+_081357F4: .4byte 0x00000595
+_081357F8: .4byte gScriptResult
+_081357FC:
+ ldr r0, _08135818
+ ldrb r0, [r0]
+ ldr r1, _0813581C
+ adds r3, r5, r1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3]
+ movs r0, 0x3
+ negs r0, r0
+_08135810:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _0813589A
+ .align 2, 0
+_08135818: .4byte gUnknown_0202E8CE
+_0813581C: .4byte 0x00000554
+_08135820:
+ ldr r2, _08135830
+ adds r0, r5, r2
+ ldrh r1, [r0]
+ movs r0, 0x20
+ bl sav12_xor_set
+ b _0813589A
+ .align 2, 0
+_08135830: .4byte 0x00000572
+_08135834:
+ ldr r3, _08135848
+ adds r0, r5, r3
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0813589A
+ adds r0, r4, 0
+ bl sub_813461C
+ b _0813589A
+ .align 2, 0
+_08135848: .4byte 0x00000556
+_0813584C:
+ ldr r1, _08135860
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldr r1, _08135864
+ ldr r2, _08135868
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0813589A
+ .align 2, 0
+_08135860: .4byte 0x00000556
+_08135864: .4byte 0x02000000
+_08135868: .4byte 0x000160fb
+_0813586C:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _08135880
+ lsls r2, r4, 1
+ ldr r3, _08135884
+ adds r1, r3
+ adds r2, r1
+ strh r0, [r2]
+ b _0813589A
+ .align 2, 0
+_08135880: .4byte gSaveBlock2
+_08135884: .4byte 0x00000574
+_08135888:
+ ldr r1, _081358A0
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ movs r2, 0xAF
+ lsls r2, 3
+ adds r1, r5, r2
+_08135898:
+ strb r0, [r1]
+_0813589A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081358A0: .4byte 0x00000554
+ thumb_func_end sub_8135668
+
+ thumb_func_start sub_81358A4
+sub_81358A4: @ 81358A4
+ push {r4,lr}
+ ldr r1, _081358C8
+ ldr r2, _081358CC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r4, r0, 31
+ ldr r0, _081358D0
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xE
+ bls _081358BE
+ b _08135A0A
+_081358BE:
+ lsls r0, 2
+ ldr r1, _081358D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081358C8: .4byte gSaveBlock2
+_081358CC: .4byte 0x00000554
+_081358D0: .4byte gUnknown_0202E8CC
+_081358D4: .4byte _081358D8
+ .align 2, 0
+_081358D8:
+ .4byte _08135914
+ .4byte _08135928
+ .4byte _0813593C
+ .4byte _0813594C
+ .4byte _08135964
+ .4byte _08135A0A
+ .4byte _08135A0A
+ .4byte _08135A0A
+ .4byte _08135978
+ .4byte _08135990
+ .4byte _081359A0
+ .4byte _081359B4
+ .4byte _081359BC
+ .4byte _081359DC
+ .4byte _081359F8
+_08135914:
+ ldr r0, _08135920
+ ldr r2, _08135924
+ adds r1, r3, r2
+ adds r1, r4, r1
+ b _0813596A
+ .align 2, 0
+_08135920: .4byte gScriptResult
+_08135924: .4byte 0x00000556
+_08135928:
+ ldr r1, _08135934
+ ldr r4, _08135938
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 31
+ b _08135982
+ .align 2, 0
+_08135934: .4byte gScriptResult
+_08135938: .4byte 0x00000554
+_0813593C:
+ ldr r2, _08135948
+ lsls r0, r4, 1
+ movs r4, 0xAB
+ lsls r4, 3
+ b _08135952
+ .align 2, 0
+_08135948: .4byte gScriptResult
+_0813594C:
+ ldr r2, _0813595C
+ lsls r0, r4, 1
+ ldr r4, _08135960
+_08135952:
+ adds r1, r3, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ b _08135A0A
+ .align 2, 0
+_0813595C: .4byte gScriptResult
+_08135960: .4byte 0x0000055c
+_08135964:
+ ldr r0, _08135970
+ ldr r2, _08135974
+ adds r1, r3, r2
+_0813596A:
+ ldrb r1, [r1]
+ strh r1, [r0]
+ b _08135A0A
+ .align 2, 0
+_08135970: .4byte gScriptResult
+_08135974: .4byte 0x00000564
+_08135978:
+ ldr r1, _08135988
+ ldr r4, _0813598C
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 30
+_08135982:
+ lsrs r0, 31
+ strh r0, [r1]
+ b _08135A0A
+ .align 2, 0
+_08135988: .4byte gScriptResult
+_0813598C: .4byte 0x00000554
+_08135990:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _0813599C
+ strh r0, [r1]
+ b _08135A0A
+ .align 2, 0
+_0813599C: .4byte gScriptResult
+_081359A0:
+ ldr r1, _081359B0
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ movs r0, 0x20
+ bl sav12_xor_set
+ b _08135A0A
+ .align 2, 0
+_081359B0: .4byte 0x00000572
+_081359B4:
+ adds r0, r4, 0
+ bl sub_813461C
+ b _08135A0A
+_081359BC:
+ ldr r2, _081359D0
+ adds r0, r3, r2
+ adds r0, r4, r0
+ ldr r1, _081359D4
+ ldr r3, _081359D8
+ adds r1, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08135A0A
+ .align 2, 0
+_081359D0: .4byte 0x00000556
+_081359D4: .4byte 0x02000000
+_081359D8: .4byte 0x000160fb
+_081359DC:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _081359F0
+ lsls r2, r4, 1
+ ldr r4, _081359F4
+ adds r1, r4
+ adds r2, r1
+ strh r0, [r2]
+ b _08135A0A
+ .align 2, 0
+_081359F0: .4byte gSaveBlock2
+_081359F4: .4byte 0x00000574
+_081359F8:
+ ldr r1, _08135A10
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ movs r2, 0xAF
+ lsls r2, 3
+ adds r1, r3, r2
+ strb r0, [r1]
+_08135A0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135A10: .4byte 0x00000554
+ thumb_func_end sub_81358A4
+
+ thumb_func_start sub_8135A14
+sub_8135A14: @ 8135A14
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _08135A34
+ ldr r3, _08135A38
+_08135A1C:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08135A1C
+ bl sub_80C5604
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135A34: .4byte gUnknown_02039270
+_08135A38: .4byte gSaveBlock2 + 0x565
+ thumb_func_end sub_8135A14
+
+ thumb_func_start sub_8135A3C
+sub_8135A3C: @ 8135A3C
+ push {r4-r6,lr}
+ ldr r6, _08135A84
+ ldr r1, _08135A88
+ adds r0, r6, r1
+ ldrb r4, [r0]
+ lsls r4, 31
+ lsrs r4, 31
+ adds r0, r4, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r4, 1
+ movs r3, 0xAC
+ lsls r3, 3
+ adds r2, r6, r3
+ adds r4, r2
+ ldrh r0, [r4]
+ cmp r0, r5
+ bcs _08135A66
+ strh r5, [r4]
+_08135A66:
+ ldr r0, _08135A8C
+ adds r1, r6, r0
+ ldrh r0, [r2]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bls _08135A94
+ adds r5, r0, 0
+ movs r0, 0x20
+ adds r1, r5, 0
+ bl sav12_xor_set
+ ldr r1, _08135A90
+ cmp r5, r1
+ bhi _08135AA4
+ b _08135AB4
+ .align 2, 0
+_08135A84: .4byte gSaveBlock2
+_08135A88: .4byte 0x00000554
+_08135A8C: .4byte 0x00000562
+_08135A90: .4byte 0x0000270f
+_08135A94:
+ ldrh r5, [r1]
+ movs r0, 0x20
+ adds r1, r5, 0
+ bl sav12_xor_set
+ ldr r1, _08135AAC
+ cmp r5, r1
+ bls _08135AB4
+_08135AA4:
+ ldr r2, _08135AB0
+ adds r0, r6, r2
+ strh r1, [r0]
+ b _08135ABA
+ .align 2, 0
+_08135AAC: .4byte 0x0000270f
+_08135AB0: .4byte 0x00000572
+_08135AB4:
+ ldr r3, _08135AC0
+ adds r0, r6, r3
+ strh r5, [r0]
+_08135ABA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135AC0: .4byte 0x00000572
+ thumb_func_end sub_8135A3C
+
+ thumb_func_start sub_8135AC4
+sub_8135AC4: @ 8135AC4
+ push {r4-r6,lr}
+ ldr r5, _08135AF0
+ adds r2, r5, 0
+ subs r2, 0xA8
+ ldr r1, _08135AF4
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r6, r0, 31
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08135AFC
+ ldr r4, _08135AF8
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x14
+ b _08135B0E
+ .align 2, 0
+_08135AF0: .4byte gSaveBlock2 + 0xA8
+_08135AF4: .4byte 0x000004ac
+_08135AF8: .4byte gUnknown_08405E7E
+_08135AFC:
+ ldr r4, _08135B84
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x1E
+_08135B0E:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r6, [r5]
+ strb r0, [r5, 0x1]
+ adds r0, r5, 0
+ adds r0, 0xC
+ ldr r4, _08135B88
+ adds r1, r4, 0
+ bl sub_8052D10
+ adds r0, r5, 0x4
+ subs r4, 0xA
+ adds r1, r4, 0
+ bl StringCopy8
+ adds r0, r6, 0
+ bl sub_8135D3C
+ strh r0, [r5, 0x2]
+ ldr r0, _08135B8C
+ ldr r1, _08135B90
+ adds r2, r0, r1
+ adds r1, r5, 0
+ adds r1, 0x10
+ movs r4, 0x5
+_08135B44:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08135B44
+ movs r4, 0
+ ldr r6, _08135B94
+_08135B56:
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08135B98
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x1C
+ adds r1, r5, r1
+ bl sub_803AF78
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08135B56
+ ldr r0, _08135B9C
+ bl sub_8135CC4
+ bl sub_8135A3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135B84: .4byte gUnknown_08405E60
+_08135B88: .4byte gSaveBlock2 + 0xA
+_08135B8C: .4byte gSaveBlock1
+_08135B90: .4byte 0x00002b28
+_08135B94: .4byte gSaveBlock2 + 0x565
+_08135B98: .4byte gUnknown_030042FC
+_08135B9C: .4byte gSaveBlock2 + 0xA8
+ thumb_func_end sub_8135AC4
+
+ thumb_func_start sub_8135BA0
+sub_8135BA0: @ 8135BA0
+ push {r4,r5,lr}
+ ldr r2, _08135C1C
+ ldr r1, _08135C20
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r5, r0, 31
+ ldr r0, _08135C24
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ beq _08135BBA
+ cmp r0, 0
+ bne _08135BD8
+_08135BBA:
+ lsls r1, r5, 1
+ ldr r3, _08135C28
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bhi _08135BD4
+ subs r3, 0x4
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _08135BD8
+_08135BD4:
+ bl sub_8135AC4
+_08135BD8:
+ bl sub_8135CFC
+ ldr r4, _08135C1C
+ ldr r0, _08135C2C
+ ldrb r1, [r0]
+ ldr r2, _08135C30
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _08135C24
+ ldrh r1, [r0]
+ cmp r1, 0x3
+ beq _08135BF8
+ ldr r3, _08135C34
+ adds r0, r4, r3
+ adds r0, r5, r0
+ strb r1, [r0]
+_08135BF8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0
+ bl VarSet
+ ldr r0, _08135C20
+ adds r2, r4, r0
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x2
+ bl sub_8125D44
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135C1C: .4byte gSaveBlock2
+_08135C20: .4byte 0x00000554
+_08135C24: .4byte gUnknown_0202E8CC
+_08135C28: .4byte 0x0000055c
+_08135C2C: .4byte gUnknown_02024D26
+_08135C30: .4byte 0x00000555
+_08135C34: .4byte 0x00000556
+ thumb_func_end sub_8135BA0
+
+ thumb_func_start sub_8135C38
+sub_8135C38: @ 8135C38
+ push {lr}
+ bl DoSoftReset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135C38
+
+ thumb_func_start sub_8135C44
+sub_8135C44: @ 8135C44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r3, 0
+ movs r1, 0
+ ldr r2, _08135CBC
+_08135C50:
+ ldm r2!, {r0}
+ adds r3, r0
+ adds r1, 0x1
+ cmp r1, 0x27
+ bls _08135C50
+ ldr r5, _08135CC0
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r5, r1
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08135C70
+ adds r0, r5, 0
+ adds r0, 0xA8
+ bl sub_8135CE8
+_08135C70:
+ movs r4, 0
+ movs r7, 0xA4
+ movs r0, 0xA6
+ lsls r0, 1
+ adds r6, r5, r0
+ mov r8, r5
+_08135C7C:
+ adds r0, r4, 0
+ muls r0, r7
+ movs r3, 0
+ movs r1, 0
+ adds r5, r4, 0x1
+ adds r2, r0, r6
+_08135C88:
+ ldm r2!, {r0}
+ adds r3, r0
+ adds r1, 0x1
+ cmp r1, 0x27
+ bls _08135C88
+ adds r1, r4, 0
+ muls r1, r7
+ movs r0, 0xF6
+ lsls r0, 1
+ add r0, r8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08135CAA
+ adds r0, r1, r6
+ bl sub_8135CE8
+_08135CAA:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ ble _08135C7C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135CBC: .4byte gSaveBlock2 + 0xA8
+_08135CC0: .4byte gSaveBlock2
+ thumb_func_end sub_8135C44
+
+ thumb_func_start sub_8135CC4
+sub_8135CC4: @ 8135CC4
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xA0
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08135CD2:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x27
+ bls _08135CD2
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135CC4
+
+ thumb_func_start sub_8135CE8
+sub_8135CE8: @ 8135CE8
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_08135CEE:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x28
+ bls _08135CEE
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135CE8
+
+ thumb_func_start sub_8135CFC
+sub_8135CFC: @ 8135CFC
+ push {r4,lr}
+ ldr r4, _08135D34
+ adds r0, r4, 0
+ bl get_trainer_name
+ ldr r2, _08135D38
+ adds r0, r2, 0
+ adds r0, 0x58
+ ldrh r1, [r0]
+ subs r0, r4, 0x2
+ strh r1, [r0]
+ ldrh r1, [r2]
+ subs r0, r4, 0x4
+ strh r1, [r0]
+ movs r3, 0
+ adds r4, 0x8
+ adds r2, 0x30
+_08135D1E:
+ adds r0, r3, r4
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _08135D1E
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135D34: .4byte gSaveBlock2 + 0x484
+_08135D38: .4byte gBattleMons
+ thumb_func_end sub_8135CFC
+
+ thumb_func_start sub_8135D3C
+sub_8135D3C: @ 8135D3C
+ push {lr}
+ lsls r0, 24
+ ldr r3, _08135D74
+ lsrs r0, 23
+ ldr r2, _08135D78
+ adds r1, r3, r2
+ adds r1, r0, r1
+ ldrh r2, [r1]
+ subs r2, 0x1
+ lsls r1, r2, 3
+ subs r1, r2
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r3, r2
+ adds r0, r3
+ ldr r2, _08135D7C
+ adds r1, r2
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ ldr r1, _08135D80
+ cmp r0, r1
+ bls _08135D6E
+ adds r0, r1, 0
+_08135D6E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08135D74: .4byte gSaveBlock2
+_08135D78: .4byte 0x0000055c
+_08135D7C: .4byte 0x0000ffff
+_08135D80: .4byte 0x0000270f
+ thumb_func_end sub_8135D3C
+
+ thumb_func_start sub_8135D84
+sub_8135D84: @ 8135D84
+ push {r4,r5,lr}
+ ldr r5, _08135DB0
+ ldr r1, _08135DB4
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ lsls r0, 1
+ ldr r2, _08135DB8
+ adds r1, r5, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x5
+ ble _08135DC0
+ bl Random
+ ldr r4, _08135DBC
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x9
+ b _08135DCC
+ .align 2, 0
+_08135DB0: .4byte gSaveBlock2
+_08135DB4: .4byte 0x00000554
+_08135DB8: .4byte 0x0000055c
+_08135DBC: .4byte gUnknown_08405EE6
+_08135DC0:
+ bl Random
+ ldr r4, _08135DE8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+_08135DCC:
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 15
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r2, 0xAD
+ lsls r2, 3
+ adds r0, r5, r2
+ strh r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135DE8: .4byte gUnknown_08405EDA
+ thumb_func_end sub_8135D84
+
+ thumb_func_start sub_8135DEC
+sub_8135DEC: @ 8135DEC
+ push {r4-r7,lr}
+ ldr r5, _08135E20
+ ldr r1, _08135E24
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r7, r0, 31
+ movs r0, 0xAD
+ lsls r0, 3
+ adds r6, r5, r0
+ ldrh r0, [r6]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _08135E30
+ ldrh r0, [r6]
+ ldr r1, _08135E28
+ bl itemid_copy_name
+ ldr r0, _08135E2C
+ strh r4, [r0]
+ b _08135E40
+ .align 2, 0
+_08135E20: .4byte gSaveBlock2
+_08135E24: .4byte 0x00000554
+_08135E28: .4byte gStringVar1
+_08135E2C: .4byte gScriptResult
+_08135E30:
+ ldr r1, _08135E48
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08135E4C
+ adds r0, r5, r1
+ adds r0, r7, r0
+ movs r1, 0x6
+ strb r1, [r0]
+_08135E40:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135E48: .4byte gScriptResult
+_08135E4C: .4byte 0x00000556
+ thumb_func_end sub_8135DEC
+
+ thumb_func_start sub_8135E50
+sub_8135E50: @ 8135E50
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r6, _08135ED4
+ ldr r1, _08135ED8
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r0, 0
+ movs r7, 0x44
+ cmp r1, 0
+ beq _08135E6C
+ movs r7, 0x45
+_08135E6C:
+ ldr r4, _08135EDC
+ movs r0, 0
+ strh r0, [r4]
+ adds r0, r1, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x37
+ bls _08135EBA
+ movs r5, 0
+ ldr r0, _08135EE0
+ adds r0, r6
+ mov r8, r0
+ adds r6, r4, 0
+_08135E8A:
+ mov r1, r8
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _08135EE4
+ adds r4, r1, r0
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _08135EB4
+ movs r0, 0x1
+ strh r0, [r6]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+_08135EB4:
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08135E8A
+_08135EBA:
+ ldr r0, _08135EDC
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08135EC8
+ movs r0, 0x2A
+ bl sav12_xor_increment
+_08135EC8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135ED4: .4byte gSaveBlock2
+_08135ED8: .4byte 0x00000554
+_08135EDC: .4byte gScriptResult
+_08135EE0: .4byte 0x00000565
+_08135EE4: .4byte gPlayerParty
+ thumb_func_end sub_8135E50
+
+ thumb_func_start unref_sub_8135EE8
+unref_sub_8135EE8: @ 8135EE8
+ push {r4-r7,lr}
+ ldr r7, _08135F0C
+ ldr r0, _08135F10
+ adds r2, r7, r0
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08135F18
+ ldr r4, _08135F14
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x14
+ b _08135F2A
+ .align 2, 0
+_08135F0C: .4byte gSaveBlock2 + 0x498
+_08135F10: .4byte 0xfffffb68
+_08135F14: .4byte gUnknown_08405E7E
+_08135F18:
+ ldr r4, _08135FA8
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x1E
+_08135F2A:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r7, 0x1]
+ adds r0, r7, 0
+ adds r0, 0xC
+ ldr r4, _08135FAC
+ adds r1, r4, 0
+ bl sub_8052D10
+ adds r0, r7, 0x4
+ subs r4, 0xA
+ adds r1, r4, 0
+ bl StringCopy8
+ movs r0, 0x1
+ strh r0, [r7, 0x2]
+ movs r5, 0x7
+ movs r4, 0
+ ldr r0, _08135FB0
+ ldr r1, _08135FB4
+ adds r6, r0, r1
+ adds r3, r7, 0
+ adds r3, 0x10
+ adds r2, r7, 0
+ adds r2, 0x28
+ adds r1, r7, 0
+ adds r1, 0x1C
+_08135F64:
+ ldrh r0, [r6]
+ strh r0, [r3]
+ strh r5, [r1]
+ adds r0, r5, 0x6
+ strh r0, [r2]
+ adds r5, 0x1
+ adds r6, 0x2
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08135F64
+ movs r4, 0
+_08135F80:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08135FB8
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x34
+ adds r1, r7, r1
+ bl sub_803AF78
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08135F80
+ adds r0, r7, 0
+ bl sub_8136088
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135FA8: .4byte gUnknown_08405E60
+_08135FAC: .4byte gSaveBlock2 + 0xA
+_08135FB0: .4byte gSaveBlock1
+_08135FB4: .4byte 0x00002b28
+_08135FB8: .4byte gPlayerParty
+ thumb_func_end unref_sub_8135EE8
+
+ thumb_func_start sub_8135FBC
+sub_8135FBC: @ 8135FBC
+ ldr r1, _08135FCC
+ ldr r0, _08135FD0
+ ldr r2, _08135FD4
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08135FCC: .4byte gTrainerClassToPicIndex
+_08135FD0: .4byte gSaveBlock2
+_08135FD4: .4byte 0x00000499
+ thumb_func_end sub_8135FBC
+
+ thumb_func_start sub_8135FD8
+sub_8135FD8: @ 8135FD8
+ ldr r1, _08135FE8
+ ldr r0, _08135FEC
+ ldr r2, _08135FF0
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08135FE8: .4byte gTrainerClassToNameIndex
+_08135FEC: .4byte gSaveBlock2
+_08135FF0: .4byte 0x00000499
+ thumb_func_end sub_8135FD8
+
+ thumb_func_start sub_8135FF4
+sub_8135FF4: @ 8135FF4
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r4, _08136018
+_08135FFC:
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _08135FFC
+ adds r1, r3, r2
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136018: .4byte gSaveBlock2 + 0x49C
+ thumb_func_end sub_8135FF4
+
+ thumb_func_start sub_813601C
+sub_813601C: @ 813601C
+ push {r4,r5,lr}
+ ldr r1, _08136044
+ movs r0, 0
+ strh r0, [r1]
+ ldr r5, _08136048
+ movs r3, 0
+ movs r2, 0
+ adds r4, r1, 0
+ adds r1, r5, 0
+_0813602E:
+ ldm r1!, {r0}
+ orrs r3, r0
+ adds r2, 0x1
+ cmp r2, 0x2D
+ bls _0813602E
+ cmp r3, 0
+ bne _0813604C
+ movs r0, 0x1
+ strh r0, [r4]
+ b _08136078
+ .align 2, 0
+_08136044: .4byte gScriptResult
+_08136048: .4byte gSaveBlock2 + 0x498
+_0813604C:
+ movs r3, 0
+ movs r2, 0
+ ldr r4, _08136080
+ adds r1, r5, 0
+_08136054:
+ ldm r1!, {r0}
+ adds r3, r0
+ adds r2, 0x1
+ cmp r2, 0x2D
+ bls _08136054
+ movs r1, 0xAA
+ lsls r1, 3
+ adds r0, r4, r1
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08136078
+ subs r1, 0xB8
+ adds r0, r4, r1
+ bl sub_81360AC
+ ldr r1, _08136084
+ movs r0, 0x1
+ strh r0, [r1]
+_08136078:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136080: .4byte gSaveBlock2
+_08136084: .4byte gScriptResult
+ thumb_func_end sub_813601C
+
+ thumb_func_start sub_8136088
+sub_8136088: @ 8136088
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xB8
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08136096:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x2D
+ bls _08136096
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136088
+
+ thumb_func_start sub_81360AC
+sub_81360AC: @ 81360AC
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_081360B2:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x2E
+ bls _081360B2
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81360AC
+
+ thumb_func_start sub_81360C0
+sub_81360C0: @ 81360C0
+ push {lr}
+ ldr r0, _081360CC
+ bl sub_813545C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081360CC: .4byte gSaveBlock2 + 0x4A8
+ thumb_func_end sub_81360C0
+
+ thumb_func_start sub_81360D0
+sub_81360D0: @ 81360D0
+ push {lr}
+ ldr r0, _081360E4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081360EC
+ ldr r1, _081360E8
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _08136102
+ .align 2, 0
+_081360E4: .4byte gUnknown_02024D26
+_081360E8: .4byte gStringVar4
+_081360EC:
+ cmp r0, 0x1
+ bne _081360FC
+ ldr r0, _081360F8
+ bl sub_813545C
+ b _08136102
+ .align 2, 0
+_081360F8: .4byte gSaveBlock2 + 0x4C0
+_081360FC:
+ ldr r0, _08136108
+ bl sub_813545C
+_08136102:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136108: .4byte gSaveBlock2 + 0x4B4
+ thumb_func_end sub_81360D0
+
+ thumb_func_start sub_813610C
+sub_813610C: @ 813610C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0813612C
+_08136112:
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0813611E
+ bl sub_80BFD20
+_0813611E:
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _08136112
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813612C: .4byte gSaveBlock2 + 0x556
+ thumb_func_end sub_813610C
+
+ thumb_func_start sub_8136130
+sub_8136130: @ 8136130
+ push {r4,r5,lr}
+ ldr r4, _0813615C
+ ldr r2, _08136160
+ ldr r3, [r2]
+ ldr r5, _08136164
+ adds r2, r3, r5
+ str r2, [r4]
+ str r0, [r2, 0x8]
+ str r1, [r2, 0x4]
+ ldr r0, _08136168
+ adds r3, r0
+ movs r0, 0x2
+ strb r0, [r3]
+ ldr r0, _0813616C
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, _08136170
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813615C: .4byte gUnknown_02039304
+_08136160: .4byte gUnknown_083DFEC4
+_08136164: .4byte 0x0000d164
+_08136168: .4byte 0x0000d162
+_0813616C: .4byte sub_8136294
+_08136170: .4byte sub_8136244
+ thumb_func_end sub_8136130
+
+ thumb_func_start sub_8136174
+sub_8136174: @ 8136174
+ push {r4,r5,lr}
+ ldr r5, _081361C4
+ ldr r1, [r5]
+ ldr r0, _081361C8
+ ldr r0, [r0]
+ str r0, [r1, 0x8]
+ ldr r0, _081361CC
+ ldr r0, [r0]
+ str r0, [r1, 0x4]
+ ldr r4, _081361D0
+ ldrb r0, [r4]
+ bl sub_81370E4
+ strb r0, [r4]
+ ldr r5, [r5]
+ movs r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _0813619E
+ movs r1, 0x1
+_0813619E:
+ adds r0, r5, 0
+ adds r0, 0x56
+ strb r1, [r0]
+ ldr r0, _081361D4
+ ldr r0, [r0]
+ ldr r1, _081361D8
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, _081361DC
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, _081361E0
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081361C4: .4byte gUnknown_02039304
+_081361C8: .4byte gUnknown_0203930C
+_081361CC: .4byte gUnknown_02039308
+_081361D0: .4byte gUnknown_02039310
+_081361D4: .4byte gUnknown_083DFEC4
+_081361D8: .4byte 0x0000d162
+_081361DC: .4byte sub_8136294
+_081361E0: .4byte sub_81361E4
+ thumb_func_end sub_8136174
+
+ thumb_func_start sub_81361E4
+sub_81361E4: @ 81361E4
+ push {r4,lr}
+ ldr r4, _08136220
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r4, [r4]
+ ldr r1, [r4]
+ ldr r0, _08136224
+ cmp r1, r0
+ bne _0813621A
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x50
+ strb r1, [r0]
+ ldr r0, _08136228
+ bl SetMainCallback2
+_0813621A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136220: .4byte gUnknown_02039304
+_08136224: .4byte sub_81365C8
+_08136228: .4byte sub_813622C
+ thumb_func_end sub_81361E4
+
+ thumb_func_start sub_813622C
+sub_813622C: @ 813622C
+ push {lr}
+ bl sub_81368A4
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813622C
+
+ thumb_func_start sub_8136244
+sub_8136244: @ 8136244
+ push {lr}
+ ldr r0, _08136260
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136260: .4byte gUnknown_02039304
+ thumb_func_end sub_8136244
+
+ thumb_func_start sub_8136264
+sub_8136264: @ 8136264
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ movs r0, 0x6
+ bl sub_80F5CDC
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136264
+
+ thumb_func_start launch_c3_walk_stairs_and_run_once
+launch_c3_walk_stairs_and_run_once: @ 8136280
+ ldr r1, _08136290
+ ldr r1, [r1]
+ str r0, [r1]
+ adds r1, 0x50
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08136290: .4byte gUnknown_02039304
+ thumb_func_end launch_c3_walk_stairs_and_run_once
+
+ thumb_func_start sub_8136294
+sub_8136294: @ 8136294
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _081362B4
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x16
+ bls _081362A8
+ b _0813657A
+_081362A8:
+ lsls r0, 2
+ ldr r1, _081362B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081362B4: .4byte gUnknown_02039304
+_081362B8: .4byte _081362BC
+ .align 2, 0
+_081362BC:
+ .4byte _08136318
+ .4byte _08136354
+ .4byte _0813635E
+ .4byte _08136366
+ .4byte _08136374
+ .4byte _08136380
+ .4byte _0813638C
+ .4byte _081363B8
+ .4byte _081363C8
+ .4byte _081363DC
+ .4byte _081363EE
+ .4byte _08136404
+ .4byte _08136448
+ .4byte _08136464
+ .4byte _08136488
+ .4byte _08136494
+ .4byte _0813649A
+ .4byte _081364D8
+ .4byte _081364FC
+ .4byte _08136508
+ .4byte _08136520
+ .4byte _08136538
+ .4byte _0813656C
+_08136318:
+ bl is_c1_link_related_active
+ ldr r1, _08136344
+ ldr r1, [r1]
+ ldr r2, _08136348
+ adds r1, r2
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08136330
+ b _0813657A
+_08136330:
+ ldr r4, _0813634C
+ ldr r0, [r4]
+ adds r0, 0x55
+ strb r1, [r0]
+ ldr r0, _08136350
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r1, [r4]
+ b _08136528
+ .align 2, 0
+_08136344: .4byte gUnknown_083DFEC4
+_08136348: .4byte 0x00006dac
+_0813634C: .4byte gUnknown_02039304
+_08136350: .4byte sub_81365A0
+_08136354:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ b _08136524
+_0813635E:
+ movs r0, 0
+ bl SetVBlankCallback
+ b _08136524
+_08136366:
+ ldr r0, _08136370
+ bl SetUpWindowConfig
+ b _08136524
+ .align 2, 0
+_08136370: .4byte gWindowConfig_81E7080
+_08136374:
+ ldr r0, _0813637C
+ bl MultistepInitMenuWindowBegin
+ b _08136524
+ .align 2, 0
+_0813637C: .4byte gWindowConfig_81E7080
+_08136380:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0813638A
+ b _0813657A
+_0813638A:
+ b _08136524
+_0813638C:
+ ldr r0, _081363AC
+ ldr r1, [r0]
+ ldr r4, _081363B0
+ adds r0, r1, r4
+ movs r2, 0
+ strb r2, [r0]
+ ldr r4, _081363B4
+ adds r0, r1, r4
+ str r2, [r0]
+ movs r0, 0xC3
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x20
+ strh r0, [r1]
+ ldr r1, [r3]
+ b _08136528
+ .align 2, 0
+_081363AC: .4byte gUnknown_083DFEC4
+_081363B0: .4byte 0x000076aa
+_081363B4: .4byte 0x000087e0
+_081363B8:
+ bl sub_80F2688
+ ldr r0, _081363D8
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081363C8:
+ bl sub_80F26BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081363D4
+ b _0813657A
+_081363D4:
+ b _08136524
+ .align 2, 0
+_081363D8: .4byte gUnknown_02039304
+_081363DC:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r0, _08136400
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081363EE:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081363FC
+ b _0813657A
+_081363FC:
+ b _08136524
+ .align 2, 0
+_08136400: .4byte gUnknown_02039304
+_08136404:
+ ldr r1, _08136434
+ movs r0, 0x14
+ strh r0, [r1]
+ bl CalculatePlayerPartyCount
+ ldr r1, _08136438
+ ldr r4, [r1]
+ ldr r2, _0813643C
+ adds r1, r4, r2
+ movs r5, 0
+ strb r0, [r1]
+ ldr r1, _08136440
+ adds r0, r4, r1
+ strb r5, [r0]
+ subs r2, 0xC0
+ adds r0, r4, r2
+ str r5, [r0]
+ bl sub_80F4BD0
+ ldr r0, _08136444
+ adds r4, r0
+ strh r5, [r4]
+ b _08136524
+ .align 2, 0
+_08136434: .4byte gKeyRepeatStartDelay
+_08136438: .4byte gUnknown_083DFEC4
+_0813643C: .4byte 0x00008828
+_08136440: .4byte 0x00009344
+_08136444: .4byte 0x0000d160
+_08136448:
+ bl sub_80F1778
+ lsls r0, 24
+ cmp r0, 0
+ beq _08136454
+ b _0813657A
+_08136454:
+ ldr r0, _08136460
+ movs r1, 0x6
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ b _08136524
+ .align 2, 0
+_08136460: .4byte REG_BG2VOFS
+_08136464:
+ movs r0, 0
+ bl sub_80F2E18
+ ldr r0, _0813647C
+ ldr r0, [r0]
+ ldr r1, _08136480
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _08136484
+ strh r0, [r1, 0x26]
+ b _08136524
+ .align 2, 0
+_0813647C: .4byte gUnknown_083DFEC4
+_08136480: .4byte 0x00008768
+_08136484: .4byte 0x0000ffd8
+_08136488:
+ bl sub_80F170C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813657A
+ b _08136524
+_08136494:
+ bl sub_80F33A8
+ b _08136524
+_0813649A:
+ ldr r1, _081364C4
+ movs r2, 0
+ str r2, [sp]
+ ldr r0, _081364C8
+ mov r4, sp
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _081364CC
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _081364D0
+ strh r2, [r0]
+ subs r0, 0x2
+ strh r2, [r0]
+ ldr r1, _081364D4
+ movs r2, 0xF8
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, [r3]
+ b _08136528
+ .align 2, 0
+_081364C4: .4byte 0x0600f800
+_081364C8: .4byte 0x040000d4
+_081364CC: .4byte 0x85000200
+_081364D0: .4byte REG_BG1VOFS
+_081364D4: .4byte REG_BG1CNT
+_081364D8:
+ ldr r0, _081364F0
+ ldr r1, [r0]
+ ldr r4, _081364F4
+ adds r0, r1, r4
+ ldr r2, _081364F8
+ adds r1, r2
+ bl sub_80F567C
+ bl sub_80F5B38
+ b _08136524
+ .align 2, 0
+_081364F0: .4byte gUnknown_083DFEC4
+_081364F4: .4byte 0x00008ff0
+_081364F8: .4byte 0x00009004
+_081364FC:
+ bl sub_80F5B50
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813657A
+ b _08136524
+_08136508:
+ ldr r0, _08136518
+ ldr r0, [r0]
+ ldr r4, _0813651C
+ adds r0, r4
+ bl sub_80F556C
+ b _08136524
+ .align 2, 0
+_08136518: .4byte gUnknown_083DFEC4
+_0813651C: .4byte 0x00009004
+_08136520:
+ bl sub_80F1934
+_08136524:
+ ldr r0, _08136534
+ ldr r1, [r0]
+_08136528:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0813657A
+ .align 2, 0
+_08136534: .4byte gUnknown_02039304
+_08136538:
+ ldr r1, _08136584
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x9B
+ strh r0, [r1]
+ ldr r0, _08136588
+ ldr r2, _0813658C
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08136590
+ ldr r4, _08136594
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1B
+ strh r0, [r1]
+ subs r1, 0x38
+ movs r0, 0x28
+ strh r0, [r1]
+ subs r1, 0x12
+ ldr r2, _08136598
+ adds r0, r2, 0
+ strh r0, [r1]
+_0813656C:
+ ldr r0, [r3]
+ adds r0, 0x55
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0813659C
+ bl launch_c3_walk_stairs_and_run_once
+_0813657A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136584: .4byte REG_WIN0H
+_08136588: .4byte REG_WIN0V
+_0813658C: .4byte 0x00003273
+_08136590: .4byte REG_WININ
+_08136594: .4byte 0x00003f3f
+_08136598: .4byte 0x00007f40
+_0813659C: .4byte sub_81365C8
+ thumb_func_end sub_8136294
+
+ thumb_func_start sub_81365A0
+sub_81365A0: @ 81365A0
+ push {r4,lr}
+ ldr r1, _081365C4
+ ldr r0, [r1]
+ adds r0, 0x55
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081365BE
+ adds r4, r1, 0
+_081365B0:
+ bl sub_8136294
+ ldr r0, [r4]
+ adds r0, 0x55
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081365B0
+_081365BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081365C4: .4byte gUnknown_02039304
+ thumb_func_end sub_81365A0
+
+ thumb_func_start sub_81365C8
+sub_81365C8: @ 81365C8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _081365E0
+ ldr r0, [r4]
+ adds r0, 0x50
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _081365E4
+ cmp r1, 0x1
+ beq _0813660C
+ b _08136626
+ .align 2, 0
+_081365E0: .4byte gUnknown_02039304
+_081365E4:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08136608
+ bl SetVBlankCallback
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08136626
+ .align 2, 0
+_08136608: .4byte sub_8136264
+_0813660C:
+ ldr r0, _08136630
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08136626
+ bl sub_80F3C94
+ bl sub_80F3D00
+ ldr r0, _08136634
+ bl launch_c3_walk_stairs_and_run_once
+_08136626:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136630: .4byte gPaletteFade
+_08136634: .4byte sub_8136638
+ thumb_func_end sub_81365C8
+
+ thumb_func_start sub_8136638
+sub_8136638: @ 8136638
+ push {r4,lr}
+ ldr r0, _08136654
+ ldr r0, [r0]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08136648
+ b _081367FA
+_08136648:
+ lsls r0, 2
+ ldr r1, _08136658
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08136654: .4byte gUnknown_02039304
+_08136658: .4byte _0813665C
+ .align 2, 0
+_0813665C:
+ .4byte _0813667C
+ .4byte _08136748
+ .4byte _08136754
+ .4byte _08136774
+ .4byte _081367FA
+ .4byte _08136780
+ .4byte _08136798
+ .4byte _081367E0
+_0813667C:
+ ldr r2, _081366A4
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081366AC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F5060
+ bl move_anim_execute
+ ldr r0, _081366A8
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _081367F8
+ .align 2, 0
+_081366A4: .4byte gMain
+_081366A8: .4byte gUnknown_02039304
+_081366AC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081366D4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80F5060
+ bl move_anim_execute
+ ldr r0, _081366D0
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _081367F8
+ .align 2, 0
+_081366D0: .4byte gUnknown_02039304
+_081366D4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081366F4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _081366F0
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _081367F8
+ .align 2, 0
+_081366F0: .4byte gUnknown_02039304
+_081366F4:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081366FE
+ b _081367FA
+_081366FE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08136728
+ ldr r0, [r0]
+ ldr r2, _0813672C
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, _08136730
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08136738
+ ldr r0, _08136734
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _081367F8
+ .align 2, 0
+_08136728: .4byte gUnknown_083DFEC4
+_0813672C: .4byte 0x000087dc
+_08136730: .4byte 0x000087da
+_08136734: .4byte gUnknown_02039304
+_08136738:
+ ldr r0, _08136744
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x5
+ b _081367F8
+ .align 2, 0
+_08136744: .4byte gUnknown_02039304
+_08136748:
+ bl gpu_sync_bg_show
+ lsls r0, 24
+ cmp r0, 0
+ bne _081367FA
+ b _08136784
+_08136754:
+ bl sub_8055870
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _081367FA
+ bl sub_80F1934
+ bl sub_80F3D00
+ ldr r0, _08136770
+ ldr r0, [r0]
+ adds r0, 0x50
+ strb r4, [r0]
+ b _081367FA
+ .align 2, 0
+_08136770: .4byte gUnknown_02039304
+_08136774:
+ ldr r0, _0813677C
+ bl launch_c3_walk_stairs_and_run_once
+ b _081367FA
+ .align 2, 0
+_0813677C: .4byte sub_8136B44
+_08136780:
+ bl sub_8136BB8
+_08136784:
+ ldr r0, _08136794
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081367FA
+ .align 2, 0
+_08136794: .4byte gUnknown_02039304
+_08136798:
+ bl sub_8136C40
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081367B8
+ cmp r1, 0
+ bgt _081367B2
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081367F0
+ b _081367FA
+_081367B2:
+ cmp r1, 0x1
+ bne _081367FA
+ b _081367F0
+_081367B8:
+ bl sub_8137058
+ lsls r0, 24
+ cmp r0, 0
+ beq _081367D4
+ bl sub_8136D60
+ ldr r0, _081367D0
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x7
+ b _081367F8
+ .align 2, 0
+_081367D0: .4byte gUnknown_02039304
+_081367D4:
+ ldr r0, _081367DC
+ bl launch_c3_walk_stairs_and_run_once
+ b _081367FA
+ .align 2, 0
+_081367DC: .4byte sub_8136808
+_081367E0:
+ ldr r0, _08136800
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081367FA
+ bl sub_8136D8C
+_081367F0:
+ ldr r0, _08136804
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0
+_081367F8:
+ strb r1, [r0]
+_081367FA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136800: .4byte gMain
+_08136804: .4byte gUnknown_02039304
+ thumb_func_end sub_8136638
+
+ thumb_func_start sub_8136808
+sub_8136808: @ 8136808
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08136820
+ ldr r0, [r5]
+ adds r0, 0x50
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08136824
+ cmp r4, 0x1
+ beq _08136874
+ b _0813688C
+ .align 2, 0
+_08136820: .4byte gUnknown_02039304
+_08136824:
+ ldr r0, _08136860
+ ldr r0, [r0]
+ ldr r1, _08136864
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81370A4
+ ldr r1, _08136868
+ strb r0, [r1]
+ ldr r1, _0813686C
+ ldr r2, [r5]
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ ldr r1, _08136870
+ ldr r0, [r2, 0x8]
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r5]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0813688C
+ .align 2, 0
+_08136860: .4byte gUnknown_083DFEC4
+_08136864: .4byte 0x000087dc
+_08136868: .4byte gUnknown_02039310
+_0813686C: .4byte gUnknown_02039308
+_08136870: .4byte gUnknown_0203930C
+_08136874:
+ ldr r0, _08136894
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813688C
+ ldr r0, _08136898
+ ldr r1, _0813689C
+ str r1, [r0, 0x8]
+ ldr r0, _081368A0
+ bl SetMainCallback2
+_0813688C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136894: .4byte gPaletteFade
+_08136898: .4byte gMain
+_0813689C: .4byte sub_8136174
+_081368A0: .4byte sub_8147ADC
+ thumb_func_end sub_8136808
+
+ thumb_func_start sub_81368A4
+sub_81368A4: @ 81368A4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _081368C4
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _081368B8
+ b _081369B8
+_081368B8:
+ lsls r0, 2
+ ldr r1, _081368C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081368C4: .4byte gUnknown_02039304
+_081368C8: .4byte _081368CC
+ .align 2, 0
+_081368CC:
+ .4byte _081368E8
+ .4byte _08136922
+ .4byte _0813692E
+ .4byte _0813694C
+ .4byte _0813695A
+ .4byte _0813696C
+ .4byte _08136998
+_081368E8:
+ ldr r0, _0813690C
+ ldr r0, [r0]
+ ldr r1, _08136910
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _08136914
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08136918
+ ldr r0, [r4]
+ adds r0, 0x56
+ ldrb r0, [r0]
+ bl sub_80F5060
+ ldr r1, [r4]
+ b _08136986
+ .align 2, 0
+_0813690C: .4byte gUnknown_083DFEC4
+_08136910: .4byte 0x000087dc
+_08136914: .4byte gUnknown_02039310
+_08136918:
+ ldr r0, [r4]
+ adds r0, 0x50
+ movs r1, 0x3
+ strb r1, [r0]
+ b _081369B8
+_08136922:
+ bl gpu_sync_bg_show
+ lsls r0, 24
+ cmp r0, 0
+ bne _081369B8
+ b _08136982
+_0813692E:
+ bl sub_8055870
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _081369B8
+ bl sub_80F1934
+ ldr r0, _08136948
+ ldr r0, [r0]
+ adds r0, 0x50
+ strb r4, [r0]
+ b _081369B8
+ .align 2, 0
+_08136948: .4byte gUnknown_02039304
+_0813694C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ b _08136982
+_0813695A:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _08136968
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, [r4]
+ b _08136986
+ .align 2, 0
+_08136968: .4byte 0x00007f40
+_0813696C:
+ ldr r0, _08136990
+ bl SetVBlankCallback
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_08136982:
+ ldr r0, _08136994
+ ldr r1, [r0]
+_08136986:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081369B8
+ .align 2, 0
+_08136990: .4byte sub_8136264
+_08136994: .4byte gUnknown_02039304
+_08136998:
+ ldr r0, _081369C0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081369B8
+ bl sub_80F3C94
+ bl sub_80F3D00
+ ldr r0, _081369C4
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, _081369C8
+ bl SetMainCallback2
+_081369B8:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081369C0: .4byte gPaletteFade
+_081369C4: .4byte sub_81369CC
+_081369C8: .4byte sub_8136244
+ thumb_func_end sub_81368A4
+
+ thumb_func_start sub_81369CC
+sub_81369CC: @ 81369CC
+ push {r4-r6,lr}
+ ldr r1, _081369E8
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _081369DE
+ b _08136B32
+_081369DE:
+ lsls r0, 2
+ ldr r1, _081369EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081369E8: .4byte gUnknown_02039304
+_081369EC: .4byte _081369F0
+ .align 2, 0
+_081369F0:
+ .4byte _08136A08
+ .4byte _08136A48
+ .4byte _08136A5C
+ .4byte _08136AAC
+ .4byte _08136AEC
+ .4byte _08136B0E
+_08136A08:
+ ldr r3, [r4]
+ ldr r2, _08136A38
+ str r2, [r3, 0xC]
+ ldr r0, _08136A3C
+ ldr r1, [r0]
+ ldr r5, _08136A40
+ adds r0, r1, r5
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _08136A44
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x64
+ muls r0, r1
+ adds r0, r2
+ str r0, [r3, 0xC]
+ bl move_anim_execute
+ b _08136B02
+ .align 2, 0
+_08136A38: .4byte gPlayerParty
+_08136A3C: .4byte gUnknown_083DFEC4
+_08136A40: .4byte 0x000087dc
+_08136A44: .4byte 0x0000893e
+_08136A48:
+ ldr r0, _08136A58
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08136B32
+ b _08136B02
+ .align 2, 0
+_08136A58: .4byte gMain
+_08136A5C:
+ bl sub_8136EF0
+ ldr r6, _08136A98
+ ldr r0, [r6]
+ adds r0, 0x5C
+ ldr r1, _08136A9C
+ ldr r4, [r1]
+ ldr r1, _08136AA0
+ adds r5, r4, r1
+ adds r1, r5, 0
+ bl sub_80F567C
+ ldr r1, _08136AA4
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08136AA8
+ adds r0, r1
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F5550
+ bl sub_8137138
+ ldr r1, [r6]
+ b _08136B04
+ .align 2, 0
+_08136A98: .4byte gUnknown_02039304
+_08136A9C: .4byte gUnknown_083DFEC4
+_08136AA0: .4byte 0x00009040
+_08136AA4: .4byte 0x00008fe9
+_08136AA8: .4byte 0x00009004
+_08136AAC:
+ bl sub_80F555C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08136B32
+ ldr r0, _08136AE0
+ ldr r0, [r0]
+ ldr r5, _08136AE4
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_81370A4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F7224
+ bl sub_80F3D00
+ ldr r1, _08136AE8
+ ldr r0, [r1]
+ adds r0, 0x52
+ strb r4, [r0]
+ ldr r1, [r1]
+ b _08136B04
+ .align 2, 0
+_08136AE0: .4byte gUnknown_083DFEC4
+_08136AE4: .4byte 0x000087dc
+_08136AE8: .4byte gUnknown_02039304
+_08136AEC:
+ ldr r1, [r4]
+ adds r1, 0x52
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ bls _08136B32
+ bl sub_8136C6C
+_08136B02:
+ ldr r1, [r4]
+_08136B04:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08136B32
+_08136B0E:
+ ldr r0, _08136B38
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08136B32
+ bl sub_8136D00
+ lsls r0, 24
+ cmp r0, 0
+ bne _08136B32
+ ldr r0, _08136B3C
+ ldrb r0, [r0]
+ bl sub_810CA6C
+ ldr r0, _08136B40
+ bl launch_c3_walk_stairs_and_run_once
+_08136B32:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136B38: .4byte gMain
+_08136B3C: .4byte word_203855E
+_08136B40: .4byte sub_8136B44
+ thumb_func_end sub_81369CC
+
+ thumb_func_start sub_8136B44
+sub_8136B44: @ 8136B44
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08136B60
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x50
+ ldrb r1, [r2]
+ cmp r1, 0x1
+ beq _08136B80
+ cmp r1, 0x1
+ bgt _08136B64
+ cmp r1, 0
+ beq _08136B6E
+ b _08136BAE
+ .align 2, 0
+_08136B60: .4byte gUnknown_02039304
+_08136B64:
+ cmp r1, 0x2
+ beq _08136B98
+ cmp r1, 0x3
+ beq _08136BA8
+ b _08136BAE
+_08136B6E:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08136B9C
+_08136B80:
+ ldr r0, _08136B94
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08136BAE
+ movs r0, 0x2
+ strb r0, [r2]
+ b _08136BAE
+ .align 2, 0
+_08136B94: .4byte gPaletteFade
+_08136B98:
+ bl sub_80F5BDC
+_08136B9C:
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08136BAE
+_08136BA8:
+ ldr r0, [r0, 0x4]
+ bl SetMainCallback2
+_08136BAE:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136B44
+
+ thumb_func_start sub_8136BB8
+sub_8136BB8: @ 8136BB8
+ push {r4,lr}
+ ldr r0, _08136C28
+ ldr r0, [r0]
+ ldr r1, _08136C2C
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81370A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _08136C30
+ adds r0, r1
+ ldr r4, _08136C34
+ ldr r2, [r4]
+ adds r2, 0x10
+ movs r1, 0x2
+ bl GetMonData
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl StringGetEnd10
+ ldr r0, [r4]
+ adds r0, 0x10
+ ldr r1, _08136C38
+ bl StringAppend
+ ldr r0, _08136C3C
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, [r4]
+ adds r0, 0x10
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ movs r0, 0
+ bl MoveMenuCursor
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136C28: .4byte gUnknown_083DFEC4
+_08136C2C: .4byte 0x000087dc
+_08136C30: .4byte gPlayerParty
+_08136C34: .4byte gUnknown_02039304
+_08136C38: .4byte gOtherText_GetsAPokeBlock
+_08136C3C: .4byte gWindowConfig_81E709C
+ thumb_func_end sub_8136BB8
+
+ thumb_func_start sub_8136C40
+sub_8136C40: @ 8136C40
+ push {r4,lr}
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _08136C60
+ bl MenuZeroFillScreen
+ ldr r0, _08136C68
+ bl BasicInitMenuWindow
+_08136C60:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08136C68: .4byte gWindowConfig_81E7080
+ thumb_func_end sub_8136C40
+
+ thumb_func_start sub_8136C6C
+sub_8136C6C: @ 8136C6C
+ push {lr}
+ ldr r0, _08136C8C
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r3, _08136C90
+ ldr r0, [r3]
+ adds r0, 0x53
+ movs r1, 0
+ b _08136C9C
+ .align 2, 0
+_08136C8C: .4byte gWindowConfig_81E709C
+_08136C90: .4byte gUnknown_02039304
+_08136C94:
+ ldr r0, [r3]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+_08136C9C:
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08136CDC
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08136C94
+ ldr r0, _08136CD8
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08136CDC
+ adds r0, r2, 0
+ adds r0, 0x10
+ ldrb r1, [r1]
+ adds r2, 0x61
+ adds r2, r1
+ ldrb r2, [r2]
+ bl sub_8136DC0
+ b _08136CEE
+ .align 2, 0
+_08136CD8: .4byte gUnknown_02039304
+_08136CDC:
+ ldr r0, _08136CFC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x10
+ adds r1, 0x53
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8136DC0
+_08136CEE:
+ ldr r0, _08136CFC
+ ldr r0, [r0]
+ adds r0, 0x10
+ bl sub_8136DA0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136CFC: .4byte gUnknown_02039304
+ thumb_func_end sub_8136C6C
+
+ thumb_func_start sub_8136D00
+sub_8136D00: @ 8136D00
+ push {r4,r5,lr}
+ ldr r4, _08136D30
+ adds r3, r4, 0
+ movs r5, 0x5
+_08136D08:
+ ldr r0, [r3]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08136D34
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08136D3A
+ b _08136D08
+ .align 2, 0
+_08136D30: .4byte gUnknown_02039304
+_08136D34:
+ strb r5, [r1]
+ movs r0, 0
+ b _08136D5A
+_08136D3A:
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x10
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r1, [r1]
+ adds r2, 0x61
+ adds r2, r1
+ ldrb r2, [r2]
+ bl sub_8136DC0
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl sub_8136DA0
+ movs r0, 0x1
+_08136D5A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8136D00
+
+ thumb_func_start sub_8136D60
+sub_8136D60: @ 8136D60
+ push {lr}
+ ldr r0, _08136D84
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08136D88
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136D84: .4byte gWindowConfig_81E709C
+_08136D88: .4byte gOtherText_WontEat
+ thumb_func_end sub_8136D60
+
+ thumb_func_start sub_8136D8C
+sub_8136D8C: @ 8136D8C
+ push {lr}
+ bl MenuZeroFillScreen
+ ldr r0, _08136D9C
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136D9C: .4byte gWindowConfig_81E7080
+ thumb_func_end sub_8136D8C
+
+ thumb_func_start sub_8136DA0
+sub_8136DA0: @ 8136DA0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136DA0
+
+ thumb_func_start sub_8136DC0
+sub_8136DC0: @ 8136DC0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _08136DFC
+ cmp r2, 0
+ ble _08136DD8
+ movs r0, 0
+_08136DD8:
+ lsls r0, 16
+ ldr r1, _08136DF4
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, _08136DF8
+ adds r0, r4, 0
+ bl StringAppend
+ b _08136E04
+ .align 2, 0
+_08136DF4: .4byte gUnknown_08406134
+_08136DF8: .4byte gOtherText_WasEnhanced
+_08136DFC:
+ ldr r1, _08136E0C
+ adds r0, r4, 0
+ bl StringCopy
+_08136E04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136E0C: .4byte gOtherText_NothingChanged
+ thumb_func_end sub_8136DC0
+
+ thumb_func_start sub_8136E10
+sub_8136E10: @ 8136E10
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r4, 0
+ ldr r7, _08136E3C
+_08136E1A:
+ lsls r0, r4, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl GetMonData
+ adds r1, r5, r4
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08136E1A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136E3C: .4byte gUnknown_08406118
+ thumb_func_end sub_8136E10
+
+ thumb_func_start sub_8136E40
+sub_8136E40: @ 8136E40
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _08136EDC
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_8136F74
+ movs r4, 0
+ mov r7, sp
+_08136E64:
+ ldr r1, _08136EE8
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r7]
+ ldr r1, _08136EEC
+ ldr r1, [r1]
+ lsls r2, r4, 1
+ adds r1, 0x66
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bge _08136E92
+ movs r1, 0
+_08136E92:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08136E9C
+ movs r1, 0xFF
+_08136E9C:
+ strb r1, [r7]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08136E64
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ ldrb r2, [r2, 0x6]
+ adds r1, r0, r2
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08136ECE
+ movs r1, 0xFF
+_08136ECE:
+ mov r0, sp
+ strb r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x30
+ mov r2, sp
+ bl SetMonData
+_08136EDC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136EE8: .4byte gUnknown_08406118
+_08136EEC: .4byte gUnknown_02039304
+ thumb_func_end sub_8136E40
+
+ thumb_func_start sub_8136EF0
+sub_8136EF0: @ 8136EF0
+ push {r4,r5,lr}
+ ldr r5, _08136F60
+ ldr r0, _08136F64
+ ldr r1, [r0]
+ ldr r2, _08136F68
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _08136F6C
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x64
+ muls r0, r1
+ adds r5, r0, r5
+ ldr r4, _08136F70
+ ldr r1, [r4]
+ adds r1, 0x57
+ adds r0, r5, 0
+ bl sub_8136E10
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ adds r1, r5, 0
+ bl sub_8136E40
+ ldr r1, [r4]
+ adds r1, 0x5C
+ adds r0, r5, 0
+ bl sub_8136E10
+ movs r3, 0
+_08136F36:
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x61
+ adds r2, r3
+ adds r1, r0, 0
+ adds r1, 0x5C
+ adds r1, r3
+ adds r0, 0x57
+ adds r0, r3
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ subs r1, r0
+ strb r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _08136F36
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136F60: .4byte gPlayerParty
+_08136F64: .4byte gUnknown_083DFEC4
+_08136F68: .4byte 0x000087dc
+_08136F6C: .4byte 0x0000893e
+_08136F70: .4byte gUnknown_02039304
+ thumb_func_end sub_8136EF0
+
+ thumb_func_start sub_8136F74
+sub_8136F74: @ 8136F74
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r1
+ ldr r1, _08136FBC
+ ldr r3, [r1]
+ ldrb r1, [r0, 0x1]
+ adds r2, r3, 0
+ adds r2, 0x66
+ strh r1, [r2]
+ ldrb r2, [r0, 0x5]
+ adds r1, r3, 0
+ adds r1, 0x68
+ strh r2, [r1]
+ ldrb r1, [r0, 0x4]
+ adds r2, r3, 0
+ adds r2, 0x6A
+ strh r1, [r2]
+ ldrb r2, [r0, 0x3]
+ adds r1, r3, 0
+ adds r1, 0x6C
+ strh r2, [r1]
+ ldrb r1, [r0, 0x2]
+ adds r0, r3, 0
+ adds r0, 0x6E
+ strh r1, [r0]
+ ldr r0, _08136FC0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _08136FC4
+ movs r0, 0x1
+ b _08136FCA
+ .align 2, 0
+_08136FBC: .4byte gUnknown_02039304
+_08136FC0: .4byte gUnknown_02039312
+_08136FC4:
+ cmp r0, 0
+ bge _08137040
+ movs r0, 0xFF
+_08136FCA:
+ movs r2, 0
+ lsls r0, 24
+ mov r9, r0
+ ldr r0, _08137050
+ mov r8, r0
+_08136FD4:
+ mov r0, r8
+ ldr r1, [r0]
+ lsls r0, r2, 24
+ asrs r6, r0, 24
+ lsls r7, r6, 1
+ adds r1, 0x66
+ adds r1, r7
+ movs r2, 0
+ ldrsh r4, [r1, r2]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0813700C
+ lsls r0, r5, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 24
+_0813700C:
+ ldr r0, _08137054
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ mov r0, r10
+ bl sub_8040A54
+ lsls r0, 24
+ asrs r2, r0, 24
+ cmp r0, r9
+ bne _08137034
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x66
+ adds r0, r7
+ lsls r1, r5, 24
+ asrs r1, 24
+ muls r1, r2
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+_08137034:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _08136FD4
+_08137040:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137050: .4byte gUnknown_02039304
+_08137054: .4byte gUnknown_0840612C
+ thumb_func_end sub_8136F74
+
+ thumb_func_start sub_8137058
+sub_8137058: @ 8137058
+ push {lr}
+ ldr r0, _0813708C
+ ldr r1, _08137090
+ ldr r2, [r1]
+ ldr r3, _08137094
+ adds r1, r2, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ lsls r1, 2
+ adds r2, r1
+ ldr r1, _08137098
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 27
+ lsrs r1, 27
+ movs r2, 0x64
+ muls r1, r2
+ adds r0, r1, r0
+ movs r1, 0x30
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _0813709C
+ movs r0, 0
+ b _0813709E
+ .align 2, 0
+_0813708C: .4byte gPlayerParty
+_08137090: .4byte gUnknown_083DFEC4
+_08137094: .4byte 0x000087dc
+_08137098: .4byte 0x0000893e
+_0813709C:
+ movs r0, 0x1
+_0813709E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137058
+
+ thumb_func_start sub_81370A4
+sub_81370A4: @ 81370A4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_081370AC:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _081370C8
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081370D2
+ cmp r5, 0
+ bne _081370CC
+ adds r0, r4, 0
+ b _081370DE
+ .align 2, 0
+_081370C8: .4byte gPlayerParty
+_081370CC:
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081370D2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081370AC
+ movs r0, 0
+_081370DE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81370A4
+
+ thumb_func_start sub_81370E4
+sub_81370E4: @ 81370E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ movs r6, 0
+ cmp r6, r5
+ bcs _08137114
+_081370F2:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08137120
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0813710A
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0813710A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _081370F2
+_08137114:
+ subs r0, r5, r6
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08137120: .4byte gPlayerParty
+ thumb_func_end sub_81370E4
+
+ thumb_func_start sub_8137124
+sub_8137124: @ 8137124
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81370A4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137124
+
+ thumb_func_start sub_8137138
+sub_8137138: @ 8137138
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _081371C0
+ bl LoadSpriteSheet
+ ldr r0, _081371C4
+ bl LoadSpritePalette
+ ldr r2, _081371C8
+ ldr r0, [r2]
+ adds r0, 0x54
+ movs r1, 0
+ strb r1, [r0]
+ movs r4, 0
+ adds r5, r2, 0
+ ldr r6, _081371CC
+ adds r0, r6, 0x2
+ mov r8, r0
+ ldr r7, _081371D0
+_08137160:
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081371AC
+ lsls r2, r4, 2
+ adds r0, r2, r6
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ add r2, r8
+ movs r0, 0
+ ldrsh r2, [r2, r0]
+ ldr r0, _081371D4
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _081371AC
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081371A2
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, _081371D8
+ str r1, [r0]
+_081371A2:
+ ldr r1, [r5]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081371AC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08137160
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081371C0: .4byte gSpriteSheet_ConditionUpDown
+_081371C4: .4byte gSpritePalette_ConditionUpDown
+_081371C8: .4byte gUnknown_02039304
+_081371CC: .4byte gUnknown_08406158
+_081371D0: .4byte gSprites + 0x1C
+_081371D4: .4byte gSpriteTemplate_840618C
+_081371D8: .4byte sub_81371DC
+ thumb_func_end sub_8137138
+
+ thumb_func_start sub_81371DC
+sub_81371DC: @ 81371DC
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x5
+ bgt _081371EE
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x2
+ b _081371F6
+_081371EE:
+ cmp r0, 0xB
+ bgt _081371F8
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x2
+_081371F6:
+ strh r0, [r1, 0x26]
+_081371F8:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _08137218
+ adds r0, r1, 0
+ bl DestroySprite
+ ldr r0, _0813721C
+ ldr r1, [r0]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_08137218:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813721C: .4byte gUnknown_02039304
+ thumb_func_end sub_81371DC
+
+ thumb_func_start unref_sub_8137220
+unref_sub_8137220: @ 8137220
+ bx lr
+ thumb_func_end unref_sub_8137220
+
+ thumb_func_start sub_8137224
+sub_8137224: @ 8137224
+ ldr r1, _08137250
+ ldr r0, _08137254
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08137258
+ str r1, [r0]
+ ldr r1, _0813725C
+ ldr r2, _08137260
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _08137264
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r3, 0x1
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08137268
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_08137250: .4byte gUnknown_03004330
+_08137254: .4byte gUnknown_02024A60
+_08137258: .4byte sub_813726C
+_0813725C: .4byte 0x02000000
+_08137260: .4byte 0x000160a8
+_08137264: .4byte 0x000160a9
+_08137268: .4byte 0x000160ab
+ thumb_func_end sub_8137224
+
+ thumb_func_start sub_813726C
+sub_813726C: @ 813726C
+ push {lr}
+ ldr r2, _081372A0
+ ldr r1, _081372A4
+ ldr r0, _081372A8
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _081372B8
+ ldr r0, _081372AC
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _081372B4
+ ldr r0, _081372B0
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _081372B8
+ .align 2, 0
+_081372A0: .4byte gUnknown_02024A64
+_081372A4: .4byte gBitTable
+_081372A8: .4byte gUnknown_02024A60
+_081372AC: .4byte gUnknown_02023A60
+_081372B0: .4byte gUnknown_084061A4
+_081372B4:
+ bl dp01_tbl5_exec_completed
+_081372B8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813726C
+
+ thumb_func_start sub_81372BC
+sub_81372BC: @ 81372BC
+ push {r4-r6,lr}
+ ldr r1, _081372D8
+ ldr r2, _081372DC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x5
+ bls _081372CE
+ b _08137410
+_081372CE:
+ lsls r0, 2
+ ldr r1, _081372E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081372D8: .4byte 0x02000000
+_081372DC: .4byte 0x000160a8
+_081372E0: .4byte _081372E4
+ .align 2, 0
+_081372E4:
+ .4byte _081372FC
+ .4byte _0813730E
+ .4byte _08137344
+ .4byte _08137368
+ .4byte _081373AC
+ .4byte _081373E8
+_081372FC:
+ ldr r0, _0813733C
+ adds r1, r5, r0
+ movs r0, 0x40
+ strb r0, [r1]
+ ldr r2, _08137340
+ adds r1, r5, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0813730E:
+ ldr r0, _0813733C
+ adds r6, r5, r0
+ ldrb r0, [r6]
+ subs r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08137410
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl5_exec_completed
+ ldr r2, _08137340
+ adds r1, r5, r2
+ b _0813738C
+ .align 2, 0
+_0813733C: .4byte 0x000160aa
+_08137340: .4byte 0x000160a8
+_08137344:
+ ldr r2, _08137364
+ adds r6, r5, r2
+ ldrb r0, [r6]
+ subs r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08137410
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ movs r1, 0
+ b _0813737E
+ .align 2, 0
+_08137364: .4byte 0x000160aa
+_08137368:
+ ldr r2, _081373A0
+ adds r6, r5, r2
+ ldrb r0, [r6]
+ subs r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08137410
+ movs r0, 0x1
+ movs r1, 0x9
+_0813737E:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl5_exec_completed
+ ldr r0, _081373A4
+ adds r1, r5, r0
+_0813738C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _081373A8
+ adds r0, r5, r1
+ strb r4, [r0]
+ movs r0, 0x40
+ strb r0, [r6]
+ b _08137410
+ .align 2, 0
+_081373A0: .4byte 0x000160aa
+_081373A4: .4byte 0x000160a8
+_081373A8: .4byte 0x000160a9
+_081373AC:
+ ldr r2, _081373E0
+ adds r4, r5, r2
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08137410
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl nullsub_8
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_802E3E4
+ movs r0, 0x40
+ strb r0, [r4]
+ ldr r0, _081373E4
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08137410
+ .align 2, 0
+_081373E0: .4byte 0x000160aa
+_081373E4: .4byte 0x000160a8
+_081373E8:
+ ldr r2, _08137418
+ adds r1, r5, r2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08137410
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_814A7FC
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl5_exec_completed
+_08137410:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137418: .4byte 0x000160aa
+ thumb_func_end sub_81372BC
+
+ thumb_func_start sub_813741C
+sub_813741C: @ 813741C
+ push {lr}
+ ldr r2, _08137444
+ ldr r1, _08137448
+ ldr r0, _0813744C
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08137450
+ cmp r1, r0
+ bne _08137440
+ bl dp01_tbl5_exec_completed
+_08137440:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137444: .4byte gSprites
+_08137448: .4byte gUnknown_02024BE0
+_0813744C: .4byte gUnknown_02024A60
+_08137450: .4byte SpriteCallbackDummy
+ thumb_func_end sub_813741C
+
+ thumb_func_start sub_8137454
+sub_8137454: @ 8137454
+ push {lr}
+ ldr r0, _08137468
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _08137462
+ bl dp01_tbl5_exec_completed
+_08137462:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137468: .4byte gUnknown_03004210
+ thumb_func_end sub_8137454
+
+ thumb_func_start sub_813746C
+sub_813746C: @ 813746C
+ push {lr}
+ ldr r0, _0813749C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08137496
+ ldr r2, _081374A0
+ ldr r0, _081374A4
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _081374A8
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08137496:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813749C: .4byte gPaletteFade
+_081374A0: .4byte gMain
+_081374A4: .4byte 0x0000043d
+_081374A8: .4byte gUnknown_030042D0
+ thumb_func_end sub_813746C
+
+ thumb_func_start bx_wait_t5
+bx_wait_t5: @ 81374AC
+ push {lr}
+ ldr r0, _081374C0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081374BA
+ bl dp01_tbl5_exec_completed
+_081374BA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081374C0: .4byte gUnknown_02024E6D
+ thumb_func_end bx_wait_t5
+
+ thumb_func_start sub_81374C4
+sub_81374C4: @ 81374C4
+ push {lr}
+ ldr r0, _081374EC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081374E8
+ ldr r1, _081374F0
+ ldr r0, _081374F4
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081374F8
+ str r1, [r0]
+ bl nullsub_14
+ bl PrepareBagForWallyTutorial
+_081374E8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081374EC: .4byte gPaletteFade
+_081374F0: .4byte gUnknown_03004330
+_081374F4: .4byte gUnknown_02024A60
+_081374F8: .4byte sub_81374FC
+ thumb_func_end sub_81374C4
+
+ thumb_func_start sub_81374FC
+sub_81374FC: @ 81374FC
+ push {lr}
+ ldr r0, _08137528
+ ldr r1, [r0, 0x4]
+ ldr r0, _0813752C
+ cmp r1, r0
+ bne _08137522
+ ldr r0, _08137530
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08137522
+ ldr r0, _08137534
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl dp01_tbl5_exec_completed
+_08137522:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137528: .4byte gMain
+_0813752C: .4byte sub_800F808
+_08137530: .4byte gPaletteFade
+_08137534: .4byte word_203855E
+ thumb_func_end sub_81374FC
+
+ thumb_func_start sub_8137538
+sub_8137538: @ 8137538
+ push {r4-r7,lr}
+ ldr r5, _0813768C
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r4, _08137690
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r7, 0x88
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08137568
+ ldr r0, _08137694
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08137698
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08137568:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ adds r2, r6, 0
+ eors r2, r0
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08137596
+ ldr r0, _08137694
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08137698
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08137596:
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08137684
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08137684
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08137626
+ ldr r0, _0813769C
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08137626
+ ldr r1, _081376A0
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081376A4
+ adds r0, r1
+ bl DestroySprite
+ ldr r4, _081376A8
+ ldrb r0, [r5]
+ adds r1, r6, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _08137694
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08137698
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ eors r0, r6
+ bl sub_804777C
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+_08137626:
+ ldr r1, _081376A0
+ ldr r4, _0813768C
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081376A4
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _081376A8
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _08137694
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08137698
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldr r2, _081376AC
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _081376B0
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081376B4
+ str r1, [r0]
+_08137684:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813768C: .4byte gUnknown_02024A60
+_08137690: .4byte 0x02017810
+_08137694: .4byte gUnknown_02024A6A
+_08137698: .4byte gPlayerParty
+_0813769C: .4byte gUnknown_020239F8
+_081376A0: .4byte gUnknown_0300434C
+_081376A4: .4byte gSprites
+_081376A8: .4byte gUnknown_03004340
+_081376AC: .4byte 0x02017840
+_081376B0: .4byte gUnknown_03004330
+_081376B4: .4byte sub_81376B8
+ thumb_func_end sub_8137538
+
+ thumb_func_start sub_81376B8
+sub_81376B8: @ 81376B8
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r2, _0813778C
+ ldr r0, _08137790
+ ldr r7, _08137794
+ ldrb r3, [r7]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08137798
+ cmp r1, r0
+ bne _081376DC
+ movs r4, 0x1
+_081376DC:
+ cmp r4, 0
+ beq _08137784
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r5, _0813779C
+ adds r2, r0, r5
+ ldrb r1, [r2, 0x1]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08137784
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r3
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08137784
+ ldrb r1, [r2]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ subs r4, 0x3
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, _081377A0
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, _081377A4
+ movs r1, 0xA
+ bl CreateTask
+ ldr r2, _081377A8
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _081377AC
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl5_exec_completed
+_08137784:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813778C: .4byte gSprites
+_08137790: .4byte gUnknown_03004340
+_08137794: .4byte gUnknown_02024A60
+_08137798: .4byte SpriteCallbackDummy
+_0813779C: .4byte 0x02017810
+_081377A0: .4byte 0x000027f9
+_081377A4: .4byte c3_0802FDF4
+_081377A8: .4byte gUnknown_02024A6A
+_081377AC: .4byte gPlayerParty
+ thumb_func_end sub_81376B8
+
+ thumb_func_start sub_81377B0
+sub_81377B0: @ 81377B0
+ push {r4-r6,lr}
+ ldr r5, _081377F0
+ ldrb r0, [r5]
+ ldr r6, _081377F4
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081377F8
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _08137812
+ .align 2, 0
+_081377F0: .4byte gUnknown_02024A60
+_081377F4: .4byte gUnknown_03004340
+_081377F8:
+ ldr r2, _08137818
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0813781C
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl5_exec_completed
+_08137812:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137818: .4byte gUnknown_02024A6A
+_0813781C: .4byte gPlayerParty
+ thumb_func_end sub_81377B0
+
+ thumb_func_start bx_blink_t5
+bx_blink_t5: @ 8137820
+ push {r4,lr}
+ ldr r1, _0813785C
+ ldr r0, _08137860
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _08137864
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _0813786C
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08137868
+ strb r3, [r0]
+ bl dp01_tbl5_exec_completed
+ b _08137896
+ .align 2, 0
+_0813785C: .4byte gUnknown_02024BE0
+_08137860: .4byte gUnknown_02024A60
+_08137864: .4byte gSprites
+_08137868: .4byte gUnknown_02024E6D
+_0813786C:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08137890
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r0, r2, 29
+ lsrs r0, 31
+ movs r1, 0x1
+ eors r1, r0
+ lsls r1, 2
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08137890:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_08137896:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t5
+
+ thumb_func_start sub_813789C
+sub_813789C: @ 813789C
+ push {r4-r6,lr}
+ ldr r6, _081378F4
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _081378F8
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _081378EC
+ ldr r5, _081378FC
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08137900
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _08137904
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl5_exec_completed
+_081378EC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081378F4: .4byte gUnknown_02024A60
+_081378F8: .4byte 0x02017810
+_081378FC: .4byte gUnknown_02024BE0
+_08137900: .4byte gSprites
+_08137904: .4byte gUnknown_03004340
+ thumb_func_end sub_813789C
+
+ thumb_func_start sub_8137908
+sub_8137908: @ 8137908
+ push {lr}
+ ldr r2, _08137930
+ ldr r1, _08137934
+ ldr r0, _08137938
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0813793C
+ cmp r1, r0
+ bne _0813792C
+ bl dp01_tbl5_exec_completed
+_0813792C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137930: .4byte gSprites
+_08137934: .4byte gUnknown_02024BE0
+_08137938: .4byte gUnknown_02024A60
+_0813793C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8137908
+
+ thumb_func_start sub_8137940
+sub_8137940: @ 8137940
+ push {lr}
+ ldr r0, _08137964
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08137968
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0813795E
+ bl dp01_tbl5_exec_completed
+_0813795E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137964: .4byte gUnknown_02024A60
+_08137968: .4byte 0x02017810
+ thumb_func_end sub_8137940
+
+ thumb_func_start dp01_tbl5_exec_completed
+dp01_tbl5_exec_completed: @ 813796C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _081379AC
+ ldr r4, _081379B0
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081379B4
+ str r1, [r0]
+ ldr r0, _081379B8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081379C0
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _081379BC
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _081379D2
+ .align 2, 0
+_081379AC: .4byte gUnknown_03004330
+_081379B0: .4byte gUnknown_02024A60
+_081379B4: .4byte sub_813726C
+_081379B8: .4byte gUnknown_020239F8
+_081379BC: .4byte gUnknown_02023A60
+_081379C0:
+ ldr r2, _081379DC
+ ldr r1, _081379E0
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_081379D2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081379DC: .4byte gUnknown_02024A64
+_081379E0: .4byte gBitTable
+ thumb_func_end dp01_tbl5_exec_completed
+
+ thumb_func_start unref_sub_81379E4
+unref_sub_81379E4: @ 81379E4
+ push {lr}
+ ldr r0, _08137A08
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08137A0C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08137A02
+ bl dp01_tbl5_exec_completed
+_08137A02:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137A08: .4byte gUnknown_02024A60
+_08137A0C: .4byte 0x02017810
+ thumb_func_end unref_sub_81379E4
+
+ thumb_func_start dp01t_00_5_getattr
+dp01t_00_5_getattr: @ 8137A10
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _08137A3C
+ ldr r0, _08137A40
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08137A48
+ ldr r0, _08137A44
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl sub_8137A84
+ adds r6, r0, 0
+ b _08137A6A
+ .align 2, 0
+_08137A3C: .4byte gUnknown_02023A60
+_08137A40: .4byte gUnknown_02024A60
+_08137A44: .4byte gUnknown_02024A6A
+_08137A48:
+ ldrb r4, [r1]
+ movs r5, 0
+_08137A4C:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08137A62
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl sub_8137A84
+ adds r6, r0
+_08137A62:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08137A4C
+_08137A6A:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl5_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_5_getattr
+
+ thumb_func_start sub_8137A84
+sub_8137A84: @ 8137A84
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x90
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _08137AB8
+ ldr r3, _08137ABC
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _08137AAE
+ bl _0813821A
+_08137AAE:
+ lsls r0, 2
+ ldr r1, _08137AC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08137AB8: .4byte gUnknown_02023A60
+_08137ABC: .4byte gUnknown_02024A60
+_08137AC0: .4byte _08137AC4
+ .align 2, 0
+_08137AC4:
+ .4byte _08137BB4
+ .4byte _08137DD8
+ .4byte _08137DE8
+ .4byte _08137DF8
+ .4byte _08137E60
+ .4byte _08137E60
+ .4byte _08137E60
+ .4byte _08137E60
+ .4byte _08137E7C
+ .4byte _08137EB8
+ .4byte _08137EB8
+ .4byte _08137EB8
+ .4byte _08137EB8
+ .4byte _0813821A
+ .4byte _0813821A
+ .4byte _0813821A
+ .4byte _0813821A
+ .4byte _08137ED4
+ .4byte _08137EE4
+ .4byte _08137F14
+ .4byte _08137F24
+ .4byte _08137F34
+ .4byte _08137F44
+ .4byte _08137F54
+ .4byte _08137F64
+ .4byte _08137F74
+ .4byte _08137F84
+ .4byte _08137F94
+ .4byte _08137FA4
+ .4byte _08137FB4
+ .4byte _08137FC4
+ .4byte _08137FD4
+ .4byte _08138024
+ .4byte _08138034
+ .4byte _08138044
+ .4byte _08138054
+ .4byte _08138064
+ .4byte _08138074
+ .4byte _08138084
+ .4byte _08138094
+ .4byte _081380A4
+ .4byte _081380D8
+ .4byte _081380E8
+ .4byte _081380F8
+ .4byte _08138108
+ .4byte _08138118
+ .4byte _08138128
+ .4byte _08138138
+ .4byte _08138148
+ .4byte _08138168
+ .4byte _08138178
+ .4byte _08138188
+ .4byte _08138198
+ .4byte _081381A8
+ .4byte _081381B8
+ .4byte _081381C8
+ .4byte _081381D8
+ .4byte _081381E8
+ .4byte _081381F8
+ .4byte _08138208
+_08137BB4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08137DC8
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2E]
+ movs r6, 0
+ add r0, sp, 0x24
+ mov r9, r0
+ movs r1, 0x3B
+ add r1, sp
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0x2B
+ str r2, [sp, 0x80]
+ mov r0, sp
+ adds r0, 0x2A
+ str r0, [sp, 0x7C]
+ mov r1, sp
+ adds r1, 0x68
+ str r1, [sp, 0x8C]
+ adds r2, 0x5
+ str r2, [sp, 0x84]
+ adds r0, 0x12
+ str r0, [sp, 0x88]
+ mov r8, r4
+ add r4, sp, 0xC
+_08137C00:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r8
+ bl GetMonData
+ strh r0, [r4]
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r0, r8
+ bl GetMonData
+ mov r2, r9
+ adds r1, r2, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08137C00
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08137DC8
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r10
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ ldr r2, [sp, 0x80]
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ mov r3, sp
+ movs r5, 0x1F
+ ands r0, r5
+ ldrb r2, [r3, 0x14]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ mov r3, sp
+ movs r6, 0x1F
+ ands r0, r6
+ lsls r0, 5
+ ldrh r2, [r3, 0x14]
+ ldr r1, _08137DCC
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 2
+ ldrb r2, [r3, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x15]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r1, 15
+ ldr r0, [sp, 0x14]
+ ldr r2, _08137DD0
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ mov r3, sp
+ ands r0, r6
+ lsls r0, 4
+ ldrh r2, [r3, 0x16]
+ ldr r1, _08137DD4
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x16]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 1
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x48]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ str r0, [sp, 0x4C]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, [sp, 0x7C]
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x28]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2C]
+ adds r0, r4, 0
+ movs r1, 0x3B
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ mov r3, sp
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r3, sp
+ lsls r0, 7
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x54]
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, [sp, 0x8C]
+ bl GetMonData
+ ldr r0, [sp, 0x84]
+ ldr r1, [sp, 0x8C]
+ bl StringCopy10
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, [sp, 0x88]
+ bl GetMonData
+ mov r2, sp
+ movs r6, 0
+_08137DB8:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _08137DB8
+ b _0813821A
+ .align 2, 0
+_08137DC8: .4byte gPlayerParty
+_08137DCC: .4byte 0xfffffc1f
+_08137DD0: .4byte 0xfff07fff
+_08137DD4: .4byte 0xfffffe0f
+_08137DD8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137DE4
+ adds r0, r1
+ movs r1, 0xB
+ b _08138152
+ .align 2, 0
+_08137DE4: .4byte gPlayerParty
+_08137DE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137DF4
+ adds r0, r1
+ movs r1, 0xC
+ b _08138152
+ .align 2, 0
+_08137DF4: .4byte gPlayerParty
+_08137DF8:
+ movs r6, 0
+ add r2, sp, 0x58
+ mov r9, r2
+ add r0, sp, 0x60
+ mov r10, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08137E5C
+ adds r4, r1, r0
+ mov r8, r9
+_08137E0E:
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ mov r1, r8
+ strh r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl GetMonData
+ mov r2, r10
+ adds r1, r2, r6
+ strb r0, [r1]
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08137E0E
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137E5C
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_08137E4C:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _08137E4C
+ b _0813821A
+ .align 2, 0
+_08137E5C: .4byte gPlayerParty
+_08137E60:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137E78
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08138152
+ .align 2, 0
+_08137E78: .4byte gPlayerParty
+_08137E7C:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _08137EB4
+ mov r8, r2
+_08137E88:
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r2, r8
+ adds r0, r4, r2
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08137E88
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137EB4
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _0813821A
+ .align 2, 0
+_08137EB4: .4byte gPlayerParty
+_08137EB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137ED0
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _08138212
+ .align 2, 0
+_08137ED0: .4byte gPlayerParty
+_08137ED4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137EE0
+ adds r0, r1
+ movs r1, 0x1
+ b _08137EEE
+ .align 2, 0
+_08137EE0: .4byte gPlayerParty
+_08137EE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F10
+ adds r0, r1
+ movs r1, 0x19
+_08137EEE:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ movs r6, 0x3
+ b _0813821A
+ .align 2, 0
+_08137F10: .4byte gPlayerParty
+_08137F14:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F20
+ adds r0, r1
+ movs r1, 0x1A
+ b _08138212
+ .align 2, 0
+_08137F20: .4byte gPlayerParty
+_08137F24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F30
+ adds r0, r1
+ movs r1, 0x1B
+ b _08138212
+ .align 2, 0
+_08137F30: .4byte gPlayerParty
+_08137F34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F40
+ adds r0, r1
+ movs r1, 0x1C
+ b _08138212
+ .align 2, 0
+_08137F40: .4byte gPlayerParty
+_08137F44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F50
+ adds r0, r1
+ movs r1, 0x1D
+ b _08138212
+ .align 2, 0
+_08137F50: .4byte gPlayerParty
+_08137F54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F60
+ adds r0, r1
+ movs r1, 0x1E
+ b _08138212
+ .align 2, 0
+_08137F60: .4byte gPlayerParty
+_08137F64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F70
+ adds r0, r1
+ movs r1, 0x1F
+ b _08138212
+ .align 2, 0
+_08137F70: .4byte gPlayerParty
+_08137F74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F80
+ adds r0, r1
+ movs r1, 0x20
+ b _08138212
+ .align 2, 0
+_08137F80: .4byte gPlayerParty
+_08137F84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F90
+ adds r0, r1
+ movs r1, 0x22
+ b _08138212
+ .align 2, 0
+_08137F90: .4byte gPlayerParty
+_08137F94:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137FA0
+ adds r0, r1
+ movs r1, 0x23
+ b _08138212
+ .align 2, 0
+_08137FA0: .4byte gPlayerParty
+_08137FA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137FB0
+ adds r0, r1
+ movs r1, 0x24
+ b _08138212
+ .align 2, 0
+_08137FB0: .4byte gPlayerParty
+_08137FB4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137FC0
+ adds r0, r1
+ movs r1, 0x25
+ b _08138212
+ .align 2, 0
+_08137FC0: .4byte gPlayerParty
+_08137FC4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137FD0
+ adds r0, r1
+ movs r1, 0x26
+ b _08138212
+ .align 2, 0
+_08137FD0: .4byte gPlayerParty
+_08137FD4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08138020
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ strb r0, [r7, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ strb r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ strb r0, [r7, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ strb r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ strb r0, [r7, 0x5]
+ movs r6, 0x6
+ b _0813821A
+ .align 2, 0
+_08138020: .4byte gPlayerParty
+_08138024:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138030
+ adds r0, r1
+ movs r1, 0x27
+ b _08138212
+ .align 2, 0
+_08138030: .4byte gPlayerParty
+_08138034:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138040
+ adds r0, r1
+ movs r1, 0x28
+ b _08138212
+ .align 2, 0
+_08138040: .4byte gPlayerParty
+_08138044:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138050
+ adds r0, r1
+ movs r1, 0x29
+ b _08138212
+ .align 2, 0
+_08138050: .4byte gPlayerParty
+_08138054:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138060
+ adds r0, r1
+ movs r1, 0x2A
+ b _08138212
+ .align 2, 0
+_08138060: .4byte gPlayerParty
+_08138064:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138070
+ adds r0, r1
+ movs r1, 0x2B
+ b _08138212
+ .align 2, 0
+_08138070: .4byte gPlayerParty
+_08138074:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138080
+ adds r0, r1
+ movs r1, 0x2C
+ b _08138212
+ .align 2, 0
+_08138080: .4byte gPlayerParty
+_08138084:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138090
+ adds r0, r1
+ movs r1, 0
+ b _081380AE
+ .align 2, 0
+_08138090: .4byte gPlayerParty
+_08138094:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081380A0
+ adds r0, r1
+ movs r1, 0x9
+ b _08138152
+ .align 2, 0
+_081380A0: .4byte gPlayerParty
+_081380A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081380D4
+ adds r0, r1
+ movs r1, 0x37
+_081380AE:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ lsrs r0, r1, 24
+ strb r0, [r7, 0x3]
+ movs r6, 0x4
+ b _0813821A
+ .align 2, 0
+_081380D4: .4byte gPlayerParty
+_081380D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081380E4
+ adds r0, r1
+ movs r1, 0x38
+ b _08138212
+ .align 2, 0
+_081380E4: .4byte gPlayerParty
+_081380E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081380F4
+ adds r0, r1
+ movs r1, 0x39
+ b _08138152
+ .align 2, 0
+_081380F4: .4byte gPlayerParty
+_081380F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138104
+ adds r0, r1
+ movs r1, 0x3A
+ b _08138152
+ .align 2, 0
+_08138104: .4byte gPlayerParty
+_08138108:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138114
+ adds r0, r1
+ movs r1, 0x3B
+ b _08138152
+ .align 2, 0
+_08138114: .4byte gPlayerParty
+_08138118:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138124
+ adds r0, r1
+ movs r1, 0x3C
+ b _08138152
+ .align 2, 0
+_08138124: .4byte gPlayerParty
+_08138128:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138134
+ adds r0, r1
+ movs r1, 0x3D
+ b _08138152
+ .align 2, 0
+_08138134: .4byte gPlayerParty
+_08138138:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138144
+ adds r0, r1
+ movs r1, 0x3E
+ b _08138152
+ .align 2, 0
+_08138144: .4byte gPlayerParty
+_08138148:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138164
+ adds r0, r1
+ movs r1, 0x3F
+_08138152:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _0813821A
+ .align 2, 0
+_08138164: .4byte gPlayerParty
+_08138168:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138174
+ adds r0, r1
+ movs r1, 0x16
+ b _08138212
+ .align 2, 0
+_08138174: .4byte gPlayerParty
+_08138178:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138184
+ adds r0, r1
+ movs r1, 0x17
+ b _08138212
+ .align 2, 0
+_08138184: .4byte gPlayerParty
+_08138188:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138194
+ adds r0, r1
+ movs r1, 0x18
+ b _08138212
+ .align 2, 0
+_08138194: .4byte gPlayerParty
+_08138198:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381A4
+ adds r0, r1
+ movs r1, 0x21
+ b _08138212
+ .align 2, 0
+_081381A4: .4byte gPlayerParty
+_081381A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381B4
+ adds r0, r1
+ movs r1, 0x2F
+ b _08138212
+ .align 2, 0
+_081381B4: .4byte gPlayerParty
+_081381B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381C4
+ adds r0, r1
+ movs r1, 0x30
+ b _08138212
+ .align 2, 0
+_081381C4: .4byte gPlayerParty
+_081381C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381D4
+ adds r0, r1
+ movs r1, 0x32
+ b _08138212
+ .align 2, 0
+_081381D4: .4byte gPlayerParty
+_081381D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381E4
+ adds r0, r1
+ movs r1, 0x33
+ b _08138212
+ .align 2, 0
+_081381E4: .4byte gPlayerParty
+_081381E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381F4
+ adds r0, r1
+ movs r1, 0x34
+ b _08138212
+ .align 2, 0
+_081381F4: .4byte gPlayerParty
+_081381F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138204
+ adds r0, r1
+ movs r1, 0x35
+ b _08138212
+ .align 2, 0
+_08138204: .4byte gPlayerParty
+_08138208:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813822C
+ adds r0, r1
+ movs r1, 0x36
+_08138212:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_0813821A:
+ adds r0, r6, 0
+ add sp, 0x90
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0813822C: .4byte gPlayerParty
+ thumb_func_end sub_8137A84
+
+ thumb_func_start sub_8138230
+sub_8138230: @ 8138230
+ push {lr}
+ bl sub_802ECF0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138230
+
+ thumb_func_start sub_813823C
+sub_813823C: @ 813823C
+ push {r4,r5,lr}
+ ldr r1, _08138260
+ ldr r0, _08138264
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0813826C
+ ldr r0, _08138268
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8138294
+ b _0813828A
+ .align 2, 0
+_08138260: .4byte gUnknown_02023A60
+_08138264: .4byte gUnknown_02024A60
+_08138268: .4byte gUnknown_02024A6A
+_0813826C:
+ ldrb r4, [r1]
+ movs r5, 0
+_08138270:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0813827E
+ adds r0, r5, 0
+ bl sub_8138294
+_0813827E:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08138270
+_0813828A:
+ bl dp01_tbl5_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813823C
+
+ thumb_func_start sub_8138294
+sub_8138294: @ 8138294
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _081382CC
+ ldrb r0, [r0]
+ lsls r0, 9
+ ldr r2, _081382D0
+ adds r3, r0, r2
+ adds r6, r3, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r7, r2, 0
+ cmp r0, 0x3B
+ bls _081382C0
+ bl _08138C5A
+_081382C0:
+ lsls r0, 2
+ ldr r1, _081382D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081382CC: .4byte gUnknown_02024A60
+_081382D0: .4byte gUnknown_02023A63
+_081382D4: .4byte _081382D8
+ .align 2, 0
+_081382D8:
+ .4byte _081383C8
+ .4byte _08138560
+ .4byte _08138580
+ .4byte _081385A0
+ .4byte _081385F8
+ .4byte _081385F8
+ .4byte _081385F8
+ .4byte _081385F8
+ .4byte _08138620
+ .4byte _08138684
+ .4byte _08138684
+ .4byte _08138684
+ .4byte _08138684
+ .4byte _08138C5A
+ .4byte _08138C5A
+ .4byte _08138C5A
+ .4byte _08138C5A
+ .4byte _081386B4
+ .4byte _081386D4
+ .4byte _081386F4
+ .4byte _08138714
+ .4byte _08138734
+ .4byte _08138754
+ .4byte _08138774
+ .4byte _08138794
+ .4byte _081387B4
+ .4byte _081387D4
+ .4byte _081387F4
+ .4byte _08138814
+ .4byte _08138834
+ .4byte _08138854
+ .4byte _08138874
+ .4byte _081388E4
+ .4byte _08138904
+ .4byte _08138924
+ .4byte _08138944
+ .4byte _08138964
+ .4byte _08138984
+ .4byte _081389A4
+ .4byte _081389C4
+ .4byte _081389E4
+ .4byte _08138A04
+ .4byte _08138A24
+ .4byte _08138A44
+ .4byte _08138A64
+ .4byte _08138A84
+ .4byte _08138AA4
+ .4byte _08138AC4
+ .4byte _08138AE4
+ .4byte _08138B04
+ .4byte _08138B24
+ .4byte _08138B44
+ .4byte _08138B64
+ .4byte _08138B84
+ .4byte _08138BA4
+ .4byte _08138BC4
+ .4byte _08138BE4
+ .4byte _08138C04
+ .4byte _08138C24
+ .4byte _08138C44
+_081383C8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0813855C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r6, 0
+ bl SetMonData
+ adds r2, r6, 0
+ adds r2, 0x2E
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0x3B
+ adds r0, r6
+ mov r10, r0
+ adds r0, r6, 0
+ adds r0, 0x2B
+ str r0, [sp, 0x20]
+ adds r0, 0x19
+ str r0, [sp, 0x28]
+ adds r0, 0x4
+ str r0, [sp, 0x2C]
+ adds r0, 0x4
+ str r0, [sp, 0x30]
+ subs r0, 0x22
+ str r0, [sp, 0x1C]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ adds r0, 0x4
+ str r0, [sp, 0x24]
+ adds r0, r6, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r6, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r6, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r7, r6, 0
+ adds r7, 0x24
+ adds r4, r6, 0
+ adds r4, 0xC
+_0813842E:
+ mov r1, r8
+ adds r1, 0xD
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ mov r0, r9
+ adds r2, r7, 0
+ bl SetMonData
+ adds r7, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _0813842E
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0813855C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ mov r2, r10
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x20]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x19
+ ldr r2, [sp, 0x28]
+ bl SetMonData
+ ldrb r0, [r6, 0x14]
+ lsls r0, 27
+ lsrs r0, 27
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x27
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r6, 0x14]
+ lsls r0, 22
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x28
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x15]
+ lsls r0, 25
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldr r0, [r6, 0x14]
+ lsls r0, 12
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r6, 0x16]
+ lsls r0, 23
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x17]
+ lsls r0, 26
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0
+ ldr r2, [sp, 0x2C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x37
+ ldr r2, [sp, 0x30]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x38
+ ldr r2, [sp, 0x1C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x39
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3A
+ ldr r2, [sp, 0x24]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3B
+ ldr r2, [sp, 0x4]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3C
+ ldr r2, [sp, 0x8]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3D
+ ldr r2, [sp, 0xC]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3E
+ ldr r2, [sp, 0x10]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3F
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813855C: .4byte gPlayerParty
+_08138560:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138578
+ adds r0, r1
+ ldr r1, _0813857C
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xB
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138578: .4byte gPlayerParty
+_0813857C: .4byte gUnknown_02024A60
+_08138580:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138598
+ adds r0, r1
+ ldr r1, _0813859C
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xC
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138598: .4byte gPlayerParty
+_0813859C: .4byte gUnknown_02024A60
+_081385A0:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r3
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _081385F4
+ adds r7, r1, r0
+ adds r6, r3, 0
+ adds r6, 0x8
+ adds r4, r3, 0
+_081385BA:
+ mov r1, r8
+ adds r1, 0xD
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ adds r0, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _081385BA
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081385F4
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081385F4: .4byte gPlayerParty
+_081385F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138614
+ adds r0, r1
+ ldr r3, _08138618
+ ldr r1, _0813861C
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0813869C
+ .align 2, 0
+_08138614: .4byte gPlayerParty
+_08138618: .4byte gUnknown_02023A60
+_0813861C: .4byte gUnknown_02024A60
+_08138620:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0813867C
+ adds r4, r0
+ ldr r5, _08138680
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x11
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813867C: .4byte gPlayerParty
+_08138680: .4byte gUnknown_02024A60
+_08138684:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081386A8
+ adds r0, r1
+ ldr r3, _081386AC
+ ldr r1, _081386B0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0813869C:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081386A8: .4byte gPlayerParty
+_081386AC: .4byte gUnknown_02023A60
+_081386B0: .4byte gUnknown_02024A60
+_081386B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081386CC
+ adds r0, r1
+ ldr r1, _081386D0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081386CC: .4byte gPlayerParty
+_081386D0: .4byte gUnknown_02024A60
+_081386D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081386EC
+ adds r0, r1
+ ldr r1, _081386F0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x19
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081386EC: .4byte gPlayerParty
+_081386F0: .4byte gUnknown_02024A60
+_081386F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813870C
+ adds r0, r1
+ ldr r1, _08138710
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1A
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813870C: .4byte gPlayerParty
+_08138710: .4byte gUnknown_02024A60
+_08138714:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813872C
+ adds r0, r1
+ ldr r1, _08138730
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1B
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813872C: .4byte gPlayerParty
+_08138730: .4byte gUnknown_02024A60
+_08138734:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813874C
+ adds r0, r1
+ ldr r1, _08138750
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1C
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813874C: .4byte gPlayerParty
+_08138750: .4byte gUnknown_02024A60
+_08138754:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813876C
+ adds r0, r1
+ ldr r1, _08138770
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1D
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813876C: .4byte gPlayerParty
+_08138770: .4byte gUnknown_02024A60
+_08138774:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813878C
+ adds r0, r1
+ ldr r1, _08138790
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1E
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813878C: .4byte gPlayerParty
+_08138790: .4byte gUnknown_02024A60
+_08138794:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081387AC
+ adds r0, r1
+ ldr r1, _081387B0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1F
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081387AC: .4byte gPlayerParty
+_081387B0: .4byte gUnknown_02024A60
+_081387B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081387CC
+ adds r0, r1
+ ldr r1, _081387D0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x20
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081387CC: .4byte gPlayerParty
+_081387D0: .4byte gUnknown_02024A60
+_081387D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081387EC
+ adds r0, r1
+ ldr r1, _081387F0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x22
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081387EC: .4byte gPlayerParty
+_081387F0: .4byte gUnknown_02024A60
+_081387F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813880C
+ adds r0, r1
+ ldr r1, _08138810
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x23
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813880C: .4byte gPlayerParty
+_08138810: .4byte gUnknown_02024A60
+_08138814:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813882C
+ adds r0, r1
+ ldr r1, _08138830
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x24
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813882C: .4byte gPlayerParty
+_08138830: .4byte gUnknown_02024A60
+_08138834:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813884C
+ adds r0, r1
+ ldr r1, _08138850
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x25
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813884C: .4byte gPlayerParty
+_08138850: .4byte gUnknown_02024A60
+_08138854:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813886C
+ adds r0, r1
+ ldr r1, _08138870
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x26
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813886C: .4byte gPlayerParty
+_08138870: .4byte gUnknown_02024A60
+_08138874:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _081388DC
+ adds r4, r0
+ ldr r5, _081388E0
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _08138994
+ .align 2, 0
+_081388DC: .4byte gPlayerParty
+_081388E0: .4byte gUnknown_02024A60
+_081388E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081388FC
+ adds r0, r1
+ ldr r1, _08138900
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x27
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081388FC: .4byte gPlayerParty
+_08138900: .4byte gUnknown_02024A60
+_08138904:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813891C
+ adds r0, r1
+ ldr r1, _08138920
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x28
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813891C: .4byte gPlayerParty
+_08138920: .4byte gUnknown_02024A60
+_08138924:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813893C
+ adds r0, r1
+ ldr r1, _08138940
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x29
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813893C: .4byte gPlayerParty
+_08138940: .4byte gUnknown_02024A60
+_08138944:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813895C
+ adds r0, r1
+ ldr r1, _08138960
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2A
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813895C: .4byte gPlayerParty
+_08138960: .4byte gUnknown_02024A60
+_08138964:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813897C
+ adds r0, r1
+ ldr r1, _08138980
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2B
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813897C: .4byte gPlayerParty
+_08138980: .4byte gUnknown_02024A60
+_08138984:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813899C
+ adds r0, r1
+ ldr r1, _081389A0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+_08138994:
+ movs r1, 0x2C
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813899C: .4byte gPlayerParty
+_081389A0: .4byte gUnknown_02024A60
+_081389A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081389BC
+ adds r0, r1
+ ldr r1, _081389C0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081389BC: .4byte gPlayerParty
+_081389C0: .4byte gUnknown_02024A60
+_081389C4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081389DC
+ adds r0, r1
+ ldr r1, _081389E0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x9
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081389DC: .4byte gPlayerParty
+_081389E0: .4byte gUnknown_02024A60
+_081389E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081389FC
+ adds r0, r1
+ ldr r1, _08138A00
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x37
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081389FC: .4byte gPlayerParty
+_08138A00: .4byte gUnknown_02024A60
+_08138A04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A1C
+ adds r0, r1
+ ldr r1, _08138A20
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x38
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A1C: .4byte gPlayerParty
+_08138A20: .4byte gUnknown_02024A60
+_08138A24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A3C
+ adds r0, r1
+ ldr r1, _08138A40
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x39
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A3C: .4byte gPlayerParty
+_08138A40: .4byte gUnknown_02024A60
+_08138A44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A5C
+ adds r0, r1
+ ldr r1, _08138A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3A
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A5C: .4byte gPlayerParty
+_08138A60: .4byte gUnknown_02024A60
+_08138A64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A7C
+ adds r0, r1
+ ldr r1, _08138A80
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3B
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A7C: .4byte gPlayerParty
+_08138A80: .4byte gUnknown_02024A60
+_08138A84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A9C
+ adds r0, r1
+ ldr r1, _08138AA0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3C
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A9C: .4byte gPlayerParty
+_08138AA0: .4byte gUnknown_02024A60
+_08138AA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138ABC
+ adds r0, r1
+ ldr r1, _08138AC0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3D
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138ABC: .4byte gPlayerParty
+_08138AC0: .4byte gUnknown_02024A60
+_08138AC4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138ADC
+ adds r0, r1
+ ldr r1, _08138AE0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3E
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138ADC: .4byte gPlayerParty
+_08138AE0: .4byte gUnknown_02024A60
+_08138AE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138AFC
+ adds r0, r1
+ ldr r1, _08138B00
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3F
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138AFC: .4byte gPlayerParty
+_08138B00: .4byte gUnknown_02024A60
+_08138B04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B1C
+ adds r0, r1
+ ldr r1, _08138B20
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x16
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B1C: .4byte gPlayerParty
+_08138B20: .4byte gUnknown_02024A60
+_08138B24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B3C
+ adds r0, r1
+ ldr r1, _08138B40
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x17
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B3C: .4byte gPlayerParty
+_08138B40: .4byte gUnknown_02024A60
+_08138B44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B5C
+ adds r0, r1
+ ldr r1, _08138B60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x18
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B5C: .4byte gPlayerParty
+_08138B60: .4byte gUnknown_02024A60
+_08138B64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B7C
+ adds r0, r1
+ ldr r1, _08138B80
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x21
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B7C: .4byte gPlayerParty
+_08138B80: .4byte gUnknown_02024A60
+_08138B84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B9C
+ adds r0, r1
+ ldr r1, _08138BA0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2F
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B9C: .4byte gPlayerParty
+_08138BA0: .4byte gUnknown_02024A60
+_08138BA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138BBC
+ adds r0, r1
+ ldr r1, _08138BC0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x30
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138BBC: .4byte gPlayerParty
+_08138BC0: .4byte gUnknown_02024A60
+_08138BC4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138BDC
+ adds r0, r1
+ ldr r1, _08138BE0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x32
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138BDC: .4byte gPlayerParty
+_08138BE0: .4byte gUnknown_02024A60
+_08138BE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138BFC
+ adds r0, r1
+ ldr r1, _08138C00
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x33
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138BFC: .4byte gPlayerParty
+_08138C00: .4byte gUnknown_02024A60
+_08138C04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138C1C
+ adds r0, r1
+ ldr r1, _08138C20
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x34
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138C1C: .4byte gPlayerParty
+_08138C20: .4byte gUnknown_02024A60
+_08138C24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138C3C
+ adds r0, r1
+ ldr r1, _08138C40
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x35
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138C3C: .4byte gPlayerParty
+_08138C40: .4byte gUnknown_02024A60
+_08138C44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138C84
+ adds r0, r1
+ ldr r1, _08138C88
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x36
+ bl SetMonData
+_08138C5A:
+ ldr r2, _08138C8C
+ ldr r0, _08138C88
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _08138C84
+ adds r0, r2
+ bl sub_80324F8
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138C84: .4byte gPlayerParty
+_08138C88: .4byte gUnknown_02024A60
+_08138C8C: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8138294
+
+ thumb_func_start sub_8138C90
+sub_8138C90: @ 8138C90
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138C90
+
+ thumb_func_start sub_8138C9C
+sub_8138C9C: @ 8138C9C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138C9C
+
+ thumb_func_start sub_8138CA8
+sub_8138CA8: @ 8138CA8
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138CA8
+
+ thumb_func_start sub_8138CB4
+sub_8138CB4: @ 8138CB4
+ push {r4-r6,lr}
+ ldr r0, _08138CE0
+ ldr r6, _08138CE4
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08138CF0
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x1
+ bl move_anim_start_t4
+ ldr r0, _08138CE8
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08138CEC
+ str r0, [r1]
+ b _08138D26
+ .align 2, 0
+_08138CE0: .4byte gUnknown_02023A60
+_08138CE4: .4byte gUnknown_02024A60
+_08138CE8: .4byte gUnknown_03004330
+_08138CEC: .4byte sub_813789C
+_08138CF0:
+ ldr r5, _08138D2C
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08138D30
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _08138D34
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl5_exec_completed
+_08138D26:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138D2C: .4byte gUnknown_02024BE0
+_08138D30: .4byte gSprites
+_08138D34: .4byte gUnknown_03004340
+ thumb_func_end sub_8138CB4
+
+ thumb_func_start sub_8138D38
+sub_8138D38: @ 8138D38
+ push {r4-r6,lr}
+ ldr r4, _08138DE0
+ ldrb r1, [r4]
+ movs r0, 0x2
+ bl sub_8031AF4
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x2
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _08138DE4
+ ldr r1, _08138DE8
+ ldrb r1, [r1, 0x8]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x50
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r6, _08138DEC
+ ldrb r1, [r4]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r5, _08138DF0
+ ldrb r3, [r4]
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08138DF4
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r1, _08138DF8
+ str r1, [r0]
+ ldr r1, _08138DFC
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08138E00
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138DE0: .4byte gUnknown_02024A60
+_08138DE4: .4byte gUnknown_02024E8C
+_08138DE8: .4byte gTrainerBackPicCoords
+_08138DEC: .4byte gUnknown_02024BE0
+_08138DF0: .4byte gSprites
+_08138DF4: .4byte 0x0000fffe
+_08138DF8: .4byte sub_80313A0
+_08138DFC: .4byte gUnknown_03004330
+_08138E00: .4byte sub_813741C
+ thumb_func_end sub_8138D38
+
+ thumb_func_start sub_8138E04
+sub_8138E04: @ 8138E04
+ push {r4-r6,lr}
+ ldr r4, _08138EAC
+ ldrb r1, [r4]
+ movs r0, 0x2
+ bl sub_8031AF4
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x2
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _08138EB0
+ ldr r1, _08138EB4
+ ldrb r1, [r1, 0x8]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x50
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r6, _08138EB8
+ ldrb r1, [r4]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r5, _08138EBC
+ ldrb r3, [r4]
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08138EC0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r1, _08138EC4
+ str r1, [r0]
+ ldr r1, _08138EC8
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08138ECC
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138EAC: .4byte gUnknown_02024A60
+_08138EB0: .4byte gUnknown_02024E8C
+_08138EB4: .4byte gTrainerBackPicCoords
+_08138EB8: .4byte gUnknown_02024BE0
+_08138EBC: .4byte gSprites
+_08138EC0: .4byte 0x0000ffa0
+_08138EC4: .4byte sub_80313A0
+_08138EC8: .4byte gUnknown_03004330
+_08138ECC: .4byte sub_8137908
+ thumb_func_end sub_8138E04
+
+ thumb_func_start sub_8138ED0
+sub_8138ED0: @ 8138ED0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138ED0
+
+ thumb_func_start sub_8138EDC
+sub_8138EDC: @ 8138EDC
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138EDC
+
+ thumb_func_start sub_8138EE8
+sub_8138EE8: @ 8138EE8
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138EE8
+
+ thumb_func_start sub_8138EF4
+sub_8138EF4: @ 8138EF4
+ push {r4,r5,lr}
+ ldr r1, _08138F30
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ ldr r1, _08138F34
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r5, _08138F38
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _08138F3C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08138F40
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138F30: .4byte 0x02017840
+_08138F34: .4byte gUnknown_02024E6D
+_08138F38: .4byte gUnknown_02024A60
+_08138F3C: .4byte gUnknown_03004330
+_08138F40: .4byte bx_wait_t5
+ thumb_func_end sub_8138EF4
+
+ thumb_func_start sub_8138F44
+sub_8138F44: @ 8138F44
+ push {r4,r5,lr}
+ ldr r1, _08138F88
+ ldr r5, _08138F8C
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _08138F90
+ strb r1, [r0, 0x8]
+ ldr r1, _08138F94
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _08138F98
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08138F9C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138F88: .4byte gUnknown_02023A60
+_08138F8C: .4byte gUnknown_02024A60
+_08138F90: .4byte 0x02017840
+_08138F94: .4byte gUnknown_02024E6D
+_08138F98: .4byte gUnknown_03004330
+_08138F9C: .4byte bx_wait_t5
+ thumb_func_end sub_8138F44
+
+ thumb_func_start sub_8138FA0
+sub_8138FA0: @ 8138FA0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138FA0
+
+ thumb_func_start sub_8138FAC
+sub_8138FAC: @ 8138FAC
+ push {r4-r6,lr}
+ ldr r0, _08139080
+ mov r12, r0
+ ldr r6, _08139084
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _08139088
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _0813908C
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x4
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x5
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r4, _08139090
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x6
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x7
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 16
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x9
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 24
+ orrs r3, r1
+ str r3, [r4]
+ ldr r3, _08139094
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08139098
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0xC
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0xD
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r3, _0813909C
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _081390A0
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_8031720
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _081390A4
+ bl dp01_tbl5_exec_completed
+ b _081390BE
+ .align 2, 0
+_08139080: .4byte gUnknown_02023A60
+_08139084: .4byte gUnknown_02024A60
+_08139088: .4byte gUnknown_0202F7C4
+_0813908C: .4byte gUnknown_0202F7BC
+_08139090: .4byte gUnknown_0202F7B8
+_08139094: .4byte gUnknown_0202F7BE
+_08139098: .4byte gUnknown_0202F7C0
+_0813909C: .4byte gUnknown_0202F7B4
+_081390A0: .4byte gUnknown_02024E70
+_081390A4:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081390C4
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _081390C8
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081390CC
+ str r1, [r0]
+_081390BE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081390C4: .4byte 0x02017810
+_081390C8: .4byte gUnknown_03004330
+_081390CC: .4byte sub_81390D0
+ thumb_func_end sub_8138FAC
+
+ thumb_func_start sub_81390D0
+sub_81390D0: @ 81390D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, _0813910C
+ ldr r5, _08139110
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r8, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r7, r2, 0x2
+ adds r1, r7
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _08139114
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _08139150
+ cmp r2, 0x1
+ bgt _08139118
+ cmp r2, 0
+ beq _08139122
+ b _081391FC
+ .align 2, 0
+_0813910C: .4byte gUnknown_02023A60
+_08139110: .4byte gUnknown_02024A60
+_08139114: .4byte 0x02017810
+_08139118:
+ cmp r2, 0x2
+ beq _08139176
+ cmp r2, 0x3
+ beq _081391C4
+ b _081391FC
+_08139122:
+ lsls r0, r3, 2
+ adds r1, r6, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08139140
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08139140:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _081391FC
+_08139150:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _081391FC
+ movs r0, 0
+ bl sub_80326EC
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _081391FC
+_08139176:
+ ldr r0, _081391BC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _081391C0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081391FC
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r1, r6, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081391AA
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_081391AA:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x3
+ strb r0, [r1, 0x4]
+ b _081391FC
+ .align 2, 0
+_081391BC: .4byte gUnknown_0202F7AC
+_081391C0: .4byte gUnknown_0202F7B1
+_081391C4:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _081391FC
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r8
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ adds r2, r7
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl dp01_tbl5_exec_completed
+_081391FC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81390D0
+
+ thumb_func_start sub_8139208
+sub_8139208: @ 8139208
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08139254
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08139258
+ strh r1, [r0]
+ ldr r5, _0813925C
+ ldrb r0, [r5]
+ lsls r0, 9
+ ldr r1, _08139260
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x2
+ bne _0813922A
+ bl sub_814A7FC
+_0813922A:
+ ldrh r0, [r4]
+ bl sub_8120AA8
+ ldr r0, _08139264
+ ldr r1, _08139268
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _0813926C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139270
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139254: .4byte gUnknown_030042A4
+_08139258: .4byte gUnknown_030042A0
+_0813925C: .4byte gUnknown_02024A60
+_08139260: .4byte gUnknown_02023A62
+_08139264: .4byte gUnknown_03004210
+_08139268: .4byte gUnknown_020238CC
+_0813926C: .4byte gUnknown_03004330
+_08139270: .4byte sub_8137454
+ thumb_func_end sub_8139208
+
+ thumb_func_start dp01t_11_5_message_for_player_only
+dp01t_11_5_message_for_player_only: @ 8139274
+ push {lr}
+ ldr r0, _0813928C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08139290
+ bl sub_8139208
+ b _08139294
+ .align 2, 0
+_0813928C: .4byte gUnknown_02024A60
+_08139290:
+ bl dp01_tbl5_exec_completed
+_08139294:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_5_message_for_player_only
+
+ thumb_func_start sub_8139298
+sub_8139298: @ 8139298
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _0813934C
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _08139350
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r4, _08139354
+ movs r5, 0
+ strb r2, [r4, 0x6]
+ movs r0, 0x1B
+ str r0, [sp]
+ movs r0, 0x12
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0xF
+ bl FillWindowRect_DefaultPalette
+ movs r0, 0x10
+ str r0, [sp]
+ movs r0, 0x24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0x23
+ bl FillWindowRect_DefaultPalette
+ ldr r1, _08139358
+ ldr r0, _0813935C
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139360
+ str r1, [r0]
+ ldr r1, _08139364
+ movs r2, 0xC8
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x12
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08139368
+ ldr r3, _0813936C
+ str r5, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ movs r4, 0
+_0813930C:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl nullsub_8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0813930C
+ movs r0, 0
+ movs r1, 0
+ bl sub_802E3E4
+ ldr r0, _08139370
+ bl get_battle_strings_
+ ldr r4, _08139354
+ ldr r1, _08139374
+ movs r2, 0xDC
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x2
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813934C: .4byte gUnknown_030042A4
+_08139350: .4byte gUnknown_030042A0
+_08139354: .4byte gUnknown_03004210
+_08139358: .4byte gUnknown_03004330
+_0813935C: .4byte gUnknown_02024A60
+_08139360: .4byte sub_81372BC
+_08139364: .4byte gUnknown_08400CF3
+_08139368: .4byte 0x0000ffff
+_0813936C: .4byte 0x00002d9f
+_08139370: .4byte gUnknown_08400CCC
+_08139374: .4byte gUnknown_020238CC
+ thumb_func_end sub_8139298
+
+ thumb_func_start sub_8139378
+sub_8139378: @ 8139378
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139378
+
+ thumb_func_start sub_8139384
+sub_8139384: @ 8139384
+ push {r4,r5,lr}
+ ldr r5, _08139398
+ ldr r0, _0813939C
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081393A0
+ cmp r0, 0x1
+ beq _081393B2
+ b _081393DE
+ .align 2, 0
+_08139398: .4byte 0x02000000
+_0813939C: .4byte 0x000160a9
+_081393A0:
+ bl sub_80304A8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r0, _081393E4
+ adds r1, r5, r0
+ movs r0, 0x50
+ strb r0, [r1]
+_081393B2:
+ ldr r1, _081393E8
+ ldr r0, _081393E4
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _081393DE
+ bl sub_814A7FC
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl5_exec_completed
+_081393DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081393E4: .4byte 0x000160ab
+_081393E8: .4byte 0x02000000
+ thumb_func_end sub_8139384
+
+ thumb_func_start sub_81393EC
+sub_81393EC: @ 81393EC
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0813941C
+ ldr r2, _08139420
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139424
+ str r1, [r0]
+ ldr r1, _08139428
+ ldrb r0, [r2]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813941C: .4byte gUnknown_03004330
+_08139420: .4byte gUnknown_02024A60
+_08139424: .4byte sub_81374C4
+_08139428: .4byte gUnknown_02024E6C
+ thumb_func_end sub_81393EC
+
+ thumb_func_start sub_813942C
+sub_813942C: @ 813942C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813942C
+
+ thumb_func_start sub_8139438
+sub_8139438: @ 8139438
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139438
+
+ thumb_func_start sub_8139444
+sub_8139444: @ 8139444
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ bl load_gfxc_health_bar
+ ldr r3, _081394BC
+ ldr r0, _081394C0
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ adds r3, 0x3
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ asrs r7, r1, 16
+ ldr r0, _081394C4
+ cmp r7, r0
+ beq _081394D4
+ ldr r6, _081394C8
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _081394CC
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _081394D0
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _0813950E
+ .align 2, 0
+_081394BC: .4byte gUnknown_02023A60
+_081394C0: .4byte gUnknown_02024A60
+_081394C4: .4byte 0x00007fff
+_081394C8: .4byte gUnknown_02024A6A
+_081394CC: .4byte gPlayerParty
+_081394D0: .4byte gUnknown_03004340
+_081394D4:
+ ldr r1, _0813952C
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08139530
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r4, _08139534
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80440EC
+_0813950E:
+ ldr r1, _08139538
+ ldr r0, _0813953C
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139540
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813952C: .4byte gUnknown_02024A6A
+_08139530: .4byte gPlayerParty
+_08139534: .4byte gUnknown_03004340
+_08139538: .4byte gUnknown_03004330
+_0813953C: .4byte gUnknown_02024A60
+_08139540: .4byte sub_81377B0
+ thumb_func_end sub_8139444
+
+ thumb_func_start sub_8139544
+sub_8139544: @ 8139544
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139544
+
+ thumb_func_start sub_8139550
+sub_8139550: @ 8139550
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139550
+
+ thumb_func_start sub_813955C
+sub_813955C: @ 813955C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813955C
+
+ thumb_func_start sub_8139568
+sub_8139568: @ 8139568
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139568
+
+ thumb_func_start sub_8139574
+sub_8139574: @ 8139574
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139574
+
+ thumb_func_start sub_8139580
+sub_8139580: @ 8139580
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139580
+
+ thumb_func_start sub_813958C
+sub_813958C: @ 813958C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813958C
+
+ thumb_func_start sub_8139598
+sub_8139598: @ 8139598
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139598
+
+ thumb_func_start sub_81395A4
+sub_81395A4: @ 81395A4
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395A4
+
+ thumb_func_start sub_81395B0
+sub_81395B0: @ 81395B0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395B0
+
+ thumb_func_start sub_81395BC
+sub_81395BC: @ 81395BC
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395BC
+
+ thumb_func_start sub_81395C8
+sub_81395C8: @ 81395C8
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395C8
+
+ thumb_func_start sub_81395D4
+sub_81395D4: @ 81395D4
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395D4
+
+ thumb_func_start sub_81395E0
+sub_81395E0: @ 81395E0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395E0
+
+ thumb_func_start sub_81395EC
+sub_81395EC: @ 81395EC
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395EC
+
+ thumb_func_start sub_81395F8
+sub_81395F8: @ 81395F8
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395F8
+
+ thumb_func_start sub_8139604
+sub_8139604: @ 8139604
+ push {r4,lr}
+ ldr r3, _0813962C
+ ldr r2, _08139630
+ ldr r4, _08139634
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08139638
+ bl dp01_tbl5_exec_completed
+ b _08139662
+ .align 2, 0
+_0813962C: .4byte gSprites
+_08139630: .4byte gUnknown_02024BE0
+_08139634: .4byte gUnknown_02024A60
+_08139638:
+ ldr r1, _08139668
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ bl sub_8047858
+ ldr r1, _0813966C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139670
+ str r1, [r0]
+_08139662:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139668: .4byte gUnknown_02024E6D
+_0813966C: .4byte gUnknown_03004330
+_08139670: .4byte bx_blink_t5
+ thumb_func_end sub_8139604
+
+ thumb_func_start sub_8139674
+sub_8139674: @ 8139674
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139674
+
+ thumb_func_start sub_8139680
+sub_8139680: @ 8139680
+ push {lr}
+ ldr r2, _081396A8
+ ldr r0, _081396AC
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlaySE
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081396A8: .4byte gUnknown_02023A60
+_081396AC: .4byte gUnknown_02024A60
+ thumb_func_end sub_8139680
+
+ thumb_func_start sub_81396B0
+sub_81396B0: @ 81396B0
+ push {lr}
+ ldr r2, _081396D8
+ ldr r0, _081396DC
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081396D8: .4byte gUnknown_02023A60
+_081396DC: .4byte gUnknown_02024A60
+ thumb_func_end sub_81396B0
+
+ thumb_func_start sub_81396E0
+sub_81396E0: @ 81396E0
+ push {lr}
+ ldr r1, _08139710
+ ldr r0, _08139714
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08139718
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ bl PlayCry1
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139710: .4byte gUnknown_02024A6A
+_08139714: .4byte gUnknown_02024A60
+_08139718: .4byte gPlayerParty
+ thumb_func_end sub_81396E0
+
+ thumb_func_start dp01t_2E_5_battle_intro
+dp01t_2E_5_battle_intro: @ 813971C
+ push {lr}
+ ldr r1, _08139744
+ ldr r0, _08139748
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _0813974C
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139744: .4byte gUnknown_02023A60
+_08139748: .4byte gUnknown_02024A60
+_0813974C: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_5_battle_intro
+
+ thumb_func_start sub_8139750
+sub_8139750: @ 8139750
+ push {r4-r7,lr}
+ ldr r6, _08139880
+ ldr r7, _08139884
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08139888
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x32
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0813988C
+ strh r1, [r0, 0x32]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08139890
+ str r1, [r0]
+ ldrb r2, [r7]
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x38]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08139894
+ bl oamt_set_x3A_32
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _08139898
+ bl AllocSpritePalette
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r0, _0813989C
+ ldr r0, [r0, 0x10]
+ lsrs r4, 20
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r4
+ strb r0, [r1, 0x5]
+ ldr r0, _081398A0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _081398A4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r7]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r7]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _081398A8
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08139864
+ ldr r0, _081398AC
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _081398B0
+ str r1, [r0]
+_08139864:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _081398B4
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081398B8
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139880: .4byte gUnknown_02024BE0
+_08139884: .4byte gUnknown_02024A60
+_08139888: .4byte gSprites
+_0813988C: .4byte 0x0000ffd8
+_08139890: .4byte sub_8078B34
+_08139894: .4byte sub_8030E38
+_08139898: .4byte 0x0000d6f8
+_0813989C: .4byte gTrainerBackPicPaletteTable
+_081398A0: .4byte sub_8139A2C
+_081398A4: .4byte gTasks
+_081398A8: .4byte 0x02017810
+_081398AC: .4byte gUnknown_02024E68
+_081398B0: .4byte sub_8044CA0
+_081398B4: .4byte gUnknown_03004330
+_081398B8: .4byte nullsub_91
+ thumb_func_end sub_8139750
+
+ thumb_func_start sub_81398BC
+sub_81398BC: @ 81398BC
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r0, r6, 2
+ ldr r1, _08139A00
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x2]
+ ldr r0, _08139A04
+ lsls r2, r6, 1
+ adds r2, r0
+ ldr r0, _08139A08
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r2]
+ ldrh r1, [r2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08139A0C
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _08139A10
+ bl object_new_hidden_with_callback
+ ldr r1, _08139A14
+ mov r9, r1
+ add r9, r6
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08139A18
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _08139A1C
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _08139A20
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r6, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08139A24
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartSpriteAnim
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08139A28
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8046400
+ mov r1, r9
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2E]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139A00: .4byte 0x02017800
+_08139A04: .4byte gUnknown_02024A6A
+_08139A08: .4byte gUnknown_02023A60
+_08139A0C: .4byte gPlayerParty
+_08139A10: .4byte sub_80312F0
+_08139A14: .4byte gUnknown_0300434C
+_08139A18: .4byte gUnknown_02024E8C
+_08139A1C: .4byte gUnknown_02024BE0
+_08139A20: .4byte gSprites
+_08139A24: .4byte gUnknown_02024E84
+_08139A28: .4byte SpriteCallbackDummy
+ thumb_func_end sub_81398BC
+
+ thumb_func_start sub_8139A2C
+sub_8139A2C: @ 8139A2C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08139A4C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1E
+ bgt _08139A50
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+ b _08139A86
+ .align 2, 0
+_08139A4C: .4byte gTasks
+_08139A50:
+ ldr r4, _08139A8C
+ ldrb r5, [r4]
+ ldrh r0, [r1, 0x8]
+ strb r0, [r4]
+ ldr r0, _08139A90
+ ldrb r1, [r4]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08139A94
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_81398BC
+ ldr r1, _08139A98
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139A9C
+ str r1, [r0]
+ strb r5, [r4]
+ adds r0, r6, 0
+ bl DestroyTask
+_08139A86:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139A8C: .4byte gUnknown_02024A60
+_08139A90: .4byte gUnknown_02023A60
+_08139A94: .4byte gUnknown_02024A6A
+_08139A98: .4byte gUnknown_03004330
+_08139A9C: .4byte sub_8137538
+ thumb_func_end sub_8139A2C
+
+ thumb_func_start sub_8139AA0
+sub_8139AA0: @ 8139AA0
+ push {r4,r5,lr}
+ ldr r1, _08139AC8
+ ldr r0, _08139ACC
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08139AD0
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08139AD0
+ bl dp01_tbl5_exec_completed
+ b _08139B0A
+ .align 2, 0
+_08139AC8: .4byte gUnknown_02023A60
+_08139ACC: .4byte gUnknown_02024A60
+_08139AD0:
+ ldr r5, _08139B10
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08139B14
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r5]
+ lsls r4, r0, 9
+ ldr r3, _08139B18
+ adds r1, r4, r3
+ subs r2, r3, 0x3
+ adds r2, r4, r2
+ ldrb r2, [r2]
+ subs r3, 0x2
+ adds r4, r3
+ ldrb r3, [r4]
+ bl sub_8044804
+ ldr r2, _08139B1C
+ ldrb r1, [r5]
+ adds r1, r2
+ strb r0, [r1]
+ bl dp01_tbl5_exec_completed
+_08139B0A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139B10: .4byte gUnknown_02024A60
+_08139B14: .4byte 0x02017810
+_08139B18: .4byte gUnknown_02023A64
+_08139B1C: .4byte gUnknown_02024E68
+ thumb_func_end sub_8139AA0
+
+ thumb_func_start sub_8139B20
+sub_8139B20: @ 8139B20
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139B20
+
+ thumb_func_start sub_8139B2C
+sub_8139B2C: @ 8139B2C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139B2C
+
+ thumb_func_start sub_8139B38
+sub_8139B38: @ 8139B38
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139B38
+
+ thumb_func_start sub_8139B44
+sub_8139B44: @ 8139B44
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r5, _08139B7C
+ ldr r6, _08139B80
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _08139B84
+ bl dp01_tbl5_exec_completed
+ b _08139B90
+ .align 2, 0
+_08139B7C: .4byte gUnknown_02023A60
+_08139B80: .4byte gUnknown_02024A60
+_08139B84:
+ ldr r0, _08139B98
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08139B9C
+ str r0, [r1]
+_08139B90:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139B98: .4byte gUnknown_03004330
+_08139B9C: .4byte sub_8137940
+ thumb_func_end sub_8139B44
+
+ thumb_func_start sub_8139BA0
+sub_8139BA0: @ 8139BA0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139BA0
+
+ thumb_func_start sub_8139BAC
+sub_8139BAC: @ 8139BAC
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139BAC
+
+ thumb_func_start sub_8139BB8
+sub_8139BB8: @ 8139BB8
+ push {r4,lr}
+ ldr r2, _08139BFC
+ ldr r1, _08139C00
+ ldr r4, _08139C04
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl5_exec_completed
+ ldr r0, _08139C08
+ ldrh r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _08139BF4
+ ldr r0, _08139C0C
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08139C10
+ str r0, [r1]
+_08139BF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139BFC: .4byte gUnknown_02024D26
+_08139C00: .4byte gUnknown_02023A60
+_08139C04: .4byte gUnknown_02024A60
+_08139C08: .4byte gUnknown_020239F8
+_08139C0C: .4byte gUnknown_03004330
+_08139C10: .4byte sub_813746C
+ thumb_func_end sub_8139BB8
+
+ thumb_func_start nullsub_80
+nullsub_80: @ 8139C14
+ bx lr
+ thumb_func_end nullsub_80
+
+ thumb_func_start sub_8139C18
+sub_8139C18: @ 8139C18
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r0, _08139C6C
+ movs r1, 0x32
+ bl sub_80A9684
+ ldr r1, _08139C70
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08139C64
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _08139C64
+ adds r5, r1, 0
+ adds r6, r5, 0x2
+_08139C36:
+ lsls r1, r4, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ adds r1, r6
+ ldrh r1, [r1]
+ bl sub_80A9760
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08139C64
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, r4, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08139C64
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08139C36
+_08139C64:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139C6C: .4byte gSaveBlock1 + 0x498
+_08139C70: .4byte gUnknown_084062F0
+ thumb_func_end sub_8139C18
+
+ thumb_func_start sub_8139C74
+sub_8139C74: @ 8139C74
+ push {lr}
+ ldr r1, _08139C9C
+ ldr r0, _08139CA0
+ str r0, [r1]
+ ldr r1, _08139CA4
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _08139CA8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08139CAC
+ ldr r2, _08139CB0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139C9C: .4byte gUnknown_02039314
+_08139CA0: .4byte gUnknown_084062B8
+_08139CA4: .4byte gUnknown_030007B4
+_08139CA8: .4byte TaskDummy
+_08139CAC: .4byte gOtherText_WhatWillYouDo
+_08139CB0: .4byte sub_8139CF4
+ thumb_func_end sub_8139C74
+
+ thumb_func_start sub_8139CB4
+sub_8139CB4: @ 8139CB4
+ push {lr}
+ ldr r1, _08139CDC
+ ldr r0, _08139CE0
+ str r0, [r1]
+ ldr r1, _08139CE4
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, _08139CE8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08139CEC
+ ldr r2, _08139CF0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139CDC: .4byte gUnknown_02039314
+_08139CE0: .4byte gUnknown_084062BC
+_08139CE4: .4byte gUnknown_030007B4
+_08139CE8: .4byte TaskDummy
+_08139CEC: .4byte gOtherText_WhatWillYouDo
+_08139CF0: .4byte sub_8139CF4
+ thumb_func_end sub_8139CB4
+
+ thumb_func_start sub_8139CF4
+sub_8139CF4: @ 8139CF4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08139D50
+ ldrb r3, [r5]
+ lsls r3, 1
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ bl MenuDrawTextWindow
+ ldrb r2, [r5]
+ ldr r3, _08139D54
+ ldr r0, _08139D58
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ bl PrintMenuItemsReordered
+ ldrb r3, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl InitMenu
+ ldr r1, _08139D5C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08139D60
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139D50: .4byte gUnknown_030007B4
+_08139D54: .4byte gUnknown_08406298
+_08139D58: .4byte gUnknown_02039314
+_08139D5C: .4byte gTasks
+_08139D60: .4byte sub_8139D64
+ thumb_func_end sub_8139CF4
+
+ thumb_func_start sub_8139D64
+sub_8139D64: @ 8139D64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _08139D88
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08139D8C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _08139E10
+ .align 2, 0
+_08139D88: .4byte gMain
+_08139D8C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08139DA2
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _08139E10
+_08139DA2:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08139DE0
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _08139DD8
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08139DDC
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _08139E10
+ .align 2, 0
+_08139DD8: .4byte gUnknown_08406298
+_08139DDC: .4byte gUnknown_02039314
+_08139DE0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08139E10
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _08139E18
+ ldr r0, _08139E1C
+ ldrb r0, [r0]
+ ldr r1, _08139E20
+ ldr r1, [r1]
+ adds r0, r1
+ subs r0, 0x1
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_08139E10:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139E18: .4byte gUnknown_08406298
+_08139E1C: .4byte gUnknown_030007B4
+_08139E20: .4byte gUnknown_02039314
+ thumb_func_end sub_8139D64
+
+ thumb_func_start sub_8139E24
+sub_8139E24: @ 8139E24
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08139E38
+ ldr r2, _08139E3C
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139E38: .4byte gOtherText_WhatWillYouDo
+_08139E3C: .4byte sub_8139CF4
+ thumb_func_end sub_8139E24
+
+ thumb_func_start sub_8139E40
+sub_8139E40: @ 8139E40
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_8139F58
+ ldr r1, _08139E64
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08139E68
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139E64: .4byte gTasks
+_08139E68: .4byte sub_8139FD4
+ thumb_func_end sub_8139E40
+
+ thumb_func_start sub_8139E6C
+sub_8139E6C: @ 8139E6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl sub_813AF3C
+ ldr r1, _08139E9C
+ movs r2, 0
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08139EA8
+ ldr r1, _08139EA0
+ ldr r2, _08139EA4
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08139ECA
+ .align 2, 0
+_08139E9C: .4byte 0x0201fe00
+_08139EA0: .4byte gOtherText_NoMailHere
+_08139EA4: .4byte sub_8139E24
+_08139EA8:
+ strb r2, [r1]
+ strb r2, [r1, 0x2]
+ bl sub_813AF78
+ adds r0, r4, 0
+ bl sub_813A240
+ adds r0, r4, 0
+ bl sub_813B108
+ ldr r0, _08139ED0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08139ED4
+ str r0, [r1]
+_08139ECA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139ED0: .4byte gTasks
+_08139ED4: .4byte sub_813B174
+ thumb_func_end sub_8139E6C
+
+ thumb_func_start sub_8139ED8
+sub_8139ED8: @ 8139ED8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FE28C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139ED8
+
+ thumb_func_start sub_8139EF8
+sub_8139EF8: @ 8139EF8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08139F24
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _08139F3C
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _08139F28
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08139F30
+ ldr r0, _08139F2C
+ bl ScriptContext1_SetupScript
+ b _08139F4C
+ .align 2, 0
+_08139F24: .4byte gUnknown_030007B4
+_08139F28: .4byte gSaveBlock2
+_08139F2C: .4byte gUnknown_08152850
+_08139F30:
+ ldr r0, _08139F38
+ bl ScriptContext1_SetupScript
+ b _08139F4C
+ .align 2, 0
+_08139F38: .4byte gUnknown_08152C75
+_08139F3C:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl EnableBothScriptContexts
+_08139F4C:
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139EF8
+
+ thumb_func_start sub_8139F58
+sub_8139F58: @ 8139F58
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _08139FAC
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ str r4, [sp]
+ movs r0, 0xA
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ ldr r0, _08139FB0
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ bl sub_8139FB4
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139FAC: .4byte gUnknown_084062C0
+_08139FB0: .4byte gUnknown_08406288
+ thumb_func_end sub_8139F58
+
+ thumb_func_start sub_8139FB4
+sub_8139FB4: @ 8139FB4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139FB4
+
+ thumb_func_start sub_8139FD4
+sub_8139FD4: @ 8139FD4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _08139FF4
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08139FF8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _0813A008
+ .align 2, 0
+_08139FF4: .4byte gMain
+_08139FF8:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A024
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_0813A008:
+ bl MoveMenuCursor
+ ldr r4, _0813A020
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_8139FB4
+ b _0813A06C
+ .align 2, 0
+_0813A020: .4byte gUnknown_08406288
+_0813A024:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A050
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0813A04C
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 21
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0813A06C
+ .align 2, 0
+_0813A04C: .4byte gUnknown_084062C0
+_0813A050:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A06C
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0813A074
+ ldr r1, [r0, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+_0813A06C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A074: .4byte gUnknown_084062C0
+ thumb_func_end sub_8139FD4
+
+ thumb_func_start sub_813A078
+sub_813A078: @ 813A078
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0813A09C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813A094
+ bl sub_80A6A30
+ adds r0, r4, 0
+ bl DestroyTask
+_0813A094:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A09C: .4byte gPaletteFade
+ thumb_func_end sub_813A078
+
+ thumb_func_start sub_813A0A0
+sub_813A0A0: @ 813A0A0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813A0C0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0813A0C4
+ str r0, [r1]
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A0C0: .4byte gTasks
+_0813A0C4: .4byte sub_813A078
+ thumb_func_end sub_813A0A0
+
+ thumb_func_start sub_813A0C8
+sub_813A0C8: @ 813A0C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813A0E8
+ ldr r0, _0813A0F0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813A0F4
+ str r0, [r1]
+_0813A0E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A0F0: .4byte gTasks
+_0813A0F4: .4byte sub_8139FD4
+ thumb_func_end sub_813A0C8
+
+ thumb_func_start sub_813A0F8
+sub_813A0F8: @ 813A0F8
+ push {lr}
+ bl MenuDisplayMessageBox
+ movs r0, 0x1
+ bl sub_8139F58
+ ldr r0, _0813A114
+ movs r1, 0
+ bl CreateTask
+ bl pal_fill_black
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A114: .4byte sub_813A0C8
+ thumb_func_end sub_813A0F8
+
+ thumb_func_start sub_813A118
+sub_813A118: @ 813A118
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _0813A174
+ adds r4, r6, r7
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl sub_80A96E4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0813A17C
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813A240
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_813AE6C
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0813A178
+ str r1, [r0]
+ b _0813A188
+ .align 2, 0
+_0813A174: .4byte gUnknown_03004B28
+_0813A178: .4byte sub_813A280
+_0813A17C:
+ ldr r1, _0813A190
+ ldr r2, _0813A194
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_0813A188:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A190: .4byte gOtherText_NoItems
+_0813A194: .4byte sub_8139E40
+ thumb_func_end sub_813A118
+
+ thumb_func_start sub_813A198
+sub_813A198: @ 813A198
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _0813A1F8
+ adds r4, r6, r7
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl sub_80A96E4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0813A200
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x2
+ strh r0, [r4, 0xC]
+ movs r0, 0
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813A240
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_813AE6C
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0813A1FC
+ str r1, [r0]
+ b _0813A20C
+ .align 2, 0
+_0813A1F8: .4byte gUnknown_03004B28
+_0813A1FC: .4byte sub_813A280
+_0813A200:
+ ldr r1, _0813A214
+ ldr r2, _0813A218
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_0813A20C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A214: .4byte gOtherText_NoItems
+_0813A218: .4byte sub_8139E40
+ thumb_func_end sub_813A198
+
+ thumb_func_start sub_813A21C
+sub_813A21C: @ 813A21C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_8139E24
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A21C
+
+ thumb_func_start sub_813A240
+sub_813A240: @ 813A240
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0813A260
+ adds r1, r0
+ ldrh r2, [r1, 0x4]
+ movs r3, 0x4
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ ble _0813A264
+ movs r0, 0x8
+ b _0813A266
+ .align 2, 0
+_0813A260: .4byte gUnknown_03004B28
+_0813A264:
+ adds r0, r2, 0x1
+_0813A266:
+ strh r0, [r1, 0x8]
+ ldr r1, _0813A274
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x7
+ bls _0813A278
+ movs r0, 0x8
+ b _0813A27A
+ .align 2, 0
+_0813A274: .4byte 0x0201fe00
+_0813A278:
+ adds r0, 0x1
+_0813A27A:
+ strb r0, [r1, 0x1]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A240
+
+ thumb_func_start sub_813A280
+sub_813A280: @ 813A280
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0813A2DC
+ adds r4, r0, r1
+ ldr r2, _0813A2E0
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A306
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0813A2E4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0813A2CC
+ b _0813A460
+_0813A2CC:
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _0813A34C
+ b _0813A358
+ .align 2, 0
+_0813A2DC: .4byte gUnknown_03004B28
+_0813A2E0: .4byte gMain
+_0813A2E4:
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813A2EE
+ b _0813A460
+_0813A2EE:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813AE0C
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ b _0813A394
+_0813A306:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A3A0
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0813A370
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0813A340
+ b _0813A460
+_0813A340:
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0813A358
+_0813A34C:
+ ldr r0, _0813A354
+ bl sub_813AD58
+ b _0813A460
+ .align 2, 0
+_0813A354: .4byte 0x0000ffff
+_0813A358:
+ ldr r0, _0813A36C
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x93
+ lsls r0, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ bl sub_813AD58
+ b _0813A460
+ .align 2, 0
+_0813A36C: .4byte gSaveBlock1
+_0813A370:
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _0813A460
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813AE0C
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+_0813A394:
+ cmp r0, 0
+ beq _0813A460
+ movs r0, 0
+ bl MoveMenuCursor
+ b _0813A460
+_0813A3A0:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A3F0
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0813A3E8
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _0813A3DC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldr r0, _0813A3E4
+ bl sub_813AD58
+_0813A3DC:
+ adds r0, r5, 0
+ bl sub_813ABE8
+ b _0813A460
+ .align 2, 0
+_0813A3E4: .4byte 0x0000fff7
+_0813A3E8:
+ movs r0, 0x5
+ bl PlaySE
+ b _0813A420
+_0813A3F0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A430
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0813A420
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _0813A44A
+ adds r0, r5, 0
+ bl sub_813A4B4
+ b _0813A460
+_0813A420:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_813AA30
+ adds r0, r5, 0
+ bl sub_813AE0C
+ b _0813A460
+_0813A430:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A460
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813A452
+ bl sub_8072DEC
+_0813A44A:
+ adds r0, r5, 0
+ bl sub_813A468
+ b _0813A460
+_0813A452:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_813AA30
+ adds r0, r6, 0
+ bl sub_813AE0C
+_0813A460:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A280
+
+ thumb_func_start sub_813A468
+sub_813A468: @ 813A468
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl BuyMenuFreeMemory
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl MenuDisplayMessageBox
+ ldr r0, _0813A4AC
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x14]
+ bl sub_8139F58
+ ldr r0, _0813A4B0
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A4AC: .4byte gTasks
+_0813A4B0: .4byte sub_8139FD4
+ thumb_func_end sub_813A468
+
+ thumb_func_start sub_813A4B4
+sub_813A4B4: @ 813A4B4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _0813A500
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ bl sub_80F996C
+ movs r0, 0x1
+ bl sub_80F996C
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813A518
+ ldr r1, _0813A504
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, _0813A508
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _0813A50C
+ strh r0, [r4, 0x6]
+ adds r0, r6, 0
+ bl sub_813A6FC
+ b _0813A570
+ .align 2, 0
+_0813A500: .4byte gUnknown_03004B28
+_0813A504: .4byte gSaveBlock1
+_0813A508: .4byte 0x0000049a
+_0813A50C:
+ ldr r0, _0813A514
+ bl sub_813AD58
+ b _0813A542
+ .align 2, 0
+_0813A514: .4byte 0x0000fffe
+_0813A518:
+ ldr r1, _0813A534
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, _0813A538
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _0813A53C
+ strh r0, [r4, 0x6]
+ adds r0, r6, 0
+ bl sub_813A794
+ b _0813A570
+ .align 2, 0
+_0813A534: .4byte gSaveBlock1
+_0813A538: .4byte 0x0000049a
+_0813A53C:
+ ldr r0, _0813A578
+ bl sub_813AD58
+_0813A542:
+ movs r0, 0x1
+ strh r0, [r4, 0x6]
+ movs r0, 0x6
+ movs r1, 0x8
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x3
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0x9
+ bl sub_80A418C
+ ldr r1, _0813A57C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813A580
+ str r1, [r0]
+_0813A570:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A578: .4byte 0x0000fffc
+_0813A57C: .4byte gTasks
+_0813A580: .4byte sub_813A584
+ thumb_func_end sub_813A4B4
+
+ thumb_func_start sub_813A584
+sub_813A584: @ 813A584
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r7, r0, 3
+ ldr r0, _0813A5D0
+ mov r8, r0
+ adds r4, r7, r0
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r6, r3, 0
+ ldr r2, _0813A5D4
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A5E4
+ movs r0, 0x6
+ ldrsh r2, [r4, r0]
+ ldr r1, _0813A5D8
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, _0813A5DC
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0813A5E0
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ b _0813A64A
+ .align 2, 0
+_0813A5D0: .4byte gUnknown_03004B28
+_0813A5D4: .4byte gMain
+_0813A5D8: .4byte gSaveBlock1
+_0813A5DC: .4byte 0x0000049a
+_0813A5E0:
+ movs r0, 0x1
+ b _0813A64A
+_0813A5E4:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A610
+ ldrh r1, [r4, 0x6]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ beq _0813A5FA
+ subs r0, r1, 0x1
+ b _0813A64A
+_0813A5FA:
+ ldr r0, _0813A608
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r3, _0813A60C
+ adds r1, r3
+ ldrh r0, [r1]
+ b _0813A64A
+ .align 2, 0
+_0813A608: .4byte gSaveBlock1
+_0813A60C: .4byte 0x0000049a
+_0813A610:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A628
+ ldrh r0, [r4, 0x6]
+ subs r0, 0xA
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0813A64C
+ movs r0, 0x1
+ b _0813A64A
+_0813A628:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A668
+ ldrh r0, [r4, 0x6]
+ adds r0, 0xA
+ strh r0, [r4, 0x6]
+ movs r0, 0x6
+ ldrsh r2, [r4, r0]
+ ldr r1, _0813A660
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r1, _0813A664
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r2, r0
+ ble _0813A64C
+_0813A64A:
+ strh r0, [r4, 0x6]
+_0813A64C:
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x3
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0x9
+ bl sub_80A418C
+ b _0813A6E8
+ .align 2, 0
+_0813A660: .4byte gSaveBlock1
+_0813A664: .4byte 0x0000049a
+_0813A668:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A69C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0813A694
+ adds r0, r5, 0
+ bl sub_813A6FC
+ b _0813A6E8
+_0813A694:
+ adds r0, r5, 0
+ bl sub_813A794
+ b _0813A6E8
+_0813A69C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A6E8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ ldr r2, _0813A6F4
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ movs r3, 0
+ ldrsh r1, [r4, r3]
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813AD58
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _0813A6F8
+ str r1, [r0]
+_0813A6E8:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A6F4: .4byte gSaveBlock1
+_0813A6F8: .4byte sub_813A280
+ thumb_func_end sub_813A584
+
+ thumb_func_start sub_813A6FC
+sub_813A6FC: @ 813A6FC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r6, r1, 3
+ ldr r7, _0813A758
+ adds r4, r6, r7
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ ldr r1, _0813A75C
+ lsrs r0, 22
+ adds r0, r1
+ movs r2, 0x93
+ lsls r2, 3
+ adds r5, r0, r2
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x6]
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813A770
+ ldrh r0, [r5]
+ ldr r1, _0813A760
+ bl itemid_copy_name
+ ldr r0, _0813A764
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _0813A768
+ bl sub_813AD58
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0813A76C
+ b _0813A782
+ .align 2, 0
+_0813A758: .4byte gUnknown_03004B28
+_0813A75C: .4byte gSaveBlock1
+_0813A760: .4byte gStringVar1
+_0813A764: .4byte gStringVar2
+_0813A768: .4byte 0x0000fffd
+_0813A76C: .4byte sub_813A8F0
+_0813A770:
+ movs r0, 0
+ strh r0, [r4, 0x6]
+ ldr r0, _0813A78C
+ bl sub_813AD58
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0813A790
+_0813A782:
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A78C: .4byte 0x0000fffa
+_0813A790: .4byte sub_813A984
+ thumb_func_end sub_813A6FC
+
+ thumb_func_start sub_813A794
+sub_813A794: @ 813A794
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r7, r0, 3
+ ldr r0, _0813A7FC
+ mov r8, r0
+ adds r4, r7, r0
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ ldr r1, _0813A800
+ lsrs r0, 22
+ adds r0, r1
+ movs r2, 0x93
+ lsls r2, 3
+ adds r5, r0, r2
+ ldrh r0, [r5]
+ bl itemid_is_unique
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813A814
+ ldrh r0, [r5]
+ ldr r1, _0813A804
+ bl itemid_copy_name
+ ldr r0, _0813A808
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _0813A80C
+ bl sub_813AD58
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _0813A810
+ adds r0, r6, 0
+ bl sub_80F914C
+ b _0813A828
+ .align 2, 0
+_0813A7FC: .4byte gUnknown_03004B28
+_0813A800: .4byte gSaveBlock1
+_0813A804: .4byte gStringVar1
+_0813A808: .4byte gStringVar2
+_0813A80C: .4byte 0x0000fff8
+_0813A810: .4byte gUnknown_084062E0
+_0813A814:
+ movs r0, 0
+ strh r0, [r4, 0x6]
+ ldr r0, _0813A834
+ bl sub_813AD58
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _0813A838
+ str r1, [r0]
+_0813A828:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A834: .4byte 0x0000fff9
+_0813A838: .4byte sub_813A8F0
+ thumb_func_end sub_813A794
+
+ thumb_func_start sub_813A83C
+sub_813A83C: @ 813A83C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r0, _0813A86C
+ bl sub_813AD58
+ ldr r1, _0813A870
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813A874
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A86C: .4byte 0x0000fffb
+_0813A870: .4byte gTasks
+_0813A874: .4byte sub_813A8F0
+ thumb_func_end sub_813A83C
+
+ thumb_func_start sub_813A878
+sub_813A878: @ 813A878
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r6, _0813A8E4
+ adds r5, r4, r6
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldrb r3, [r5, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x2
+ bl InitMenu
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ ldr r2, _0813A8E8
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ movs r3, 0
+ ldrsh r1, [r5, r3]
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813AD58
+ subs r6, 0x8
+ adds r4, r6
+ ldr r0, _0813A8EC
+ str r0, [r4]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A8E4: .4byte gUnknown_03004B28
+_0813A8E8: .4byte gSaveBlock1
+_0813A8EC: .4byte sub_813A280
+ thumb_func_end sub_813A878
+
+ thumb_func_start sub_813A8F0
+sub_813A8F0: @ 813A8F0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _0813A97C
+ adds r5, r0, r1
+ ldr r0, _0813A980
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813A912
+ cmp r1, 0x2
+ bne _0813A972
+_0813A912:
+ ldrb r0, [r5, 0x2]
+ ldrb r1, [r5]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x6]
+ bl sub_80A97F4
+ ldrh r4, [r5, 0x4]
+ bl sub_80A96E4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x4]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, r0
+ beq _0813A952
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ cmp r4, r0
+ bge _0813A952
+ ldrh r1, [r5, 0x2]
+ movs r2, 0x2
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _0813A952
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2]
+_0813A952:
+ adds r0, r6, 0
+ bl sub_813A240
+ adds r0, r6, 0
+ bl sub_813A9EC
+ ldrb r3, [r5, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x2
+ bl InitMenu
+_0813A972:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A97C: .4byte gUnknown_03004B28
+_0813A980: .4byte gMain
+ thumb_func_end sub_813A8F0
+
+ thumb_func_start sub_813A984
+sub_813A984: @ 813A984
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r5, _0813A9DC
+ adds r3, r4, r5
+ ldr r0, _0813A9E0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813A9A4
+ cmp r1, 0x2
+ bne _0813A9D6
+_0813A9A4:
+ ldr r2, _0813A9E4
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ movs r6, 0
+ ldrsh r1, [r3, r6]
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813AD58
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ adds r0, r5, 0
+ subs r0, 0x8
+ adds r0, r4, r0
+ ldr r1, _0813A9E8
+ str r1, [r0]
+_0813A9D6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A9DC: .4byte gUnknown_03004B28
+_0813A9E0: .4byte gMain
+_0813A9E4: .4byte gSaveBlock1
+_0813A9E8: .4byte sub_813A280
+ thumb_func_end sub_813A984
+
+ thumb_func_start sub_813A9EC
+sub_813A9EC: @ 813A9EC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ adds r0, r4, 0
+ bl sub_813AE0C
+ ldr r1, _0813AA28
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813AA2C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AA28: .4byte gTasks
+_0813AA2C: .4byte sub_813A280
+ thumb_func_end sub_813A9EC
+
+ thumb_func_start sub_813AA30
+sub_813AA30: @ 813AA30
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0813AA80
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldrb r0, [r4, 0x4]
+ cmp r0, r5
+ bls _0813AA88
+ ldrb r0, [r4, 0x10]
+ cmp r0, r5
+ beq _0813AA88
+ cmp r2, 0
+ bne _0813AA88
+ ldr r1, _0813AA84
+ movs r0, 0x10
+ ldrsh r2, [r4, r0]
+ lsls r2, 2
+ movs r0, 0x93
+ lsls r0, 3
+ adds r1, r0
+ adds r2, r1
+ ldr r3, [r2]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r3, [r0]
+ b _0813AAB8
+ .align 2, 0
+_0813AA80: .4byte gUnknown_03004B28
+_0813AA84: .4byte gSaveBlock1
+_0813AA88:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ bne _0813AA9C
+ ldr r0, _0813AA98
+ bl sub_813AD58
+ b _0813AAAE
+ .align 2, 0
+_0813AA98: .4byte 0x0000ffff
+_0813AA9C:
+ ldr r0, _0813AAC0
+ lsls r1, r5, 2
+ adds r1, r0
+ movs r2, 0x93
+ lsls r2, 3
+ adds r1, r2
+ ldrh r0, [r1]
+ bl sub_813AD58
+_0813AAAE:
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ subs r0, r1, r0
+_0813AAB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AAC0: .4byte gSaveBlock1
+ thumb_func_end sub_813AA30
+
+ thumb_func_start sub_813AAC4
+sub_813AAC4: @ 813AAC4
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r6, [sp, 0x14]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _0813AAF4
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A4164
+ cmp r6, 0
+ beq _0813AAFC
+ ldr r0, _0813AAF8
+ movs r1, 0x1A
+ adds r2, r7, 0
+ bl MenuPrint
+ b _0813AB06
+ .align 2, 0
+_0813AAF4: .4byte gStringVar1
+_0813AAF8: .4byte gUnknown_0840632A
+_0813AAFC:
+ ldr r0, _0813AB0C
+ movs r1, 0x1A
+ adds r2, r7, 0
+ bl MenuPrint
+_0813AB06:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AB0C: .4byte gUnknown_08406327
+ thumb_func_end sub_813AAC4
+
+ thumb_func_start sub_813AB10
+sub_813AB10: @ 813AB10
+ push {lr}
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _0813AB24
+ movs r1, 0x19
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AB24: .4byte gUnknown_08406330
+ thumb_func_end sub_813AB10
+
+ thumb_func_start sub_813AB28
+sub_813AB28: @ 813AB28
+ push {r4,r5,lr}
+ adds r4, r2, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldrh r0, [r0]
+ ldr r1, _0813AB48
+ bl itemid_copy_name
+ cmp r4, 0
+ beq _0813AB50
+ ldr r0, _0813AB4C
+ movs r1, 0x10
+ adds r2, r5, 0
+ bl MenuPrint
+ b _0813AB5A
+ .align 2, 0
+_0813AB48: .4byte gStringVar1
+_0813AB4C: .4byte gUnknown_0840631E
+_0813AB50:
+ ldr r0, _0813AB60
+ movs r1, 0x10
+ adds r2, r5, 0
+ bl MenuPrint
+_0813AB5A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AB60: .4byte gUnknown_08406318
+ thumb_func_end sub_813AB28
+
+ thumb_func_start sub_813AB64
+sub_813AB64: @ 813AB64
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl sub_813AB28
+ ldrh r0, [r6, 0x2]
+ str r5, [sp]
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl sub_813AAC4
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813AB64
+
+ thumb_func_start sub_813AB90
+sub_813AB90: @ 813AB90
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl sub_813AB28
+ adds r0, r4, 0
+ bl sub_813AB10
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813AB90
+
+ thumb_func_start sub_813ABAC
+sub_813ABAC: @ 813ABAC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r2, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r1, r5, 0
+ bl sub_813AB28
+ ldrh r1, [r4]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bhi _0813ABD8
+ ldrh r0, [r4, 0x2]
+ str r6, [sp]
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x3
+ bl sub_813AAC4
+ b _0813ABDE
+_0813ABD8:
+ adds r0, r5, 0
+ bl sub_813AB10
+_0813ABDE:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813ABAC
+
+ thumb_func_start sub_813ABE8
+sub_813ABE8: @ 813ABE8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0813AC0C
+ adds r6, r1, r0
+ movs r0, 0
+ mov r8, r0
+ ldrh r5, [r6, 0x2]
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ b _0813ACC4
+ .align 2, 0
+_0813AC0C: .4byte gUnknown_03004B28
+_0813AC10:
+ subs r0, r5, r1
+ lsls r0, 17
+ lsrs r0, 16
+ mov r8, r0
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r5, r0
+ beq _0813AD04
+ movs r7, 0
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ beq _0813AC34
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ cmp r5, r0
+ bne _0813AC34
+ movs r7, 0x1
+_0813AC34:
+ ldr r0, _0813AC5C
+ lsls r4, r5, 2
+ adds r0, r4, r0
+ movs r2, 0x93
+ lsls r2, 3
+ adds r0, r2
+ ldrh r0, [r0]
+ bl sub_80A9670
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x4
+ bhi _0813ACBA
+ lsls r0, 2
+ ldr r1, _0813AC60
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813AC5C: .4byte gSaveBlock1
+_0813AC60: .4byte _0813AC64
+ .align 2, 0
+_0813AC64:
+ .4byte _0813AC78
+ .4byte _0813AC78
+ .4byte _0813ACA8
+ .4byte _0813AC78
+ .4byte _0813AC90
+_0813AC78:
+ ldr r0, _0813AC8C
+ adds r0, r4, r0
+ mov r1, r8
+ adds r1, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r7, 0
+ bl sub_813AB64
+ b _0813ACBA
+ .align 2, 0
+_0813AC8C: .4byte gSaveBlock1 + 0x498
+_0813AC90:
+ ldr r0, _0813ACA4
+ adds r0, r4, r0
+ mov r1, r8
+ adds r1, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r7, 0
+ bl sub_813AB90
+ b _0813ACBA
+ .align 2, 0
+_0813ACA4: .4byte gSaveBlock1 + 0x498
+_0813ACA8:
+ ldr r0, _0813AD00
+ adds r0, r4, r0
+ mov r1, r8
+ adds r1, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r7, 0
+ bl sub_813ABAC
+_0813ACBA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x2
+ ldrsh r1, [r6, r0]
+_0813ACC4:
+ movs r2, 0x8
+ ldrsh r0, [r6, r2]
+ adds r0, r1, r0
+ cmp r5, r0
+ blt _0813AC10
+_0813ACCE:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ subs r0, r5, r0
+ cmp r0, 0x7
+ bgt _0813ACEA
+ mov r1, r8
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x10
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+_0813ACEA:
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ beq _0813AD20
+ movs r0, 0
+ movs r1, 0xB8
+ movs r2, 0x8
+ bl sub_80F953C
+ b _0813AD26
+ .align 2, 0
+_0813AD00: .4byte gSaveBlock1 + 0x498
+_0813AD04:
+ ldr r0, _0813AD1C
+ mov r2, r8
+ adds r2, 0x2
+ lsls r2, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x80
+ movs r3, 0x68
+ bl sub_8072A18
+ b _0813ACCE
+ .align 2, 0
+_0813AD1C: .4byte gOtherText_CancelNoTerminator
+_0813AD20:
+ movs r0, 0
+ bl SetBgTilemapBuffer
+_0813AD26:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ movs r2, 0x8
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ movs r2, 0x4
+ ldrsh r1, [r6, r2]
+ cmp r0, r1
+ bgt _0813AD44
+ movs r0, 0x1
+ movs r1, 0xB8
+ movs r2, 0x98
+ bl sub_80F953C
+ b _0813AD4A
+_0813AD44:
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_0813AD4A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813ABE8
+
+ thumb_func_start sub_813AD58
+sub_813AD58: @ 813AD58
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _0813AD74
+ adds r0, r1, r2
+ cmp r0, 0x8
+ bhi _0813ADE8
+ lsls r0, 2
+ ldr r1, _0813AD78
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813AD74: .4byte 0xffff0009
+_0813AD78: .4byte _0813AD7C
+ .align 2, 0
+_0813AD7C:
+ .4byte _0813ADE0
+ .4byte _0813ADD8
+ .4byte _0813ADD0
+ .4byte _0813ADC8
+ .4byte _0813ADC0
+ .4byte _0813ADB8
+ .4byte _0813ADB0
+ .4byte _0813ADA8
+ .4byte _0813ADA0
+_0813ADA0:
+ ldr r1, _0813ADA4
+ b _0813ADF0
+ .align 2, 0
+_0813ADA4: .4byte gMenuText_GoBackToPrev
+_0813ADA8:
+ ldr r1, _0813ADAC
+ b _0813ADF0
+ .align 2, 0
+_0813ADAC: .4byte gOtherText_HowManyToWithdraw
+_0813ADB0:
+ ldr r1, _0813ADB4
+ b _0813ADF0
+ .align 2, 0
+_0813ADB4: .4byte gOtherText_WithdrewThing
+_0813ADB8:
+ ldr r1, _0813ADBC
+ b _0813ADF0
+ .align 2, 0
+_0813ADBC: .4byte gOtherText_HowManyToToss
+_0813ADC0:
+ ldr r1, _0813ADC4
+ b _0813ADF0
+ .align 2, 0
+_0813ADC4: .4byte gOtherText_ThrewAwayItem
+_0813ADC8:
+ ldr r1, _0813ADCC
+ b _0813ADF0
+ .align 2, 0
+_0813ADCC: .4byte gOtherText_NoMoreRoom
+_0813ADD0:
+ ldr r1, _0813ADD4
+ b _0813ADF0
+ .align 2, 0
+_0813ADD4: .4byte gOtherText_TooImportant
+_0813ADD8:
+ ldr r1, _0813ADDC
+ b _0813ADF0
+ .align 2, 0
+_0813ADDC: .4byte gOtherText_OkayToThrowAwayPrompt
+_0813ADE0:
+ ldr r1, _0813ADE4
+ b _0813ADF0
+ .align 2, 0
+_0813ADE4: .4byte gOtherText_SwitchWhichItem
+_0813ADE8:
+ adds r0, r1, 0
+ bl itemid_get_description
+ adds r1, r0, 0
+_0813ADF0:
+ movs r0, 0x30
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r1, 0
+ movs r1, 0x8
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813AD58
+
+ thumb_func_start sub_813AE0C
+sub_813AE0C: @ 813AE0C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _0813AE48
+ adds r4, r1, r2
+ ldrh r1, [r4]
+ ldrh r2, [r4, 0x2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl sub_813ABE8
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813AE62
+ lsls r0, r5, 16
+ asrs r1, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0813AE50
+ ldr r0, _0813AE4C
+ bl sub_813AD58
+ b _0813AE62
+ .align 2, 0
+_0813AE48: .4byte gUnknown_03004B28
+_0813AE4C: .4byte 0x0000ffff
+_0813AE50:
+ ldr r0, _0813AE68
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x93
+ lsls r0, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ bl sub_813AD58
+_0813AE62:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AE68: .4byte gSaveBlock1
+ thumb_func_end sub_813AE0C
+
+ thumb_func_start sub_813AE6C
+sub_813AE6C: @ 813AE6C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, r6, 2
+ adds r5, r6
+ lsls r5, 3
+ ldr r0, _0813AEF8
+ adds r5, r0
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ bl sub_813AF04
+ movs r0, 0xF
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r0, 0
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ ldr r0, _0813AEFC
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813AD58
+ ldr r0, _0813AF00
+ lsls r4, 3
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r6, 0
+ bl sub_813ABE8
+ ldrb r3, [r5, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x2
+ bl InitMenu
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AEF8: .4byte gUnknown_03004B28
+_0813AEFC: .4byte gSaveBlock1
+_0813AF00: .4byte gUnknown_084062C0
+ thumb_func_end sub_813AE6C
+
+ thumb_func_start sub_813AF04
+sub_813AF04: @ 813AF04
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _0813AF38
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ add r0, sp, 0x4
+ movs r1, 0xDF
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ adds r0, 0x2
+ movs r1, 0xD1
+ movs r2, 0x2
+ bl LoadPalette
+ mov r0, sp
+ movs r1, 0xD8
+ movs r2, 0x2
+ bl LoadPalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AF38: .4byte gUnknown_08406334
+ thumb_func_end sub_813AF04
+
+ thumb_func_start sub_813AF3C
+sub_813AF3C: @ 813AF3C
+ push {r4,lr}
+ movs r2, 0
+ movs r1, 0x6
+ ldr r4, _0813AF70
+ ldr r3, _0813AF74
+_0813AF46:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813AF5C
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0813AF5C:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _0813AF46
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0813AF70: .4byte gSaveBlock1
+_0813AF74: .4byte 0x00002b6c
+ thumb_func_end sub_813AF3C
+
+ thumb_func_start sub_813AF78
+sub_813AF78: @ 813AF78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ movs r2, 0x6
+_0813AF86:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ mov r10, r1
+ cmp r3, 0xF
+ bhi _0813AFF4
+ ldr r0, _0813B010
+ mov r12, r0
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ add r0, r12
+ ldr r1, _0813B014
+ adds r1, r0
+ mov r8, r1
+ ldr r2, _0813B018
+ mov r9, r2
+ adds r4, r0, r2
+_0813AFAA:
+ mov r5, r8
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _0813AFEA
+ mov r1, sp
+ adds r0, r4, 0
+ ldm r0!, {r2,r6,r7}
+ stm r1!, {r2,r6,r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ lsls r2, r3, 3
+ adds r2, r3
+ lsls r2, 2
+ add r2, r12
+ add r2, r9
+ adds r1, r4, 0
+ adds r0, r2, 0
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ mov r0, sp
+ ldm r0!, {r1,r5,r7}
+ stm r2!, {r1,r5,r7}
+ ldm r0!, {r1,r6,r7}
+ stm r2!, {r1,r6,r7}
+ ldm r0!, {r5-r7}
+ stm r2!, {r5-r7}
+_0813AFEA:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xF
+ bls _0813AFAA
+_0813AFF4:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xE
+ bls _0813AF86
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B010: .4byte gSaveBlock1
+_0813B014: .4byte 0x00002b6c
+_0813B018: .4byte 0x00002b4c
+ thumb_func_end sub_813AF78
+
+ thumb_func_start sub_813B01C
+sub_813B01C: @ 813B01C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ ldr r1, _0813B0B8
+ ldrb r4, [r1, 0x2]
+ ldrb r0, [r1, 0x1]
+ adds r0, r4, r0
+ cmp r4, r0
+ bge _0813B08A
+ adds r6, r1, 0
+ ldr r0, _0813B0BC
+ mov r8, r0
+_0813B036:
+ ldrb r0, [r6, 0x2]
+ subs r0, r4, r0
+ lsls r0, 17
+ lsrs r7, r0, 16
+ adds r0, r7, 0x2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r3, r7, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x15
+ adds r1, r5, 0
+ movs r2, 0x1C
+ bl MenuFillWindowRectWithBlankTile
+ ldrb r0, [r6, 0x3]
+ cmp r4, r0
+ beq _0813B0C4
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0813B0C0
+ adds r1, r0
+ mov r0, r8
+ bl StringCopy
+ mov r0, r8
+ bl sub_814A568
+ mov r0, r8
+ movs r1, 0x15
+ adds r2, r5, 0
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r6, 0x2]
+ ldrb r1, [r6, 0x1]
+ adds r0, r1
+ cmp r4, r0
+ blt _0813B036
+_0813B08A:
+ ldr r5, _0813B0B8
+ ldrb r0, [r5, 0x2]
+ subs r0, r4, r0
+ cmp r0, 0x8
+ beq _0813B0A4
+ adds r1, r7, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x15
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+_0813B0A4:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0
+ beq _0813B0D4
+ movs r0, 0
+ movs r1, 0xC8
+ movs r2, 0x8
+ bl sub_80F953C
+ b _0813B0DA
+ .align 2, 0
+_0813B0B8: .4byte 0x0201fe00
+_0813B0BC: .4byte gStringVar1
+_0813B0C0: .4byte gSaveBlock1 + 0x2C36
+_0813B0C4:
+ ldr r0, _0813B0D0
+ movs r1, 0x15
+ adds r2, r5, 0
+ bl MenuPrint
+ b _0813B08A
+ .align 2, 0
+_0813B0D0: .4byte gOtherText_CancelNoTerminator
+_0813B0D4:
+ movs r0, 0
+ bl SetBgTilemapBuffer
+_0813B0DA:
+ ldr r0, _0813B0F4
+ ldrb r1, [r0, 0x2]
+ ldrb r2, [r0, 0x1]
+ adds r1, r2
+ ldrb r0, [r0, 0x3]
+ cmp r1, r0
+ bgt _0813B0F8
+ movs r0, 0x1
+ movs r1, 0xC8
+ movs r2, 0x98
+ bl sub_80F953C
+ b _0813B0FE
+ .align 2, 0
+_0813B0F4: .4byte 0x0201fe00
+_0813B0F8:
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_0813B0FE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B01C
+
+ thumb_func_start sub_813B108
+sub_813B108: @ 813B108
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x8
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ ldr r0, _0813B16C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+ movs r0, 0x14
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ bl sub_813B01C
+ ldr r0, _0813B170
+ ldrb r3, [r0, 0x1]
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x8
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x15
+ movs r2, 0x2
+ bl InitMenu
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B16C: .4byte gPCText_Mailbox
+_0813B170: .4byte 0x0201fe00
+ thumb_func_end sub_813B108
+
+ thumb_func_start sub_813B174
+sub_813B174: @ 813B174
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r0, _0813B1AC
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0813B274
+ ldr r2, _0813B1B0
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B1CA
+ ldr r4, _0813B1B4
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0813B1B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _0813B1E6
+ .align 2, 0
+_0813B1AC: .4byte gPaletteFade
+_0813B1B0: .4byte gMain
+_0813B1B4: .4byte 0x0201fe00
+_0813B1B8:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ beq _0813B274
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4, 0x2]
+ subs r0, 0x1
+ b _0813B208
+_0813B1CA:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B212
+ ldr r4, _0813B1F0
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0813B1F4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_0813B1E6:
+ bl MoveMenuCursor
+ strb r0, [r4]
+ b _0813B274
+ .align 2, 0
+_0813B1F0: .4byte 0x0201fe00
+_0813B1F4:
+ ldrb r0, [r4, 0x2]
+ adds r0, r1
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ beq _0813B274
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4, 0x2]
+ adds r0, 0x1
+_0813B208:
+ strb r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813B01C
+ b _0813B274
+_0813B212:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B25C
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0813B23C
+ ldrb r1, [r0, 0x2]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x3]
+ cmp r1, r0
+ bne _0813B240
+ adds r0, r5, 0
+ bl sub_813B320
+ b _0813B274
+ .align 2, 0
+_0813B23C: .4byte 0x0201fe00
+_0813B240:
+ bl sub_813B27C
+ ldr r0, _0813B254
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813B258
+ str r0, [r1]
+ b _0813B274
+ .align 2, 0
+_0813B254: .4byte gTasks
+_0813B258: .4byte sub_813B294
+_0813B25C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B274
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_813B320
+_0813B274:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B174
+
+ thumb_func_start sub_813B27C
+sub_813B27C: @ 813B27C
+ push {lr}
+ bl BuyMenuFreeMemory
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B27C
+
+ thumb_func_start sub_813B294
+sub_813B294: @ 813B294
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r4, _0813B2E8
+ ldr r1, _0813B2EC
+ ldrb r0, [r1]
+ adds r0, 0x6
+ ldrb r1, [r1, 0x2]
+ adds r0, r1
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0813B2F0
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_814A568
+ ldr r4, _0813B2F4
+ ldr r1, _0813B2F8
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _0813B2FC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B2E8: .4byte gStringVar1
+_0813B2EC: .4byte 0x0201fe00
+_0813B2F0: .4byte gSaveBlock1 + 0x2B5E
+_0813B2F4: .4byte gStringVar4
+_0813B2F8: .4byte gOtherText_WhatWillYouDoMail
+_0813B2FC: .4byte sub_813B348
+ thumb_func_end sub_813B294
+
+ thumb_func_start sub_813B300
+sub_813B300: @ 813B300
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_8139E24
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B300
+
+ thumb_func_start sub_813B320
+sub_813B320: @ 813B320
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_813B27C
+ ldr r1, _0813B340
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813B344
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B340: .4byte gTasks
+_0813B344: .4byte sub_813B300
+ thumb_func_end sub_813B320
+
+ thumb_func_start sub_813B348
+sub_813B348: @ 813B348
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _0813B394
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ ldr r1, _0813B398
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813B39C
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B394: .4byte gUnknown_084062F8
+_0813B398: .4byte gTasks
+_0813B39C: .4byte sub_813B3A0
+ thumb_func_end sub_813B348
+
+ thumb_func_start sub_813B3A0
+sub_813B3A0: @ 813B3A0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _0813B3C4
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B3C8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0813B420
+ .align 2, 0
+_0813B3C4: .4byte gMain
+_0813B3C8:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B3DE
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0813B420
+_0813B3DE:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B40C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0813B408
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 21
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0813B420
+ .align 2, 0
+_0813B408: .4byte gUnknown_084062F8
+_0813B40C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B420
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_813B734
+_0813B420:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B3A0
+
+ thumb_func_start sub_813B428
+sub_813B428: @ 813B428
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _0813B44C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813B450
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B44C: .4byte gTasks
+_0813B450: .4byte sub_813B454
+ thumb_func_end sub_813B428
+
+ thumb_func_start sub_813B454
+sub_813B454: @ 813B454
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0813B490
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813B488
+ ldr r0, _0813B494
+ ldrb r1, [r0]
+ adds r1, 0x6
+ ldrb r0, [r0, 0x2]
+ adds r1, r0
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813B498
+ adds r0, r1
+ ldr r1, _0813B49C
+ movs r2, 0x1
+ bl sub_80F890C
+ adds r0, r4, 0
+ bl DestroyTask
+_0813B488:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B490: .4byte gPaletteFade
+_0813B494: .4byte 0x0201fe00
+_0813B498: .4byte gSaveBlock1 + 0x2B4C
+_0813B49C: .4byte sub_813B4F0
+ thumb_func_end sub_813B454
+
+ thumb_func_start sub_813B4A0
+sub_813B4A0: @ 813B4A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813B4C0
+ ldr r0, _0813B4C8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813B4CC
+ str r0, [r1]
+_0813B4C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B4C8: .4byte gTasks
+_0813B4CC: .4byte sub_813B174
+ thumb_func_end sub_813B4A0
+
+ thumb_func_start sub_813B4D0
+sub_813B4D0: @ 813B4D0
+ push {lr}
+ ldr r0, _0813B4EC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_813B108
+ bl pal_fill_black
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B4EC: .4byte sub_813B4A0
+ thumb_func_end sub_813B4D0
+
+ thumb_func_start sub_813B4F0
+sub_813B4F0: @ 813B4F0
+ push {lr}
+ ldr r0, _0813B504
+ ldr r1, _0813B508
+ str r1, [r0]
+ ldr r0, _0813B50C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B504: .4byte gUnknown_0300485C
+_0813B508: .4byte sub_813B4D0
+_0813B50C: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_813B4F0
+
+ thumb_func_start sub_813B510
+sub_813B510: @ 813B510
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r0, _0813B540
+ ldr r1, _0813B544
+ bl StringCopy
+ ldr r0, _0813B548
+ movs r1, 0x1
+ movs r2, 0x3
+ bl MenuPrint
+ ldr r1, _0813B54C
+ ldr r2, _0813B550
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B540: .4byte gStringVar1
+_0813B544: .4byte gOtherText_MoveToBag
+_0813B548: .4byte gUnknown_0840633A
+_0813B54C: .4byte gOtherText_MessageWillBeLost
+_0813B550: .4byte sub_813B554
+ thumb_func_end sub_813B510
+
+ thumb_func_start sub_813B554
+sub_813B554: @ 813B554
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _0813B574
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B574: .4byte gUnknown_084062E8
+ thumb_func_end sub_813B554
+
+ thumb_func_start sub_813B578
+sub_813B578: @ 813B578
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0813B5BC
+ ldrb r0, [r4]
+ adds r0, 0x6
+ ldrb r1, [r4, 0x2]
+ adds r0, r1
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0813B5C0
+ adds r6, r1, r0
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldrh r0, [r6, 0x20]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B5CC
+ ldr r1, _0813B5C4
+ ldr r2, _0813B5C8
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _0813B602
+ .align 2, 0
+_0813B5BC: .4byte 0x0201fe00
+_0813B5C0: .4byte gSaveBlock1 + 0x2B4C
+_0813B5C4: .4byte gOtherText_BagIsFull
+_0813B5C8: .4byte sub_813B758
+_0813B5CC:
+ ldr r1, _0813B608
+ ldr r2, _0813B60C
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ adds r0, r6, 0
+ bl sub_80A2B40
+ bl sub_813AF78
+ ldrb r0, [r4, 0x3]
+ subs r0, 0x1
+ strb r0, [r4, 0x3]
+ ldrb r1, [r4, 0x3]
+ ldrb r0, [r4, 0x1]
+ ldrb r2, [r4, 0x2]
+ adds r0, r2
+ cmp r1, r0
+ bge _0813B5FC
+ cmp r2, 0
+ beq _0813B5FC
+ subs r0, r2, 0x1
+ strb r0, [r4, 0x2]
+_0813B5FC:
+ adds r0, r5, 0
+ bl sub_813A240
+_0813B602:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B608: .4byte gOtherText_MailWasReturned
+_0813B60C: .4byte sub_813B758
+ thumb_func_end sub_813B578
+
+ thumb_func_start sub_813B610
+sub_813B610: @ 813B610
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_813B758
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B610
+
+ thumb_func_start sub_813B630
+sub_813B630: @ 813B630
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B648
+ adds r0, r4, 0
+ bl sub_813B718
+ b _0813B65E
+_0813B648:
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r0, _0813B664
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813B668
+ str r0, [r1]
+_0813B65E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B664: .4byte gTasks
+_0813B668: .4byte sub_813B66C
+ thumb_func_end sub_813B630
+
+ thumb_func_start sub_813B66C
+sub_813B66C: @ 813B66C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0813B698
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813B690
+ ldr r0, _0813B69C
+ bl SetMainCallback2
+ ldr r1, _0813B6A0
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0813B690:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B698: .4byte gPaletteFade
+_0813B69C: .4byte sub_808B020
+_0813B6A0: .4byte gUnknown_02038561
+ thumb_func_end sub_813B66C
+
+ thumb_func_start sub_813B6A4
+sub_813B6A4: @ 813B6A4
+ push {r4-r6,lr}
+ ldr r0, _0813B6F0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _0813B6F4
+ ldrb r4, [r5, 0x3]
+ bl sub_813AF3C
+ strb r0, [r5, 0x3]
+ bl sub_813AF78
+ ldrb r0, [r5, 0x3]
+ cmp r4, r0
+ beq _0813B6DA
+ ldrb r1, [r5, 0x3]
+ ldrb r0, [r5, 0x1]
+ ldrb r2, [r5, 0x2]
+ adds r0, r2
+ cmp r1, r0
+ bge _0813B6DA
+ cmp r2, 0
+ beq _0813B6DA
+ subs r0, r2, 0x1
+ strb r0, [r5, 0x2]
+_0813B6DA:
+ adds r0, r6, 0
+ bl sub_813A240
+ adds r0, r6, 0
+ bl sub_813B108
+ bl pal_fill_black
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B6F0: .4byte sub_813B4A0
+_0813B6F4: .4byte 0x0201fe00
+ thumb_func_end sub_813B6A4
+
+ thumb_func_start sub_813B6F8
+sub_813B6F8: @ 813B6F8
+ push {lr}
+ ldr r0, _0813B70C
+ ldr r1, _0813B710
+ str r1, [r0]
+ ldr r0, _0813B714
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B70C: .4byte gUnknown_0300485C
+_0813B710: .4byte sub_813B6A4
+_0813B714: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_813B6F8
+
+ thumb_func_start sub_813B718
+sub_813B718: @ 813B718
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0813B72C
+ ldr r2, _0813B730
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B72C: .4byte gOtherText_NoPokemon
+_0813B730: .4byte sub_813B758
+ thumb_func_end sub_813B718
+
+ thumb_func_start sub_813B734
+sub_813B734: @ 813B734
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_813B758
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B734
+
+ thumb_func_start sub_813B758
+sub_813B758: @ 813B758
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_813B108
+ ldr r1, _0813B77C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813B780
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B77C: .4byte gTasks
+_0813B780: .4byte sub_813B174
+ thumb_func_end sub_813B758
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index 901026b76..c7183fecb 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -79,6 +79,8 @@ SECTIONS {
src/starter_choose.o(.text);
src/wallclock.o(.text);
asm/rom6.o(.text);
+ src/save.o(.text);
+ asm/rom_81258BC.o(.text);
src/intro.o(.text);
asm/rom_813BA94.o(.text);
} =0
diff --git a/src/save.c b/src/save.c
new file mode 100644
index 000000000..e05de67cc
--- /dev/null
+++ b/src/save.c
@@ -0,0 +1,349 @@
+#include "global.h"
+#include "gba/flash_internal.h"
+
+struct SaveSectionLocation
+{
+ void *data;
+ u16 size;
+};
+
+struct SaveSection
+{
+ u8 data[0xFF4];
+ u16 id;
+ u16 checksum;
+ u32 unknown;
+ u32 counter;
+};
+
+extern struct SaveSection unk_2000000;
+
+extern u16 gUnknown_03005E9C;
+extern u32 gUnknown_03005EA0;
+extern u16 gUnknown_03005EA4;
+extern u32 gUnknown_03005EA8;
+extern u32 gUnknown_03005EAC;
+extern struct SaveSection *gUnknown_03005EB0;
+extern u16 gUnknown_03005EB4;
+
+u8 sub_81252D8(u16, struct SaveSectionLocation *);
+u8 sub_8125440(u8, u8 *);
+u8 sub_81255B8(u16 a1, struct SaveSectionLocation *a2);
+
+void calls_flash_erase_block(void)
+{
+ u16 i;
+ for (i = 0; i < 32; i++)
+ EraseFlashSector(i);
+}
+
+void sub_81251B8(void)
+{
+ gUnknown_03005EAC = 0;
+ gUnknown_03005E9C = 0;
+ gUnknown_03005EA8 = 0;
+}
+
+bool32 sub_81251D4(u8 op, u8 bit)
+{
+ bool32 retVal = FALSE;
+
+ switch (op)
+ {
+ case 0:
+ gUnknown_03005EA8 |= 1 << bit;
+ break;
+ case 1:
+ gUnknown_03005EA8 &= ~(1 << bit);
+ break;
+ case 2:
+ if (gUnknown_03005EA8 & (1 << bit))
+ retVal = TRUE;
+ break;
+ }
+
+ return retVal;
+}
+
+u8 save_write_to_flash(u16 a1, struct SaveSectionLocation *a2)
+{
+ u32 retVal;
+ u16 i;
+
+ gUnknown_03005EB0 = &unk_2000000;
+
+ if (a1 != 0xFFFF)
+ {
+ retVal = sub_81252D8(a1, a2);
+ }
+ else
+ {
+ gUnknown_03005EA4 = gUnknown_03005E9C;
+ gUnknown_03005EA0 = gUnknown_03005EAC;
+ gUnknown_03005E9C++;
+ gUnknown_03005E9C = gUnknown_03005E9C % 14;
+ gUnknown_03005EAC++;
+ retVal = 1;
+ for (i = 0; i < 14; i++)
+ sub_81252D8(i, a2);
+ if (gUnknown_03005EA8)
+ {
+ retVal = 0xFF;
+ gUnknown_03005E9C = gUnknown_03005EA4;
+ gUnknown_03005EAC = gUnknown_03005EA0;
+ }
+ }
+
+ return retVal;
+}
+
+u8 sub_81252D8(u16 a1, struct SaveSectionLocation *a2)
+{
+ u16 i;
+ u16 sector;
+ u8 *data;
+ u16 size;
+
+ sector = a1 + gUnknown_03005E9C;
+ sector %= 14;
+ sector += 14 * (gUnknown_03005EAC % 2);
+
+ data = a2[a1].data;
+ size = a2[a1].size;
+
+ for (i = 0; i < sizeof(struct SaveSection); i++)
+ ((char *)gUnknown_03005EB0)[i] = 0;
+
+ gUnknown_03005EB0->id = a1;
+ gUnknown_03005EB0->unknown = 0x8012025;
+ gUnknown_03005EB0->counter = gUnknown_03005EAC;
+
+ for (i = 0; i < size; i++)
+ gUnknown_03005EB0->data[i] = data[i];
+
+ gUnknown_03005EB0->checksum = sub_8125C10(data, size);
+ return sub_8125440(sector, gUnknown_03005EB0->data);
+}
+
+u8 sub_81253C8(u8 sector, u8 *data, u16 size)
+{
+ u16 i;
+ struct SaveSection *section = &unk_2000000;
+
+ for (i = 0; i < sizeof(struct SaveSection); i++)
+ ((char *)section)[i] = 0;
+
+ section->unknown = 0x8012025;
+
+ for (i = 0; i < size; i++)
+ section->data[i] = data[i];
+
+ section->id = sub_8125C10(data, size); // id instead of checksum?
+ return sub_8125440(sector, section->data);
+}
+
+u8 sub_8125440(u8 sector, u8 *data)
+{
+ if (ProgramFlashSectorAndVerify(sector, data))
+ {
+ sub_81251D4(0, sector);
+ return 0xFF;
+ }
+ else
+ {
+ sub_81251D4(1, sector);
+ return 1;
+ }
+}
+
+u32 sub_812546C(void)
+{
+ gUnknown_03005EB0 = &unk_2000000;
+ gUnknown_03005EA4 = gUnknown_03005E9C;
+ gUnknown_03005EA0 = gUnknown_03005EAC;
+ gUnknown_03005E9C++;
+ gUnknown_03005E9C = gUnknown_03005E9C % 14;
+ gUnknown_03005EAC++;
+ gUnknown_03005EB4 = 0;
+ gUnknown_03005EA8 = 0;
+ return 0;
+}
+
+u32 sub_81254C8(void)
+{
+ gUnknown_03005EB0 = &unk_2000000;
+ gUnknown_03005EA4 = gUnknown_03005E9C;
+ gUnknown_03005EA0 = gUnknown_03005EAC;
+ gUnknown_03005EB4 = 0;
+ gUnknown_03005EA8 = 0;
+ return 0;
+}
+
+u8 sub_812550C(u16 a1, struct SaveSectionLocation *a2)
+{
+ u8 retVal;
+
+ if (gUnknown_03005EB4 < a1 - 1)
+ {
+ retVal = 1;
+ sub_81252D8(gUnknown_03005EB4, a2);
+ gUnknown_03005EB4++;
+ if (gUnknown_03005EA8)
+ {
+ retVal = 0xFF;
+ gUnknown_03005E9C = gUnknown_03005EA4;
+ gUnknown_03005EAC = gUnknown_03005EA0;
+ }
+ }
+ else
+ {
+ retVal = 0xFF;
+ }
+
+ return retVal;
+}
+
+u8 sub_812556C(u16 a1, struct SaveSectionLocation *a2)
+{
+ u8 retVal = 1;
+ sub_81255B8(a1 - 1, a2);
+ if (gUnknown_03005EA8)
+ {
+ retVal = 0xFF;
+ gUnknown_03005E9C = gUnknown_03005EA4;
+ gUnknown_03005EAC = gUnknown_03005EA0;
+ }
+ return retVal;
+}
+
+u8 sub_81255B8(u16 a1, struct SaveSectionLocation *a2)
+{
+ u16 i;
+ u16 sector;
+ u8 *data;
+ u16 size;
+ u8 status;
+
+ sector = a1 + gUnknown_03005E9C;
+ sector %= 14;
+ sector += 14 * (gUnknown_03005EAC % 2);
+
+ data = a2[a1].data;
+ size = a2[a1].size;
+
+ for (i = 0; i < sizeof(struct SaveSection); i++)
+ ((char *)gUnknown_03005EB0)[i] = 0;
+
+ gUnknown_03005EB0->id = a1;
+ gUnknown_03005EB0->unknown = 0x8012025;
+ gUnknown_03005EB0->counter = gUnknown_03005EAC;
+
+ for (i = 0; i < size; i++)
+ gUnknown_03005EB0->data[i] = data[i];
+
+ gUnknown_03005EB0->checksum = sub_8125C10(data, size);
+
+ EraseFlashSector(sector);
+
+ status = 1;
+
+ for (i = 0; i < 0xFF8; i++)
+ {
+ if (ProgramFlashByte(sector, i, ((u8 *)gUnknown_03005EB0)[i]))
+ {
+ status = 0xFF;
+ break;
+ }
+ }
+
+ if (status == 0xFF)
+ {
+ sub_81251D4(0, sector);
+ return 0xFF;
+ }
+ else
+ {
+ status = 1;
+
+ for (i = 0; i < 7; i++)
+ {
+ if (ProgramFlashByte(sector, 0xFF9 + i, ((u8 *)gUnknown_03005EB0)[0xFF9 + i]))
+ {
+ status = 0xFF;
+ break;
+ }
+ }
+
+ if (status == 0xFF)
+ {
+ sub_81251D4(0, sector);
+ return 0xFF;
+ }
+ else
+ {
+ sub_81251D4(1, sector);
+ return 1;
+ }
+ }
+}
+
+u8 sub_8125758(u16 a1)
+{
+ u16 sector;
+
+ sector = a1 + gUnknown_03005E9C - 1;
+ sector %= 14;
+ sector += 14 * (gUnknown_03005EAC % 2);
+
+ if (ProgramFlashByte(sector, 0xFF8, ((u8 *)gUnknown_03005EB0)[0xFF8]))
+ {
+ sub_81251D4(0, sector);
+ gUnknown_03005E9C = gUnknown_03005EA4;
+ gUnknown_03005EAC = gUnknown_03005EA0;
+ return 0xFF;
+ }
+ else
+ {
+ sub_81251D4(1u, sector);
+ return 1;
+ }
+}
+
+u8 sub_81257F0(u16 a1)
+{
+ u16 sector;
+
+ sector = a1 + gUnknown_03005E9C - 1;
+ sector %= 14;
+ sector += 14 * (gUnknown_03005EAC % 2);
+
+ if (ProgramFlashByte(sector, 0xFF8, 0x25))
+ {
+ sub_81251D4(0, sector);
+ gUnknown_03005E9C = gUnknown_03005EA4;
+ gUnknown_03005EAC = gUnknown_03005EA0;
+ return 0xFF;
+ }
+ else
+ {
+ sub_81251D4(1u, sector);
+ return 1;
+ }
+}
+
+u8 sub_812587C(u16 a1, int a2)
+{
+ u8 retVal;
+ gUnknown_03005EB0 = &unk_2000000;
+ if (a1 != 0xFFFF)
+ {
+ retVal = 0xFF;
+ }
+ else
+ {
+ retVal = sub_8125974(a2);
+ sub_81258BC(0xFFFF, a2);
+ }
+
+ return retVal;
+}