summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--asm/decompress.s287
-rw-r--r--asm/rom3.s89200
-rw-r--r--asm/rom_800D42C.s88931
-rw-r--r--ld_script.txt2
5 files changed, 89222 insertions, 89200 deletions
diff --git a/Makefile b/Makefile
index eb88fdd51..50626c6c8 100644
--- a/Makefile
+++ b/Makefile
@@ -46,6 +46,8 @@ C_OBJS := $(C_SRCS:%.c=%.o)
ASM_OBJS := \
asm/crt0.o \
asm/rom3.o \
+asm/decompress.o \
+asm/rom_800D42C.o \
asm/calculate_base_damage.o \
asm/rom_803D1FC.o \
asm/rom_8040EB4.o \
diff --git a/asm/decompress.s b/asm/decompress.s
new file mode 100644
index 000000000..32349001f
--- /dev/null
+++ b/asm/decompress.s
@@ -0,0 +1,287 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_800D238
+sub_800D238: @ 800D238
+ push {lr}
+ bl LZ77UnCompWram
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800D238
+
+ thumb_func_start LZDecompressVram
+LZDecompressVram: @ 800D244
+ push {lr}
+ bl LZ77UnCompVram
+ pop {r0}
+ bx r0
+ thumb_func_end LZDecompressVram
+
+ thumb_func_start LoadCompressedObjectPic
+LoadCompressedObjectPic: @ 800D250
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, [r4]
+ movs r5, 0x80
+ lsls r5, 18
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ ldrh r1, [r4, 0x6]
+ lsls r1, 16
+ ldrh r0, [r4, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end LoadCompressedObjectPic
+
+ thumb_func_start LoadCompressedObjectPicOverrideBuffer
+LoadCompressedObjectPicOverrideBuffer: @ 800D27C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r0, [r4]
+ bl LZ77UnCompWram
+ str r5, [sp]
+ ldrh r1, [r4, 0x6]
+ lsls r1, 16
+ ldrh r0, [r4, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end LoadCompressedObjectPicOverrideBuffer
+
+ thumb_func_start LoadCompressedObjectPalette
+LoadCompressedObjectPalette: @ 800D2A4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r0, [r5]
+ movs r4, 0x80
+ lsls r4, 18
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ str r4, [sp]
+ ldrh r2, [r5, 0x4]
+ ldr r1, _0800D2D4 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D2D4: .4byte 0xffff0000
+ thumb_func_end LoadCompressedObjectPalette
+
+ thumb_func_start LoadCompressedObjectPaletteOverrideBuffer
+LoadCompressedObjectPaletteOverrideBuffer: @ 800D2D8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, [r5]
+ bl LZ77UnCompWram
+ str r4, [sp]
+ ldrh r2, [r5, 0x4]
+ ldr r1, _0800D304 @ =0xffff0000
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpritePalette
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D304: .4byte 0xffff0000
+ thumb_func_end LoadCompressedObjectPaletteOverrideBuffer
+
+ thumb_func_start DecompressPicFromTable_2
+DecompressPicFromTable_2: @ 800D308
+ push {lr}
+ adds r2, r0, 0
+ ldr r3, [sp, 0x4]
+ ldr r1, [sp, 0x8]
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ ble _0800D328
+ ldr r0, _0800D324 @ =gMonFrontPicTable
+ ldr r0, [r0]
+ adds r1, r3, 0
+ bl LZ77UnCompWram
+ b _0800D330
+ .align 2, 0
+_0800D324: .4byte gMonFrontPicTable
+_0800D328:
+ ldr r0, [r2]
+ adds r1, r3, 0
+ bl LZ77UnCompWram
+_0800D330:
+ pop {r0}
+ bx r0
+ thumb_func_end DecompressPicFromTable_2
+
+ thumb_func_start sub_800D334
+sub_800D334: @ 800D334
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ ldr r2, [sp, 0x20]
+ ldr r1, _0800D354 @ =gUnknown_081FAF4C
+ ldr r0, [r1]
+ cmp r2, r0
+ beq _0800D34E
+ ldr r0, [r1, 0x8]
+ cmp r2, r0
+ bne _0800D358
+_0800D34E:
+ movs r1, 0
+ b _0800D35A
+ .align 2, 0
+_0800D354: .4byte gUnknown_081FAF4C
+_0800D358:
+ movs r1, 0x1
+_0800D35A:
+ str r2, [sp]
+ ldr r0, [sp, 0x24]
+ str r0, [sp, 0x4]
+ ldr r0, [sp, 0x28]
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_800D378
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800D334
+
+ thumb_func_start sub_800D378
+sub_800D378: @ 800D378
+ push {r4-r7,lr}
+ adds r1, r0, 0
+ ldr r5, [sp, 0x14]
+ ldr r6, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ ldr r0, [sp, 0x20]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r6, SPECIES_UNOWN
+ bne _0800D3EC
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r4
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r4
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r4
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r4
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _0800D3C0
+ movs r1, SPECIES_UNOWN
+ b _0800D3CA
+_0800D3C0:
+ movs r2, 0xCE
+ lsls r2, 1
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+_0800D3CA:
+ cmp r7, 0
+ bne _0800D3DC
+ ldr r0, _0800D3D8 @ =gMonBackPicTable
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, [r1]
+ b _0800D3F8
+ .align 2, 0
+_0800D3D8: .4byte gMonBackPicTable
+_0800D3DC:
+ ldr r0, _0800D3E8 @ =gMonFrontPicTable
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, [r1]
+ b _0800D3F8
+ .align 2, 0
+_0800D3E8: .4byte gMonFrontPicTable
+_0800D3EC:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r6, r0
+ ble _0800D404
+ ldr r0, _0800D400 @ =gMonFrontPicTable
+ ldr r0, [r0]
+_0800D3F8:
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ b _0800D40C
+ .align 2, 0
+_0800D400: .4byte gMonFrontPicTable
+_0800D404:
+ ldr r0, [r1]
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+_0800D40C:
+ lsls r0, r6, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r7, 0
+ bl DrawSpindaSpots
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800D378
+
+ thumb_func_start Unused_LZDecompressWramIndirect
+Unused_LZDecompressWramIndirect: @ 800D420
+ push {lr}
+ ldr r0, [r0]
+ bl LZ77UnCompWram
+ pop {r0}
+ bx r0
+ thumb_func_end Unused_LZDecompressWramIndirect
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom3.s b/asm/rom3.s
index c562583e9..736b7b6ad 100644
--- a/asm/rom3.s
+++ b/asm/rom3.s
@@ -3408,89204 +3408,4 @@ dp01_build_cmdbuf_x37_a: @ 800D218
_0800D234: .4byte gUnknown_03004040
thumb_func_end dp01_build_cmdbuf_x37_a
- thumb_func_start sub_800D238
-sub_800D238: @ 800D238
- push {lr}
- bl LZ77UnCompWram
- pop {r0}
- bx r0
- thumb_func_end sub_800D238
-
- thumb_func_start LZDecompressVram
-LZDecompressVram: @ 800D244
- push {lr}
- bl LZ77UnCompVram
- pop {r0}
- bx r0
- thumb_func_end LZDecompressVram
-
- thumb_func_start LoadCompressedObjectPic
-LoadCompressedObjectPic: @ 800D250
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [r4]
- movs r5, 0x80
- lsls r5, 18
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end LoadCompressedObjectPic
-
- thumb_func_start LoadCompressedObjectPicOverrideBuffer
-LoadCompressedObjectPicOverrideBuffer: @ 800D27C
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, [r4]
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end LoadCompressedObjectPicOverrideBuffer
-
- thumb_func_start LoadCompressedObjectPalette
-LoadCompressedObjectPalette: @ 800D2A4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5]
- movs r4, 0x80
- lsls r4, 18
- adds r1, r4, 0
- bl LZ77UnCompWram
- str r4, [sp]
- ldrh r2, [r5, 0x4]
- ldr r1, _0800D2D4 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D2D4: .4byte 0xffff0000
- thumb_func_end LoadCompressedObjectPalette
-
- thumb_func_start LoadCompressedObjectPaletteOverrideBuffer
-LoadCompressedObjectPaletteOverrideBuffer: @ 800D2D8
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, [r5]
- bl LZ77UnCompWram
- str r4, [sp]
- ldrh r2, [r5, 0x4]
- ldr r1, _0800D304 @ =0xffff0000
- ldr r0, [sp, 0x4]
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpritePalette
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D304: .4byte 0xffff0000
- thumb_func_end LoadCompressedObjectPaletteOverrideBuffer
-
- thumb_func_start DecompressPicFromTable_2
-DecompressPicFromTable_2: @ 800D308
- push {lr}
- adds r2, r0, 0
- ldr r3, [sp, 0x4]
- ldr r1, [sp, 0x8]
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- ble _0800D328
- ldr r0, _0800D324 @ =gMonFrontPicTable
- ldr r0, [r0]
- adds r1, r3, 0
- bl LZ77UnCompWram
- b _0800D330
- .align 2, 0
-_0800D324: .4byte gMonFrontPicTable
-_0800D328:
- ldr r0, [r2]
- adds r1, r3, 0
- bl LZ77UnCompWram
-_0800D330:
- pop {r0}
- bx r0
- thumb_func_end DecompressPicFromTable_2
-
- thumb_func_start sub_800D334
-sub_800D334: @ 800D334
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r2, [sp, 0x20]
- ldr r1, _0800D354 @ =gUnknown_081FAF4C
- ldr r0, [r1]
- cmp r2, r0
- beq _0800D34E
- ldr r0, [r1, 0x8]
- cmp r2, r0
- bne _0800D358
-_0800D34E:
- movs r1, 0
- b _0800D35A
- .align 2, 0
-_0800D354: .4byte gUnknown_081FAF4C
-_0800D358:
- movs r1, 0x1
-_0800D35A:
- str r2, [sp]
- ldr r0, [sp, 0x24]
- str r0, [sp, 0x4]
- ldr r0, [sp, 0x28]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_800D378
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_800D334
-
- thumb_func_start sub_800D378
-sub_800D378: @ 800D378
- push {r4-r7,lr}
- adds r1, r0, 0
- ldr r5, [sp, 0x14]
- ldr r6, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- ldr r0, [sp, 0x20]
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r6, SPECIES_UNOWN
- bne _0800D3EC
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r4
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r4
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r4
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r4
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0800D3C0
- movs r1, SPECIES_UNOWN
- b _0800D3CA
-_0800D3C0:
- movs r2, 0xCE
- lsls r2, 1
- adds r0, r1, r2
- lsls r0, 16
- lsrs r1, r0, 16
-_0800D3CA:
- cmp r7, 0
- bne _0800D3DC
- ldr r0, _0800D3D8 @ =gMonBackPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800D3F8
- .align 2, 0
-_0800D3D8: .4byte gMonBackPicTable
-_0800D3DC:
- ldr r0, _0800D3E8 @ =gMonFrontPicTable
- lsls r1, 3
- adds r1, r0
- ldr r0, [r1]
- b _0800D3F8
- .align 2, 0
-_0800D3E8: .4byte gMonFrontPicTable
-_0800D3EC:
- movs r0, 0xCE
- lsls r0, 1
- cmp r6, r0
- ble _0800D404
- ldr r0, _0800D400 @ =gMonFrontPicTable
- ldr r0, [r0]
-_0800D3F8:
- adds r1, r5, 0
- bl LZ77UnCompWram
- b _0800D40C
- .align 2, 0
-_0800D400: .4byte gMonFrontPicTable
-_0800D404:
- ldr r0, [r1]
- adds r1, r5, 0
- bl LZ77UnCompWram
-_0800D40C:
- lsls r0, r6, 16
- lsrs r0, 16
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r7, 0
- bl DrawSpindaSpots
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_800D378
-
- thumb_func_start Unused_LZDecompressWramIndirect
-Unused_LZDecompressWramIndirect: @ 800D420
- push {lr}
- ldr r0, [r0]
- bl LZ77UnCompWram
- pop {r0}
- bx r0
- thumb_func_end Unused_LZDecompressWramIndirect
-
- thumb_func_start unref_sub_800D42C
-unref_sub_800D42C: @ 800D42C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- mov r9, r0
- str r1, [sp]
- str r2, [sp, 0x4]
- adds r5, r3, 0
- movs r0, 0x1
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- bne _0800D44C
- b _0800D5E4
-_0800D44C:
- asrs r0, r1, 1
- adds r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- movs r0, 0
- ldr r2, [sp]
- cmp r0, r2
- blt _0800D460
- b _0800D674
-_0800D460:
- movs r4, 0x8
- subs r1, r4, r1
- str r1, [sp, 0x10]
-_0800D466:
- movs r7, 0
- adds r0, 0x1
- str r0, [sp, 0x14]
- ldr r0, [sp, 0x10]
- cmp r7, r0
- bge _0800D4E2
- ldr r1, [sp, 0x8]
- lsls r1, 8
- str r1, [sp, 0x18]
- movs r2, 0
- mov r10, r2
- mov r0, r9
- movs r4, 0x8
- subs r0, r4, r0
- str r0, [sp, 0xC]
-_0800D484:
- movs r3, 0
- asrs r0, r7, 1
- adds r1, r7, 0
- movs r2, 0x1
- ands r1, r2
- str r1, [sp, 0x20]
- lsls r0, 8
- mov r8, r0
- mov r12, r5
-_0800D496:
- lsls r1, r3, 5
- ldr r4, [sp, 0x18]
- adds r0, r5, r4
- adds r0, r1
- mov r1, r8
- adds r2, r0, r1
- mov r1, r12
- add r1, r8
- movs r6, 0xF
-_0800D4A8:
- ldr r4, [sp, 0x20]
- cmp r4, 0
- bne _0800D4B8
- strb r4, [r1]
- add r4, sp, 0x20
- ldrb r4, [r4]
- strb r4, [r2, 0x10]
- b _0800D4C6
-_0800D4B8:
- mov r0, r10
- strb r0, [r1, 0x10]
- movs r4, 0x80
- lsls r4, 1
- adds r4, r2, r4
- str r4, [sp, 0x1C]
- strb r0, [r4]
-_0800D4C6:
- adds r2, 0x1
- adds r1, 0x1
- subs r6, 0x1
- cmp r6, 0
- bge _0800D4A8
- movs r0, 0x20
- add r12, r0
- adds r3, 0x1
- cmp r3, 0x7
- ble _0800D496
- adds r7, 0x1
- ldr r1, [sp, 0xC]
- cmp r7, r1
- blt _0800D484
-_0800D4E2:
- movs r7, 0
- movs r2, 0
-_0800D4E6:
- movs r6, 0
- adds r4, r7, 0x1
- mov r8, r4
- lsls r4, r7, 5
-_0800D4EE:
- adds r0, r6, 0x1
- mov r10, r0
- lsls r1, r6, 8
- adds r0, r1, 0
- adds r0, 0xC0
- adds r0, r5, r0
- adds r0, r4
- adds r1, r5, r1
- adds r1, r4
- movs r3, 0x1F
-_0800D502:
- strb r2, [r1]
- strb r2, [r0]
- adds r0, 0x1
- adds r1, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D502
- mov r6, r10
- cmp r6, 0x7
- ble _0800D4EE
- mov r7, r8
- cmp r7, 0x1
- ble _0800D4E6
- mov r1, r9
- cmp r1, 0x5
- bne _0800D528
- movs r2, 0x90
- lsls r2, 1
- adds r5, r2
-_0800D528:
- movs r7, 0
- cmp r7, r9
- bge _0800D5BE
-_0800D52E:
- movs r3, 0
- adds r7, 0x1
- mov r8, r7
- cmp r3, r9
- bge _0800D59E
-_0800D538:
- adds r3, 0x1
- mov r10, r3
- ldr r4, [sp, 0x4]
- adds r4, 0x20
- adds r7, r5, 0
- adds r7, 0x20
- movs r0, 0x12
- adds r0, r5
- mov r12, r0
- ldr r2, [sp, 0x4]
- adds r3, r5, 0
- movs r6, 0x3
-_0800D550:
- ldrb r0, [r2]
- mov r1, r12
- strb r0, [r1]
- ldrb r0, [r2, 0x1]
- strb r0, [r1, 0x1]
- ldrb r0, [r2, 0x2]
- strb r0, [r1, 0x1E]
- ldrb r0, [r2, 0x3]
- strb r0, [r1, 0x1F]
- movs r0, 0x81
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r2, 0x10]
- strb r0, [r1]
- ldr r0, _0800D5A8 @ =0x00000103
- adds r1, r3, r0
- ldrb r0, [r2, 0x11]
- strb r0, [r1]
- movs r0, 0x90
- lsls r0, 1
- adds r1, r3, r0
- ldrb r0, [r2, 0x12]
- strb r0, [r1]
- ldr r0, _0800D5AC @ =0x00000121
- adds r1, r3, r0
- ldrb r0, [r2, 0x13]
- strb r0, [r1]
- movs r1, 0x4
- add r12, r1
- adds r2, 0x4
- adds r3, 0x4
- subs r6, 0x1
- cmp r6, 0
- bge _0800D550
- str r4, [sp, 0x4]
- adds r5, r7, 0
- mov r3, r10
- cmp r3, r9
- blt _0800D538
-_0800D59E:
- mov r2, r9
- cmp r2, 0x7
- bne _0800D5B0
- adds r5, 0x20
- b _0800D5B8
- .align 2, 0
-_0800D5A8: .4byte 0x00000103
-_0800D5AC: .4byte 0x00000121
-_0800D5B0:
- mov r4, r9
- cmp r4, 0x5
- bne _0800D5B8
- adds r5, 0x60
-_0800D5B8:
- mov r7, r8
- cmp r7, r9
- blt _0800D52E
-_0800D5BE:
- mov r0, r9
- cmp r0, 0x7
- bne _0800D5CC
- movs r1, 0x80
- lsls r1, 1
- adds r5, r1
- b _0800D5D8
-_0800D5CC:
- mov r2, r9
- cmp r2, 0x5
- bne _0800D5D8
- movs r4, 0xF0
- lsls r4, 1
- adds r5, r4
-_0800D5D8:
- ldr r0, [sp, 0x14]
- ldr r1, [sp]
- cmp r0, r1
- bge _0800D5E2
- b _0800D466
-_0800D5E2:
- b _0800D674
-_0800D5E4:
- movs r6, 0
- ldr r2, [sp]
- cmp r6, r2
- bge _0800D674
-_0800D5EC:
- adds r6, 0x1
- mov r10, r6
- mov r4, r9
- cmp r4, 0x6
- bne _0800D604
- movs r0, 0
- movs r3, 0xFF
-_0800D5FA:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D5FA
-_0800D604:
- movs r7, 0
- cmp r7, r9
- bge _0800D658
-_0800D60A:
- adds r7, 0x1
- mov r8, r7
- mov r1, r9
- lsls r0, r1, 5
- cmp r1, 0x6
- bne _0800D624
- movs r1, 0
- movs r3, 0x1F
-_0800D61A:
- strb r1, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D61A
-_0800D624:
- adds r1, r0, 0
- cmp r1, 0
- ble _0800D63E
- adds r3, r1, 0
-_0800D62C:
- ldr r2, [sp, 0x4]
- ldrb r0, [r2]
- strb r0, [r5]
- adds r2, 0x1
- str r2, [sp, 0x4]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bne _0800D62C
-_0800D63E:
- mov r4, r9
- cmp r4, 0x6
- bne _0800D652
- movs r0, 0
- movs r3, 0x1F
-_0800D648:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D648
-_0800D652:
- mov r7, r8
- cmp r7, r9
- blt _0800D60A
-_0800D658:
- mov r0, r9
- cmp r0, 0x6
- bne _0800D66C
- movs r0, 0
- movs r3, 0xFF
-_0800D662:
- strb r0, [r5]
- adds r5, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _0800D662
-_0800D66C:
- mov r6, r10
- ldr r1, [sp]
- cmp r6, r1
- blt _0800D5EC
-_0800D674:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_800D42C
-
- thumb_func_start unref_sub_800D684
-unref_sub_800D684: @ 800D684
- push {lr}
- bl ResetSpriteData
- ldr r0, _0800D6B8 @ =gSpriteTemplate_81F96D0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800D6BC @ =gSprites
- 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]
- ldr r0, _0800D6C0 @ =sub_800D6C4
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0800D6B8: .4byte gSpriteTemplate_81F96D0
-_0800D6BC: .4byte gSprites
-_0800D6C0: .4byte sub_800D6C4
- thumb_func_end unref_sub_800D684
-
- thumb_func_start sub_800D6C4
-sub_800D6C4: @ 800D6C4
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_800D6C4
-
- thumb_func_start sub_800D6D4
-sub_800D6D4: @ 800D6D4
- push {r4,r5,lr}
- ldr r3, _0800D72C @ =0x04000208
- ldrh r2, [r3]
- movs r5, 0
- strh r5, [r3]
- ldr r4, _0800D730 @ =0x04000200
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r1, _0800D734 @ =REG_DISPSTAT
- movs r0, 0x8
- strh r0, [r1]
- adds r1, 0x4
- movs r2, 0x98
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0800D738 @ =0x00009c04
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0800D73C @ =0x00005e05
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0800D740 @ =0x00005a0b
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0800D744 @ =REG_BLDCNT
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r1, 0xE
- ldr r2, _0800D748 @ =0x0000bf40
- adds r0, r2, 0
- strh r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D72C: .4byte 0x04000208
-_0800D730: .4byte 0x04000200
-_0800D734: .4byte REG_DISPSTAT
-_0800D738: .4byte 0x00009c04
-_0800D73C: .4byte 0x00005e05
-_0800D740: .4byte 0x00005a0b
-_0800D744: .4byte REG_BLDCNT
-_0800D748: .4byte 0x0000bf40
- thumb_func_end sub_800D6D4
-
- thumb_func_start sub_800D74C
-sub_800D74C: @ 800D74C
- push {r4,lr}
- movs r0, 0x12
- bl SetTextWindowBaseTileNum
- ldr r4, _0800D79C @ =gUnknown_03004210
- adds r0, r4, 0
- movs r1, 0x1
- bl LoadTextWindowGraphics_OverridePalSlot
- movs r0, 0x22
- bl SetTextWindowBaseTileNum
- adds r0, r4, 0
- movs r1, 0x1
- bl LoadTextWindowGraphics_OverridePalSlot
- ldr r3, _0800D7A0 @ =gPlttBufferUnfaded
- adds r0, r3, 0
- adds r0, 0xB8
- ldr r1, _0800D7A4 @ =0x00007fe0
- strh r1, [r0]
- adds r2, r3, 0
- adds r2, 0xBA
- ldr r1, _0800D7A8 @ =0x00002529
- strh r1, [r2]
- adds r2, 0x2
- ldr r1, _0800D7AC @ =0x00007fff
- strh r1, [r2]
- adds r2, 0x2
- ldr r1, _0800D7B0 @ =0x0000675a
- strh r1, [r2]
- ldr r1, _0800D7B4 @ =gPlttBufferFaded + 0xB8
- movs r2, 0x4
- bl CpuSet
- bl sub_8032A38
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800D79C: .4byte gUnknown_03004210
-_0800D7A0: .4byte gPlttBufferUnfaded
-_0800D7A4: .4byte 0x00007fe0
-_0800D7A8: .4byte 0x00002529
-_0800D7AC: .4byte 0x00007fff
-_0800D7B0: .4byte 0x0000675a
-_0800D7B4: .4byte gPlttBufferFaded + 0xB8
- thumb_func_end sub_800D74C
-
- thumb_func_start sub_800D7B8
-sub_800D7B8: @ 800D7B8
- push {r4,r5,lr}
- ldr r0, _0800D7DC @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800D7E0 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800D7F8
- ldr r0, _0800D7E4 @ =gBattleTerrainTiles_Building
- ldr r1, _0800D7E8 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D7EC @ =gBattleTerrainTilemap_Building
- ldr r1, _0800D7F0 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower
- b _0800DA66
- .align 2, 0
-_0800D7DC: .4byte gUnknown_020239F8
-_0800D7E0: .4byte 0x00000902
-_0800D7E4: .4byte gBattleTerrainTiles_Building
-_0800D7E8: .4byte 0x06008000
-_0800D7EC: .4byte gBattleTerrainTilemap_Building
-_0800D7F0: .4byte 0x0600d000
-_0800D7F4: .4byte gBattleTerrainPalette_BattleTower
-_0800D7F8:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800D860
- ldr r0, _0800D820 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800D838
- ldr r0, _0800D824 @ =gBattleTerrainTiles_Cave
- ldr r1, _0800D828 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D82C @ =gBattleTerrainTilemap_Cave
- ldr r1, _0800D830 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D834 @ =gBattleTerrainPalette_Groudon
- b _0800DA66
- .align 2, 0
-_0800D820: .4byte gGameVersion
-_0800D824: .4byte gBattleTerrainTiles_Cave
-_0800D828: .4byte 0x06008000
-_0800D82C: .4byte gBattleTerrainTilemap_Cave
-_0800D830: .4byte 0x0600d000
-_0800D834: .4byte gBattleTerrainPalette_Groudon
-_0800D838:
- ldr r0, _0800D84C @ =gBattleTerrainTiles_Water
- ldr r1, _0800D850 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D854 @ =gBattleTerrainTilemap_Water
- ldr r1, _0800D858 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D85C @ =gBattleTerrainPalette_Kyogre
- b _0800DA66
- .align 2, 0
-_0800D84C: .4byte gBattleTerrainTiles_Water
-_0800D850: .4byte 0x06008000
-_0800D854: .4byte gBattleTerrainTilemap_Water
-_0800D858: .4byte 0x0600d000
-_0800D85C: .4byte gBattleTerrainPalette_Kyogre
-_0800D860:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800D8D8
- ldr r2, _0800D890 @ =gTrainers
- ldr r0, _0800D894 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- bne _0800D8AC
- ldr r0, _0800D898 @ =gBattleTerrainTiles_Building
- ldr r1, _0800D89C @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D8A0 @ =gBattleTerrainTilemap_Building
- ldr r1, _0800D8A4 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D8A8 @ =gBattleTerrainPalette_BuildingLeader
- b _0800DA66
- .align 2, 0
-_0800D890: .4byte gTrainers
-_0800D894: .4byte gTrainerBattleOpponent
-_0800D898: .4byte gBattleTerrainTiles_Building
-_0800D89C: .4byte 0x06008000
-_0800D8A0: .4byte gBattleTerrainTilemap_Building
-_0800D8A4: .4byte 0x0600d000
-_0800D8A8: .4byte gBattleTerrainPalette_BuildingLeader
-_0800D8AC:
- cmp r0, 0x20
- bne _0800D8D8
- ldr r0, _0800D8C4 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800D8C8 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D8CC @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800D8D0 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D8D4 @ =gBattleTerrainPalette_StadiumSteven
- b _0800DA66
- .align 2, 0
-_0800D8C4: .4byte gBattleTerrainTiles_Stadium
-_0800D8C8: .4byte 0x06008000
-_0800D8CC: .4byte gBattleTerrainTilemap_Stadium
-_0800D8D0: .4byte 0x0600d000
-_0800D8D4: .4byte gBattleTerrainPalette_StadiumSteven
-_0800D8D8:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _0800D8E6
- b _0800DA9E
-_0800D8E6:
- lsls r0, 2
- ldr r1, _0800D8F0 @ =_0800D8F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800D8F0: .4byte _0800D8F4
- .align 2, 0
-_0800D8F4:
- .4byte _0800D918
- .4byte _0800D964
- .4byte _0800D98C
- .4byte _0800D9B4
- .4byte _0800D9DC
- .4byte _0800DA04
- .4byte _0800DA2C
- .4byte _0800DA54
- .4byte _0800DA84
-_0800D918:
- ldr r4, _0800D954 @ =gBattleTerrainTable
- ldr r5, _0800D958 @ =gUnknown_0300428C
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldr r1, _0800D95C @ =0x06008000
- bl LZDecompressVram
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0x4
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0800D960 @ =0x0600d000
- bl LZDecompressVram
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, 0x10
- adds r0, r4
- ldr r0, [r0]
- b _0800DA66
- .align 2, 0
-_0800D954: .4byte gBattleTerrainTable
-_0800D958: .4byte gUnknown_0300428C
-_0800D95C: .4byte 0x06008000
-_0800D960: .4byte 0x0600d000
-_0800D964:
- ldr r0, _0800D978 @ =gBattleTerrainTiles_Building
- ldr r1, _0800D97C @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D980 @ =gBattleTerrainTilemap_Building
- ldr r1, _0800D984 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D988 @ =gBattleTerrainPalette_BuildingGym
- b _0800DA66
- .align 2, 0
-_0800D978: .4byte gBattleTerrainTiles_Building
-_0800D97C: .4byte 0x06008000
-_0800D980: .4byte gBattleTerrainTilemap_Building
-_0800D984: .4byte 0x0600d000
-_0800D988: .4byte gBattleTerrainPalette_BuildingGym
-_0800D98C:
- ldr r0, _0800D9A0 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800D9A4 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D9A8 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800D9AC @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D9B0 @ =gBattleTerrainPalette_StadiumMagma
- b _0800DA66
- .align 2, 0
-_0800D9A0: .4byte gBattleTerrainTiles_Stadium
-_0800D9A4: .4byte 0x06008000
-_0800D9A8: .4byte gBattleTerrainTilemap_Stadium
-_0800D9AC: .4byte 0x0600d000
-_0800D9B0: .4byte gBattleTerrainPalette_StadiumMagma
-_0800D9B4:
- ldr r0, _0800D9C8 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800D9CC @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D9D0 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800D9D4 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800D9D8 @ =gBattleTerrainPalette_StadiumAqua
- b _0800DA66
- .align 2, 0
-_0800D9C8: .4byte gBattleTerrainTiles_Stadium
-_0800D9CC: .4byte 0x06008000
-_0800D9D0: .4byte gBattleTerrainTilemap_Stadium
-_0800D9D4: .4byte 0x0600d000
-_0800D9D8: .4byte gBattleTerrainPalette_StadiumAqua
-_0800D9DC:
- ldr r0, _0800D9F0 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800D9F4 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800D9F8 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800D9FC @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DA00 @ =gBattleTerrainPalette_StadiumSidney
- b _0800DA66
- .align 2, 0
-_0800D9F0: .4byte gBattleTerrainTiles_Stadium
-_0800D9F4: .4byte 0x06008000
-_0800D9F8: .4byte gBattleTerrainTilemap_Stadium
-_0800D9FC: .4byte 0x0600d000
-_0800DA00: .4byte gBattleTerrainPalette_StadiumSidney
-_0800DA04:
- ldr r0, _0800DA18 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800DA1C @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800DA20 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800DA24 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DA28 @ =gBattleTerrainPalette_StadiumPhoebe
- b _0800DA66
- .align 2, 0
-_0800DA18: .4byte gBattleTerrainTiles_Stadium
-_0800DA1C: .4byte 0x06008000
-_0800DA20: .4byte gBattleTerrainTilemap_Stadium
-_0800DA24: .4byte 0x0600d000
-_0800DA28: .4byte gBattleTerrainPalette_StadiumPhoebe
-_0800DA2C:
- ldr r0, _0800DA40 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800DA44 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800DA48 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800DA4C @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DA50 @ =gBattleTerrainPalette_StadiumGlacia
- b _0800DA66
- .align 2, 0
-_0800DA40: .4byte gBattleTerrainTiles_Stadium
-_0800DA44: .4byte 0x06008000
-_0800DA48: .4byte gBattleTerrainTilemap_Stadium
-_0800DA4C: .4byte 0x0600d000
-_0800DA50: .4byte gBattleTerrainPalette_StadiumGlacia
-_0800DA54:
- ldr r0, _0800DA70 @ =gBattleTerrainTiles_Stadium
- ldr r1, _0800DA74 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800DA78 @ =gBattleTerrainTilemap_Stadium
- ldr r1, _0800DA7C @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DA80 @ =gBattleTerrainPalette_StadiumDrake
-_0800DA66:
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- b _0800DA9E
- .align 2, 0
-_0800DA70: .4byte gBattleTerrainTiles_Stadium
-_0800DA74: .4byte 0x06008000
-_0800DA78: .4byte gBattleTerrainTilemap_Stadium
-_0800DA7C: .4byte 0x0600d000
-_0800DA80: .4byte gBattleTerrainPalette_StadiumDrake
-_0800DA84:
- ldr r0, _0800DAA4 @ =gBattleTerrainTiles_Building
- ldr r1, _0800DAA8 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0800DAAC @ =gBattleTerrainTilemap_Building
- ldr r1, _0800DAB0 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0800DAB4 @ =gBattleTerrainPalette_BattleTower
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
-_0800DA9E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DAA4: .4byte gBattleTerrainTiles_Building
-_0800DAA8: .4byte 0x06008000
-_0800DAAC: .4byte gBattleTerrainTilemap_Building
-_0800DAB0: .4byte 0x0600d000
-_0800DAB4: .4byte gBattleTerrainPalette_BattleTower
- thumb_func_end sub_800D7B8
-
- thumb_func_start sub_800DAB8
-sub_800DAB8: @ 800DAB8
- push {lr}
- ldr r0, _0800DAE8 @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- ldr r0, _0800DAEC @ =gUnknown_08D00524
- ldr r1, _0800DAF0 @ =0x0600c000
- movs r2, 0x80
- lsls r2, 4
- bl CpuSet
- ldr r0, _0800DAF4 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- bl sub_800D74C
- bl sub_800D7B8
- pop {r0}
- bx r0
- .align 2, 0
-_0800DAE8: .4byte gUnknown_08D00000
-_0800DAEC: .4byte gUnknown_08D00524
-_0800DAF0: .4byte 0x0600c000
-_0800DAF4: .4byte gUnknown_08D004E0
- thumb_func_end sub_800DAB8
-
- thumb_func_start sub_800DAF8
-sub_800DAF8: @ 800DAF8
- push {r4-r7,lr}
- sub sp, 0xC
- adds r7, r2, 0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r3, r1, 24
- movs r4, 0
- ldr r0, _0800DB38 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DBB4
- ldr r0, _0800DB3C @ =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0800DB52
- cmp r3, 0x1
- beq _0800DB7A
- cmp r3, 0x1
- bgt _0800DB40
- cmp r3, 0
- beq _0800DB4A
- b _0800DB84
- .align 2, 0
-_0800DB38: .4byte gUnknown_020239F8
-_0800DB3C: .4byte gTasks
-_0800DB40:
- cmp r3, 0x2
- beq _0800DB4E
- cmp r3, 0x3
- beq _0800DB6E
- b _0800DB84
-_0800DB4A:
- ldrh r0, [r1, 0xE]
- b _0800DB70
-_0800DB4E:
- ldrh r1, [r1, 0xE]
- b _0800DB7C
-_0800DB52:
- cmp r3, 0x1
- beq _0800DB6E
- cmp r3, 0x1
- bgt _0800DB60
- cmp r3, 0
- beq _0800DB6A
- b _0800DB84
-_0800DB60:
- cmp r3, 0x2
- beq _0800DB76
- cmp r3, 0x3
- beq _0800DB7A
- b _0800DB84
-_0800DB6A:
- ldrh r0, [r1, 0xE]
- b _0800DB70
-_0800DB6E:
- ldrh r0, [r1, 0x10]
-_0800DB70:
- movs r4, 0x3F
- ands r4, r0
- b _0800DB84
-_0800DB76:
- ldrh r1, [r1, 0xE]
- b _0800DB7C
-_0800DB7A:
- ldrh r1, [r1, 0x10]
-_0800DB7C:
- movs r0, 0xFC
- lsls r0, 4
- ands r0, r1
- lsrs r4, r0, 6
-_0800DB84:
- movs r3, 0
- movs r6, 0x3
- ldr r0, _0800DBB0 @ =0x00006001
- adds r5, r0, 0
- mov r2, sp
-_0800DB8E:
- lsls r1, r3, 1
- adds r0, r6, 0
- lsls r0, r1
- ands r0, r4
- asrs r0, r1
- adds r0, r5
- strh r0, [r2]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x2
- ble _0800DB8E
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x3
- bl CpuSet
- b _0800DC12
- .align 2, 0
-_0800DBB0: .4byte 0x00006001
-_0800DBB4:
- ldr r0, _0800DBD0 @ =0x02000000
- ldr r1, _0800DBD4 @ =0x000160cb
- adds r0, r1
- ldrb r0, [r0]
- cmp r3, r0
- bne _0800DBDC
- ldr r1, _0800DBD8 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrh r4, [r0, 0xE]
- b _0800DBE8
- .align 2, 0
-_0800DBD0: .4byte 0x02000000
-_0800DBD4: .4byte 0x000160cb
-_0800DBD8: .4byte gTasks
-_0800DBDC:
- ldr r1, _0800DC1C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r4, [r0, 0x10]
-_0800DBE8:
- movs r3, 0
- movs r6, 0x3
- ldr r2, _0800DC20 @ =0x00006001
- adds r5, r2, 0
- mov r2, sp
-_0800DBF2:
- lsls r1, r3, 1
- adds r0, r6, 0
- lsls r0, r1
- ands r0, r4
- asrs r0, r1
- adds r0, r5
- strh r0, [r2]
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x5
- ble _0800DBF2
- mov r0, sp
- adds r1, r7, 0
- movs r2, 0x6
- bl CpuSet
-_0800DC12:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DC1C: .4byte gTasks
-_0800DC20: .4byte 0x00006001
- thumb_func_end sub_800DAF8
-
- thumb_func_start sub_800DC24
-sub_800DC24: @ 800DC24
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _0800DC40 @ =gUnknown_02024D26
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0800DC4C
- ldr r4, _0800DC44 @ =gUnknown_03004210
- ldr r1, _0800DC48 @ =gUnknown_08400E57
- movs r0, 0x2
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0xD
- b _0800DDCA
- .align 2, 0
-_0800DC40: .4byte gUnknown_02024D26
-_0800DC44: .4byte gUnknown_03004210
-_0800DC48: .4byte gUnknown_08400E57
-_0800DC4C:
- ldr r0, _0800DC80 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DD38
- cmp r2, 0x1
- bne _0800DCCC
- ldr r2, _0800DC84 @ =gLinkPlayers
- ldr r0, _0800DC88 @ =0x02000000
- ldr r1, _0800DC8C @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DC9C
- cmp r0, 0x1
- bgt _0800DC90
- cmp r0, 0
- bne _0800DC7E
- b _0800DDA8
-_0800DC7E:
- b _0800DE1C
- .align 2, 0
-_0800DC80: .4byte gUnknown_020239F8
-_0800DC84: .4byte gLinkPlayers
-_0800DC88: .4byte 0x02000000
-_0800DC8C: .4byte 0x000160cb
-_0800DC90:
- cmp r0, 0x2
- bne _0800DC96
- b _0800DDA8
-_0800DC96:
- cmp r0, 0x3
- beq _0800DC9C
- b _0800DE1C
-_0800DC9C:
- ldr r4, _0800DCC0 @ =gUnknown_03004210
- ldr r1, _0800DCC4 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DCC8 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DCC0: .4byte gUnknown_03004210
-_0800DCC4: .4byte gUnknown_08400E48
-_0800DCC8: .4byte gUnknown_08400E4F
-_0800DCCC:
- ldr r2, _0800DCF0 @ =gLinkPlayers
- ldr r0, _0800DCF4 @ =0x02000000
- ldr r1, _0800DCF8 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800DDA8
- cmp r0, 0x1
- bgt _0800DCFC
- cmp r0, 0
- beq _0800DD08
- b _0800DE1C
- .align 2, 0
-_0800DCF0: .4byte gLinkPlayers
-_0800DCF4: .4byte 0x02000000
-_0800DCF8: .4byte 0x000160cb
-_0800DCFC:
- cmp r0, 0x2
- beq _0800DD08
- cmp r0, 0x3
- beq _0800DD06
- b _0800DE1C
-_0800DD06:
- b _0800DDA8
-_0800DD08:
- ldr r4, _0800DD2C @ =gUnknown_03004210
- ldr r1, _0800DD30 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD34 @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD2C: .4byte gUnknown_03004210
-_0800DD30: .4byte gUnknown_08400E48
-_0800DD34: .4byte gUnknown_08400E4F
-_0800DD38:
- cmp r2, 0x1
- bne _0800DD90
- ldr r2, _0800DD78 @ =gLinkPlayers
- ldr r0, _0800DD7C @ =0x02000000
- ldr r1, _0800DD80 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDA8
- ldr r4, _0800DD84 @ =gUnknown_03004210
- ldr r1, _0800DD88 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DD8C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- b _0800DDCA
- .align 2, 0
-_0800DD78: .4byte gLinkPlayers
-_0800DD7C: .4byte 0x02000000
-_0800DD80: .4byte 0x000160cb
-_0800DD84: .4byte gUnknown_03004210
-_0800DD88: .4byte gUnknown_08400E48
-_0800DD8C: .4byte gUnknown_08400E4F
-_0800DD90:
- ldr r2, _0800DDD8 @ =gLinkPlayers
- ldr r0, _0800DDDC @ =0x02000000
- ldr r1, _0800DDE0 @ =0x000160cb
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DDF0
-_0800DDA8:
- ldr r4, _0800DDE4 @ =gUnknown_03004210
- ldr r1, _0800DDE8 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DDEC @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x15
-_0800DDCA:
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- b _0800DE1C
- .align 2, 0
-_0800DDD8: .4byte gLinkPlayers
-_0800DDDC: .4byte 0x02000000
-_0800DDE0: .4byte 0x000160cb
-_0800DDE4: .4byte gUnknown_03004210
-_0800DDE8: .4byte gUnknown_08400E48
-_0800DDEC: .4byte gUnknown_08400E4F
-_0800DDF0:
- ldr r4, _0800DE24 @ =gUnknown_03004210
- ldr r1, _0800DE28 @ =gUnknown_08400E48
- movs r5, 0x2
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA0
- movs r3, 0x15
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0800DE2C @ =gUnknown_08400E4F
- str r5, [sp]
- adds r0, r4, 0
- movs r2, 0xA8
- movs r3, 0x6
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_0800DE1C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800DE24: .4byte gUnknown_03004210
-_0800DE28: .4byte gUnknown_08400E48
-_0800DE2C: .4byte gUnknown_08400E4F
- thumb_func_end sub_800DC24
-
- thumb_func_start sub_800DE30
-sub_800DE30: @ 800DE30
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _0800DE64 @ =gTasks
- lsls r0, 2
- mov r10, r0
- add r0, r9
- lsls r0, 3
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _0800DE58
- b _0800DF9C
-_0800DE58:
- cmp r0, 0x1
- bgt _0800DE68
- cmp r0, 0
- beq _0800DE70
- b _0800E212
- .align 2, 0
-_0800DE64: .4byte gTasks
-_0800DE68:
- cmp r0, 0x2
- bne _0800DE6E
- b _0800E03C
-_0800DE6E:
- b _0800E212
-_0800DE70:
- ldr r0, _0800DED0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800DEE0
- ldr r0, _0800DED4 @ =gLinkPlayers
- ldr r2, _0800DED8 @ =gUnknown_081F9680
- mov r8, r2
- adds r7, r0, 0
- adds r7, 0x8
- movs r5, 0x3
-_0800DE88:
- ldrb r0, [r7, 0x10]
- movs r1, 0x3
- ands r1, r0
- str r1, [sp, 0x8]
- lsls r4, r1, 1
- adds r4, r1
- lsls r4, 2
- mov r2, r8
- adds r0, r4, r2
- ldr r1, [r0]
- str r1, [sp, 0xC]
- ldrh r2, [r0, 0x4]
- ldrb r3, [r0, 0x6]
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r1, 0
- adds r1, r7, 0
- bl sub_8002E4C
- ldr r0, [sp, 0xC]
- bl sub_8002F44
- ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8
- adds r4, r2
- ldr r2, [r4]
- mov r0, r9
- ldr r1, [sp, 0x8]
- bl sub_800DAF8
- adds r7, 0x1C
- subs r5, 0x1
- cmp r5, 0
- bge _0800DE88
- b _0800DF70
- .align 2, 0
-_0800DED0: .4byte gUnknown_020239F8
-_0800DED4: .4byte gLinkPlayers
-_0800DED8: .4byte gUnknown_081F9680
-_0800DEDC: .4byte gUnknown_081F9680 + 0x8
-_0800DEE0:
- ldr r0, _0800DF84 @ =0x02000000
- ldr r5, _0800DF88 @ =0x000160cb
- adds r0, r5
- ldrb r7, [r0]
- movs r0, 0x1
- adds r6, r7, 0
- eors r6, r0
- adds r1, r6, 0
- ldr r2, _0800DF8C @ =gLinkPlayers
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x18]
- cmp r0, 0
- beq _0800DF04
- adds r6, r7, 0
- adds r7, r1, 0
-_0800DF04:
- ldr r0, _0800DF90 @ =gUnknown_081F9680
- mov r8, r0
- adds r0, 0x30
- mov r1, r8
- ldr r4, [r1, 0x30]
- lsls r1, r7, 3
- subs r1, r7
- lsls r1, 2
- ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
- adds r1, r2
- ldrh r2, [r0, 0x4]
- ldrb r3, [r0, 0x6]
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- movs r5, 0x1
- str r5, [sp, 0x4]
- adds r0, r4, 0
- bl sub_8002E4C
- adds r0, r4, 0
- bl sub_8002F44
- mov r0, r8
- ldr r2, [r0, 0x38]
- mov r0, r9
- adds r1, r7, 0
- bl sub_800DAF8
- mov r0, r8
- adds r0, 0x3C
- mov r1, r8
- ldr r4, [r1, 0x3C]
- lsls r1, r6, 3
- subs r1, r6
- lsls r1, 2
- ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
- adds r1, r2
- ldrh r2, [r0, 0x4]
- ldrb r3, [r0, 0x6]
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- str r5, [sp, 0x4]
- adds r0, r4, 0
- bl sub_8002E4C
- adds r0, r4, 0
- bl sub_8002F44
- mov r5, r8
- ldr r2, [r5, 0x44]
- mov r0, r9
- adds r1, r6, 0
- bl sub_800DAF8
-_0800DF70:
- ldr r0, _0800DF98 @ =gTasks
- mov r1, r10
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0800E212
- .align 2, 0
-_0800DF84: .4byte 0x02000000
-_0800DF88: .4byte 0x000160cb
-_0800DF8C: .4byte gLinkPlayers
-_0800DF90: .4byte gUnknown_081F9680
-_0800DF94: .4byte gLinkPlayers + 0x8
-_0800DF98: .4byte gTasks
-_0800DF9C:
- ldr r0, _0800E010 @ =0x00002710
- bl AllocSpritePalette
- lsls r0, 24
- ldr r2, _0800E014 @ =gPlttBufferUnfaded
- lsrs r0, 19
- ldr r1, _0800E018 @ =0x0000021e
- adds r0, r1
- adds r2, r0, r2
- ldr r1, _0800E01C @ =gPlttBufferFaded
- adds r0, r1
- ldr r1, _0800E020 @ =0x00007fff
- strh r1, [r0]
- strh r1, [r2]
- ldr r0, _0800E024 @ =gSpriteTemplate_81F9574
- movs r1, 0x6C
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r4, _0800E028 @ =0x02000000
- ldr r2, _0800E02C @ =0x0001608a
- adds r7, r4, r2
- strb r0, [r7]
- ldr r0, _0800E030 @ =gSpriteTemplate_81F958C
- movs r1, 0x84
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- ldr r5, _0800E034 @ =0x0001608b
- adds r4, r5
- strb r0, [r4]
- ldr r3, _0800E038 @ =gSprites
- ldrb r1, [r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0800E212
- .align 2, 0
-_0800E010: .4byte 0x00002710
-_0800E014: .4byte gPlttBufferUnfaded
-_0800E018: .4byte 0x0000021e
-_0800E01C: .4byte gPlttBufferFaded
-_0800E020: .4byte 0x00007fff
-_0800E024: .4byte gSpriteTemplate_81F9574
-_0800E028: .4byte 0x02000000
-_0800E02C: .4byte 0x0001608a
-_0800E030: .4byte gSpriteTemplate_81F958C
-_0800E034: .4byte 0x0001608b
-_0800E038: .4byte gSprites
-_0800E03C:
- movs r1, 0x12
- ldrsh r0, [r6, r1]
- cmp r0, 0
- beq _0800E0A4
- ldr r4, _0800E090 @ =gUnknown_030042C0
- ldrh r0, [r6, 0xA]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E056
- adds r0, 0x1F
-_0800E056:
- asrs r1, r0, 5
- movs r2, 0x14
- negs r2, r2
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4]
- ldr r4, _0800E094 @ =gUnknown_03004288
- ldrh r0, [r6, 0xC]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E074
- adds r0, 0x1F
-_0800E074:
- asrs r1, r0, 5
- movs r5, 0x8C
- negs r5, r5
- adds r0, r5, 0
- subs r0, r1
- strh r0, [r4]
- ldr r0, _0800E098 @ =gUnknown_030041B4
- ldr r2, _0800E09C @ =0x0000ffdc
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0800E0A0 @ =gUnknown_03004280
- strh r1, [r0]
- b _0800E110
- .align 2, 0
-_0800E090: .4byte gUnknown_030042C0
-_0800E094: .4byte gUnknown_03004288
-_0800E098: .4byte gUnknown_030041B4
-_0800E09C: .4byte 0x0000ffdc
-_0800E0A0: .4byte gUnknown_03004280
-_0800E0A4:
- ldr r4, _0800E134 @ =gUnknown_030042C0
- ldrh r0, [r6, 0xA]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E0B6
- adds r0, 0x1F
-_0800E0B6:
- asrs r1, r0, 5
- movs r5, 0x14
- negs r5, r5
- adds r0, r5, 0
- subs r0, r1
- strh r0, [r4]
- ldr r4, _0800E138 @ =gUnknown_030041B4
- ldrh r0, [r6, 0xA]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E0D4
- adds r0, 0x1F
-_0800E0D4:
- asrs r0, 5
- subs r0, 0xA4
- strh r0, [r4]
- ldr r4, _0800E13C @ =gUnknown_03004288
- ldrh r0, [r6, 0xC]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E0EC
- adds r0, 0x1F
-_0800E0EC:
- asrs r1, r0, 5
- movs r2, 0x8C
- negs r2, r2
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r4]
- ldr r4, _0800E140 @ =gUnknown_03004280
- ldrh r0, [r6, 0xC]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0800E10A
- adds r0, 0x1F
-_0800E10A:
- asrs r0, 5
- subs r0, 0xA4
- strh r0, [r4]
-_0800E110:
- ldr r1, _0800E144 @ =gTasks
- mov r5, r9
- lsls r0, r5, 2
- add r0, r9
- lsls r0, 3
- adds r1, r0, r1
- ldrh r0, [r1, 0xC]
- movs r2, 0xC
- ldrsh r7, [r1, r2]
- cmp r7, 0
- beq _0800E148
- subs r0, 0x2
- strh r0, [r1, 0xC]
- ldrh r0, [r1, 0xA]
- adds r0, 0x2
- strh r0, [r1, 0xA]
- b _0800E212
- .align 2, 0
-_0800E134: .4byte gUnknown_030042C0
-_0800E138: .4byte gUnknown_030041B4
-_0800E13C: .4byte gUnknown_03004288
-_0800E140: .4byte gUnknown_03004280
-_0800E144: .4byte gTasks
-_0800E148:
- movs r5, 0x12
- ldrsh r0, [r1, r5]
- cmp r0, 0
- beq _0800E154
- bl sub_800DC24
-_0800E154:
- movs r0, 0x78
- bl PlaySE
- mov r0, r9
- bl DestroyTask
- ldr r4, _0800E224 @ =gSprites
- ldr r0, _0800E228 @ =0x02000000
- mov r8, r0
- ldr r1, _0800E22C @ =0x0001608a
- add r1, r8
- mov r9, r1
- ldrb r0, [r1]
- 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 r5, _0800E230 @ =0x0001608b
- add r8, r5
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- mov r1, r8
- ldrb r0, [r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x40
- ldr r5, _0800E234 @ =0x000003ff
- adds r0, r5, 0
- ands r1, r0
- ldr r0, _0800E238 @ =0xfffffc00
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x2E]
- mov r2, r8
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- mov r5, r9
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x30]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- strh r1, [r0, 0x30]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x32]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r7, [r0, 0x32]
-_0800E212:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E224: .4byte gSprites
-_0800E228: .4byte 0x02000000
-_0800E22C: .4byte 0x0001608a
-_0800E230: .4byte 0x0001608b
-_0800E234: .4byte 0x000003ff
-_0800E238: .4byte 0xfffffc00
- thumb_func_end sub_800DE30
-
- thumb_func_start sub_800E23C
-sub_800E23C: @ 800E23C
- push {r4,r5,lr}
- ldr r0, _0800E29C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800E2DC
- ldr r0, _0800E2A0 @ =gVersusFrameGfx
- ldr r1, _0800E2A4 @ =0x06004000
- bl LZDecompressVram
- ldr r4, _0800E2A8 @ =gVersusFrameTilemap
- ldr r1, _0800E2AC @ =0x0600e000
- adds r0, r4, 0
- bl LZDecompressVram
- ldr r1, _0800E2B0 @ =0x0600f000
- adds r0, r4, 0
- bl LZDecompressVram
- ldr r0, _0800E2B4 @ =gUnknown_08E5DC2C
- ldr r1, _0800E2B8 @ =0x06010000
- bl LZDecompressVram
- ldr r0, _0800E2BC @ =gVersusFramePal
- movs r1, 0x60
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _0800E2C0 @ =REG_BG1CNT
- ldr r2, _0800E2C4 @ =0x00005c04
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0800E2C8 @ =REG_WININ
- movs r1, 0x36
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r0, _0800E2CC @ =gUnknown_030041B4
- ldr r2, _0800E2D0 @ =0x0000ff5c
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0800E2D4 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _0800E2D8 @ =gUnknown_081F95A4
- bl LoadCompressedObjectPic
- b _0800E3FC
- .align 2, 0
-_0800E29C: .4byte gUnknown_020239F8
-_0800E2A0: .4byte gVersusFrameGfx
-_0800E2A4: .4byte 0x06004000
-_0800E2A8: .4byte gVersusFrameTilemap
-_0800E2AC: .4byte 0x0600e000
-_0800E2B0: .4byte 0x0600f000
-_0800E2B4: .4byte gUnknown_08E5DC2C
-_0800E2B8: .4byte 0x06010000
-_0800E2BC: .4byte gVersusFramePal
-_0800E2C0: .4byte REG_BG1CNT
-_0800E2C4: .4byte 0x00005c04
-_0800E2C8: .4byte REG_WININ
-_0800E2CC: .4byte gUnknown_030041B4
-_0800E2D0: .4byte 0x0000ff5c
-_0800E2D4: .4byte gUnknown_03004280
-_0800E2D8: .4byte gUnknown_081F95A4
-_0800E2DC:
- ldr r0, _0800E2F0 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E300
- ldr r0, _0800E2F4 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E2F8 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E2FC @ =gBattleTerrainAnimTilemap_Building
- b _0800E3D2
- .align 2, 0
-_0800E2F0: .4byte 0x00000902
-_0800E2F4: .4byte gBattleTerrainAnimTiles_Building
-_0800E2F8: .4byte 0x06004000
-_0800E2FC: .4byte gBattleTerrainAnimTilemap_Building
-_0800E300:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E348
- ldr r0, _0800E320 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E330
- ldr r0, _0800E324 @ =gBattleTerrainAnimTiles_Cave
- ldr r1, _0800E328 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E32C @ =gBattleTerrainAnimTilemap_Cave
- b _0800E3D2
- .align 2, 0
-_0800E320: .4byte gGameVersion
-_0800E324: .4byte gBattleTerrainAnimTiles_Cave
-_0800E328: .4byte 0x06004000
-_0800E32C: .4byte gBattleTerrainAnimTilemap_Cave
-_0800E330:
- ldr r0, _0800E33C @ =gBattleTerrainAnimTiles_Underwater
- ldr r1, _0800E340 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E344 @ =gBattleTerrainAnimTilemap_Underwater
- b _0800E3D2
- .align 2, 0
-_0800E33C: .4byte gBattleTerrainAnimTiles_Underwater
-_0800E340: .4byte 0x06004000
-_0800E344: .4byte gBattleTerrainAnimTilemap_Underwater
-_0800E348:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E3A0
- ldr r2, _0800E370 @ =gTrainers
- ldr r0, _0800E374 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- bne _0800E384
- ldr r0, _0800E378 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E37C @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E380 @ =gBattleTerrainAnimTilemap_Building
- b _0800E3D2
- .align 2, 0
-_0800E370: .4byte gTrainers
-_0800E374: .4byte gTrainerBattleOpponent
-_0800E378: .4byte gBattleTerrainAnimTiles_Building
-_0800E37C: .4byte 0x06004000
-_0800E380: .4byte gBattleTerrainAnimTilemap_Building
-_0800E384:
- cmp r0, 0x20
- bne _0800E3A0
- ldr r0, _0800E394 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E398 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E39C @ =gBattleTerrainAnimTilemap_Building
- b _0800E3D2
- .align 2, 0
-_0800E394: .4byte gBattleTerrainAnimTiles_Building
-_0800E398: .4byte 0x06004000
-_0800E39C: .4byte gBattleTerrainAnimTilemap_Building
-_0800E3A0:
- bl sav1_map_get_battletype
- lsls r0, 24
- cmp r0, 0
- bne _0800E3EC
- ldr r4, _0800E3DC @ =gBattleTerrainTable
- ldr r5, _0800E3E0 @ =gUnknown_0300428C
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0800E3E4 @ =0x06004000
- bl LZDecompressVram
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, 0xC
- adds r0, r4
- ldr r0, [r0]
-_0800E3D2:
- ldr r1, _0800E3E8 @ =0x0600e000
- bl LZDecompressVram
- b _0800E3FC
- .align 2, 0
-_0800E3DC: .4byte gBattleTerrainTable
-_0800E3E0: .4byte gUnknown_0300428C
-_0800E3E4: .4byte 0x06004000
-_0800E3E8: .4byte 0x0600e000
-_0800E3EC:
- ldr r0, _0800E404 @ =gBattleTerrainAnimTiles_Building
- ldr r1, _0800E408 @ =0x06004000
- bl LZDecompressVram
- ldr r0, _0800E40C @ =gBattleTerrainAnimTilemap_Building
- ldr r1, _0800E410 @ =0x0600e000
- bl LZDecompressVram
-_0800E3FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E404: .4byte gBattleTerrainAnimTiles_Building
-_0800E408: .4byte 0x06004000
-_0800E40C: .4byte gBattleTerrainAnimTilemap_Building
-_0800E410: .4byte 0x0600e000
- thumb_func_end sub_800E23C
-
- thumb_func_start sub_800E414
-sub_800E414: @ 800E414
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- cmp r0, 0x6
- bls _0800E422
- b _0800E7BA
-_0800E422:
- lsls r0, 2
- ldr r1, _0800E42C @ =_0800E430
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E42C: .4byte _0800E430
- .align 2, 0
-_0800E430:
- .4byte _0800E44C
- .4byte _0800E45C
- .4byte _0800E474
- .4byte _0800E484
- .4byte _0800E590
- .4byte _0800E69C
- .4byte _0800E7B4
-_0800E44C:
- ldr r0, _0800E458 @ =gUnknown_08D00000
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _0800E7BC
- .align 2, 0
-_0800E458: .4byte gUnknown_08D00000
-_0800E45C:
- ldr r0, _0800E46C @ =gUnknown_08D00524
- ldr r1, _0800E470 @ =0x0600c000
- movs r2, 0x80
- lsls r2, 4
- bl CpuSet
- b _0800E7BC
- .align 2, 0
-_0800E46C: .4byte gUnknown_08D00524
-_0800E470: .4byte 0x0600c000
-_0800E474:
- ldr r0, _0800E480 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- b _0800E7BC
- .align 2, 0
-_0800E480: .4byte gUnknown_08D004E0
-_0800E484:
- ldr r0, _0800E4A8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800E4AC @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E492
- b _0800E57C
-_0800E492:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E4C0
- ldr r0, _0800E4B0 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E4B8
- ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave
- b _0800E57E
- .align 2, 0
-_0800E4A8: .4byte gUnknown_020239F8
-_0800E4AC: .4byte 0x00000902
-_0800E4B0: .4byte gGameVersion
-_0800E4B4: .4byte gBattleTerrainTiles_Cave
-_0800E4B8:
- ldr r0, _0800E4BC @ =gBattleTerrainTiles_Water
- b _0800E57E
- .align 2, 0
-_0800E4BC: .4byte gBattleTerrainTiles_Water
-_0800E4C0:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E4F0
- ldr r2, _0800E4E4 @ =gTrainers
- ldr r0, _0800E4E8 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- beq _0800E57C
- cmp r0, 0x20
- bne _0800E4F0
- ldr r0, _0800E4EC @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E4E4: .4byte gTrainers
-_0800E4E8: .4byte gTrainerBattleOpponent
-_0800E4EC: .4byte gBattleTerrainTiles_Stadium
-_0800E4F0:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _0800E4FE
- b _0800E7BC
-_0800E4FE:
- lsls r0, 2
- ldr r1, _0800E508 @ =_0800E50C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E508: .4byte _0800E50C
- .align 2, 0
-_0800E50C:
- .4byte _0800E530
- .4byte _0800E57C
- .4byte _0800E54C
- .4byte _0800E554
- .4byte _0800E55C
- .4byte _0800E564
- .4byte _0800E56C
- .4byte _0800E574
- .4byte _0800E57C
-_0800E530:
- ldr r2, _0800E544 @ =gBattleTerrainTable
- ldr r0, _0800E548 @ =gUnknown_0300428C
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- b _0800E57E
- .align 2, 0
-_0800E544: .4byte gBattleTerrainTable
-_0800E548: .4byte gUnknown_0300428C
-_0800E54C:
- ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E550: .4byte gBattleTerrainTiles_Stadium
-_0800E554:
- ldr r0, _0800E558 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E558: .4byte gBattleTerrainTiles_Stadium
-_0800E55C:
- ldr r0, _0800E560 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E560: .4byte gBattleTerrainTiles_Stadium
-_0800E564:
- ldr r0, _0800E568 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E568: .4byte gBattleTerrainTiles_Stadium
-_0800E56C:
- ldr r0, _0800E570 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E570: .4byte gBattleTerrainTiles_Stadium
-_0800E574:
- ldr r0, _0800E578 @ =gBattleTerrainTiles_Stadium
- b _0800E57E
- .align 2, 0
-_0800E578: .4byte gBattleTerrainTiles_Stadium
-_0800E57C:
- ldr r0, _0800E588 @ =gBattleTerrainTiles_Building
-_0800E57E:
- ldr r1, _0800E58C @ =0x06008000
- bl LZDecompressVram
- b _0800E7BC
- .align 2, 0
-_0800E588: .4byte gBattleTerrainTiles_Building
-_0800E58C: .4byte 0x06008000
-_0800E590:
- ldr r0, _0800E5B4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800E5B8 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E59E
- b _0800E688
-_0800E59E:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E5CC
- ldr r0, _0800E5BC @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E5C4
- ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave
- b _0800E68A
- .align 2, 0
-_0800E5B4: .4byte gUnknown_020239F8
-_0800E5B8: .4byte 0x00000902
-_0800E5BC: .4byte gGameVersion
-_0800E5C0: .4byte gBattleTerrainTilemap_Cave
-_0800E5C4:
- ldr r0, _0800E5C8 @ =gBattleTerrainTilemap_Water
- b _0800E68A
- .align 2, 0
-_0800E5C8: .4byte gBattleTerrainTilemap_Water
-_0800E5CC:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E5FC
- ldr r2, _0800E5F0 @ =gTrainers
- ldr r0, _0800E5F4 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- beq _0800E688
- cmp r0, 0x20
- bne _0800E5FC
- ldr r0, _0800E5F8 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E5F0: .4byte gTrainers
-_0800E5F4: .4byte gTrainerBattleOpponent
-_0800E5F8: .4byte gBattleTerrainTilemap_Stadium
-_0800E5FC:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _0800E60A
- b _0800E7BC
-_0800E60A:
- lsls r0, 2
- ldr r1, _0800E614 @ =_0800E618
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E614: .4byte _0800E618
- .align 2, 0
-_0800E618:
- .4byte _0800E63C
- .4byte _0800E688
- .4byte _0800E658
- .4byte _0800E660
- .4byte _0800E668
- .4byte _0800E670
- .4byte _0800E678
- .4byte _0800E680
- .4byte _0800E688
-_0800E63C:
- ldr r2, _0800E650 @ =gBattleTerrainTable
- ldr r0, _0800E654 @ =gUnknown_0300428C
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- b _0800E68A
- .align 2, 0
-_0800E650: .4byte gBattleTerrainTable
-_0800E654: .4byte gUnknown_0300428C
-_0800E658:
- ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E65C: .4byte gBattleTerrainTilemap_Stadium
-_0800E660:
- ldr r0, _0800E664 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E664: .4byte gBattleTerrainTilemap_Stadium
-_0800E668:
- ldr r0, _0800E66C @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E66C: .4byte gBattleTerrainTilemap_Stadium
-_0800E670:
- ldr r0, _0800E674 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E674: .4byte gBattleTerrainTilemap_Stadium
-_0800E678:
- ldr r0, _0800E67C @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E67C: .4byte gBattleTerrainTilemap_Stadium
-_0800E680:
- ldr r0, _0800E684 @ =gBattleTerrainTilemap_Stadium
- b _0800E68A
- .align 2, 0
-_0800E684: .4byte gBattleTerrainTilemap_Stadium
-_0800E688:
- ldr r0, _0800E694 @ =gBattleTerrainTilemap_Building
-_0800E68A:
- ldr r1, _0800E698 @ =0x0600d000
- bl LZDecompressVram
- b _0800E7BC
- .align 2, 0
-_0800E694: .4byte gBattleTerrainTilemap_Building
-_0800E698: .4byte 0x0600d000
-_0800E69C:
- ldr r0, _0800E6C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800E6C4 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- beq _0800E6AA
- b _0800E7A4
-_0800E6AA:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0800E6D8
- ldr r0, _0800E6C8 @ =gGameVersion
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0800E6D0
- ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon
- b _0800E7A6
- .align 2, 0
-_0800E6C0: .4byte gUnknown_020239F8
-_0800E6C4: .4byte 0x00000902
-_0800E6C8: .4byte gGameVersion
-_0800E6CC: .4byte gBattleTerrainPalette_Groudon
-_0800E6D0:
- ldr r0, _0800E6D4 @ =gBattleTerrainPalette_Kyogre
- b _0800E7A6
- .align 2, 0
-_0800E6D4: .4byte gBattleTerrainPalette_Kyogre
-_0800E6D8:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0800E710
- ldr r2, _0800E6F8 @ =gTrainers
- ldr r0, _0800E6FC @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x19
- bne _0800E704
- ldr r0, _0800E700 @ =gBattleTerrainPalette_BuildingLeader
- b _0800E7A6
- .align 2, 0
-_0800E6F8: .4byte gTrainers
-_0800E6FC: .4byte gTrainerBattleOpponent
-_0800E700: .4byte gBattleTerrainPalette_BuildingLeader
-_0800E704:
- cmp r0, 0x20
- bne _0800E710
- ldr r0, _0800E70C @ =gBattleTerrainPalette_StadiumSteven
- b _0800E7A6
- .align 2, 0
-_0800E70C: .4byte gBattleTerrainPalette_StadiumSteven
-_0800E710:
- bl sav1_map_get_battletype
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bhi _0800E7BC
- lsls r0, 2
- ldr r1, _0800E728 @ =_0800E72C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800E728: .4byte _0800E72C
- .align 2, 0
-_0800E72C:
- .4byte _0800E750
- .4byte _0800E76C
- .4byte _0800E774
- .4byte _0800E77C
- .4byte _0800E784
- .4byte _0800E78C
- .4byte _0800E794
- .4byte _0800E79C
- .4byte _0800E7A4
-_0800E750:
- ldr r2, _0800E764 @ =gBattleTerrainTable
- ldr r0, _0800E768 @ =gUnknown_0300428C
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x10
- adds r0, r2
- ldr r0, [r0]
- b _0800E7A6
- .align 2, 0
-_0800E764: .4byte gBattleTerrainTable
-_0800E768: .4byte gUnknown_0300428C
-_0800E76C:
- ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym
- b _0800E7A6
- .align 2, 0
-_0800E770: .4byte gBattleTerrainPalette_BuildingGym
-_0800E774:
- ldr r0, _0800E778 @ =gBattleTerrainPalette_StadiumMagma
- b _0800E7A6
- .align 2, 0
-_0800E778: .4byte gBattleTerrainPalette_StadiumMagma
-_0800E77C:
- ldr r0, _0800E780 @ =gBattleTerrainPalette_StadiumAqua
- b _0800E7A6
- .align 2, 0
-_0800E780: .4byte gBattleTerrainPalette_StadiumAqua
-_0800E784:
- ldr r0, _0800E788 @ =gBattleTerrainPalette_StadiumSidney
- b _0800E7A6
- .align 2, 0
-_0800E788: .4byte gBattleTerrainPalette_StadiumSidney
-_0800E78C:
- ldr r0, _0800E790 @ =gBattleTerrainPalette_StadiumPhoebe
- b _0800E7A6
- .align 2, 0
-_0800E790: .4byte gBattleTerrainPalette_StadiumPhoebe
-_0800E794:
- ldr r0, _0800E798 @ =gBattleTerrainPalette_StadiumGlacia
- b _0800E7A6
- .align 2, 0
-_0800E798: .4byte gBattleTerrainPalette_StadiumGlacia
-_0800E79C:
- ldr r0, _0800E7A0 @ =gBattleTerrainPalette_StadiumDrake
- b _0800E7A6
- .align 2, 0
-_0800E7A0: .4byte gBattleTerrainPalette_StadiumDrake
-_0800E7A4:
- ldr r0, _0800E7B0 @ =gBattleTerrainPalette_BattleTower
-_0800E7A6:
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- b _0800E7BC
- .align 2, 0
-_0800E7B0: .4byte gBattleTerrainPalette_BattleTower
-_0800E7B4:
- bl sub_800D74C
- b _0800E7BC
-_0800E7BA:
- movs r4, 0x1
-_0800E7BC:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_800E414
-
- thumb_func_start sub_800E7C4
-sub_800E7C4: @ 800E7C4
- push {lr}
- ldr r0, _0800E7E4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800E7F0
- bl sub_800B858
- ldr r0, _0800E7E8 @ =sub_800F104
- bl SetMainCallback2
- ldr r1, _0800E7EC @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1]
- b _0800E7F4
- .align 2, 0
-_0800E7E4: .4byte gUnknown_020239F8
-_0800E7E8: .4byte sub_800F104
-_0800E7EC: .4byte gUnknown_02024D1E
-_0800E7F0:
- bl sub_800E7F8
-_0800E7F4:
- pop {r0}
- bx r0
- thumb_func_end sub_800E7C4
-
- thumb_func_start sub_800E7F8
-sub_800E7F8: @ 800E7F8
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r4, 0
- str r4, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _0800E90C @ =0x05006000
- mov r0, sp
- bl CpuSet
- ldr r0, _0800E910 @ =REG_MOSAIC
- strh r4, [r0]
- subs r0, 0xC
- movs r2, 0xF0
- strh r2, [r0]
- adds r0, 0x4
- ldr r3, _0800E914 @ =0x00005051
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r0, _0800E918 @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _0800E91C @ =gUnknown_03004240
- strh r1, [r0]
- bl dp12_8087EA4
- ldr r0, _0800E920 @ =gUnknown_03004DE0
- movs r3, 0xF0
- movs r5, 0xF0
- lsls r5, 3
- adds r2, r0, r5
- movs r1, 0x4F
-_0800E84A:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0800E84A
- movs r1, 0x50
- ldr r4, _0800E924 @ =gUnknown_081F9674
- ldr r0, _0800E920 @ =gUnknown_03004DE0
- ldr r3, _0800E928 @ =0x0000ff10
- movs r5, 0x82
- lsls r5, 4
- adds r2, r0, r5
- adds r0, 0xA0
-_0800E868:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _0800E868
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- ldr r2, [r4, 0x8]
- bl sub_80895F8
- ldr r4, _0800E92C @ =gWindowConfig_81E6C58
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _0800E930 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0800E934 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _0800E938 @ =gUnknown_030042C0
- strh r1, [r0]
- ldr r0, _0800E93C @ =gUnknown_030041B4
- strh r1, [r0]
- ldr r0, _0800E940 @ =gUnknown_03004288
- strh r1, [r0]
- ldr r0, _0800E944 @ =gUnknown_03004280
- strh r1, [r0]
- ldr r0, _0800E948 @ =gUnknown_030041B0
- strh r1, [r0]
- ldr r0, _0800E94C @ =gUnknown_030041B8
- strh r1, [r0]
- bl sub_8081D3C
- ldr r1, _0800E950 @ =gUnknown_0300428C
- strb r0, [r1]
- ldr r0, _0800E954 @ =gUnknown_03004210
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r0, _0800E958 @ =gUnknown_030041D0
- ldr r1, _0800E95C @ =gWindowConfig_81E71D0
- bl InitWindowFromConfig
- ldr r0, _0800E960 @ =gUnknown_03004250
- ldr r1, _0800E964 @ =gWindowConfig_81E71EC
- bl InitWindowFromConfig
- bl sub_800D6D4
- bl sub_800DAB8
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800E23C
- bl FreeAllSpritePalettes
- ldr r1, _0800E968 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _0800E96C @ =sub_800FCFC
- bl SetVBlankCallback
- bl sub_800B884
- ldr r0, _0800E970 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800E978
- ldr r0, _0800E974 @ =sub_800F298
- bl SetMainCallback2
- b _0800E97E
- .align 2, 0
-_0800E90C: .4byte 0x05006000
-_0800E910: .4byte REG_MOSAIC
-_0800E914: .4byte 0x00005051
-_0800E918: .4byte gUnknown_030042C4
-_0800E91C: .4byte gUnknown_03004240
-_0800E920: .4byte gUnknown_03004DE0
-_0800E924: .4byte gUnknown_081F9674
-_0800E928: .4byte 0x0000ff10
-_0800E92C: .4byte gWindowConfig_81E6C58
-_0800E930: .4byte gUnknown_030042A4
-_0800E934: .4byte gUnknown_030042A0
-_0800E938: .4byte gUnknown_030042C0
-_0800E93C: .4byte gUnknown_030041B4
-_0800E940: .4byte gUnknown_03004288
-_0800E944: .4byte gUnknown_03004280
-_0800E948: .4byte gUnknown_030041B0
-_0800E94C: .4byte gUnknown_030041B8
-_0800E950: .4byte gUnknown_0300428C
-_0800E954: .4byte gUnknown_03004210
-_0800E958: .4byte gUnknown_030041D0
-_0800E95C: .4byte gWindowConfig_81E71D0
-_0800E960: .4byte gUnknown_03004250
-_0800E964: .4byte gWindowConfig_81E71EC
-_0800E968: .4byte gReservedSpritePaletteCount
-_0800E96C: .4byte sub_800FCFC
-_0800E970: .4byte gUnknown_020239F8
-_0800E974: .4byte sub_800F298
-_0800E978:
- ldr r0, _0800E9CC @ =sub_800EC9C
- bl SetMainCallback2
-_0800E97E:
- ldr r0, _0800E9D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800E998
- ldr r0, _0800E9D4 @ =gEnemyParty
- ldr r1, _0800E9D8 @ =gTrainerBattleOpponent
- ldrh r1, [r1]
- bl sub_800F8E8
- bl sub_8040C38
-_0800E998:
- ldr r0, _0800E9DC @ =gMain
- ldr r1, _0800E9E0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r4, _0800E9E4 @ =gPlayerParty
- movs r3, 0xFA
- lsls r3, 1
- adds r5, r4, r3
-_0800E9AE:
- adds r0, r4, 0
- movs r1, 0x3
- bl AdjustFriendship
- adds r4, 0x64
- cmp r4, r5
- ble _0800E9AE
- movs r1, 0
- ldr r0, _0800E9E8 @ =gUnknown_02024D1E
- strb r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800E9CC: .4byte sub_800EC9C
-_0800E9D0: .4byte gUnknown_020239F8
-_0800E9D4: .4byte gEnemyParty
-_0800E9D8: .4byte gTrainerBattleOpponent
-_0800E9DC: .4byte gMain
-_0800E9E0: .4byte 0x0000043d
-_0800E9E4: .4byte gPlayerParty
-_0800E9E8: .4byte gUnknown_02024D1E
- thumb_func_end sub_800E7F8
-
- thumb_func_start sub_800E9EC
-sub_800E9EC: @ 800E9EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- mov r9, r6
- movs r0, 0xCE
- lsls r0, 1
- mov r10, r0
- mov r8, r6
-_0800EA02:
- movs r0, 0x64
- mov r4, r9
- muls r4, r0
- ldr r0, _0800EAA4 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0800EA7E
- cmp r5, r10
- beq _0800EA4A
- cmp r7, 0
- beq _0800EA4A
- cmp r1, 0
- bne _0800EA4A
- movs r0, 0x1
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0800EA4A:
- cmp r5, 0
- beq _0800EA7E
- cmp r7, 0
- beq _0800EA66
- cmp r5, r10
- beq _0800EA5A
- cmp r1, 0
- beq _0800EA66
-_0800EA5A:
- movs r0, 0x2
- mov r1, r8
- lsls r0, r1
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0800EA66:
- cmp r5, 0
- beq _0800EA7E
- cmp r5, r10
- beq _0800EA7E
- cmp r7, 0
- bne _0800EA7E
- movs r0, 0x3
- mov r2, r8
- lsls r0, r2
- orrs r6, r0
- lsls r0, r6, 16
- lsrs r6, r0, 16
-_0800EA7E:
- movs r0, 0x2
- add r8, r0
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _0800EA02
- ldr r1, _0800EAA8 @ =0x02000000
- strb r6, [r1, 0x2]
- lsrs r0, r6, 8
- strb r0, [r1, 0x3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EAA4: .4byte gPlayerParty
-_0800EAA8: .4byte 0x02000000
- thumb_func_end sub_800E9EC
-
- thumb_func_start sub_800EAAC
-sub_800EAAC: @ 800EAAC
- push {r4-r6,lr}
- ldr r4, _0800EAF4 @ =0x02000004
- movs r2, 0
- ldr r6, _0800EAF8 @ =gSaveBlock1
- ldr r0, _0800EAFC @ =0x00003160
- adds r3, r6, r0
-_0800EAB8:
- adds r0, r4, r2
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _0800EAB8
- movs r2, 0
- adds r3, r4, 0
- adds r3, 0x8
- ldr r5, _0800EB00 @ =gSaveBlock1 + 0x3676
-_0800EACE:
- adds r0, r3, r2
- adds r1, r2, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x11
- ble _0800EACE
- ldr r1, _0800EB04 @ =0x00003688
- adds r0, r6, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x7]
- adds r1, 0x1
- adds r0, r6, r1
- ldrb r0, [r0]
- strb r0, [r4, 0x1A]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EAF4: .4byte 0x02000004
-_0800EAF8: .4byte gSaveBlock1
-_0800EAFC: .4byte 0x00003160
-_0800EB00: .4byte gSaveBlock1 + 0x3676
-_0800EB04: .4byte 0x00003688
- thumb_func_end sub_800EAAC
-
- thumb_func_start sub_800EB08
-sub_800EB08: @ 800EB08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0800EB84 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0800EBA4
- movs r3, 0
- ldr r5, _0800EB88 @ =gEnigmaBerries
- ldr r0, _0800EB8C @ =gSaveBlock1
- mov r12, r0
- adds r7, r5, 0
- ldr r6, _0800EB90 @ =0x00003160
- add r6, r12
- adds r4, r5, 0
- adds r4, 0x38
-_0800EB30:
- adds r1, r3, r7
- adds r2, r3, r6
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r3, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x6
- ble _0800EB30
- movs r3, 0
- ldr r4, _0800EB94 @ =gUnknown_02024DF8
- ldr r7, _0800EB98 @ =gSaveBlock1 + 0x3676
- adds r6, r4, 0
- adds r6, 0x38
-_0800EB4E:
- adds r1, r3, r4
- adds r2, r3, r7
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r3, r6
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- cmp r3, 0x11
- ble _0800EB4E
- ldr r1, _0800EB9C @ =0x00003688
- add r1, r12
- ldrb r0, [r1]
- strb r0, [r5, 0x7]
- ldrb r0, [r1]
- adds r1, r5, 0
- adds r1, 0x3F
- strb r0, [r1]
- ldr r1, _0800EBA0 @ =0x00003689
- add r1, r12
- ldrb r0, [r1]
- strb r0, [r5, 0x1A]
- ldrb r1, [r1]
- adds r0, r5, 0
- adds r0, 0x52
- strb r1, [r0]
- b _0800EC28
- .align 2, 0
-_0800EB84: .4byte gUnknown_020239F8
-_0800EB88: .4byte gEnigmaBerries
-_0800EB8C: .4byte gSaveBlock1
-_0800EB90: .4byte 0x00003160
-_0800EB94: .4byte gUnknown_02024DF8
-_0800EB98: .4byte gSaveBlock1 + 0x3676
-_0800EB9C: .4byte 0x00003688
-_0800EBA0: .4byte 0x00003689
-_0800EBA4:
- movs r0, 0x40
- ands r0, r1
- movs r1, 0x2
- mov r8, r1
- cmp r0, 0
- beq _0800EBB4
- movs r0, 0x4
- mov r8, r0
-_0800EBB4:
- movs r3, 0
- cmp r3, r8
- bge _0800EC28
- ldr r1, _0800EC38 @ =gEnigmaBerries
- mov r12, r1
- ldr r0, _0800EC3C @ =gBlockRecvBuffer + 0x4
- mov r10, r0
- movs r1, 0x8
- add r1, r12
- mov r9, r1
-_0800EBC8:
- lsls r0, r3, 8
- mov r1, r10
- adds r5, r0, r1
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- ldr r1, _0800EC40 @ =gLinkPlayers
- adds r0, r1
- ldrb r4, [r0, 0x18]
- movs r2, 0
- adds r7, r3, 0x1
- lsls r1, r4, 3
- subs r0, r1, r4
- adds r6, r1, 0
- lsls r0, 2
- mov r1, r12
- adds r3, r0, r1
-_0800EBEA:
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x6
- ble _0800EBEA
- movs r2, 0
- subs r0, r6, r4
- lsls r0, 2
- mov r1, r9
- adds r3, r0, r1
- adds r1, r5, 0
- adds r1, 0x8
-_0800EC06:
- adds r0, r1, r2
- ldrb r0, [r0]
- strb r0, [r3]
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, 0x11
- ble _0800EC06
- subs r0, r6, r4
- lsls r0, 2
- add r0, r12
- ldrb r1, [r5, 0x7]
- strb r1, [r0, 0x7]
- ldrb r1, [r5, 0x1A]
- strb r1, [r0, 0x1A]
- adds r3, r7, 0
- cmp r3, r8
- blt _0800EBC8
-_0800EC28:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC38: .4byte gEnigmaBerries
-_0800EC3C: .4byte gBlockRecvBuffer + 0x4
-_0800EC40: .4byte gLinkPlayers
- thumb_func_end sub_800EB08
-
- thumb_func_start shedinja_something
-shedinja_something: @ 800EC44
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- add r5, sp, 0xC
- movs r0, 0x1
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _0800EC94 @ =0x0000012f
- cmp r0, r1
- bne _0800EC8C
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- ldrb r1, [r5]
- cmp r0, r1
- beq _0800EC8C
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r1, _0800EC98 @ =gUnknown_081F96C8
- mov r0, sp
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _0800EC8C
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r5, 0
- bl SetMonData
-_0800EC8C:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800EC94: .4byte 0x0000012f
-_0800EC98: .4byte gUnknown_081F96C8
- thumb_func_end shedinja_something
-
- thumb_func_start sub_800EC9C
-sub_800EC9C: @ 800EC9C
- push {r4-r7,lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0800ECD4 @ =0x02000000
- ldr r1, _0800ECD8 @ =0x000160cb
- adds r0, r1
- strb r4, [r0]
- movs r0, 0x1
- adds r5, r4, 0
- eors r5, r0
- ldr r0, _0800ECDC @ =gUnknown_02024D1E
- ldrb r0, [r0]
- cmp r0, 0x9
- bls _0800ECCA
- b _0800F008
-_0800ECCA:
- lsls r0, 2
- ldr r1, _0800ECE0 @ =_0800ECE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800ECD4: .4byte 0x02000000
-_0800ECD8: .4byte 0x000160cb
-_0800ECDC: .4byte gUnknown_02024D1E
-_0800ECE0: .4byte _0800ECE4
- .align 2, 0
-_0800ECE4:
- .4byte _0800ED0C
- .4byte _0800ED7C
- .4byte _0800EE88
- .4byte _0800EEAC
- .4byte _0800EED8
- .4byte _0800EEFC
- .4byte _0800EF28
- .4byte _0800EF48
- .4byte _0800EFB4
- .4byte _0800EFCC
-_0800ED0C:
- ldr r2, _0800ED54 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0800ED64
- ldr r0, _0800ED58 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800ED22
- b _0800F008
-_0800ED22:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800ED2E
- b _0800F008
-_0800ED2E:
- ldr r4, _0800ED5C @ =0x02000000
- movs r5, 0x1
- strb r5, [r4]
- strb r5, [r4, 0x1]
- bl sub_800E9EC
- bl sub_800EAAC
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x20
- bl SendBlock
- ldr r0, _0800ED60 @ =gUnknown_02024D1E
- strb r5, [r0]
- b _0800F008
- .align 2, 0
-_0800ED54: .4byte gUnknown_020239F8
-_0800ED58: .4byte gReceivedRemoteLinkPlayers
-_0800ED5C: .4byte 0x02000000
-_0800ED60: .4byte gUnknown_02024D1E
-_0800ED64:
- movs r0, 0x4
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0800ED78 @ =gUnknown_02024D1E
- movs r0, 0x8
- strb r0, [r1]
- bl sub_800EB08
- b _0800F008
- .align 2, 0
-_0800ED78: .4byte gUnknown_02024D1E
-_0800ED7C:
- bl GetBlockRecievedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0800ED8A
- b _0800F008
-_0800ED8A:
- bl ResetBlockReceivedFlags
- movs r3, 0
- ldr r0, _0800EDA8 @ =gBlockRecvBuffer
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _0800EDBC
- cmp r4, 0
- bne _0800EDB0
- ldr r0, _0800EDAC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800EDB6
- .align 2, 0
-_0800EDA8: .4byte gBlockRecvBuffer
-_0800EDAC: .4byte gUnknown_020239F8
-_0800EDB0:
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800EDB6:
- orrs r1, r2
- strh r1, [r0]
- adds r3, 0x1
-_0800EDBC:
- lsls r7, r5, 8
- cmp r3, 0
- bne _0800EE38
- ldr r0, _0800EDE4 @ =gBlockRecvBuffer
- movs r1, 0x80
- lsls r1, 1
- adds r2, r0, r1
- ldrh r1, [r0]
- adds r6, r0, 0
- ldrh r2, [r2]
- cmp r1, r2
- bne _0800EDF4
- cmp r4, 0
- bne _0800EDE8
- ldr r0, _0800EDE0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800EDEE
- .align 2, 0
-_0800EDE0: .4byte gUnknown_020239F8
-_0800EDE4: .4byte gBlockRecvBuffer
-_0800EDE8:
- ldr r0, _0800EE04 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800EDEE:
- orrs r1, r2
- strh r1, [r0]
- adds r3, 0x1
-_0800EDF4:
- lsls r7, r5, 8
- cmp r3, 0
- bne _0800EE38
- ldrh r1, [r6]
- ldr r0, _0800EE08 @ =0x00000101
- ldr r2, _0800EE04 @ =gUnknown_020239F8
- b _0800EE1A
- .align 2, 0
-_0800EE04: .4byte gUnknown_020239F8
-_0800EE08: .4byte 0x00000101
-_0800EE0C:
- adds r3, 0x1
- cmp r3, 0x1
- bgt _0800EE22
- lsls r0, r3, 8
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0800EE2C @ =0x00000101
-_0800EE1A:
- cmp r1, r0
- bls _0800EE0C
- cmp r3, r4
- beq _0800EE0C
-_0800EE22:
- cmp r3, 0x2
- bne _0800EE30
- ldrh r0, [r2]
- movs r1, 0xC
- b _0800EE34
- .align 2, 0
-_0800EE2C: .4byte 0x00000101
-_0800EE30:
- ldrh r0, [r2]
- movs r1, 0x8
-_0800EE34:
- orrs r0, r1
- strh r0, [r2]
-_0800EE38:
- bl sub_800EB08
- ldr r0, _0800EE78 @ =sub_800DE30
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EE7C @ =gTasks
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r1
- movs r1, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r2, 0xA]
- movs r0, 0x5A
- strh r0, [r2, 0xC]
- strh r1, [r2, 0x12]
- ldr r0, _0800EE80 @ =0x02000000
- ldrb r1, [r0, 0x2]
- ldrb r0, [r0, 0x3]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2, 0xE]
- ldr r0, _0800EE84 @ =gBlockRecvBuffer
- adds r0, 0x2
- adds r0, r7, r0
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- b _0800EF96
- .align 2, 0
-_0800EE78: .4byte sub_800DE30
-_0800EE7C: .4byte gTasks
-_0800EE80: .4byte 0x02000000
-_0800EE84: .4byte gBlockRecvBuffer
-_0800EE88:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800EE94
- b _0800F008
-_0800EE94:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EEA8 @ =gPlayerParty
- movs r2, 0xC8
- bl SendBlock
- b _0800EF96
- .align 2, 0
-_0800EEA8: .4byte gPlayerParty
-_0800EEAC:
- bl GetBlockRecievedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0800EEBA
- b _0800F008
-_0800EEBA:
- bl ResetBlockReceivedFlags
- ldr r0, _0800EED0 @ =gEnemyParty
- lsls r1, r5, 8
- ldr r2, _0800EED4 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- b _0800EF96
- .align 2, 0
-_0800EED0: .4byte gEnemyParty
-_0800EED4: .4byte gBlockRecvBuffer
-_0800EED8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800EEE4
- b _0800F008
-_0800EEE4:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EEF8 @ =gUnknown_03004428
- movs r2, 0xC8
- bl SendBlock
- b _0800EF96
- .align 2, 0
-_0800EEF8: .4byte gUnknown_03004428
-_0800EEFC:
- bl GetBlockRecievedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- beq _0800EF0A
- b _0800F008
-_0800EF0A:
- bl ResetBlockReceivedFlags
- ldr r0, _0800EF20 @ =gUnknown_03004688
- lsls r1, r5, 8
- ldr r2, _0800EF24 @ =gBlockRecvBuffer
- adds r1, r2
- movs r2, 0xC8
- bl memcpy
- b _0800EF96
- .align 2, 0
-_0800EF20: .4byte gUnknown_03004688
-_0800EF24: .4byte gBlockRecvBuffer
-_0800EF28:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- beq _0800F008
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800EF44 @ =gUnknown_030044F0
- movs r2, 0xC8
- bl SendBlock
- b _0800EF96
- .align 2, 0
-_0800EF44: .4byte gUnknown_030044F0
-_0800EF48:
- bl GetBlockRecievedStatus
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x3
- bne _0800F008
- bl ResetBlockReceivedFlags
- ldr r4, _0800EFA0 @ =gUnknown_03004750
- lsls r1, r5, 8
- ldr r0, _0800EFA4 @ =gBlockRecvBuffer
- adds r1, r0
- adds r0, r4, 0
- movs r2, 0xC8
- bl memcpy
- ldr r1, _0800EFA8 @ =0xfffffe70
- adds r0, r4, r1
- bl shedinja_something
- ldr r1, _0800EFAC @ =0xfffffed4
- adds r0, r4, r1
- bl shedinja_something
- adds r0, r4, 0
- subs r0, 0xC8
- bl shedinja_something
- adds r0, r4, 0
- subs r0, 0x64
- bl shedinja_something
- adds r0, r4, 0
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0x64
- bl shedinja_something
-_0800EF96:
- ldr r1, _0800EFB0 @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0800F008
- .align 2, 0
-_0800EFA0: .4byte gUnknown_03004750
-_0800EFA4: .4byte gBlockRecvBuffer
-_0800EFA8: .4byte 0xfffffe70
-_0800EFAC: .4byte 0xfffffed4
-_0800EFB0: .4byte gUnknown_02024D1E
-_0800EFB4:
- bl sub_800B950
- ldr r0, _0800EFC8 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _0800F008
- .align 2, 0
-_0800EFC8: .4byte gUnknown_02024D1E
-_0800EFCC:
- ldr r0, _0800F010 @ =gUnknown_02024D1F
- adds r1, r0, 0x1
- bl battle_load_something
- lsls r0, 24
- cmp r0, 0
- beq _0800F008
- ldr r2, _0800F014 @ =gUnknown_030042D0
- ldr r1, _0800F018 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _0800F01C @ =sub_8010824
- str r0, [r1]
- ldr r0, _0800F020 @ =sub_800F808
- bl SetMainCallback2
- ldr r3, _0800F024 @ =gUnknown_020239F8
- ldrh r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0800F008
- ldr r1, _0800F028 @ =gTrainerBattleOpponent
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- strh r0, [r1]
- movs r0, 0x20
- orrs r0, r2
- strh r0, [r3]
-_0800F008:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F010: .4byte gUnknown_02024D1F
-_0800F014: .4byte gUnknown_030042D0
-_0800F018: .4byte gMain
-_0800F01C: .4byte sub_8010824
-_0800F020: .4byte sub_800F808
-_0800F024: .4byte gUnknown_020239F8
-_0800F028: .4byte gTrainerBattleOpponent
- thumb_func_end sub_800EC9C
-
- thumb_func_start sub_800F02C
-sub_800F02C: @ 800F02C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r8, r0
- ldr r7, _0800F0F8 @ =gUnknown_02023A04
- mov r10, r7
-_0800F03E:
- mov r1, r8
- lsls r6, r1, 5
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r0, _0800F0FC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- movs r1, 0x4
- negs r1, r1
- add r1, r10
- mov r9, r1
- adds r5, r6, r1
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- strh r0, [r5, 0x2]
- adds r0, r4, 0
- movs r1, 0x2
- adds r2, r7, 0
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strb r0, [r5, 0xF]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r5, 0x12]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- mov r1, r10
- adds r1, 0x10
- adds r6, r1
- str r0, [r6]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r7, 0x14]
- adds r0, r4, 0
- bl GetMonGender
- strb r0, [r5, 0x1C]
- adds r0, r7, 0
- bl StripExtCtrlCodes
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMonData
- strb r0, [r5, 0x1D]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0800F0D4
- adds r0, r7, 0
- movs r1, 0
- bl sub_814A518
-_0800F0D4:
- adds r7, 0x20
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x2
- ble _0800F03E
- ldr r0, _0800F100 @ =0x02000000
- mov r1, r9
- movs r2, 0x60
- bl memcpy
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F0F8: .4byte gUnknown_02023A04
-_0800F0FC: .4byte gPlayerParty
-_0800F100: .4byte 0x02000000
- thumb_func_end sub_800F02C
-
- thumb_func_start sub_800F104
-sub_800F104: @ 800F104
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r4, _0800F148 @ =0x02000000
- ldr r1, _0800F14C @ =0x000160cb
- adds r0, r4, r1
- strb r6, [r0]
- ldr r2, _0800F150 @ =0x000160c4
- adds r2, r4
- mov r9, r2
- ldr r0, _0800F154 @ =0x000160c2
- adds r0, r4
- mov r8, r0
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r5, _0800F158 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _0800F1A0
- cmp r0, 0x1
- bgt _0800F15C
- cmp r0, 0
- beq _0800F168
- b _0800F27A
- .align 2, 0
-_0800F148: .4byte 0x02000000
-_0800F14C: .4byte 0x000160cb
-_0800F150: .4byte 0x000160c4
-_0800F154: .4byte 0x000160c2
-_0800F158: .4byte gUnknown_02024D1E
-_0800F15C:
- cmp r0, 0x2
- beq _0800F240
- cmp r0, 0x3
- bne _0800F166
- b _0800F25C
-_0800F166:
- b _0800F27A
-_0800F168:
- ldr r0, _0800F19C @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800F172
- b _0800F27A
-_0800F172:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F17E
- b _0800F27A
-_0800F17E:
- bl sub_800F02C
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x60
- bl SendBlock
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0800F27A
- .align 2, 0
-_0800F19C: .4byte gReceivedRemoteLinkPlayers
-_0800F1A0:
- bl GetBlockRecievedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- bne _0800F27A
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r5, r0, 2
- movs r7, 0
-_0800F1BA:
- cmp r4, r6
- beq _0800F1FA
- ldr r2, _0800F1DC @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0800F1E0
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F1EC
- b _0800F1FA
- .align 2, 0
-_0800F1DC: .4byte gLinkPlayers
-_0800F1E0:
- adds r0, r5, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F1FA
-_0800F1EC:
- lsls r1, r4, 8
- ldr r0, _0800F228 @ =gBlockRecvBuffer
- adds r1, r0
- ldr r0, _0800F22C @ =gUnknown_02023A00
- movs r2, 0x60
- bl memcpy
-_0800F1FA:
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _0800F1BA
- ldr r1, _0800F230 @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _0800F234 @ =gMain
- ldr r0, [r1, 0x8]
- mov r2, r9
- str r0, [r2]
- ldr r0, _0800F238 @ =gUnknown_020239F8
- ldrh r0, [r0]
- mov r2, r8
- strh r0, [r2]
- ldr r0, _0800F23C @ =sub_800F104
- str r0, [r1, 0x8]
- movs r0, 0x5
- movs r1, 0
- bl OpenPartyMenu
- b _0800F27A
- .align 2, 0
-_0800F228: .4byte gBlockRecvBuffer
-_0800F22C: .4byte gUnknown_02023A00
-_0800F230: .4byte gUnknown_02024D1E
-_0800F234: .4byte gMain
-_0800F238: .4byte gUnknown_020239F8
-_0800F23C: .4byte sub_800F104
-_0800F240:
- ldr r0, _0800F258 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0800F27A
- movs r0, 0x3
- strb r0, [r5]
- bl sub_800832C
- b _0800F27A
- .align 2, 0
-_0800F258: .4byte gPaletteFade
-_0800F25C:
- ldr r0, _0800F288 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800F27A
- ldr r1, _0800F28C @ =gUnknown_020239F8
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _0800F290 @ =gMain
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1, 0x8]
- ldr r0, _0800F294 @ =sub_800E7F8
- bl SetMainCallback2
-_0800F27A:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F288: .4byte gReceivedRemoteLinkPlayers
-_0800F28C: .4byte gUnknown_020239F8
-_0800F290: .4byte gMain
-_0800F294: .4byte sub_800E7F8
- thumb_func_end sub_800F104
-
- thumb_func_start sub_800F298
-sub_800F298: @ 800F298
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0800F2D0 @ =0x02000000
- ldr r1, _0800F2D4 @ =0x000160cb
- adds r0, r1
- strb r6, [r0]
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0800F2D8 @ =gUnknown_02024D1E
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _0800F2C4
- b _0800F7E0
-_0800F2C4:
- lsls r0, 2
- ldr r1, _0800F2DC @ =_0800F2E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0800F2D0: .4byte 0x02000000
-_0800F2D4: .4byte 0x000160cb
-_0800F2D8: .4byte gUnknown_02024D1E
-_0800F2DC: .4byte _0800F2E0
- .align 2, 0
-_0800F2E0:
- .4byte _0800F300
- .4byte _0800F340
- .4byte _0800F4DE
- .4byte _0800F504
- .4byte _0800F5F8
- .4byte _0800F61C
- .4byte _0800F78C
- .4byte _0800F7A4
-_0800F300:
- ldr r0, _0800F338 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0800F30A
- b _0800F7E0
-_0800F30A:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F316
- b _0800F7E0
-_0800F316:
- ldr r4, _0800F33C @ =0x02000000
- movs r0, 0x1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- bl sub_800E9EC
- bl sub_800EAAC
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x20
- bl SendBlock
- b _0800F770
- .align 2, 0
-_0800F338: .4byte gReceivedRemoteLinkPlayers
-_0800F33C: .4byte 0x02000000
-_0800F340:
- bl GetBlockRecievedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _0800F34E
- b _0800F7E0
-_0800F34E:
- bl ResetBlockReceivedFlags
- movs r4, 0
- ldr r0, _0800F36C @ =gBlockRecvBuffer
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- cmp r1, r0
- bne _0800F380
- cmp r6, 0
- bne _0800F374
- ldr r0, _0800F370 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800F37A
- .align 2, 0
-_0800F36C: .4byte gBlockRecvBuffer
-_0800F370: .4byte gUnknown_020239F8
-_0800F374:
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800F37A:
- orrs r1, r2
- strh r1, [r0]
- adds r4, 0x1
-_0800F380:
- cmp r4, 0
- bne _0800F41C
- movs r2, 0
- ldr r1, _0800F3B4 @ =gBlockRecvBuffer
- adds r5, r1, 0
- movs r3, 0x80
- lsls r3, 1
-_0800F38E:
- adds r1, r3
- adds r2, 0x1
- cmp r2, 0x3
- bgt _0800F39E
- ldrh r0, [r5]
- ldrh r7, [r1]
- cmp r0, r7
- beq _0800F38E
-_0800F39E:
- cmp r2, 0x4
- bne _0800F3C4
- cmp r6, 0
- bne _0800F3B8
- ldr r0, _0800F3B0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0xC
- b _0800F3BE
- .align 2, 0
-_0800F3B0: .4byte gUnknown_020239F8
-_0800F3B4: .4byte gBlockRecvBuffer
-_0800F3B8:
- ldr r0, _0800F408 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x8
-_0800F3BE:
- orrs r1, r2
- strh r1, [r0]
- adds r4, 0x1
-_0800F3C4:
- cmp r4, 0
- bne _0800F41C
- ldr r0, _0800F40C @ =gBlockRecvBuffer
- ldrh r2, [r0]
- ldr r1, _0800F410 @ =0x00000101
- adds r3, r0, 0
- ldr r5, _0800F408 @ =gUnknown_020239F8
- cmp r2, r1
- beq _0800F3F6
-_0800F3D6:
- lsls r0, r4, 8
- adds r0, r3
- ldrh r0, [r0]
- ldr r1, _0800F410 @ =0x00000101
- cmp r0, r1
- bls _0800F3E6
- cmp r4, r6
- bne _0800F3FE
-_0800F3E6:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0800F3FE
- lsls r0, r4, 8
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r1
- bne _0800F3D6
-_0800F3F6:
- cmp r4, r6
- beq _0800F3D6
- cmp r4, r6
- bge _0800F3D6
-_0800F3FE:
- cmp r4, 0x4
- bne _0800F414
- ldrh r0, [r5]
- movs r1, 0xC
- b _0800F418
- .align 2, 0
-_0800F408: .4byte gUnknown_020239F8
-_0800F40C: .4byte gBlockRecvBuffer
-_0800F410: .4byte 0x00000101
-_0800F414:
- ldrh r0, [r5]
- movs r1, 0x8
-_0800F418:
- orrs r0, r1
- strh r0, [r5]
-_0800F41C:
- bl sub_800EB08
- ldr r0, _0800F474 @ =0x0201d000
- ldr r1, _0800F478 @ =gPlayerParty
- movs r2, 0x96
- lsls r2, 1
- bl memcpy
- ldr r0, _0800F47C @ =sub_800DE30
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0800F480 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- movs r0, 0x87
- lsls r0, 1
- strh r0, [r1, 0xA]
- movs r0, 0x5A
- strh r0, [r1, 0xC]
- strh r2, [r1, 0x12]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
- adds r2, r1, 0
- ldr r0, _0800F484 @ =gBlockRecvBuffer
- adds r3, r0, 0x2
- ldr r6, _0800F488 @ =gLinkPlayers
- movs r5, 0x3F
- movs r7, 0x80
- lsls r7, 1
- movs r4, 0x3
-_0800F464:
- ldrh r0, [r6, 0x18]
- cmp r0, 0x1
- beq _0800F49E
- cmp r0, 0x1
- bgt _0800F48C
- cmp r0, 0
- beq _0800F496
- b _0800F4C4
- .align 2, 0
-_0800F474: .4byte 0x0201d000
-_0800F478: .4byte gPlayerParty
-_0800F47C: .4byte sub_800DE30
-_0800F480: .4byte gTasks
-_0800F484: .4byte gBlockRecvBuffer
-_0800F488: .4byte gLinkPlayers
-_0800F48C:
- cmp r0, 0x2
- beq _0800F4A6
- cmp r0, 0x3
- beq _0800F4B6
- b _0800F4C4
-_0800F496:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- b _0800F4AE
-_0800F49E:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- b _0800F4BE
-_0800F4A6:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 6
-_0800F4AE:
- ldrh r0, [r2, 0xE]
- orrs r1, r0
- strh r1, [r2, 0xE]
- b _0800F4C4
-_0800F4B6:
- ldrh r0, [r3]
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 6
-_0800F4BE:
- ldrh r0, [r2, 0x10]
- orrs r1, r0
- strh r1, [r2, 0x10]
-_0800F4C4:
- adds r3, r7
- adds r6, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _0800F464
- bl ZeroPlayerPartyMons
- bl ZeroEnemyPartyMons
- ldr r1, _0800F4FC @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0800F4DE:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F4EA
- b _0800F7E0
-_0800F4EA:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800F500 @ =0x0201d000
- movs r2, 0xC8
- bl SendBlock
- b _0800F770
- .align 2, 0
-_0800F4FC: .4byte gUnknown_02024D1E
-_0800F500: .4byte 0x0201d000
-_0800F504:
- bl GetBlockRecievedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _0800F512
- b _0800F7E0
-_0800F512:
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- mov r8, r0
- ldr r5, _0800F53C @ =gBlockRecvBuffer
- movs r7, 0
-_0800F524:
- cmp r4, r6
- bne _0800F558
- ldr r0, _0800F540 @ =gLinkPlayers
- adds r0, r7, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _0800F544
- cmp r0, 0x1
- bge _0800F550
- cmp r0, 0
- beq _0800F548
- b _0800F5E2
- .align 2, 0
-_0800F53C: .4byte gBlockRecvBuffer
-_0800F540: .4byte gLinkPlayers
-_0800F544:
- cmp r0, 0x3
- bne _0800F5E2
-_0800F548:
- ldr r0, _0800F54C @ =gPlayerParty
- b _0800F5C8
- .align 2, 0
-_0800F54C: .4byte gPlayerParty
-_0800F550:
- ldr r0, _0800F554 @ =gUnknown_0300448C
- b _0800F5C8
- .align 2, 0
-_0800F554: .4byte gUnknown_0300448C
-_0800F558:
- ldr r2, _0800F578 @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0800F57C
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F58A
- b _0800F5B0
- .align 2, 0
-_0800F578: .4byte gLinkPlayers
-_0800F57C:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F5B0
-_0800F58A:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F59C
- cmp r2, 0x1
- bge _0800F5A8
- cmp r2, 0
- beq _0800F5A0
- b _0800F5E2
-_0800F59C:
- cmp r2, 0x3
- bne _0800F5E2
-_0800F5A0:
- ldr r0, _0800F5A4 @ =gPlayerParty
- b _0800F5C8
- .align 2, 0
-_0800F5A4: .4byte gPlayerParty
-_0800F5A8:
- ldr r0, _0800F5AC @ =gUnknown_0300448C
- b _0800F5C8
- .align 2, 0
-_0800F5AC: .4byte gUnknown_0300448C
-_0800F5B0:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F5C2
- cmp r2, 0x1
- bge _0800F5D8
- cmp r2, 0
- beq _0800F5C6
- b _0800F5E2
-_0800F5C2:
- cmp r2, 0x3
- bne _0800F5E2
-_0800F5C6:
- ldr r0, _0800F5D4 @ =gEnemyParty
-_0800F5C8:
- adds r1, r5, 0
- movs r2, 0xC8
- bl memcpy
- b _0800F5E2
- .align 2, 0
-_0800F5D4: .4byte gEnemyParty
-_0800F5D8:
- ldr r0, _0800F5F4 @ =gUnknown_030046EC
- adds r1, r5, 0
- movs r2, 0xC8
- bl memcpy
-_0800F5E2:
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _0800F524
- b _0800F770
- .align 2, 0
-_0800F5F4: .4byte gUnknown_030046EC
-_0800F5F8:
- bl sub_8007ECC
- lsls r0, 24
- cmp r0, 0
- bne _0800F604
- b _0800F7E0
-_0800F604:
- bl bitmask_all_link_players_but_self
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0800F618 @ =0x0201d0c8
- movs r2, 0x64
- bl SendBlock
- b _0800F770
- .align 2, 0
-_0800F618: .4byte 0x0201d0c8
-_0800F61C:
- bl GetBlockRecievedStatus
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0xF
- beq _0800F62A
- b _0800F7E0
-_0800F62A:
- bl ResetBlockReceivedFlags
- movs r4, 0
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- mov r8, r0
- ldr r5, _0800F654 @ =gBlockRecvBuffer
- movs r7, 0
-_0800F63C:
- cmp r4, r6
- bne _0800F670
- ldr r0, _0800F658 @ =gLinkPlayers
- adds r0, r7, r0
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bgt _0800F65C
- cmp r0, 0x1
- bge _0800F668
- cmp r0, 0
- beq _0800F660
- b _0800F6FA
- .align 2, 0
-_0800F654: .4byte gBlockRecvBuffer
-_0800F658: .4byte gLinkPlayers
-_0800F65C:
- cmp r0, 0x3
- bne _0800F6FA
-_0800F660:
- ldr r0, _0800F664 @ =gUnknown_03004428
- b _0800F6E0
- .align 2, 0
-_0800F664: .4byte gUnknown_03004428
-_0800F668:
- ldr r0, _0800F66C @ =gUnknown_03004554
- b _0800F6E0
- .align 2, 0
-_0800F66C: .4byte gUnknown_03004554
-_0800F670:
- ldr r2, _0800F690 @ =gLinkPlayers
- adds r0, r7, r2
- ldrh r1, [r0, 0x18]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0800F694
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F6A2
- b _0800F6C8
- .align 2, 0
-_0800F690: .4byte gLinkPlayers
-_0800F694:
- mov r1, r8
- adds r0, r1, r2
- ldrh r1, [r0, 0x18]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0800F6C8
-_0800F6A2:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F6B4
- cmp r2, 0x1
- bge _0800F6C0
- cmp r2, 0
- beq _0800F6B8
- b _0800F6FA
-_0800F6B4:
- cmp r2, 0x3
- bne _0800F6FA
-_0800F6B8:
- ldr r0, _0800F6BC @ =gUnknown_03004428
- b _0800F6E0
- .align 2, 0
-_0800F6BC: .4byte gUnknown_03004428
-_0800F6C0:
- ldr r0, _0800F6C4 @ =gUnknown_03004554
- b _0800F6E0
- .align 2, 0
-_0800F6C4: .4byte gUnknown_03004554
-_0800F6C8:
- adds r0, r7, r2
- ldrh r2, [r0, 0x18]
- cmp r2, 0x2
- bgt _0800F6DA
- cmp r2, 0x1
- bge _0800F6F0
- cmp r2, 0
- beq _0800F6DE
- b _0800F6FA
-_0800F6DA:
- cmp r2, 0x3
- bne _0800F6FA
-_0800F6DE:
- ldr r0, _0800F6EC @ =gUnknown_03004688
-_0800F6E0:
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- b _0800F6FA
- .align 2, 0
-_0800F6EC: .4byte gUnknown_03004688
-_0800F6F0:
- ldr r0, _0800F77C @ =gUnknown_030047B4
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
-_0800F6FA:
- movs r0, 0x80
- lsls r0, 1
- adds r5, r0
- adds r7, 0x1C
- adds r4, 0x1
- cmp r4, 0x3
- ble _0800F63C
- ldr r4, _0800F780 @ =gPlayerParty
- adds r0, r4, 0
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0x64
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0xC8
- bl shedinja_something
- movs r1, 0x96
- lsls r1, 1
- adds r0, r4, r1
- bl shedinja_something
- movs r7, 0xC8
- lsls r7, 1
- adds r0, r4, r7
- bl shedinja_something
- movs r1, 0xFA
- lsls r1, 1
- adds r0, r4, r1
- bl shedinja_something
- ldr r4, _0800F784 @ =gEnemyParty
- adds r0, r4, 0
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0x64
- bl shedinja_something
- adds r0, r4, 0
- adds r0, 0xC8
- bl shedinja_something
- subs r7, 0x64
- adds r0, r4, r7
- bl shedinja_something
- movs r1, 0xC8
- lsls r1, 1
- adds r0, r4, r1
- bl shedinja_something
- adds r7, 0xC8
- adds r0, r4, r7
- bl shedinja_something
-_0800F770:
- ldr r1, _0800F788 @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0800F7E0
- .align 2, 0
-_0800F77C: .4byte gUnknown_030047B4
-_0800F780: .4byte gPlayerParty
-_0800F784: .4byte gEnemyParty
-_0800F788: .4byte gUnknown_02024D1E
-_0800F78C:
- bl sub_800B950
- ldr r0, _0800F7A0 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- strb r2, [r0, 0x2]
- b _0800F7E0
- .align 2, 0
-_0800F7A0: .4byte gUnknown_02024D1E
-_0800F7A4:
- ldr r0, _0800F7EC @ =gUnknown_02024D1F
- adds r1, r0, 0x1
- bl battle_load_something
- lsls r0, 24
- cmp r0, 0
- beq _0800F7E0
- ldr r2, _0800F7F0 @ =gUnknown_030042D0
- ldr r1, _0800F7F4 @ =gMain
- ldr r0, [r1]
- str r0, [r2]
- ldr r0, _0800F7F8 @ =sub_8010824
- str r0, [r1]
- ldr r0, _0800F7FC @ =sub_800F808
- bl SetMainCallback2
- ldr r3, _0800F800 @ =gUnknown_020239F8
- ldrh r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0800F7E0
- ldr r1, _0800F804 @ =gTrainerBattleOpponent
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- strh r0, [r1]
- movs r0, 0x20
- orrs r0, r2
- strh r0, [r3]
-_0800F7E0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F7EC: .4byte gUnknown_02024D1F
-_0800F7F0: .4byte gUnknown_030042D0
-_0800F7F4: .4byte gMain
-_0800F7F8: .4byte sub_8010824
-_0800F7FC: .4byte sub_800F808
-_0800F800: .4byte gUnknown_020239F8
-_0800F804: .4byte gTrainerBattleOpponent
- thumb_func_end sub_800F298
-
- thumb_func_start sub_800F808
-sub_800F808: @ 800F808
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0800F824 @ =gUnknown_03004210
- bl sub_800374C
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- .align 2, 0
-_0800F824: .4byte gUnknown_03004210
- thumb_func_end sub_800F808
-
- thumb_func_start sub_800F828
-sub_800F828: @ 800F828
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r1, _0800F834 @ =sub_800F838
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0800F834: .4byte sub_800F838
- thumb_func_end sub_800F828
-
- thumb_func_start sub_800F838
-sub_800F838: @ 800F838
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r5, _0800F850 @ =0x02000000
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _0800F86C
- cmp r1, 0x1
- bgt _0800F854
- cmp r1, 0
- beq _0800F85A
- b _0800F8DC
- .align 2, 0
-_0800F850: .4byte 0x02000000
-_0800F854:
- cmp r1, 0x2
- beq _0800F8C8
- b _0800F8DC
-_0800F85A:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- strh r1, [r3, 0x30]
- ldr r0, _0800F8C4 @ =0x00000281
- strh r0, [r3, 0x32]
- strh r1, [r3, 0x34]
- movs r0, 0x1
- strh r0, [r3, 0x36]
-_0800F86C:
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _0800F8DC
- movs r0, 0x2
- strh r0, [r3, 0x36]
- movs r4, 0x30
- ldrsh r2, [r3, r4]
- movs r0, 0x34
- ldrsh r1, [r3, r0]
- lsls r1, 5
- adds r2, r1
- movs r4, 0x32
- ldrsh r0, [r3, r4]
- subs r0, r1
- movs r4, 0x3D
- lsls r0, 1
- adds r0, r5
- lsls r2, 1
- adds r2, r5
- movs r1, 0x1C
-_0800F89A:
- strh r4, [r2]
- strh r4, [r0]
- adds r0, 0x4
- adds r2, 0x4
- subs r1, 0x2
- cmp r1, 0
- bge _0800F89A
- ldrh r0, [r3, 0x34]
- adds r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _0800F8DC
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- movs r0, 0x20
- strh r0, [r3, 0x30]
- b _0800F8DC
- .align 2, 0
-_0800F8C4: .4byte 0x00000281
-_0800F8C8:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- bne _0800F8DC
- ldr r0, _0800F8E4 @ =sub_800E7C4
- bl SetMainCallback2
-_0800F8DC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800F8E4: .4byte sub_800E7C4
- thumb_func_end sub_800F838
-
- thumb_func_start sub_800F8E8
-sub_800F8E8: @ 800F8E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x10]
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp, 0x14]
- movs r0, 0
- mov r9, r0
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0800F90C
- movs r0, 0
- b _0800FCB4
-_0800F90C:
- ldr r0, _0800F93C @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0800F940 @ =0x00000908
- ands r0, r1
- ldr r1, [sp, 0x14]
- lsls r1, 2
- str r1, [sp, 0x20]
- cmp r0, 0x8
- beq _0800F920
- b _0800FCA4
-_0800F920:
- bl ZeroEnemyPartyMons
- movs r2, 0
- str r2, [sp, 0x18]
- ldr r2, _0800F944 @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
- ldr r4, [sp, 0x18]
- b _0800FC86
- .align 2, 0
-_0800F93C: .4byte gUnknown_020239F8
-_0800F940: .4byte 0x00000908
-_0800F944: .4byte gTrainers
-_0800F948:
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrb r0, [r1, 0x18]
- cmp r0, 0x1
- bne _0800F95C
- movs r4, 0x80
- mov r10, r4
- b _0800F96E
-_0800F95C:
- ldrb r1, [r1, 0x2]
- movs r0, 0x80
- ands r0, r1
- movs r1, 0x88
- mov r10, r1
- cmp r0, 0
- beq _0800F96E
- movs r2, 0x78
- mov r10, r2
-_0800F96E:
- movs r6, 0
- ldr r0, _0800F9C4 @ =gTrainers
- ldr r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r1, r2, r3
- lsls r1, 3
- adds r3, r0, 0x4
- adds r1, r3
- ldrb r1, [r1]
- adds r4, r0, 0
- ldr r0, [sp, 0x18]
- adds r0, 0x1
- str r0, [sp, 0x1C]
- cmp r1, 0xFF
- beq _0800F9A6
-_0800F98C:
- ldr r0, [sp, 0x14]
- adds r1, r2, r0
- lsls r1, 3
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800F98C
-_0800F9A6:
- adds r2, r4, 0
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r1, r0, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0800FA5C
- cmp r0, 0x1
- bgt _0800F9C8
- cmp r0, 0
- beq _0800F9D6
- b _0800FC74
- .align 2, 0
-_0800F9C4: .4byte gTrainers
-_0800F9C8:
- cmp r0, 0x2
- bne _0800F9CE
- b _0800FB1C
-_0800F9CE:
- cmp r0, 0x3
- bne _0800F9D4
- b _0800FBB0
-_0800F9D4:
- b _0800FC74
-_0800F9D6:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FA58 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _0800FA18
- adds r3, r1, 0
- movs r7, 0xB
-_0800F9FC:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800F9FC
-_0800FA18:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r4, r5, r4
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r1, 0x64
- adds r0, r3, 0
- muls r0, r1
- ldr r2, [sp, 0x10]
- adds r0, r2, r0
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r3, 0x1
- str r3, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r3, 0x2
- str r3, [sp, 0x8]
- movs r3, 0
- str r3, [sp, 0xC]
- adds r3, r6, 0
- bl CreateMon
- b _0800FC74
- .align 2, 0
-_0800FA58: .4byte gSpeciesNames
-_0800FA5C:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FB14 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _0800FA9E
- adds r3, r1, 0
- movs r4, 0xB
-_0800FA82:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800FA82
-_0800FA9E:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r4, r3, r7
- ldrh r1, [r4]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r5, r0, 0
- muls r5, r1
- ldr r2, [sp, 0x10]
- adds r5, r2, r5
- ldrh r1, [r4, 0x4]
- ldrb r2, [r4, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r3, r6, 0
- bl CreateMon
- movs r6, 0
- mov r0, r8
- adds r0, 0x6
- adds r4, r7, r0
-_0800FAE8:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0800FB18 @ =gBattleMoves + 0x4 @ PP offset
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0800FAE8
- b _0800FC74
- .align 2, 0
-_0800FB14: .4byte gSpeciesNames
-_0800FB18: .4byte gBattleMoves + 0x4 @ PP offset
-_0800FB1C:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r4, [r0]
- movs r6, 0
- ldr r0, [sp, 0x18]
- lsls r2, r0, 3
- adds r0, r2, r4
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FBAC @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, 0xFF
- beq _0800FB5E
- adds r3, r1, 0
- movs r7, 0xB
-_0800FB42:
- adds r0, r2, r4
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r7
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800FB42
-_0800FB5E:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- adds r5, r4
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x18]
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r1, [sp, 0x10]
- adds r4, r1, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- b _0800FC74
- .align 2, 0
-_0800FBAC: .4byte gSpeciesNames
-_0800FBB0:
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldr r7, [r0]
- movs r6, 0
- ldr r4, [sp, 0x18]
- lsls r2, r4, 4
- adds r0, r2, r7
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r0, r1
- ldr r1, _0800FCC4 @ =gSpeciesNames
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r2
- cmp r0, 0xFF
- beq _0800FBF2
- adds r3, r1, 0
- movs r4, 0xB
-_0800FBD6:
- adds r0, r2, r7
- ldrh r0, [r0, 0x4]
- adds r1, r0, 0
- muls r1, r4
- adds r0, r6, r1
- adds r0, r3
- ldrb r0, [r0]
- add r9, r0
- adds r6, 0x1
- adds r1, r6, r1
- adds r1, r3
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0800FBD6
-_0800FBF2:
- mov r2, r9
- lsls r0, r2, 8
- add r10, r0
- mov r3, r8
- adds r5, r3, r7
- ldrh r1, [r5]
- lsls r0, r1, 5
- subs r0, r1
- movs r1, 0xFF
- bl __divsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, [sp, 0x18]
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r2, [sp, 0x10]
- adds r4, r2, r4
- ldrh r1, [r5, 0x4]
- ldrb r2, [r5, 0x2]
- movs r0, 0x1
- str r0, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- movs r0, 0x2
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- adds r0, r4, 0
- adds r3, r6, 0
- bl CreateMon
- adds r5, 0x6
- adds r0, r4, 0
- movs r1, 0xC
- adds r2, r5, 0
- bl SetMonData
- movs r6, 0
- adds r5, r4, 0
- mov r0, r8
- adds r0, 0x8
- adds r4, r7, r0
-_0800FC4A:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r5, 0
- adds r2, r4, 0
- bl SetMonData
- adds r1, r6, 0
- adds r1, 0x11
- ldrh r0, [r4]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- ldr r0, _0800FCC8 @ =gBattleMoves + 0x4 @ PP offset
- adds r2, r0
- adds r0, r5, 0
- bl SetMonData
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0800FC4A
-_0800FC74:
- ldr r4, [sp, 0x1C]
- str r4, [sp, 0x18]
- ldr r2, _0800FCCC @ =gTrainers
- ldr r1, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r1, r3
- lsls r0, 3
- adds r0, r2
- adds r0, 0x20
-_0800FC86:
- ldrb r0, [r0]
- cmp r4, r0
- bge _0800FC8E
- b _0800F948
-_0800FC8E:
- ldr r2, _0800FCD0 @ =gUnknown_020239F8
- ldr r1, _0800FCCC @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r3, [sp, 0x14]
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x18]
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
-_0800FCA4:
- ldr r0, _0800FCCC @ =gTrainers
- ldr r4, [sp, 0x20]
- ldr r2, [sp, 0x14]
- adds r1, r4, r2
- lsls r1, 3
- adds r1, r0
- adds r1, 0x20
- ldrb r0, [r1]
-_0800FCB4:
- add sp, 0x24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0800FCC4: .4byte gSpeciesNames
-_0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset
-_0800FCCC: .4byte gTrainers
-_0800FCD0: .4byte gUnknown_020239F8
- thumb_func_end sub_800F8E8
-
- thumb_func_start sub_800FCD4
-sub_800FCD4: @ 800FCD4
- push {lr}
- ldr r0, _0800FCF4 @ =REG_VCOUNT
- ldrh r0, [r0]
- subs r0, 0x6F
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x30
- bhi _0800FCEE
- ldr r1, _0800FCF8 @ =REG_BG0CNT
- movs r2, 0x98
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
-_0800FCEE:
- pop {r0}
- bx r0
- .align 2, 0
-_0800FCF4: .4byte REG_VCOUNT
-_0800FCF8: .4byte REG_BG0CNT
- thumb_func_end sub_800FCD4
-
- thumb_func_start sub_800FCFC
-sub_800FCFC: @ 800FCFC
- push {lr}
- bl Random
- ldr r1, _0800FD78 @ =REG_BG0HOFS
- ldr r0, _0800FD7C @ =gUnknown_030042A4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD80 @ =gUnknown_030042A0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD84 @ =gUnknown_030042C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD88 @ =gUnknown_030041B4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD8C @ =gUnknown_03004288
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD90 @ =gUnknown_03004280
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD94 @ =gUnknown_030041B0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0800FD98 @ =gUnknown_030041B8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x22
- ldr r0, _0800FD9C @ =gUnknown_030042C4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _0800FDA0 @ =gUnknown_03004240
- ldrh r0, [r0]
- strh r0, [r1]
- subs r1, 0x2
- ldr r0, _0800FDA4 @ =gUnknown_03004200
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _0800FDA8 @ =gUnknown_03004244
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_0800FD78: .4byte REG_BG0HOFS
-_0800FD7C: .4byte gUnknown_030042A4
-_0800FD80: .4byte gUnknown_030042A0
-_0800FD84: .4byte gUnknown_030042C0
-_0800FD88: .4byte gUnknown_030041B4
-_0800FD8C: .4byte gUnknown_03004288
-_0800FD90: .4byte gUnknown_03004280
-_0800FD94: .4byte gUnknown_030041B0
-_0800FD98: .4byte gUnknown_030041B8
-_0800FD9C: .4byte gUnknown_030042C4
-_0800FDA0: .4byte gUnknown_03004240
-_0800FDA4: .4byte gUnknown_03004200
-_0800FDA8: .4byte gUnknown_03004244
- thumb_func_end sub_800FCFC
-
- thumb_func_start nullsub_36
-nullsub_36: @ 800FDAC
- bx lr
- thumb_func_end nullsub_36
-
- thumb_func_start sub_800FDB0
-sub_800FDB0: @ 800FDB0
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0800FDD0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- lsrs r0, 8
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x20]
- b _0800FDE2
-_0800FDD0:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- movs r1, 0xFF
- lsls r1, 8
- ands r0, r1
- asrs r0, 8
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x20]
-_0800FDE2:
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r1, 0
- ldrh r1, [r5, 0x32]
- adds r0, r1
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0800FE16
- ldr r4, _0800FE1C @ =0x00002710
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl FreeSpriteOamMatrix
- adds r0, r5, 0
- bl DestroySprite
-_0800FE16:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FE1C: .4byte 0x00002710
- thumb_func_end sub_800FDB0
-
- thumb_func_start sub_800FE20
-sub_800FE20: @ 800FE20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _0800FE3C @ =sub_800FDB0
- str r0, [r4, 0x1C]
- movs r0, 0x68
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0800FE3C: .4byte sub_800FDB0
- thumb_func_end sub_800FE20
-
- thumb_func_start sub_800FE40
-sub_800FE40: @ 800FE40
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- ldr r0, _0800FE88 @ =0x02000000
- ldr r2, _0800FE8C @ =0x000160cb
- adds r0, r2
- ldrb r2, [r0]
- ldr r0, _0800FE90 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800FEB4
- ldr r1, _0800FE94 @ =gLinkPlayers
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x1
- beq _0800FEA0
- cmp r0, 0x1
- bgt _0800FE98
- cmp r0, 0
- beq _0800FEB4
- b _0800FEBC
- .align 2, 0
-_0800FE88: .4byte 0x02000000
-_0800FE8C: .4byte 0x000160cb
-_0800FE90: .4byte gUnknown_020239F8
-_0800FE94: .4byte gLinkPlayers
-_0800FE98:
- cmp r0, 0x2
- beq _0800FEB4
- cmp r0, 0x3
- bne _0800FEBC
-_0800FEA0:
- ldr r1, _0800FEAC @ =gEnemyParty
- str r1, [sp, 0x4]
- ldr r2, _0800FEB0 @ =gPlayerParty
- str r2, [sp, 0x8]
- b _0800FEBC
- .align 2, 0
-_0800FEAC: .4byte gEnemyParty
-_0800FEB0: .4byte gPlayerParty
-_0800FEB4:
- ldr r3, _08010008 @ =gPlayerParty
- str r3, [sp, 0x4]
- ldr r0, _0801000C @ =gEnemyParty
- str r0, [sp, 0x8]
-_0800FEBC:
- movs r7, 0
- movs r1, 0
- mov r8, r1
- ldr r2, [sp]
- lsls r2, 2
- str r2, [sp, 0xC]
- movs r3, 0xCE
- lsls r3, 1
- mov r10, r3
- mov r9, r1
-_0800FED0:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r0, [sp, 0x4]
- adds r4, r0, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0800FF40
- cmp r5, r10
- beq _0800FF14
- cmp r6, 0
- beq _0800FF14
- cmp r1, 0
- bne _0800FF14
- movs r0, 0x1
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_0800FF14:
- cmp r5, 0
- beq _0800FF40
- cmp r6, 0
- beq _0800FF2C
- cmp r5, r10
- beq _0800FF24
- cmp r1, 0
- beq _0800FF2C
-_0800FF24:
- movs r0, 0x2
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_0800FF2C:
- cmp r5, 0
- beq _0800FF40
- cmp r5, r10
- beq _0800FF40
- cmp r6, 0
- bne _0800FF40
- movs r0, 0x3
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_0800FF40:
- movs r2, 0x2
- add r9, r2
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x5
- ble _0800FED0
- ldr r1, _08010010 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0xE]
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
- mov r9, r0
-_0800FF6A:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- ldr r2, [sp, 0x8]
- adds r4, r2, r4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- adds r1, r0, 0
- cmp r5, 0
- beq _0800FFDA
- cmp r5, r10
- beq _0800FFAE
- cmp r6, 0
- beq _0800FFAE
- cmp r1, 0
- bne _0800FFAE
- movs r0, 0x1
- mov r3, r9
- lsls r0, r3
- orrs r7, r0
-_0800FFAE:
- cmp r5, 0
- beq _0800FFDA
- cmp r6, 0
- beq _0800FFC6
- cmp r5, r10
- beq _0800FFBE
- cmp r1, 0
- beq _0800FFC6
-_0800FFBE:
- movs r0, 0x2
- mov r1, r9
- lsls r0, r1
- orrs r7, r0
-_0800FFC6:
- cmp r5, 0
- beq _0800FFDA
- cmp r5, r10
- beq _0800FFDA
- cmp r6, 0
- bne _0800FFDA
- movs r0, 0x3
- mov r2, r9
- lsls r0, r2
- orrs r7, r0
-_0800FFDA:
- movs r3, 0x2
- add r9, r3
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _0800FF6A
- ldr r1, _08010010 @ =gTasks
- ldr r2, [sp, 0xC]
- ldr r3, [sp]
- adds r0, r2, r3
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x10]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010008: .4byte gPlayerParty
-_0801000C: .4byte gEnemyParty
-_08010010: .4byte gTasks
- thumb_func_end sub_800FE40
-
- thumb_func_start c2_8011A1C
-c2_8011A1C: @ 8010014
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r4, 0
- str r4, [sp]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08010144 @ =0x05006000
- mov r0, sp
- bl CpuSet
- ldr r0, _08010148 @ =REG_MOSAIC
- strh r4, [r0]
- subs r0, 0xC
- movs r2, 0xF0
- strh r2, [r0]
- adds r0, 0x4
- ldr r3, _0801014C @ =0x00005051
- adds r1, r3, 0
- strh r1, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r0, _08010150 @ =gUnknown_030042C4
- strh r2, [r0]
- ldr r0, _08010154 @ =gUnknown_03004240
- strh r1, [r0]
- bl dp12_8087EA4
- ldr r0, _08010158 @ =gUnknown_03004DE0
- movs r3, 0xF0
- movs r4, 0xF0
- lsls r4, 3
- adds r2, r0, r4
- movs r1, 0x4F
-_08010066:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _08010066
- movs r1, 0x50
- ldr r5, _0801015C @ =gWindowConfig_81E6C58
- ldr r0, _08010158 @ =gUnknown_03004DE0
- ldr r3, _08010160 @ =0x0000ff10
- movs r4, 0x82
- lsls r4, 4
- adds r2, r0, r4
- adds r0, 0xA0
-_08010084:
- strh r3, [r0]
- strh r3, [r2]
- adds r2, 0x2
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x9F
- ble _08010084
- adds r0, r5, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _08010164 @ =gUnknown_030042A4
- movs r4, 0
- strh r4, [r0]
- ldr r0, _08010168 @ =gUnknown_030042A0
- strh r4, [r0]
- ldr r0, _0801016C @ =gUnknown_030042C0
- strh r4, [r0]
- ldr r0, _08010170 @ =gUnknown_030041B4
- strh r4, [r0]
- ldr r0, _08010174 @ =gUnknown_03004288
- strh r4, [r0]
- ldr r0, _08010178 @ =gUnknown_03004280
- strh r4, [r0]
- ldr r0, _0801017C @ =gUnknown_030041B0
- strh r4, [r0]
- ldr r0, _08010180 @ =gUnknown_030041B8
- strh r4, [r0]
- ldr r0, _08010184 @ =gUnknown_03004210
- adds r1, r5, 0
- bl InitWindowFromConfig
- ldr r0, _08010188 @ =gUnknown_030041D0
- ldr r1, _0801018C @ =gWindowConfig_81E71D0
- bl InitWindowFromConfig
- ldr r0, _08010190 @ =gUnknown_03004250
- ldr r1, _08010194 @ =gWindowConfig_81E71EC
- bl InitWindowFromConfig
- bl sub_800D6D4
- ldr r0, _08010198 @ =gUnknown_08D004E0
- movs r1, 0
- movs r2, 0x40
- bl LoadCompressedPalette
- bl sub_800D74C
- bl ResetSpriteData
- bl ResetTasks
- bl sub_800E23C
- ldr r1, _0801019C @ =REG_WINOUT
- movs r0, 0x37
- strh r0, [r1]
- bl FreeAllSpritePalettes
- ldr r1, _080101A0 @ =gReservedSpritePaletteCount
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _080101A4 @ =sub_800FCFC
- bl SetVBlankCallback
- ldr r0, _080101A8 @ =sub_800DE30
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080101AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x87
- lsls r2, 1
- strh r2, [r1, 0xA]
- movs r2, 0x5A
- strh r2, [r1, 0xC]
- movs r2, 0x1
- strh r2, [r1, 0x12]
- bl sub_800FE40
- ldr r0, _080101B0 @ =sub_80101B8
- bl SetMainCallback2
- ldr r0, _080101B4 @ =gUnknown_02024D1E
- strb r4, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08010144: .4byte 0x05006000
-_08010148: .4byte REG_MOSAIC
-_0801014C: .4byte 0x00005051
-_08010150: .4byte gUnknown_030042C4
-_08010154: .4byte gUnknown_03004240
-_08010158: .4byte gUnknown_03004DE0
-_0801015C: .4byte gWindowConfig_81E6C58
-_08010160: .4byte 0x0000ff10
-_08010164: .4byte gUnknown_030042A4
-_08010168: .4byte gUnknown_030042A0
-_0801016C: .4byte gUnknown_030042C0
-_08010170: .4byte gUnknown_030041B4
-_08010174: .4byte gUnknown_03004288
-_08010178: .4byte gUnknown_03004280
-_0801017C: .4byte gUnknown_030041B0
-_08010180: .4byte gUnknown_030041B8
-_08010184: .4byte gUnknown_03004210
-_08010188: .4byte gUnknown_030041D0
-_0801018C: .4byte gWindowConfig_81E71D0
-_08010190: .4byte gUnknown_03004250
-_08010194: .4byte gWindowConfig_81E71EC
-_08010198: .4byte gUnknown_08D004E0
-_0801019C: .4byte REG_WINOUT
-_080101A0: .4byte gReservedSpritePaletteCount
-_080101A4: .4byte sub_800FCFC
-_080101A8: .4byte sub_800DE30
-_080101AC: .4byte gTasks
-_080101B0: .4byte sub_80101B8
-_080101B4: .4byte gUnknown_02024D1E
- thumb_func_end c2_8011A1C
-
- thumb_func_start sub_80101B8
-sub_80101B8: @ 80101B8
- push {lr}
- bl c2_081284E0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_80101B8
-
- thumb_func_start c2_081284E0
-c2_081284E0: @ 80101D4
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080101EC @ =gUnknown_02024D1E
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _080101FC
- cmp r0, 0x1
- bgt _080101F0
- cmp r0, 0
- beq _080101F6
- b _08010236
- .align 2, 0
-_080101EC: .4byte gUnknown_02024D1E
-_080101F0:
- cmp r0, 0x2
- beq _08010222
- b _08010236
-_080101F6:
- movs r0, 0xFF
- strb r0, [r4, 0x1]
- b _0801021A
-_080101FC:
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08010236
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0801021A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08010236
-_08010222:
- ldr r0, _08010240 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08010236
- ldr r0, _08010244 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08010236:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08010240: .4byte gPaletteFade
-_08010244: .4byte gMain
- thumb_func_end c2_081284E0
-
- thumb_func_start oac_poke_opponent
-oac_poke_opponent: @ 8010248
- push {lr}
- sub sp, 0x4
- ldr r1, _08010270 @ =sub_8010278
- str r1, [r0, 0x1C]
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08010274 @ =0x00003def
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xA
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08010270: .4byte sub_8010278
-_08010274: .4byte 0x00003def
- thumb_func_end oac_poke_opponent
-
- thumb_func_start sub_8010278
-sub_8010278: @ 8010278
- push {lr}
- adds r2, r0, 0
- ldr r0, _080102A4 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080102A0
- ldrh r0, [r2, 0x24]
- adds r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080102A0
- ldr r0, _080102A8 @ =sub_80102AC
- str r0, [r2, 0x1C]
- ldrh r0, [r2, 0x32]
- movs r1, 0x19
- bl PlayCry1
-_080102A0:
- pop {r0}
- bx r0
- .align 2, 0
-_080102A4: .4byte gUnknown_02024DE8
-_080102A8: .4byte sub_80102AC
- thumb_func_end sub_8010278
-
- thumb_func_start sub_80102AC
-sub_80102AC: @ 80102AC
- 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
- beq _080102F4
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl sub_804777C
- ldr r1, _080102FC @ =gUnknown_03004340
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r0, _08010300 @ =nullsub_37
- str r0, [r4, 0x1C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- movs r0, 0x80
- lsls r0, 10
- ldr r1, _08010304 @ =0x00003def
- str r1, [sp]
- movs r1, 0
- movs r2, 0xA
- movs r3, 0
- bl BeginNormalPaletteFade
-_080102F4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080102FC: .4byte gUnknown_03004340
-_08010300: .4byte nullsub_37
-_08010304: .4byte 0x00003def
- thumb_func_end sub_80102AC
-
- thumb_func_start nullsub_37
-nullsub_37: @ 8010308
- bx lr
- thumb_func_end nullsub_37
-
- thumb_func_start unref_sub_801030C
-unref_sub_801030C: @ 801030C
- movs r1, 0x6
- strh r1, [r0, 0x34]
- movs r1, 0x1
- strh r1, [r0, 0x36]
- ldr r1, _0801031C @ =sub_8010320
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0801031C: .4byte sub_8010320
- thumb_func_end unref_sub_801030C
-
- thumb_func_start sub_8010320
-sub_8010320: @ 8010320
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08010374
- movs r0, 0x8
- strh r0, [r3, 0x36]
- 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 r4, 0x5
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bne _08010374
- ldrb r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, _0801037C @ =nullsub_37
- str r0, [r3, 0x1C]
- ldr r0, _08010380 @ =gUnknown_03004284
- str r2, [r0]
-_08010374:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801037C: .4byte nullsub_37
-_08010380: .4byte gUnknown_03004284
- thumb_func_end sub_8010320
-
- thumb_func_start sub_8010384
-sub_8010384: @ 8010384
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, r6, 2
- ldr r0, _080103A4 @ =0x02017800
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080103A8
- adds r4, r0, 0
- b _080103AC
- .align 2, 0
-_080103A4: .4byte 0x02017800
-_080103A8:
- mov r0, r9
- ldrh r4, [r0, 0x32]
-_080103AC:
- ldr r1, _08010414 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r5, r0, r1
- ldrh r0, [r5]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r7, _08010418 @ =gEnemyParty
- adds r0, r7
- movs r1, 0
- bl GetMonData
- cmp r4, SPECIES_UNOWN
- bne _08010430
- ldrh r0, [r5]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0
- bl GetMonData
- adds r2, r0, 0
- movs r0, 0xC0
- lsls r0, 18
- ands r0, r2
- lsrs r0, 18
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r2
- lsrs r1, 12
- orrs r0, r1
- movs r1, 0xC0
- lsls r1, 2
- ands r1, r2
- lsrs r1, 6
- orrs r0, r1
- movs r1, 0x3
- ands r1, r2
- orrs r0, r1
- movs r1, 0x1C
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _0801041C
- movs r0, SPECIES_UNOWN
- b _08010426
- .align 2, 0
-_08010414: .4byte gUnknown_02024A6A
-_08010418: .4byte gEnemyParty
-_0801041C:
- movs r1, 0xCE
- lsls r1, 1
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
-_08010426:
- ldr r1, _0801042C @ =gMonFrontPicCoords
- lsls r0, 2
- b _08010468
- .align 2, 0
-_0801042C: .4byte gMonFrontPicCoords
-_08010430:
- ldr r0, _08010448 @ =SPECIES_CASTFORM
- cmp r4, r0 @ Check if pokemon species is Castform
- bne _08010454
- ldr r0, _0801044C @ =gUnknownCastformCoords_0837F598
- ldr r1, _08010450 @ =gUnknown_02024E84
- adds r1, r6, r1
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _0801046C
- .align 2, 0
-_08010448: .4byte SPECIES_CASTFORM
-_0801044C: .4byte gUnknownCastformCoords_0837F598
-_08010450: .4byte gUnknown_02024E84
-_08010454:
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bls _08010464
- ldr r0, _08010460 @ =gMonFrontPicCoords
- b _0801046A
- .align 2, 0
-_08010460: .4byte gMonFrontPicCoords
-_08010464:
- ldr r1, _0801048C @ =gMonFrontPicCoords
- lsls r0, r4, 2
-_08010468:
- adds r0, r1
-_0801046A:
- ldrb r0, [r0, 0x1]
-_0801046C:
- lsrs r1, r0, 3
- movs r0, 0x8
- subs r0, r1
- mov r1, r9
- strh r0, [r1, 0x34]
- movs r0, 0x1
- strh r0, [r1, 0x36]
- ldr r0, _08010490 @ =sub_8010494
- str r0, [r1, 0x1C]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801048C: .4byte gMonFrontPicCoords
-_08010490: .4byte sub_8010494
- thumb_func_end sub_8010384
-
- thumb_func_start sub_8010494
-sub_8010494: @ 8010494
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x36]
- subs r0, 0x1
- strh r0, [r4, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08010510
- movs r0, 0x2
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x26]
- adds r0, 0x8
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- subs r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- cmp r0, 0
- bge _080104C8
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- b _08010510
-_080104C8:
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- ldr r1, _08010518 @ =gUnknown_081FAF4C
- lsls r0, 24
- lsrs r0, 22
- adds r0, r1
- ldr r2, _0801051C @ =gUnknown_02024E84
- movs r3, 0x2E
- ldrsh r1, [r4, r3]
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 11
- ldr r2, [r0]
- adds r2, r1
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- lsls r0, 8
- adds r2, r0
- movs r1, 0
- movs r0, 0xFF
-_080104F6:
- strb r1, [r2]
- adds r2, 0x1
- subs r0, 0x1
- cmp r0, 0
- bge _080104F6
- ldr r0, _0801051C @ =gUnknown_02024E84
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- adds r1, r0
- ldrb r1, [r1]
- adds r0, r4, 0
- bl StartSpriteAnim
-_08010510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08010518: .4byte gUnknown_081FAF4C
-_0801051C: .4byte gUnknown_02024E84
- thumb_func_end sub_8010494
-
- thumb_func_start sub_8010520
-sub_8010520: @ 8010520
- movs r1, 0x8
- strh r1, [r0, 0x34]
- adds r1, r0, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r0, 0x36]
- ldr r1, _08010538 @ =sub_801053C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_08010538: .4byte sub_801053C
- thumb_func_end sub_8010520
-
- thumb_func_start sub_801053C
-sub_801053C: @ 801053C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _0801056E
- 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, 0x8
- strh r0, [r3, 0x34]
-_0801056E:
- pop {r0}
- bx r0
- thumb_func_end sub_801053C
-
- thumb_func_start sub_8010574
-sub_8010574: @ 8010574
- movs r1, 0x3E
- adds r1, r0
- mov r12, r1
- movs r1, 0x1
- ldrh r2, [r0, 0x36]
- ands r2, r1
- lsls r2, 2
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0
- strh r1, [r0, 0x36]
- ldr r1, _0801059C @ =nullsub_37
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0801059C: .4byte nullsub_37
- thumb_func_end sub_8010574
-
- thumb_func_start sub_80105A0
-sub_80105A0: @ 80105A0
- ldr r1, _080105A8 @ =oac_poke_ally_
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080105A8: .4byte oac_poke_ally_
- thumb_func_end sub_80105A0
-
- thumb_func_start oac_poke_ally_
-oac_poke_ally_: @ 80105AC
- push {lr}
- adds r2, r0, 0
- ldr r0, _080105D4 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080105D0
- ldrh r0, [r2, 0x24]
- subs r0, 0x2
- strh r0, [r2, 0x24]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _080105D0
- ldr r0, _080105D8 @ =nullsub_86
- str r0, [r2, 0x1C]
- strh r1, [r2, 0x30]
-_080105D0:
- pop {r0}
- bx r0
- .align 2, 0
-_080105D4: .4byte gUnknown_02024DE8
-_080105D8: .4byte nullsub_86
- thumb_func_end oac_poke_ally_
-
- thumb_func_start sub_80105DC
-sub_80105DC: @ 80105DC
- ldr r1, _080105E4 @ =nullsub_86
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_080105E4: .4byte nullsub_86
- thumb_func_end sub_80105DC
-
- thumb_func_start nullsub_86
-nullsub_86: @ 80105E8
- bx lr
- thumb_func_end nullsub_86
-
- thumb_func_start sub_80105EC
-sub_80105EC: @ 80105EC
- push {lr}
- adds r2, r0, 0
- ldr r0, _08010610 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801060C
- ldrh r0, [r2, 0x30]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x26]
- adds r0, r1
- strh r0, [r2, 0x26]
-_0801060C:
- pop {r0}
- bx r0
- .align 2, 0
-_08010610: .4byte gUnknown_02024DE8
- thumb_func_end sub_80105EC
-
- thumb_func_start dp11b_obj_instanciate
-dp11b_obj_instanciate: @ 8010614
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- cmp r1, 0
- beq _0801064C
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- ldr r1, _08010648 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- b _0801065A
- .align 2, 0
-_08010648: .4byte 0x02017810
-_0801064C:
- lsls r2, r4, 1
- adds r0, r2, r4
- lsls r0, 2
- ldr r1, _08010698 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
-_0801065A:
- ands r0, r1
- adds r6, r2, 0
- cmp r0, 0
- bne _080106FA
- ldr r0, _0801069C @ =objc_dp11b_pingpong
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- cmp r0, 0x1
- bne _080106A8
- ldr r0, _080106A0 @ =gUnknown_03004340
- adds r0, r4, r0
- ldrb r7, [r0]
- adds r0, r6, r4
- lsls r0, 2
- ldr r1, _08010698 @ =0x02017810
- adds r0, r1
- strb r5, [r0, 0x2]
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r2, _080106A4 @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0x80
- b _080106CC
- .align 2, 0
-_08010698: .4byte 0x02017810
-_0801069C: .4byte objc_dp11b_pingpong
-_080106A0: .4byte gUnknown_03004340
-_080106A4: .4byte gSprites
-_080106A8:
- ldr r0, _08010708 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r7, [r0]
- adds r0, r6, r4
- lsls r0, 2
- ldr r1, _0801070C @ =0x02017810
- adds r0, r1
- strb r5, [r0, 0x3]
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r2, _08010710 @ =gSprites
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0xC0
-_080106CC:
- strh r1, [r0, 0x2E]
- adds r4, r2, 0
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r4
- mov r2, r9
- lsls r0, r2, 24
- asrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x30]
- mov r3, r10
- lsls r0, r3, 24
- asrs r0, 24
- strh r0, [r1, 0x32]
- strh r7, [r1, 0x34]
- mov r0, r8
- strh r0, [r1, 0x36]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x24]
- strh r2, [r0, 0x26]
-_080106FA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010708: .4byte gUnknown_02024BE0
-_0801070C: .4byte 0x02017810
-_08010710: .4byte gSprites
- thumb_func_end dp11b_obj_instanciate
-
- thumb_func_start dp11b_obj_free
-dp11b_obj_free: @ 8010714
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- bne _0801075C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08010754 @ =0x02017810
- adds r5, r0, r1
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080107A0
- ldr r2, _08010758 @ =gSprites
- ldrb r1, [r5, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldrb r1, [r5]
- movs r0, 0x3
- negs r0, r0
- b _0801078C
- .align 2, 0
-_08010754: .4byte 0x02017810
-_08010758: .4byte gSprites
-_0801075C:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080107A8 @ =0x02017810
- adds r5, r0, r1
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080107A0
- ldr r2, _080107AC @ =gSprites
- ldrb r1, [r5, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x34]
- lsls r1, 24
- lsrs r4, r1, 24
- bl DestroySprite
- ldrb r1, [r5]
- movs r0, 0x5
- negs r0, r0
-_0801078C:
- ands r0, r1
- strb r0, [r5]
- ldr r0, _080107AC @ =gSprites
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x24]
- strh r0, [r1, 0x26]
-_080107A0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080107A8: .4byte 0x02017810
-_080107AC: .4byte gSprites
- thumb_func_end dp11b_obj_free
-
- thumb_func_start objc_dp11b_pingpong
-objc_dp11b_pingpong: @ 80107B0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _080107C8
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- b _080107CC
-_080107C8:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
-_080107CC:
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Sin
- ldr r2, _080107F8 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r2
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r1, 0x26]
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080107F8: .4byte gSprites
- thumb_func_end objc_dp11b_pingpong
-
- thumb_func_start nullsub_41
-nullsub_41: @ 80107FC
- bx lr
- thumb_func_end nullsub_41
-
- thumb_func_start sub_8010800
-sub_8010800: @ 8010800
- push {lr}
- bl sub_8010874
- ldr r1, _08010818 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x1]
- ldr r1, _0801081C @ =gUnknown_030042D4
- ldr r0, _08010820 @ =bc_8012FAC
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08010818: .4byte gUnknown_02024D1E
-_0801081C: .4byte gUnknown_030042D4
-_08010820: .4byte bc_8012FAC
- thumb_func_end sub_8010800
-
- thumb_func_start sub_8010824
-sub_8010824: @ 8010824
- push {r4,r5,lr}
- ldr r0, _08010864 @ =gUnknown_030042D4
- ldr r0, [r0]
- bl _call_via_r0
- ldr r1, _08010868 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0801086C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801085E
- ldr r5, _08010870 @ =gUnknown_03004330
- adds r4, r1, 0
-_08010840:
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- bl _call_via_r0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0801086C @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08010840
-_0801085E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08010864: .4byte gUnknown_030042D4
-_08010868: .4byte gUnknown_02024A60
-_0801086C: .4byte gUnknown_02024A68
-_08010870: .4byte gUnknown_03004330
- thumb_func_end sub_8010824
-
- thumb_func_start sub_8010874
-sub_8010874: @ 8010874
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- bl sub_801365C
- bl sub_801377C
- movs r2, 0
- movs r3, 0
- ldr r0, _08010AC8 @ =gUnknown_02024C4C
- mov r10, r0
- ldr r1, _08010ACC @ =gUnknown_02024C44
- mov r9, r1
- ldr r4, _08010AD0 @ =gUnknown_02024C3C
- mov r8, r4
- ldr r0, _08010AD4 @ =gUnknown_02024C34
- mov r12, r0
- ldr r4, _08010AD8 @ =gUnknown_02024CA8
- movs r5, 0
- ldr r7, _08010ADC @ =gUnknown_02024C2C
- ldr r6, _08010AE0 @ =gUnknown_02024C54
-_080108A4:
- ldr r0, _08010AE4 @ =gUnknown_02024C98
- adds r0, r5, r0
- str r3, [r0]
- movs r1, 0
-_080108AC:
- adds r0, r4, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0x1B
- bls _080108AC
- movs r0, 0x2
- strb r0, [r4, 0x16]
- ldr r1, _08010AE8 @ =gUnknown_02024C70
- adds r0, r2, r1
- strb r3, [r0]
- mov r0, r12
- strh r3, [r0]
- mov r1, r8
- strh r3, [r1]
- mov r0, r9
- strh r3, [r0]
- mov r1, r10
- strh r3, [r1]
- ldr r0, _08010AEC @ =gUnknown_02024C5C
- adds r1, r2, r0
- movs r0, 0xFF
- strb r0, [r1]
- strh r3, [r6]
- strh r3, [r7]
- ldr r1, _08010AF0 @ =0x02017100
- adds r0, r5, r1
- str r3, [r0]
- movs r0, 0x2
- add r10, r0
- add r9, r0
- add r8, r0
- add r12, r0
- adds r4, 0x1C
- adds r5, 0x4
- adds r7, 0x2
- adds r6, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _080108A4
- movs r5, 0
- ldr r3, _08010AF4 @ =gUnknown_02024C80
- ldr r4, _08010AF8 @ =gUnknown_02024C7A
- movs r2, 0x1
-_08010902:
- strh r5, [r4]
- movs r1, 0
-_08010906:
- adds r0, r3, r1
- strb r5, [r0]
- adds r1, 0x1
- cmp r1, 0xB
- bls _08010906
- adds r3, 0xC
- adds r4, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08010902
- movs r1, 0
- ldr r2, _08010AFC @ =gUnknown_02024C07
- strb r1, [r2]
- ldr r3, _08010B00 @ =gUnknown_02024C08
- strb r1, [r3]
- ldr r4, _08010B04 @ =word_2024DB8
- strh r1, [r4]
- ldr r1, _08010B08 @ =gUnknown_02024DBC
- movs r2, 0
- movs r3, 0
-_0801092E:
- adds r0, r1, r2
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x2B
- bls _0801092E
- movs r0, 0
- ldr r1, _08010B0C @ =gUnknown_02024C6C
- str r0, [r1]
- ldr r2, _08010B10 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0801095C
- ldr r3, _08010B14 @ =gSaveBlock2
- ldrb r1, [r3, 0x15]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801095C
- movs r0, 0x80
- ldr r4, _08010B0C @ =gUnknown_02024C6C
- str r0, [r4]
-_0801095C:
- ldr r1, _08010B14 @ =gSaveBlock2
- ldrb r0, [r1, 0x15]
- lsls r0, 30
- lsrs r0, 31
- ldr r3, _08010B18 @ =0x02000000
- ldr r4, _08010B1C @ =0x00016084
- adds r2, r3, r4
- movs r1, 0
- strb r0, [r2]
- ldr r0, _08010B20 @ =gUnknown_02024C0E
- strb r1, [r0]
- ldr r2, _08010B24 @ =gUnknown_02024D26
- strb r1, [r2]
- ldr r3, _08010B28 @ =gUnknown_02024A64
- str r1, [r3]
- movs r2, 0
- ldr r4, _08010B2C @ =gUnknown_02024D1A
- strh r1, [r4]
- ldr r1, _08010B18 @ =0x02000000
- ldr r3, _08010B30 @ =0x00017130
- adds r0, r1, r3
- strb r2, [r0]
- ldr r4, _08010B34 @ =0x00017160
- adds r0, r1, r4
- strb r2, [r0]
- ldr r1, _08010B38 @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x7
-_08010994:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08010994
- movs r5, 0
- ldr r0, _08010B3C @ =gUnknown_02024D18
- strh r5, [r0]
- movs r0, 0
- ldr r1, _08010B40 @ =gUnknown_02024BEC
- str r0, [r1]
- ldr r2, _08010B44 @ =gUnknown_02024DE8
- strh r0, [r2]
- ldr r4, _08010B18 @ =0x02000000
- ldr r3, _08010B48 @ =0x00016002
- adds r0, r4, r3
- strb r5, [r0]
- ldr r1, _08010B4C @ =0x000160a1
- adds r0, r4, r1
- strb r5, [r0]
- ldr r2, _08010B50 @ =gUnknown_03004324
- strb r5, [r2]
- ldr r3, _08010B54 @ =gUnknown_02024C0C
- strb r5, [r3]
- subs r1, 0x29
- adds r0, r4, r1
- strb r5, [r0]
- ldr r2, _08010B58 @ =0x00016086
- adds r0, r4, r2
- strb r5, [r0]
- ldr r3, _08010B5C @ =0x00016087
- adds r0, r4, r3
- strb r5, [r0]
- ldr r0, _08010B60 @ =gEnemyParty
- movs r1, 0xB
- bl GetMonData
- ldr r2, _08010B64 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08010B68 @ =0x000004fb
- bl __divsi3
- ldr r2, _08010B6C @ =0x00016089
- adds r1, r4, r2
- strb r0, [r1]
- ldr r3, _08010B70 @ =0x00016088
- adds r1, r4, r3
- movs r0, 0x3
- strb r0, [r1]
- ldr r1, _08010B74 @ =0x0001601b
- adds r0, r4, r1
- strb r5, [r0]
- subs r2, 0x33
- adds r1, r4, r2
- movs r0, 0x1
- strb r0, [r1]
- movs r2, 0
- movs r1, 0
-_08010A12:
- ldr r3, _08010B78 @ =0x000160ac
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x20
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x1C
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x8
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x10
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r3, 0x8
- adds r0, r2, r3
- adds r0, r4
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _08010A12
- ldr r4, _08010B18 @ =0x02000000
- ldr r1, _08010B7C @ =0x000160c8
- adds r0, r4, r1
- movs r2, 0
- movs r1, 0x6
- strb r1, [r0]
- subs r3, 0x3F
- adds r0, r4, r3
- strb r1, [r0]
- ldr r1, _08010B80 @ =0x00016113
- adds r0, r4, r1
- strb r2, [r0]
- ldr r3, _08010B84 @ =gUnknown_030042E0
- movs r1, 0
- movs r2, 0xA
- adds r0, r3, 0
- adds r0, 0x40
-_08010A6A:
- strb r1, [r0]
- subs r0, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _08010A6A
- movs r1, 0
- strb r1, [r3, 0x13]
- strb r1, [r3]
- strb r1, [r3, 0x1]
- strb r1, [r3, 0x2]
- strb r1, [r3, 0x3]
- strb r1, [r3, 0x4]
- ldrb r2, [r3, 0x5]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- movs r2, 0x3
- negs r2, r2
- ands r0, r2
- strb r0, [r3, 0x5]
- strh r1, [r3, 0x20]
- strh r1, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x6]
- strh r1, [r3, 0x26]
- strh r1, [r3, 0x28]
- movs r2, 0
- adds r5, r3, 0
- adds r5, 0x8
- movs r4, 0
- adds r1, r3, 0
- adds r1, 0x14
-_08010AAA:
- adds r0, r2, r5
- strb r4, [r0]
- strb r4, [r1]
- strb r4, [r1, 0x16]
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, 0x9
- ble _08010AAA
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08010AC8: .4byte gUnknown_02024C4C
-_08010ACC: .4byte gUnknown_02024C44
-_08010AD0: .4byte gUnknown_02024C3C
-_08010AD4: .4byte gUnknown_02024C34
-_08010AD8: .4byte gUnknown_02024CA8
-_08010ADC: .4byte gUnknown_02024C2C
-_08010AE0: .4byte gUnknown_02024C54
-_08010AE4: .4byte gUnknown_02024C98
-_08010AE8: .4byte gUnknown_02024C70
-_08010AEC: .4byte gUnknown_02024C5C
-_08010AF0: .4byte 0x02017100
-_08010AF4: .4byte gUnknown_02024C80
-_08010AF8: .4byte gUnknown_02024C7A
-_08010AFC: .4byte gUnknown_02024C07
-_08010B00: .4byte gUnknown_02024C08
-_08010B04: .4byte word_2024DB8
-_08010B08: .4byte gUnknown_02024DBC
-_08010B0C: .4byte gUnknown_02024C6C
-_08010B10: .4byte gUnknown_020239F8
-_08010B14: .4byte gSaveBlock2
-_08010B18: .4byte 0x02000000
-_08010B1C: .4byte 0x00016084
-_08010B20: .4byte gUnknown_02024C0E
-_08010B24: .4byte gUnknown_02024D26
-_08010B28: .4byte gUnknown_02024A64
-_08010B2C: .4byte gUnknown_02024D1A
-_08010B30: .4byte 0x00017130
-_08010B34: .4byte 0x00017160
-_08010B38: .4byte gUnknown_02024D1E
-_08010B3C: .4byte gUnknown_02024D18
-_08010B40: .4byte gUnknown_02024BEC
-_08010B44: .4byte gUnknown_02024DE8
-_08010B48: .4byte 0x00016002
-_08010B4C: .4byte 0x000160a1
-_08010B50: .4byte gUnknown_03004324
-_08010B54: .4byte gUnknown_02024C0C
-_08010B58: .4byte 0x00016086
-_08010B5C: .4byte 0x00016087
-_08010B60: .4byte gEnemyParty
-_08010B64: .4byte gBaseStats
-_08010B68: .4byte 0x000004fb
-_08010B6C: .4byte 0x00016089
-_08010B70: .4byte 0x00016088
-_08010B74: .4byte 0x0001601b
-_08010B78: .4byte 0x000160ac
-_08010B7C: .4byte 0x000160c8
-_08010B80: .4byte 0x00016113
-_08010B84: .4byte gUnknown_030042E0
- thumb_func_end sub_8010874
-
- thumb_func_start sub_8010B88
-sub_8010B88: @ 8010B88
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r4, _08010CEC @ =gUnknown_02024CA8
- ldr r5, _08010CF0 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, sp
- adds r0, r4
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _08010CF4 @ =gBattleMoves
- ldr r3, _08010CF8 @ =gUnknown_02024BE6
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- mov r10, r4
- adds r7, r5, 0
- ldr r1, _08010CFC @ =gBattleMons
- mov r8, r1
- ldr r2, _08010D00 @ =gUnknown_02024C98
- mov r12, r2
- cmp r0, 0x7F
- beq _08010C66
- movs r5, 0
- adds r4, r7, 0
- movs r3, 0x58
- mov r2, r8
- adds r2, 0x18
- movs r1, 0x6
-_08010BDC:
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5, r0
- adds r0, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x7
- ble _08010BDC
- movs r5, 0
- ldr r3, _08010D04 @ =gUnknown_02024A68
- ldrb r3, [r3]
- cmp r5, r3
- bge _08010C52
- ldr r6, _08010D08 @ =gUnknown_02024AD0
- mov r9, r6
- ldr r3, _08010CEC @ =gUnknown_02024CA8
- ldr r4, _08010D00 @ =gUnknown_02024C98
-_08010BFE:
- movs r0, 0x58
- muls r0, r5
- add r0, r9
- str r0, [sp, 0x20]
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _08010C24
- ldrb r0, [r3, 0x14]
- ldr r2, _08010CF0 @ =gUnknown_02024A60
- ldrb r2, [r2]
- cmp r0, r2
- bne _08010C24
- ldr r0, _08010D0C @ =0xfbffffff
- ands r1, r0
- ldr r6, [sp, 0x20]
- str r1, [r6]
-_08010C24:
- ldr r1, [r4]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08010C44
- ldrb r0, [r3, 0x15]
- ldr r2, _08010CF0 @ =gUnknown_02024A60
- ldrb r2, [r2]
- cmp r0, r2
- bne _08010C44
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- str r1, [r4]
- movs r0, 0
- strb r0, [r3, 0x15]
-_08010C44:
- adds r3, 0x1C
- adds r4, 0x4
- adds r5, 0x1
- ldr r6, _08010D04 @ =gUnknown_02024A68
- ldrb r6, [r6]
- cmp r5, r6
- blt _08010BFE
-_08010C52:
- ldr r1, _08010CF8 @ =gUnknown_02024BE6
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _08010CF4 @ =gBattleMoves
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _08010D18
-_08010C66:
- ldrb r1, [r7]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r8
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08010D10 @ =0x15100007
- ands r0, r1
- str r0, [r2]
- ldrb r1, [r7]
- lsls r1, 2
- add r1, r12
- ldr r0, [r1]
- ldr r2, _08010D14 @ =0x0003043f
- ands r0, r2
- str r0, [r1]
- movs r5, 0
- ldr r3, _08010D04 @ =gUnknown_02024A68
- ldrb r3, [r3]
- cmp r5, r3
- bge _08010D30
- movs r6, 0
-_08010C96:
- ldrb r0, [r7]
- bl battle_side_get_owner
- adds r4, r0, 0
- lsls r0, r5, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08010CD6
- ldr r1, _08010D00 @ =gUnknown_02024C98
- lsls r0, r5, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08010CD6
- ldr r0, _08010CEC @ =gUnknown_02024CA8
- adds r0, r6, r0
- ldrb r0, [r0, 0x15]
- ldrb r3, [r7]
- cmp r0, r3
- bne _08010CD6
- movs r0, 0x19
- negs r0, r0
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- str r1, [r2]
-_08010CD6:
- adds r6, 0x1C
- adds r5, 0x1
- ldr r0, _08010D04 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _08010C96
- ldr r6, _08010CEC @ =gUnknown_02024CA8
- mov r10, r6
- ldr r7, _08010CF0 @ =gUnknown_02024A60
- b _08010D30
- .align 2, 0
-_08010CEC: .4byte gUnknown_02024CA8
-_08010CF0: .4byte gUnknown_02024A60
-_08010CF4: .4byte gBattleMoves
-_08010CF8: .4byte gUnknown_02024BE6
-_08010CFC: .4byte gBattleMons
-_08010D00: .4byte gUnknown_02024C98
-_08010D04: .4byte gUnknown_02024A68
-_08010D08: .4byte gUnknown_02024AD0
-_08010D0C: .4byte 0xfbffffff
-_08010D10: .4byte 0x15100007
-_08010D14: .4byte 0x0003043f
-_08010D18:
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r8
- adds r1, 0x50
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- add r0, r12
- str r1, [r0]
-_08010D30:
- movs r5, 0
- ldr r6, _08010EFC @ =0x02000000
- ldr r0, _08010F00 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08010D92
- ldr r1, _08010F04 @ =gUnknown_02024AD0
- mov r9, r1
- ldr r2, _08010F08 @ =gBitTable
- mov r8, r2
- ldr r4, _08010F0C @ =gUnknown_02024A60
- mov r12, r6
-_08010D48:
- movs r0, 0x58
- muls r0, r5
- mov r1, r9
- adds r3, r0, r1
- ldrb r0, [r4]
- lsls r0, 2
- add r0, r8
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r3]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08010D68
- bics r1, r2
- str r1, [r3]
-_08010D68:
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08010D88
- ldr r2, _08010F10 @ =0x00016020
- adds r0, r5, r2
- add r0, r12
- ldrb r0, [r0]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08010D88
- ldr r0, _08010F14 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
-_08010D88:
- adds r5, 0x1
- ldr r3, _08010F00 @ =gUnknown_02024A68
- ldrb r3, [r3]
- cmp r5, r3
- blt _08010D48
-_08010D92:
- ldrb r0, [r7]
- ldr r1, _08010F18 @ =gUnknown_02024E60
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- ldr r2, _08010F1C @ =gUnknown_02024E64
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r3, r10
- adds r1, r0, r3
- movs r5, 0
- movs r2, 0
-_08010DB4:
- adds r0, r1, r5
- strb r2, [r0]
- adds r5, 0x1
- cmp r5, 0x1B
- bls _08010DB4
- ldr r1, _08010F20 @ =gUnknown_02024BE6
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _08010F24 @ =gBattleMoves
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x7F
- bne _08010E2C
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, sp
- ldrb r1, [r1, 0xA]
- strb r1, [r0, 0xA]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, sp
- ldrb r1, [r1, 0x15]
- strb r1, [r0, 0x15]
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r10
- mov r0, sp
- ldrb r2, [r0, 0xF]
- lsls r2, 28
- movs r4, 0xF
- lsrs r2, 28
- ldrb r3, [r1, 0xF]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xF]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- mov r1, sp
- ldrb r1, [r1, 0xF]
- lsrs r1, 4
- lsls r1, 4
- ldrb r2, [r0, 0xF]
- ands r4, r2
- orrs r4, r1
- strb r4, [r0, 0xF]
-_08010E2C:
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r10
- movs r3, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F28 @ =gUnknown_02024C34
- adds r0, r1
- movs r2, 0
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F2C @ =gUnknown_02024C3C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F30 @ =gUnknown_02024C44
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F34 @ =gUnknown_02024C4C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F38 @ =gUnknown_02024C2C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- ldr r1, _08010F3C @ =gUnknown_02024C5C
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _08010F40 @ =0x000160ac
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x53
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- subs r1, 0x1B
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r0, r6
- strb r2, [r0]
- ldr r2, _08010F44 @ =0x00017100
- adds r1, r6, r2
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- str r3, [r0]
- ldr r6, _08010F20 @ =gUnknown_02024BE6
- strh r3, [r6]
- 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
-_08010EFC: .4byte 0x02000000
-_08010F00: .4byte gUnknown_02024A68
-_08010F04: .4byte gUnknown_02024AD0
-_08010F08: .4byte gBitTable
-_08010F0C: .4byte gUnknown_02024A60
-_08010F10: .4byte 0x00016020
-_08010F14: .4byte 0xffff1fff
-_08010F18: .4byte gUnknown_02024E60
-_08010F1C: .4byte gUnknown_02024E64
-_08010F20: .4byte gUnknown_02024BE6
-_08010F24: .4byte gBattleMoves
-_08010F28: .4byte gUnknown_02024C34
-_08010F2C: .4byte gUnknown_02024C3C
-_08010F30: .4byte gUnknown_02024C44
-_08010F34: .4byte gUnknown_02024C4C
-_08010F38: .4byte gUnknown_02024C2C
-_08010F3C: .4byte gUnknown_02024C5C
-_08010F40: .4byte 0x000160ac
-_08010F44: .4byte 0x00017100
- thumb_func_end sub_8010B88
-
- thumb_func_start sub_8010F48
-sub_8010F48: @ 8010F48
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r4, 0
- ldr r7, _08011268 @ =gUnknown_02024A60
- ldr r0, _0801126C @ =gUnknown_02024C98
- mov r9, r0
- ldr r1, _08011270 @ =gUnknown_02024A68
- mov r8, r1
- ldr r2, _08011274 @ =0x02000000
- mov r12, r2
- ldr r6, _08011278 @ =gUnknown_02024D28
- adds r5, r7, 0
- movs r3, 0x58
- ldr r2, _0801127C @ =gBattleMons
- adds r2, 0x18
- movs r1, 0x6
-_08010F70:
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4, r0
- adds r0, r2
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x7
- ble _08010F70
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- ldr r2, _0801127C @ =gBattleMons
- adds r2, 0x50
- adds r0, r2
- movs r1, 0
- str r1, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- add r0, r9
- str r1, [r0]
- movs r4, 0
- mov r0, r8
- ldrb r0, [r0]
- cmp r4, r0
- bge _08011012
- adds r3, r2, 0
- movs r5, 0
- ldr r1, _08011280 @ =gBitTable
- mov r10, r1
- ldr r2, _08011274 @ =0x02000000
- mov r9, r2
-_08010FAE:
- ldr r1, [r3]
- movs r0, 0x80
- lsls r0, 19
- ands r0, r1
- cmp r0, 0
- beq _08010FCC
- ldr r2, _08011284 @ =gUnknown_02024CA8
- adds r0, r5, r2
- ldrb r0, [r0, 0x14]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08010FCC
- ldr r0, _08011288 @ =0xfbffffff
- ands r1, r0
- str r1, [r3]
-_08010FCC:
- ldrb r0, [r7]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- lsls r2, r0, 16
- ldr r1, [r3]
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _08010FE4
- bics r1, r2
- str r1, [r3]
-_08010FE4:
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08011004
- ldr r2, _0801128C @ =0x00016020
- adds r0, r4, r2
- add r0, r9
- ldrb r0, [r0]
- ldrb r2, [r7]
- cmp r0, r2
- bne _08011004
- ldr r0, _08011290 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
-_08011004:
- adds r3, 0x58
- adds r5, 0x1C
- adds r4, 0x1
- mov r0, r8
- ldrb r0, [r0]
- cmp r4, r0
- blt _08010FAE
-_08011012:
- ldrb r0, [r7]
- ldr r1, _08011294 @ =gUnknown_02024E60
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- ldr r2, _08011298 @ =gUnknown_02024E64
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, _08011284 @ =gUnknown_02024CA8
- adds r1, r0, r2
- movs r4, 0
- movs r2, 0
-_08011034:
- adds r0, r1, r4
- strb r2, [r0]
- adds r4, 0x1
- cmp r4, 0x1B
- bls _08011034
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- mov r9, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- mov r8, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- mov r10, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r5, 0x21
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r4, 0x41
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- mov r0, r8
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r1, [r7]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r5, r1
- strb r5, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ands r3, r1
- strb r3, [r0, 0x1]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- mov r2, r9
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- mov r2, r8
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- movs r2, 0x5
- negs r2, r2
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r0, [r7]
- lsls r0, 4
- adds r0, r6
- ldrb r1, [r0, 0x2]
- mov r2, r10
- ands r2, r1
- strb r2, [r0, 0x2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _08011284 @ =gUnknown_02024CA8
- adds r0, r1
- movs r3, 0
- movs r1, 0x2
- strb r1, [r0, 0x16]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0801129C @ =gUnknown_02024C34
- adds r0, r2
- movs r2, 0
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112A0 @ =gUnknown_02024C3C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112A4 @ =gUnknown_02024C44
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112A8 @ =gUnknown_02024C4C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112AC @ =gUnknown_02024C2C
- adds r0, r1
- strh r3, [r0]
- ldrb r0, [r7]
- ldr r1, _080112B0 @ =gUnknown_02024C5C
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _080112B4 @ =0x000160e8
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- subs r1, 0x3D
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x53
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- lsls r0, 2
- adds r1, 0x1
- adds r0, r1
- add r0, r12
- strb r2, [r0]
- ldr r1, _080112B8 @ =0x00017100
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- str r3, [r0]
- ldrb r0, [r7]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- ldr r2, _0801127C @ =gBattleMons
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _080112BC @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x6]
- adds r1, 0x21
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r3
- ldr r0, _0801127C @ =gBattleMons
- adds r1, r0
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r2, _080112BC @ =gBaseStats
- adds r0, r2
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011268: .4byte gUnknown_02024A60
-_0801126C: .4byte gUnknown_02024C98
-_08011270: .4byte gUnknown_02024A68
-_08011274: .4byte 0x02000000
-_08011278: .4byte gUnknown_02024D28
-_0801127C: .4byte gBattleMons
-_08011280: .4byte gBitTable
-_08011284: .4byte gUnknown_02024CA8
-_08011288: .4byte 0xfbffffff
-_0801128C: .4byte 0x00016020
-_08011290: .4byte 0xffff1fff
-_08011294: .4byte gUnknown_02024E60
-_08011298: .4byte gUnknown_02024E64
-_0801129C: .4byte gUnknown_02024C34
-_080112A0: .4byte gUnknown_02024C3C
-_080112A4: .4byte gUnknown_02024C44
-_080112A8: .4byte gUnknown_02024C4C
-_080112AC: .4byte gUnknown_02024C2C
-_080112B0: .4byte gUnknown_02024C5C
-_080112B4: .4byte 0x000160e8
-_080112B8: .4byte 0x00017100
-_080112BC: .4byte gBaseStats
- thumb_func_end sub_8010F48
-
- thumb_func_start bc_8012FAC
-bc_8012FAC: @ 80112C0
- push {r4,r5,lr}
- ldr r5, _080112D0 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- cmp r0, 0
- beq _080112D4
- cmp r0, 0x1
- beq _080112F8
- b _0801132E
- .align 2, 0
-_080112D0: .4byte gUnknown_02024D1E
-_080112D4:
- ldr r4, _080112F4 @ =gUnknown_02024A60
- ldrb r0, [r5, 0x1]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0801132E
- .align 2, 0
-_080112F4: .4byte gUnknown_02024A60
-_080112F8:
- ldr r0, _0801131C @ =gUnknown_02024A64
- ldr r2, [r0]
- cmp r2, 0
- bne _0801132E
- ldrb r0, [r5, 0x1]
- adds r0, 0x1
- strb r0, [r5, 0x1]
- ldr r1, _08011320 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801132C
- ldr r1, _08011324 @ =gUnknown_030042D4
- ldr r0, _08011328 @ =bc_load_battlefield
- str r0, [r1]
- b _0801132E
- .align 2, 0
-_0801131C: .4byte gUnknown_02024A64
-_08011320: .4byte gUnknown_02024A68
-_08011324: .4byte gUnknown_030042D4
-_08011328: .4byte bc_load_battlefield
-_0801132C:
- strb r2, [r5]
-_0801132E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end bc_8012FAC
-
- thumb_func_start bc_load_battlefield
-bc_load_battlefield: @ 8011334
- push {r4,r5,lr}
- ldr r0, _0801136C @ =gUnknown_02024A64
- ldr r5, [r0]
- cmp r5, 0
- bne _08011364
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _08011370 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _08011374 @ =gUnknown_0300428C
- ldrb r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x2E_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08011378 @ =gUnknown_030042D4
- ldr r0, _0801137C @ =sub_8011384
- str r0, [r1]
- ldr r0, _08011380 @ =gUnknown_02024D1E
- strb r5, [r0]
- strb r5, [r0, 0x1]
-_08011364:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801136C: .4byte gUnknown_02024A64
-_08011370: .4byte gUnknown_02024A60
-_08011374: .4byte gUnknown_0300428C
-_08011378: .4byte gUnknown_030042D4
-_0801137C: .4byte sub_8011384
-_08011380: .4byte gUnknown_02024D1E
- thumb_func_end bc_load_battlefield
-
- thumb_func_start sub_8011384
-sub_8011384: @ 8011384
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080113E0 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- beq _08011396
- b _080115DA
-_08011396:
- ldr r2, _080113E4 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _080113E8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcc _080113A4
- b _080115D4
-_080113A4:
- movs r7, 0x58
- ldr r0, _080113EC @ =gBattleMons
- mov r9, r0
- mov r8, r2
-_080113AC:
- ldr r0, _080113F0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080113F4
- ldr r4, _080113E4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080113F4
- ldrb r0, [r4]
- muls r0, r7
- mov r1, r9
- adds r3, r0, r1
- movs r2, 0
- movs r1, 0
-_080113D2:
- adds r0, r3, r2
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _080113D2
- b _080114BE
- .align 2, 0
-_080113E0: .4byte gUnknown_02024A64
-_080113E4: .4byte gUnknown_02024A60
-_080113E8: .4byte gUnknown_02024A68
-_080113EC: .4byte gBattleMons
-_080113F0: .4byte gUnknown_020239F8
-_080113F4:
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- mov r1, r9
- adds r3, r0, r1
- movs r2, 0
- ldr r6, _08011530 @ =gBaseStats
- ldr r5, _08011534 @ =gUnknown_02024260
- ldr r4, _08011538 @ =gUnknown_02024A60
-_08011406:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _08011406
- mov r2, r8
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r7
- add r2, r9
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- mov r1, r8
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r7
- add r2, r9
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x7]
- adds r2, 0x22
- strb r0, [r2]
- mov r2, r8
- ldrb r0, [r2]
- adds r1, r0, 0
- muls r1, r7
- add r1, r9
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- mov r2, r8
- ldrb r1, [r2]
- muls r1, r7
- add r1, r9
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _0801153C @ =0x020160bc
- adds r0, r1
- mov r2, r8
- ldrb r1, [r2]
- muls r1, r7
- add r1, r9
- ldrh r1, [r1, 0x28]
- strh r1, [r0]
- movs r2, 0
- ldr r4, _08011538 @ =gUnknown_02024A60
- movs r5, 0x58
- ldr r1, _08011540 @ =gUnknown_02024A98
- adds r6, r4, 0
- movs r0, 0x18
- negs r0, r0
- adds r0, r1
- mov r12, r0
- movs r3, 0x6
-_0801149E:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r1
- strb r3, [r0]
- adds r2, 0x1
- cmp r2, 0x7
- ble _0801149E
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r7
- mov r0, r12
- adds r0, 0x50
- adds r1, r0
- movs r0, 0
- str r0, [r1]
-_080114BE:
- ldr r4, _08011538 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080114D8
- movs r0, 0
- bl dp01_build_cmdbuf_x07_7_7_7
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080114D8:
- ldr r5, _08011544 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801154C
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080114FE
- movs r0, 0
- bl dp01_build_cmdbuf_x07_7_7_7
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080114FE:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011588
- ldrh r1, [r5]
- ldr r2, _08011548 @ =0x00000902
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08011588
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- b _08011588
- .align 2, 0
-_08011530: .4byte gBaseStats
-_08011534: .4byte gUnknown_02024260
-_08011538: .4byte gUnknown_02024A60
-_0801153C: .4byte 0x020160bc
-_08011540: .4byte gUnknown_02024A98
-_08011544: .4byte gUnknown_020239F8
-_08011548: .4byte 0x00000902
-_0801154C:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011588
- ldrh r1, [r5]
- ldr r2, _080115E8 @ =0x00000902
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08011588
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- movs r0, 0
- bl dp01_build_cmdbuf_x04_4_4_4
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011588:
- ldr r0, _080115EC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080115BE
- ldr r4, _080115F0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _080115B2
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _080115BE
-_080115B2:
- movs r0, 0
- bl dp01_build_cmdbuf_x07_7_7_7
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080115BE:
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _080115F4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080115D4
- b _080113AC
-_080115D4:
- ldr r1, _080115F8 @ =gUnknown_030042D4
- ldr r0, _080115FC @ =bc_801333C
- str r0, [r1]
-_080115DA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080115E8: .4byte 0x00000902
-_080115EC: .4byte gUnknown_020239F8
-_080115F0: .4byte gUnknown_02024A60
-_080115F4: .4byte gUnknown_02024A68
-_080115F8: .4byte gUnknown_030042D4
-_080115FC: .4byte bc_801333C
- thumb_func_end sub_8011384
-
- thumb_func_start bc_801333C
-bc_801333C: @ 8011600
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _08011658 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08011612
- b _0801178C
-_08011612:
- ldr r0, _0801165C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08011620
- b _0801172C
-_08011620:
- movs r7, 0
- add r0, sp, 0x4
- mov r8, r0
- mov r6, r8
- mov r5, sp
-_0801162A:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08011660 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08011650
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08011668
-_08011650:
- ldr r0, _08011664 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _0801167A
- .align 2, 0
-_08011658: .4byte gUnknown_02024A64
-_0801165C: .4byte gUnknown_020239F8
-_08011660: .4byte gEnemyParty
-_08011664: .4byte 0x0000ffff
-_08011668:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_0801167A:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _0801162A
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r4, _080116D4 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl dp01_build_cmdbuf_x30_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r7, 0
- mov r6, r8
- mov r5, sp
-_080116A6:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080116D8 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080116CC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080116E0
-_080116CC:
- ldr r0, _080116DC @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _080116F2
- .align 2, 0
-_080116D4: .4byte gUnknown_02024A60
-_080116D8: .4byte gPlayerParty
-_080116DC: .4byte 0x0000ffff
-_080116E0:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_080116F2:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _080116A6
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _08011720 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- mov r1, sp
- movs r2, 0x80
- bl dp01_build_cmdbuf_x30_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08011724 @ =gUnknown_030042D4
- ldr r0, _08011728 @ =bc_battle_begin_message
- b _0801178A
- .align 2, 0
-_08011720: .4byte gUnknown_02024A60
-_08011724: .4byte gUnknown_030042D4
-_08011728: .4byte bc_battle_begin_message
-_0801172C:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_08011732:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08011760 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08011758
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08011768
-_08011758:
- ldr r0, _08011764 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _0801177A
- .align 2, 0
-_08011760: .4byte gPlayerParty
-_08011764: .4byte 0x0000ffff
-_08011768:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_0801177A:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08011732
- ldr r1, _08011798 @ =gUnknown_030042D4
- ldr r0, _0801179C @ =bc_8013568
-_0801178A:
- str r0, [r1]
-_0801178C:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011798: .4byte gUnknown_030042D4
-_0801179C: .4byte bc_8013568
- thumb_func_end bc_801333C
-
- thumb_func_start bc_battle_begin_message
-bc_battle_begin_message: @ 80117A0
- push {lr}
- ldr r0, _080117C8 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080117C2
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _080117CC @ =gUnknown_02024A60
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0
- bl b_std_message
- ldr r1, _080117D0 @ =gUnknown_030042D4
- ldr r0, _080117D4 @ =sub_8011800
- str r0, [r1]
-_080117C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080117C8: .4byte gUnknown_02024A64
-_080117CC: .4byte gUnknown_02024A60
-_080117D0: .4byte gUnknown_030042D4
-_080117D4: .4byte sub_8011800
- thumb_func_end bc_battle_begin_message
-
- thumb_func_start bc_8013568
-bc_8013568: @ 80117D8
- push {lr}
- ldr r0, _080117F4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080117F0
- ldr r1, _080117F8 @ =gUnknown_030042D4
- ldr r0, _080117FC @ =sub_8011970
- str r0, [r1]
- movs r0, 0
- movs r1, 0
- bl b_std_message
-_080117F0:
- pop {r0}
- bx r0
- .align 2, 0
-_080117F4: .4byte gUnknown_02024A64
-_080117F8: .4byte gUnknown_030042D4
-_080117FC: .4byte sub_8011970
- thumb_func_end bc_8013568
-
- thumb_func_start sub_8011800
-sub_8011800: @ 8011800
- push {lr}
- ldr r0, _08011828 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08011822
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl b_std_message
- ldr r1, _0801182C @ =gUnknown_030042D4
- ldr r0, _08011830 @ =sub_8011834
- str r0, [r1]
-_08011822:
- pop {r0}
- bx r0
- .align 2, 0
-_08011828: .4byte gUnknown_02024A64
-_0801182C: .4byte gUnknown_030042D4
-_08011830: .4byte sub_8011834
- thumb_func_end sub_8011800
-
- thumb_func_start sub_8011834
-sub_8011834: @ 8011834
- push {r4,lr}
- ldr r0, _080118AC @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _080118A4
- ldr r2, _080118B0 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _080118B4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _0801189E
- adds r4, r2, 0
-_0801184C:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011866
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011866:
- ldr r0, _080118B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801188C
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0801188C
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801188C:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080118B4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801184C
-_0801189E:
- ldr r1, _080118BC @ =gUnknown_030042D4
- ldr r0, _080118C0 @ =bc_801362C
- str r0, [r1]
-_080118A4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080118AC: .4byte gUnknown_02024A64
-_080118B0: .4byte gUnknown_02024A60
-_080118B4: .4byte gUnknown_02024A68
-_080118B8: .4byte gUnknown_020239F8
-_080118BC: .4byte gUnknown_030042D4
-_080118C0: .4byte bc_801362C
- thumb_func_end sub_8011834
-
- thumb_func_start bc_801362C
-bc_801362C: @ 80118C4
- push {r4,r5,lr}
- ldr r0, _08011930 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _0801192A
- ldr r2, _08011934 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08011938 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08011924
- adds r4, r2, 0
- ldr r5, _0801193C @ =gBattleMons
-_080118DE:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08011912
- ldr r0, _08011940 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r2, _08011944 @ =0x00000902
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08011912
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r5
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
-_08011912:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08011938 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080118DE
-_08011924:
- ldr r1, _08011948 @ =gUnknown_030042D4
- ldr r0, _0801194C @ =sub_8011970
- str r0, [r1]
-_0801192A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011930: .4byte gUnknown_02024A64
-_08011934: .4byte gUnknown_02024A60
-_08011938: .4byte gUnknown_02024A68
-_0801193C: .4byte gBattleMons
-_08011940: .4byte gUnknown_020239F8
-_08011944: .4byte 0x00000902
-_08011948: .4byte gUnknown_030042D4
-_0801194C: .4byte sub_8011970
- thumb_func_end bc_801362C
-
- thumb_func_start unref_sub_8011950
-unref_sub_8011950: @ 8011950
- push {lr}
- ldr r0, _08011964 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08011960
- ldr r1, _08011968 @ =gUnknown_030042D4
- ldr r0, _0801196C @ =sub_8011970
- str r0, [r1]
-_08011960:
- pop {r0}
- bx r0
- .align 2, 0
-_08011964: .4byte gUnknown_02024A64
-_08011968: .4byte gUnknown_030042D4
-_0801196C: .4byte sub_8011970
- thumb_func_end unref_sub_8011950
-
- thumb_func_start sub_8011970
-sub_8011970: @ 8011970
- push {lr}
- ldr r0, _080119A4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801199E
- ldr r0, _080119A8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08011998
- movs r0, 0
- bl battle_get_side_with_given_state
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x1
- bl b_std_message
-_08011998:
- ldr r1, _080119AC @ =gUnknown_030042D4
- ldr r0, _080119B0 @ =sub_80119B4
- str r0, [r1]
-_0801199E:
- pop {r0}
- bx r0
- .align 2, 0
-_080119A4: .4byte gUnknown_02024A64
-_080119A8: .4byte gUnknown_020239F8
-_080119AC: .4byte gUnknown_030042D4
-_080119B0: .4byte sub_80119B4
- thumb_func_end sub_8011970
-
- thumb_func_start sub_80119B4
-sub_80119B4: @ 80119B4
- push {r4,lr}
- ldr r0, _08011A40 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _08011A38
- ldr r2, _08011A44 @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08011A48 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08011A1C
- adds r4, r2, 0
-_080119CC:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _080119E4
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080119E4:
- ldr r0, _08011A4C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08011A0A
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08011A0A
- movs r0, 0
- bl dp01_build_cmdbuf_x2F_2F_2F_2F
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011A0A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08011A48 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080119CC
-_08011A1C:
- ldr r1, _08011A50 @ =0x02000000
- ldr r2, _08011A54 @ =0x00016058
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08011A58 @ =0x000160f9
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08011A5C @ =0x000160e6
- adds r1, r0
- strb r2, [r1]
- ldr r1, _08011A60 @ =gUnknown_030042D4
- ldr r0, _08011A64 @ =sub_8011B00
- str r0, [r1]
-_08011A38:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011A40: .4byte gUnknown_02024A64
-_08011A44: .4byte gUnknown_02024A60
-_08011A48: .4byte gUnknown_02024A68
-_08011A4C: .4byte gUnknown_020239F8
-_08011A50: .4byte 0x02000000
-_08011A54: .4byte 0x00016058
-_08011A58: .4byte 0x000160f9
-_08011A5C: .4byte 0x000160e6
-_08011A60: .4byte gUnknown_030042D4
-_08011A64: .4byte sub_8011B00
- thumb_func_end sub_80119B4
-
- thumb_func_start unref_sub_8011A68
-unref_sub_8011A68: @ 8011A68
- push {r4,r5,lr}
- ldr r0, _08011AD8 @ =gUnknown_02024A64
- ldr r1, [r0]
- cmp r1, 0
- bne _08011AD2
- ldr r2, _08011ADC @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08011AE0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08011AB6
- adds r4, r2, 0
- ldr r5, _08011AE4 @ =gUnknown_02024A6A
-_08011A82:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08011AA4
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- bl sub_800C704
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08011AA4:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08011AE0 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08011A82
-_08011AB6:
- ldr r1, _08011AE8 @ =0x02000000
- ldr r2, _08011AEC @ =0x00016058
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08011AF0 @ =0x000160f9
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08011AF4 @ =0x000160e6
- adds r1, r0
- strb r2, [r1]
- ldr r1, _08011AF8 @ =gUnknown_030042D4
- ldr r0, _08011AFC @ =sub_8011B00
- str r0, [r1]
-_08011AD2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08011AD8: .4byte gUnknown_02024A64
-_08011ADC: .4byte gUnknown_02024A60
-_08011AE0: .4byte gUnknown_02024A68
-_08011AE4: .4byte gUnknown_02024A6A
-_08011AE8: .4byte 0x02000000
-_08011AEC: .4byte 0x00016058
-_08011AF0: .4byte 0x000160f9
-_08011AF4: .4byte 0x000160e6
-_08011AF8: .4byte gUnknown_030042D4
-_08011AFC: .4byte sub_8011B00
- thumb_func_end unref_sub_8011A68
-
- thumb_func_start sub_8011B00
-sub_8011B00: @ 8011B00
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r0, _08011B44 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08011B18
- b _08011D6E
-_08011B18:
- ldr r0, _08011B48 @ =0x02000000
- ldr r1, _08011B4C @ =0x00016058
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08011BA2
- movs r5, 0
- ldr r1, _08011B50 @ =gUnknown_02024A68
- adds r3, r1, 0
- ldrb r2, [r1]
- cmp r5, r2
- bge _08011B3E
- ldr r2, _08011B54 @ =gUnknown_02024A7A
-_08011B32:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r0, [r1]
- cmp r5, r0
- blt _08011B32
-_08011B3E:
- movs r5, 0
- b _08011B98
- .align 2, 0
-_08011B44: .4byte gUnknown_02024A64
-_08011B48: .4byte 0x02000000
-_08011B4C: .4byte 0x00016058
-_08011B50: .4byte gUnknown_02024A68
-_08011B54: .4byte gUnknown_02024A7A
-_08011B58:
- adds r4, r5, 0x1
- mov r8, r4
- ldrb r1, [r1]
- cmp r8, r1
- bge _08011B96
- ldr r6, _08011BC8 @ =gUnknown_02024A7A
- ldr r3, _08011BCC @ =gUnknown_02024A68
- lsls r7, r5, 24
-_08011B68:
- adds r0, r5, r6
- ldrb r0, [r0]
- adds r1, r4, r6
- ldrb r1, [r1]
- movs r2, 0x1
- str r3, [sp, 0x4]
- bl b_first_side
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _08011B8C
- lsls r1, r4, 24
- lsrs r1, 24
- lsrs r0, r7, 24
- bl sub_8012FBC
- ldr r3, [sp, 0x4]
-_08011B8C:
- adds r4, 0x1
- ldr r0, _08011BCC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08011B68
-_08011B96:
- mov r5, r8
-_08011B98:
- adds r1, r3, 0
- ldrb r0, [r3]
- subs r0, 0x1
- cmp r5, r0
- blt _08011B58
-_08011BA2:
- ldr r0, _08011BD0 @ =0x02000000
- ldr r1, _08011BD4 @ =0x000160e6
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _08011BD8
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08011BD8
- movs r0, 0x1
- strb r0, [r4]
- b _08011D6E
- .align 2, 0
-_08011BC8: .4byte gUnknown_02024A7A
-_08011BCC: .4byte gUnknown_02024A68
-_08011BD0: .4byte 0x02000000
-_08011BD4: .4byte 0x000160e6
-_08011BD8:
- ldr r0, _08011D7C @ =0x02000000
- ldr r3, _08011D80 @ =0x00016058
- adds r2, r0, r3
- ldr r1, _08011D84 @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08011C28
- ldr r5, _08011D88 @ =gUnknown_02024A7A
- adds r4, r2, 0
-_08011BEC:
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08011C0E
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08011C0E:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- mov r1, r9
- cmp r1, 0
- beq _08011C1C
- b _08011D6E
-_08011C1C:
- ldr r1, _08011D84 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08011BEC
-_08011C28:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08011C42
- b _08011D6E
-_08011C42:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08011C58
- b _08011D6E
-_08011C58:
- ldr r0, _08011D7C @ =0x02000000
- ldr r3, _08011D8C @ =0x000160f9
- adds r2, r0, r3
- ldr r0, _08011D84 @ =gUnknown_02024A68
- ldrb r1, [r2]
- adds r3, r0, 0
- ldrb r0, [r3]
- cmp r1, r0
- bcs _08011CA8
- ldr r5, _08011D88 @ =gUnknown_02024A7A
- adds r4, r2, 0
-_08011C6E:
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0
- str r3, [sp, 0x4]
- bl sub_801A02C
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r0, 0
- beq _08011C90
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08011C90:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- mov r1, r9
- cmp r1, 0
- bne _08011D6E
- ldr r1, _08011D84 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08011C6E
-_08011CA8:
- ldrb r0, [r3]
- cmp r0, 0
- beq _08011CB6
- adds r5, r0, 0
-_08011CB0:
- subs r5, 0x1
- cmp r5, 0
- bne _08011CB0
-_08011CB6:
- movs r5, 0
- ldr r0, _08011D7C @ =0x02000000
- mov r8, r5
- ldr r3, _08011D90 @ =gUnknown_02024C60
- ldr r1, _08011D94 @ =0x00016068
- adds r2, r0, r1
- movs r7, 0x6
- ldr r6, _08011D98 @ =gUnknown_02024C18
- movs r4, 0xFF
-_08011CC8:
- strb r7, [r2]
- adds r1, r5, r6
- ldrb r0, [r1]
- orrs r0, r4
- strb r0, [r1]
- mov r0, r8
- strh r0, [r3]
- adds r3, 0x2
- adds r2, 0x1
- adds r5, 0x1
- cmp r5, 0x3
- ble _08011CC8
- movs r0, 0
- bl sub_801365C
- bl sub_801377C
- ldr r0, _08011D7C @ =0x02000000
- ldr r1, _08011D9C @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _08011DA0 @ =0x000160a6
- adds r0, r2
- strb r1, [r0]
- ldr r1, _08011DA4 @ =gUnknown_030042D4
- ldr r0, _08011DA8 @ =sub_8012324
- str r0, [r1]
- bl sub_80156DC
- ldr r1, _08011DAC @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x7
-_08011D06:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08011D06
- movs r5, 0
- ldr r3, _08011D84 @ =gUnknown_02024A68
- ldr r2, _08011D7C @ =0x02000000
- ldr r6, _08011DB0 @ =gUnknown_02024C68
- ldrb r0, [r3]
- cmp r5, r0
- bge _08011D36
- ldr r0, _08011DB4 @ =gBattleMons
- movs r4, 0x9
- negs r4, r4
- adds r1, r0, 0
- adds r1, 0x50
-_08011D26:
- ldr r0, [r1]
- ands r0, r4
- str r0, [r1]
- adds r1, 0x58
- adds r5, 0x1
- ldrb r0, [r3]
- cmp r5, r0
- blt _08011D26
-_08011D36:
- movs r1, 0xB0
- lsls r1, 9
- adds r0, r2, r1
- movs r1, 0
- strb r1, [r0]
- ldr r3, _08011DB8 @ =0x00016001
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _08011DBC @ =0x00016110
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x1
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _08011DC0 @ =0x0001600c
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x4D
- adds r0, r2, r3
- strb r1, [r0]
- subs r3, 0x4B
- adds r0, r2, r3
- strb r1, [r0]
- strb r1, [r6]
- bl Random
- ldr r1, _08011DC4 @ =gUnknown_02024D1C
- strh r0, [r1]
-_08011D6E:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011D7C: .4byte 0x02000000
-_08011D80: .4byte 0x00016058
-_08011D84: .4byte gUnknown_02024A68
-_08011D88: .4byte gUnknown_02024A7A
-_08011D8C: .4byte 0x000160f9
-_08011D90: .4byte gUnknown_02024C60
-_08011D94: .4byte 0x00016068
-_08011D98: .4byte gUnknown_02024C18
-_08011D9C: .4byte gUnknown_02024C0C
-_08011DA0: .4byte 0x000160a6
-_08011DA4: .4byte gUnknown_030042D4
-_08011DA8: .4byte sub_8012324
-_08011DAC: .4byte gUnknown_02024D1E
-_08011DB0: .4byte gUnknown_02024C68
-_08011DB4: .4byte gBattleMons
-_08011DB8: .4byte 0x00016001
-_08011DBC: .4byte 0x00016110
-_08011DC0: .4byte 0x0001600c
-_08011DC4: .4byte gUnknown_02024D1C
- thumb_func_end sub_8011B00
-
- thumb_func_start bc_8013B1C
-bc_8013B1C: @ 8011DC8
- push {r4-r6,lr}
- ldr r0, _08011E60 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08011E5A
- ldr r1, _08011E64 @ =gUnknown_030042D4
- ldr r0, _08011E68 @ =sub_8011E8C
- str r0, [r1]
- ldr r3, _08011E6C @ =gUnknown_02024A68
- ldr r1, _08011E70 @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x7
-_08011DE0:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08011DE0
- movs r4, 0
- ldrb r3, [r3]
- cmp r4, r3
- bge _08011E32
- ldr r5, _08011E74 @ =gBattleMons
- adds r6, r5, 0
- adds r6, 0x4C
-_08011DF6:
- movs r0, 0x58
- adds r2, r4, 0
- muls r2, r0
- adds r1, r5, 0
- adds r1, 0x50
- adds r1, r2, r1
- ldr r3, [r1]
- subs r0, 0x61
- ands r3, r0
- str r3, [r1]
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08011E28
- movs r0, 0x80
- lsls r0, 5
- ands r3, r0
- cmp r3, 0
- beq _08011E28
- lsls r0, r4, 24
- lsrs r0, 24
- bl b_cancel_multi_turn_move_maybe
-_08011E28:
- adds r4, 0x1
- ldr r0, _08011E6C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08011DF6
-_08011E32:
- ldr r0, _08011E78 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _08011E7C @ =0x00016001
- adds r1, r0, r3
- strb r2, [r1]
- ldr r3, _08011E80 @ =0x00016110
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _08011E84 @ =0x0001600e
- adds r0, r1
- strb r2, [r0]
- ldr r0, _08011E88 @ =gUnknown_02024C68
- strb r2, [r0]
-_08011E5A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08011E60: .4byte gUnknown_02024A64
-_08011E64: .4byte gUnknown_030042D4
-_08011E68: .4byte sub_8011E8C
-_08011E6C: .4byte gUnknown_02024A68
-_08011E70: .4byte gUnknown_02024D1E
-_08011E74: .4byte gBattleMons
-_08011E78: .4byte 0x02000000
-_08011E7C: .4byte 0x00016001
-_08011E80: .4byte 0x00016110
-_08011E84: .4byte 0x0001600e
-_08011E88: .4byte gUnknown_02024C68
- thumb_func_end bc_8013B1C
-
- thumb_func_start sub_8011E8C
-sub_8011E8C: @ 8011E8C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0x1
- bl sub_801365C
- ldr r0, _08011F3C @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0
- bne _08011EBC
- bl sub_8015DFC
- lsls r0, 24
- cmp r0, 0
- beq _08011EB0
- b _08011FEE
-_08011EB0:
- bl sub_8016558
- lsls r0, 24
- cmp r0, 0
- beq _08011EBC
- b _08011FEE
-_08011EBC:
- bl sub_80173A4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08011ECA
- b _08011FEE
-_08011ECA:
- ldr r5, _08011F40 @ =0x02000000
- ldr r2, _08011F44 @ =0x00016059
- adds r0, r5, r2
- strb r1, [r0]
- bl sub_80170DC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08011EE0
- b _08011FEE
-_08011EE0:
- movs r0, 0
- bl sub_801365C
- ldr r2, _08011F48 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08011F4C @ =0xfffffdff
- ands r0, r1
- ldr r1, _08011F50 @ =0xfff7ffff
- ands r0, r1
- ldr r1, _08011F54 @ =0xffbfffff
- ands r0, r1
- ldr r1, _08011F58 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08011F5C @ =0x00016002
- adds r0, r5, r3
- strb r4, [r0]
- ldr r1, _08011F60 @ =0x000160a1
- adds r0, r5, r1
- strb r4, [r0]
- ldr r2, _08011F64 @ =0x0001600c
- adds r0, r5, r2
- strb r4, [r0]
- ldr r0, _08011F68 @ =gUnknown_02024BEC
- str r4, [r0]
- ldr r0, _08011F6C @ =gUnknown_02024C68
- strb r4, [r0]
- ldr r1, _08011F70 @ =gUnknown_02024D1E
- movs r2, 0
- adds r0, r1, 0x4
-_08011F1C:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08011F1C
- ldr r0, _08011F3C @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0
- beq _08011F80
- ldr r1, _08011F74 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _08011F78 @ =gUnknown_030042D4
- ldr r0, _08011F7C @ =sub_80138F0
- str r0, [r1]
- b _08011FEE
- .align 2, 0
-_08011F3C: .4byte gUnknown_02024D26
-_08011F40: .4byte 0x02000000
-_08011F44: .4byte 0x00016059
-_08011F48: .4byte gUnknown_02024C6C
-_08011F4C: .4byte 0xfffffdff
-_08011F50: .4byte 0xfff7ffff
-_08011F54: .4byte 0xffbfffff
-_08011F58: .4byte 0xffefffff
-_08011F5C: .4byte 0x00016002
-_08011F60: .4byte 0x000160a1
-_08011F64: .4byte 0x0001600c
-_08011F68: .4byte gUnknown_02024BEC
-_08011F6C: .4byte gUnknown_02024C68
-_08011F70: .4byte gUnknown_02024D1E
-_08011F74: .4byte gUnknown_02024A7F
-_08011F78: .4byte gUnknown_030042D4
-_08011F7C: .4byte sub_80138F0
-_08011F80:
- ldr r1, _08011FFC @ =gUnknown_030042E0
- ldrb r0, [r1, 0x13]
- cmp r0, 0xFE
- bhi _08011F8C
- adds r0, 0x1
- strb r0, [r1, 0x13]
-_08011F8C:
- movs r2, 0
- ldr r4, _08012000 @ =gUnknown_02024A68
- ldr r3, _08012004 @ =0x02000000
- mov r9, r3
- ldr r0, _08012008 @ =gUnknown_030042D4
- mov r10, r0
- ldr r1, _0801200C @ =gUnknown_02024C0C
- mov r12, r1
- ldr r3, _08012010 @ =sub_8012324
- mov r8, r3
- ldrb r0, [r4]
- cmp r2, r0
- bge _08011FC2
- ldr r7, _08012014 @ =gUnknown_02024C18
- movs r6, 0xFF
- movs r5, 0
- ldr r3, _08012018 @ =gUnknown_02024C60
-_08011FAE:
- adds r1, r2, r7
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- strh r5, [r3]
- adds r3, 0x2
- adds r2, 0x1
- ldrb r1, [r4]
- cmp r2, r1
- blt _08011FAE
-_08011FC2:
- ldr r0, _08012004 @ =0x02000000
- movs r1, 0x6
- movs r2, 0x3
- ldr r3, _0801201C @ =0x0001606b
- adds r0, r3
-_08011FCC:
- strb r1, [r0]
- subs r0, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _08011FCC
- mov r0, r12
- ldrb r1, [r0]
- ldr r0, _08012020 @ =0x000160a6
- add r0, r9
- strb r1, [r0]
- mov r1, r8
- mov r2, r10
- str r1, [r2]
- bl Random
- ldr r1, _08012024 @ =gUnknown_02024D1C
- strh r0, [r1]
-_08011FEE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08011FFC: .4byte gUnknown_030042E0
-_08012000: .4byte gUnknown_02024A68
-_08012004: .4byte 0x02000000
-_08012008: .4byte gUnknown_030042D4
-_0801200C: .4byte gUnknown_02024C0C
-_08012010: .4byte sub_8012324
-_08012014: .4byte gUnknown_02024C18
-_08012018: .4byte gUnknown_02024C60
-_0801201C: .4byte 0x0001606b
-_08012020: .4byte 0x000160a6
-_08012024: .4byte gUnknown_02024D1C
- thumb_func_end sub_8011E8C
-
- thumb_func_start sub_8012028
-sub_8012028: @ 8012028
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _0801204C @ =gBattleMons
- ldr r0, _08012050 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08012058
- ldr r1, _08012054 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x7]
- b _08012062
- .align 2, 0
-_0801204C: .4byte gBattleMons
-_08012050: .4byte gUnknown_02024A60
-_08012054: .4byte gEnigmaBerries
-_08012058:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r2, r0, 24
-_08012062:
- ldr r1, _0801217C @ =gUnknown_02024C0B
- ldr r3, _08012180 @ =gUnknown_02024A60
- ldrb r0, [r3]
- strb r0, [r1]
- cmp r2, 0x25
- bne _08012070
- b _080121F4
-_08012070:
- ldr r0, _08012184 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801207E
- b _080121F4
-_0801207E:
- ldr r1, _08012188 @ =gBattleMons
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x32
- bne _08012092
- b _080121F4
-_08012092:
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r0, _0801218C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08012126
- movs r7, 0
-_080120A8:
- lsrs r4, r7, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _080120CC
- ldr r1, _08012188 @ =gBattleMons
- movs r0, 0x58
- muls r0, r5
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x17
- bne _080120CC
- b _080121FC
-_080120CC:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08012116
- ldr r3, _08012188 @ =gBattleMons
- ldr r0, _08012180 @ =gUnknown_02024A60
- ldrb r0, [r0]
- movs r2, 0x58
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _08012116
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08012116
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08012116
- adds r0, r5, 0
- muls r0, r2
- adds r0, r3
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0x47
- bne _08012116
- b _08012220
-_08012116:
- movs r0, 0x80
- lsls r0, 17
- adds r7, r0
- adds r5, 0x1
- ldr r0, _0801218C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _080120A8
-_08012126:
- ldr r4, _08012180 @ =gUnknown_02024A60
- ldrb r1, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080121A0
- ldr r6, _08012188 @ =gBattleMons
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _0801215E
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080121A0
-_0801215E:
- ldr r0, _08012190 @ =0x02000000
- subs r1, r5, 0x1
- ldr r2, _08012194 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- ldr r2, _08012198 @ =byte_2024C06
- adds r0, r1, 0
- muls r0, r3
- adds r0, r6
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r1, _0801219C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _08012248
- .align 2, 0
-_0801217C: .4byte gUnknown_02024C0B
-_08012180: .4byte gUnknown_02024A60
-_08012184: .4byte gUnknown_020239F8
-_08012188: .4byte gBattleMons
-_0801218C: .4byte gUnknown_02024A68
-_08012190: .4byte 0x02000000
-_08012194: .4byte 0x00016003
-_08012198: .4byte byte_2024C06
-_0801219C: .4byte gUnknown_02024D1E
-_080121A0:
- ldr r1, _080121D4 @ =gBattleMons
- ldr r0, _080121D8 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080121DC @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _080121CA
- ldr r1, _080121E0 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080121E8
-_080121CA:
- ldr r1, _080121E4 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x1
- b _0801224A
- .align 2, 0
-_080121D4: .4byte gBattleMons
-_080121D8: .4byte gUnknown_02024A60
-_080121DC: .4byte 0x0400e000
-_080121E0: .4byte gUnknown_02024C98
-_080121E4: .4byte gUnknown_02024D1E
-_080121E8:
- ldr r0, _080121F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08012244
-_080121F4:
- movs r0, 0
- b _0801224A
- .align 2, 0
-_080121F8: .4byte gUnknown_020239F8
-_080121FC:
- ldr r0, _08012210 @ =0x02000000
- ldr r1, _08012214 @ =0x00016003
- adds r0, r1
- strb r5, [r0]
- ldr r1, _08012218 @ =byte_2024C06
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _0801221C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _08012248
- .align 2, 0
-_08012210: .4byte 0x02000000
-_08012214: .4byte 0x00016003
-_08012218: .4byte byte_2024C06
-_0801221C: .4byte gUnknown_02024D1E
-_08012220:
- ldr r0, _08012234 @ =0x02000000
- ldr r1, _08012238 @ =0x00016003
- adds r0, r1
- strb r5, [r0]
- ldr r1, _0801223C @ =byte_2024C06
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r1, _08012240 @ =gUnknown_02024D1E
- movs r0, 0x2
- b _08012248
- .align 2, 0
-_08012234: .4byte 0x02000000
-_08012238: .4byte 0x00016003
-_0801223C: .4byte byte_2024C06
-_08012240: .4byte gUnknown_02024D1E
-_08012244:
- ldr r1, _08012254 @ =gUnknown_02024D1E
- movs r0, 0x1
-_08012248:
- strb r0, [r1, 0x5]
-_0801224A:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08012254: .4byte gUnknown_02024D1E
- thumb_func_end sub_8012028
-
- thumb_func_start sub_8012258
-sub_8012258: @ 8012258
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r7, _080122E4 @ =gUnknown_02024A6A
- ldr r4, _080122E8 @ =gUnknown_02038470
- ldr r1, _080122EC @ =0x02000000
- lsls r6, r5, 1
- ldr r2, _080122F0 @ =0x0001606c
- adds r0, r5, r2
- adds r0, r6, r0
- adds r2, r0, r1
-_08012270:
- adds r1, r3, r4
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _08012270
- adds r0, r6, r7
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r7, _080122EC @ =0x02000000
- ldr r1, _080122F4 @ =0x00016068
- adds r0, r5, r1
- adds r0, r7
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8094C98
- ldr r0, _080122F8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080122FC
- movs r3, 0
- ldr r2, _080122F0 @ =0x0001606c
- movs r0, 0x2
- adds r1, r5, 0
- eors r1, r0
- adds r0, r5, r2
- adds r0, r6, r0
- adds r4, r0, r7
- ldr r5, _080122E8 @ =gUnknown_02038470
- lsls r0, r1, 1
- adds r0, r1
- adds r0, r2
- adds r2, r0, r7
-_080122CC:
- adds r0, r3, r5
- ldrb r1, [r0]
- strb r1, [r4]
- ldrb r0, [r0]
- strb r0, [r2]
- adds r4, 0x1
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _080122CC
- b _08012316
- .align 2, 0
-_080122E4: .4byte gUnknown_02024A6A
-_080122E8: .4byte gUnknown_02038470
-_080122EC: .4byte 0x02000000
-_080122F0: .4byte 0x0001606c
-_080122F4: .4byte 0x00016068
-_080122F8: .4byte gUnknown_020239F8
-_080122FC:
- movs r3, 0
- ldr r2, _0801231C @ =0x0001606c
- adds r0, r5, r2
- adds r0, r6, r0
- adds r1, r0, r7
- ldr r2, _08012320 @ =gUnknown_02038470
-_08012308:
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, 0x1
- adds r3, 0x1
- cmp r3, 0x2
- ble _08012308
-_08012316:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801231C: .4byte 0x0001606c
-_08012320: .4byte gUnknown_02038470
- thumb_func_end sub_8012258
-
- thumb_func_start sub_8012324
-sub_8012324: @ 8012324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _08012340 @ =gUnknown_02024D1E
- movs r1, 0
- strb r1, [r0, 0x4]
- ldr r0, _08012344 @ =gUnknown_02024A60
- strb r1, [r0]
- ldr r0, _08012348 @ =gUnknown_02024A68
- bl _08012F74
- .align 2, 0
-_08012340: .4byte gUnknown_02024D1E
-_08012344: .4byte gUnknown_02024A60
-_08012348: .4byte gUnknown_02024A68
-_0801234C:
- ldr r4, _08012374 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08012378 @ =gUnknown_02024D1E
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08012368
- bl _08012F66
-_08012368:
- lsls r0, 2
- ldr r1, _0801237C @ =_08012380
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012374: .4byte gUnknown_02024A60
-_08012378: .4byte gUnknown_02024D1E
-_0801237C: .4byte _08012380
- .align 2, 0
-_08012380:
- .4byte _0801239C
- .4byte _080124C8
- .4byte _08012A28
- .4byte _08012DA8
- .4byte _08012E50
- .4byte _08012E94
- .4byte _08012F38
-_0801239C:
- ldr r4, _08012434 @ =0x02000000
- ldr r0, _08012438 @ =gUnknown_02024A60
- ldrb r0, [r0]
- ldr r1, _0801243C @ =0x00016068
- adds r0, r1
- adds r0, r4
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080123F8
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _080123F8
- eors r5, r1
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- ldr r2, _08012444 @ =0x000160a6
- adds r1, r4, r2
- ldrb r1, [r1]
- ldr r2, _08012448 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080123F8
- ldr r4, _0801244C @ =gUnknown_02024D1E
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _080123F8
- bl _08012F66
-_080123F8:
- ldr r0, _08012434 @ =0x02000000
- ldr r3, _08012444 @ =0x000160a6
- adds r0, r3
- ldrb r3, [r0]
- ldr r1, _08012448 @ =gBitTable
- ldr r4, _08012438 @ =gUnknown_02024A60
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ands r3, r0
- cmp r3, 0
- beq _08012468
- ldr r0, _08012450 @ =gUnknown_02024C18
- adds r0, r2, r0
- movs r1, 0xD
- strb r1, [r0]
- ldr r0, _08012440 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08012454
- ldr r0, _0801244C @ =gUnknown_02024D1E
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x4
- strb r0, [r1]
- bl _08012F66
- .align 2, 0
-_08012434: .4byte 0x02000000
-_08012438: .4byte gUnknown_02024A60
-_0801243C: .4byte 0x00016068
-_08012440: .4byte gUnknown_020239F8
-_08012444: .4byte 0x000160a6
-_08012448: .4byte gBitTable
-_0801244C: .4byte gUnknown_02024D1E
-_08012450: .4byte gUnknown_02024C18
-_08012454:
- ldr r0, _08012464 @ =gUnknown_02024D1E
- ldrb r1, [r4]
- adds r1, r0
- movs r0, 0x3
- strb r0, [r1]
- bl _08012F66
- .align 2, 0
-_08012464: .4byte gUnknown_02024D1E
-_08012468:
- ldr r1, _0801249C @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _08012488
- movs r0, 0x80
- lsls r0, 15
- ands r1, r0
- cmp r1, 0
- beq _080124A8
-_08012488:
- ldr r0, _080124A0 @ =gUnknown_02024C18
- adds r0, r2, r0
- strb r3, [r0]
- ldr r1, _080124A4 @ =gUnknown_02024D1E
- ldrb r0, [r4]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08012F66
- .align 2, 0
-_0801249C: .4byte gBattleMons
-_080124A0: .4byte gUnknown_02024C18
-_080124A4: .4byte gUnknown_02024D1E
-_080124A8:
- ldr r0, _080124C0 @ =gUnknown_02024C18
- ldrb r1, [r0]
- ldr r0, _080124C4 @ =gUnknown_02024260
- ldrb r2, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0
- bl dp01_build_cmdbuf_x12_a_bb
- bl _08012E32
- .align 2, 0
-_080124C0: .4byte gUnknown_02024C18
-_080124C4: .4byte gUnknown_02024260
-_080124C8:
- ldr r4, _08012520 @ =gUnknown_02024A64
- ldr r1, _08012524 @ =gBitTable
- ldr r3, _08012528 @ =gUnknown_02024A60
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _080124F6
- bl _08012F66
-_080124F6:
- ldr r2, _0801252C @ =gUnknown_02024C18
- adds r2, r5, r2
- ldr r1, _08012530 @ =gUnknown_02024260
- lsls r0, r5, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _08012514
- b _08012968
-_08012514:
- lsls r0, 2
- ldr r1, _08012534 @ =_08012538
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012520: .4byte gUnknown_02024A64
-_08012524: .4byte gBitTable
-_08012528: .4byte gUnknown_02024A60
-_0801252C: .4byte gUnknown_02024C18
-_08012530: .4byte gUnknown_02024260
-_08012534: .4byte _08012538
- .align 2, 0
-_08012538:
- .4byte _0801256C
- .4byte _080126B4
- .4byte _080126E0
- .4byte _08012968
- .4byte _08012968
- .4byte _080128B0
- .4byte _08012908
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _08012968
- .4byte _0801292C
-_0801256C:
- bl sub_8015C90
- lsls r0, 24
- cmp r0, 0
- beq _080125D0
- ldr r0, _080125B4 @ =gUnknown_02024D1E
- ldr r2, _080125B8 @ =gUnknown_02024A60
- ldrb r1, [r2]
- adds r1, r0
- movs r4, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r3, _080125BC @ =0x02000000
- ldrb r0, [r2]
- ldr r1, _080125C0 @ =0x00016060
- adds r0, r1
- adds r0, r3
- strb r4, [r0]
- ldrb r0, [r2]
- ldr r4, _080125C4 @ =0x00016094
- adds r0, r4
- adds r0, r3
- movs r1, 0x3
- strb r1, [r0]
- ldrb r1, [r2]
- ldr r0, _080125C8 @ =0x00016010
- adds r2, r1, r0
- adds r2, r3
- ldr r0, _080125CC @ =gUnknown_02024260
- lsls r1, 9
- adds r0, 0x3
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- bl _08012F90
- .align 2, 0
-_080125B4: .4byte gUnknown_02024D1E
-_080125B8: .4byte gUnknown_02024A60
-_080125BC: .4byte 0x02000000
-_080125C0: .4byte 0x00016060
-_080125C4: .4byte 0x00016094
-_080125C8: .4byte 0x00016010
-_080125CC: .4byte gUnknown_02024260
-_080125D0:
- ldr r1, _080125FC @ =gUnknown_02024CA8
- ldr r5, _08012600 @ =gUnknown_02024A60
- ldrb r4, [r5]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r2, [r0, 0x6]
- cmp r2, 0
- beq _0801260C
- ldr r1, _08012604 @ =gUnknown_02024C60
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _08012608 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0]
- bl _08012F90
- .align 2, 0
-_080125FC: .4byte gUnknown_02024CA8
-_08012600: .4byte gUnknown_02024A60
-_08012604: .4byte gUnknown_02024C60
-_08012608: .4byte gUnknown_02024D1E
-_0801260C:
- add r2, sp, 0x4
- ldr r3, _080126AC @ =gBattleMons
- movs r1, 0x58
- adds r0, r4, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r2, 0x10]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- strb r0, [r2, 0x12]
- ldrb r0, [r5]
- muls r0, r1
- adds r0, r3
- adds r0, 0x22
- ldrb r0, [r0]
- strb r0, [r2, 0x13]
- movs r4, 0
- mov r1, sp
- adds r1, 0xC
- str r1, [sp, 0x18]
- add r2, sp, 0x10
- mov r10, r2
- mov r8, r3
- adds r7, r5, 0
- movs r6, 0x58
- movs r3, 0xC
- add r3, r8
- mov r9, r3
- add r5, sp, 0x4
-_0801264E:
- lsls r2, r4, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2, r0
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r5]
- ldr r0, [sp, 0x18]
- adds r3, r0, r4
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r2, r1
- add r2, r9
- ldrh r0, [r2]
- add r1, r8
- adds r1, 0x3B
- ldrb r1, [r1]
- lsls r2, r4, 24
- lsrs r2, 24
- bl CalculatePPWithBonus
- mov r2, r10
- adds r1, r2, r4
- strb r0, [r1]
- adds r5, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0801264E
- ldr r0, _080126B0 @ =gUnknown_020239F8
- ldrb r0, [r0]
- movs r1, 0x1
- ands r1, r0
- movs r0, 0
- movs r2, 0
- add r3, sp, 0x4
- bl sub_800CBA4
- b _0801289E
- .align 2, 0
-_080126AC: .4byte gBattleMons
-_080126B0: .4byte gUnknown_020239F8
-_080126B4:
- ldr r0, _080126D0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _080126D4 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _080126C2
- b _08012908
-_080126C2:
- ldr r1, _080126D8 @ =gUnknown_02024C1C
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080126DC @ =gUnknown_081D9B29
- b _080129CC
- .align 2, 0
-_080126D0: .4byte gUnknown_020239F8
-_080126D4: .4byte 0x00000902
-_080126D8: .4byte gUnknown_02024C1C
-_080126DC: .4byte gUnknown_081D9B29
-_080126E0:
- ldr r3, _08012738 @ =0x02000000
- ldr r5, _0801273C @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r4, _08012740 @ =0x00016064
- adds r1, r0, r4
- adds r1, r3
- ldr r2, _08012744 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r7, _08012748 @ =gBattleMons
- ldrb r2, [r5]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0801274C @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _08012722
- ldr r0, _08012750 @ =gUnknown_02024C98
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _08012758
-_08012722:
- lsls r0, r2, 1
- adds r0, r2
- ldr r2, _08012754 @ =0x0001606c
- adds r1, r3, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0x6
- b _0801286C
- .align 2, 0
-_08012738: .4byte 0x02000000
-_0801273C: .4byte gUnknown_02024A60
-_08012740: .4byte 0x00016064
-_08012744: .4byte gUnknown_02024A6A
-_08012748: .4byte gBattleMons
-_0801274C: .4byte 0x0400e000
-_08012750: .4byte gUnknown_02024C98
-_08012754: .4byte 0x0001606c
-_08012758:
- str r1, [sp]
- movs r0, 0xC
- adds r1, r2, 0
- movs r2, 0x17
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080127E0
- ldrb r1, [r5]
- str r4, [sp]
- movs r0, 0xC
- movs r2, 0x47
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080127A8
- ldrb r0, [r5]
- muls r0, r6
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080127A8
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080127A8
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _080127E0
-_080127A8:
- ldr r5, _08012808 @ =gUnknown_02024A60
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- movs r2, 0x2A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08012818
- ldr r2, _0801280C @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _080127E0
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08012818
-_080127E0:
- subs r1, r4, 0x1
- lsls r1, 4
- movs r0, 0x4
- orrs r1, r0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08012810 @ =byte_2024C06
- ldrb r3, [r0]
- ldr r0, _08012808 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 1
- adds r0, r2
- ldr r2, _08012814 @ =0x0201606c
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r2, 0x6
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- b _0801289E
- .align 2, 0
-_08012808: .4byte gUnknown_02024A60
-_0801280C: .4byte gBattleMons
-_08012810: .4byte byte_2024C06
-_08012814: .4byte 0x0201606c
-_08012818:
- ldr r0, _08012830 @ =gUnknown_02024A60
- ldrb r1, [r0]
- mov r8, r0
- cmp r1, 0x2
- bne _08012840
- ldr r0, _08012834 @ =gUnknown_02024C18
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08012840
- ldr r3, _08012838 @ =0x02000000
- ldr r4, _0801283C @ =0x00016068
- b _08012854
- .align 2, 0
-_08012830: .4byte gUnknown_02024A60
-_08012834: .4byte gUnknown_02024C18
-_08012838: .4byte 0x02000000
-_0801283C: .4byte 0x00016068
-_08012840:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0x3
- bne _08012884
- ldr r0, _08012874 @ =gUnknown_02024C18
- ldrb r0, [r0, 0x1]
- cmp r0, 0x2
- bne _08012884
- ldr r3, _08012878 @ =0x02000000
- ldr r4, _0801287C @ =0x00016069
-_08012854:
- adds r0, r3, r4
- ldrb r2, [r0]
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _08012880 @ =0x0001606c
- adds r3, r1
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r1, 0
-_0801286C:
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- b _0801289E
- .align 2, 0
-_08012874: .4byte gUnknown_02024C18
-_08012878: .4byte 0x02000000
-_0801287C: .4byte 0x00016069
-_08012880: .4byte 0x0001606c
-_08012884:
- ldr r0, _080128A8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _080128AC @ =0x0201606c
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x6
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
-_0801289E:
- ldr r0, _080128A8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08012968
- .align 2, 0
-_080128A8: .4byte gUnknown_02024A60
-_080128AC: .4byte 0x0201606c
-_080128B0:
- bl PlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- beq _08012968
- ldr r1, _080128EC @ =gUnknown_02024C1C
- ldr r2, _080128F0 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080128F4 @ =gUnknown_081D8E4A
- str r1, [r0]
- ldr r0, _080128F8 @ =gUnknown_02024D1E
- ldrb r1, [r2]
- adds r1, r0
- movs r3, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r1, _080128FC @ =0x02000000
- ldrb r0, [r2]
- ldr r4, _08012900 @ =0x00016060
- adds r0, r4
- adds r0, r1
- strb r3, [r0]
- ldrb r0, [r2]
- ldr r2, _08012904 @ =0x00016094
- adds r0, r2
- adds r0, r1
- strb r3, [r0]
- b _08012F90
- .align 2, 0
-_080128EC: .4byte gUnknown_02024C1C
-_080128F0: .4byte gUnknown_02024A60
-_080128F4: .4byte gUnknown_081D8E4A
-_080128F8: .4byte gUnknown_02024D1E
-_080128FC: .4byte 0x02000000
-_08012900: .4byte 0x00016060
-_08012904: .4byte 0x00016094
-_08012908:
- ldr r4, _08012924 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08012928 @ =0x0201606c
- adds r1, r0
- movs r0, 0
- bl sub_800CBE0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08012968
- .align 2, 0
-_08012924: .4byte gUnknown_02024A60
-_08012928: .4byte 0x0201606c
-_0801292C:
- ldr r4, _08012964 @ =gUnknown_02024D1E
- mov r3, r8
- ldrb r1, [r3]
- adds r1, r4
- movs r5, 0
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r3]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- strb r5, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x32_32_32_32
- mov r4, r8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08012F90
- .align 2, 0
-_08012964: .4byte gUnknown_02024D1E
-_08012968:
- ldr r0, _08012994 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0x8
- bne _080129A8
- ldr r0, _08012998 @ =gUnknown_02024260
- ldr r4, _0801299C @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _080129A8
- ldr r0, _080129A0 @ =gUnknown_081D8E37
- bl b_call_bc_move_exec
- ldr r1, _080129A4 @ =gUnknown_02024D1E
- ldrb r0, [r4]
- adds r0, r1
- b _08012BFE
- .align 2, 0
-_08012994: .4byte gUnknown_020239F8
-_08012998: .4byte gUnknown_02024260
-_0801299C: .4byte gUnknown_02024A60
-_080129A0: .4byte gUnknown_081D8E37
-_080129A4: .4byte gUnknown_02024D1E
-_080129A8:
- bl sub_8012028
- lsls r0, 24
- cmp r0, 0
- beq _08012A14
- ldr r0, _080129F4 @ =gUnknown_02024260
- ldr r3, _080129F8 @ =gUnknown_02024A60
- ldrb r2, [r3]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bne _08012A14
- ldr r1, _080129FC @ =gUnknown_02024C1C
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08012A00 @ =gUnknown_081D8E44
-_080129CC:
- str r1, [r0]
- ldr r0, _08012A04 @ =gUnknown_02024D1E
- ldrb r1, [r3]
- adds r1, r0
- movs r2, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r1, _08012A08 @ =0x02000000
- ldrb r0, [r3]
- ldr r4, _08012A0C @ =0x00016060
- adds r0, r4
- adds r0, r1
- strb r2, [r0]
- ldrb r0, [r3]
- ldr r3, _08012A10 @ =0x00016094
- adds r0, r3
- adds r0, r1
- strb r2, [r0]
- b _08012F90
- .align 2, 0
-_080129F4: .4byte gUnknown_02024260
-_080129F8: .4byte gUnknown_02024A60
-_080129FC: .4byte gUnknown_02024C1C
-_08012A00: .4byte gUnknown_081D8E44
-_08012A04: .4byte gUnknown_02024D1E
-_08012A08: .4byte 0x02000000
-_08012A0C: .4byte 0x00016060
-_08012A10: .4byte 0x00016094
-_08012A14:
- ldr r2, _08012A20 @ =gUnknown_02024D1E
- ldr r0, _08012A24 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012A20: .4byte gUnknown_02024D1E
-_08012A24: .4byte gUnknown_02024A60
-_08012A28:
- ldr r4, _08012A6C @ =gUnknown_02024A64
- ldr r1, _08012A70 @ =gBitTable
- ldr r3, _08012A74 @ =gUnknown_02024A60
- ldrb r5, [r3]
- lsls r0, r5, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r1, [r4]
- ands r1, r0
- mov r8, r3
- cmp r1, 0
- beq _08012A54
- b _08012F66
-_08012A54:
- ldr r1, _08012A78 @ =gUnknown_02024C18
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x9
- bls _08012A62
- b _08012F66
-_08012A62:
- lsls r0, 2
- ldr r1, _08012A7C @ =_08012A80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08012A6C: .4byte gUnknown_02024A64
-_08012A70: .4byte gBitTable
-_08012A74: .4byte gUnknown_02024A60
-_08012A78: .4byte gUnknown_02024C18
-_08012A7C: .4byte _08012A80
- .align 2, 0
-_08012A80:
- .4byte _08012AA8
- .4byte _08012BB0
- .4byte _08012BE8
- .4byte _08012CE0
- .4byte _08012D04
- .4byte _08012D18
- .4byte _08012D2C
- .4byte _08012D5C
- .4byte _08012D70
- .4byte _08012D94
-_08012AA8:
- ldr r0, _08012AC8 @ =gUnknown_02024260
- mov r1, r8
- ldrb r4, [r1]
- lsls r1, r4, 9
- adds r2, r0, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r6, r0, 0
- cmp r1, 0x9
- bgt _08012ACC
- cmp r1, 0x3
- blt _08012ACC
- adds r0, r4, r3
- strb r1, [r0]
- b _08012F90
- .align 2, 0
-_08012AC8: .4byte gUnknown_02024260
-_08012ACC:
- adds r3, r6, 0
- mov r5, r8
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r7, r3, 0x2
- adds r0, r1, r7
- ldrb r2, [r0]
- adds r3, 0x3
- mov r9, r3
- add r1, r9
- ldrb r0, [r1]
- lsls r0, 8
- orrs r2, r0
- ldr r0, _08012AF4 @ =0x0000ffff
- cmp r2, r0
- bne _08012AFC
- ldr r0, _08012AF8 @ =gUnknown_02024D1E
- adds r0, r4, r0
- b _08012BFE
- .align 2, 0
-_08012AF4: .4byte 0x0000ffff
-_08012AF8: .4byte gUnknown_02024D1E
-_08012AFC:
- bl sub_8015894
- lsls r0, 24
- cmp r0, 0
- beq _08012B48
- ldr r0, _08012B38 @ =gUnknown_02024D1E
- ldrb r1, [r5]
- adds r1, r0
- movs r2, 0
- movs r0, 0x5
- strb r0, [r1]
- ldr r3, _08012B3C @ =0x02000000
- ldrb r0, [r5]
- ldr r4, _08012B40 @ =0x00016060
- adds r0, r4
- adds r0, r3
- strb r2, [r0]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r6, 0x1
- adds r0, r1
- strb r2, [r0]
- ldrb r0, [r5]
- ldr r1, _08012B44 @ =0x00016094
- adds r0, r1
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- b _08012F90
- .align 2, 0
-_08012B38: .4byte gUnknown_02024D1E
-_08012B3C: .4byte 0x02000000
-_08012B40: .4byte 0x00016060
-_08012B44: .4byte 0x00016094
-_08012B48:
- ldr r6, _08012B98 @ =0x02000000
- mov r2, r8
- ldrb r0, [r2]
- ldr r2, _08012B9C @ =0x0001608c
- adds r1, r0, r2
- adds r1, r6
- lsls r0, 9
- adds r0, r7
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08012BA0 @ =gUnknown_02024C60
- mov r4, r8
- ldrb r3, [r4]
- lsls r5, r3, 1
- adds r5, r0
- ldr r4, _08012BA4 @ =gBattleMons
- adds r2, r3, r2
- adds r2, r6
- ldrb r0, [r2]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r4, 0xC
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r5]
- mov r1, r8
- ldrb r0, [r1]
- ldr r2, _08012BA8 @ =0x00016010
- adds r1, r0, r2
- adds r1, r6
- lsls r0, 9
- add r0, r9
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08012BAC @ =gUnknown_02024D1E
- mov r3, r8
- ldrb r1, [r3]
- b _08012E3C
- .align 2, 0
-_08012B98: .4byte 0x02000000
-_08012B9C: .4byte 0x0001608c
-_08012BA0: .4byte gUnknown_02024C60
-_08012BA4: .4byte gBattleMons
-_08012BA8: .4byte 0x00016010
-_08012BAC: .4byte gUnknown_02024D1E
-_08012BB0:
- ldr r2, _08012BD8 @ =gUnknown_02024260
- ldr r5, _08012BDC @ =gUnknown_02024A60
- ldrb r4, [r5]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _08012BCE
- b _08012F60
-_08012BCE:
- ldr r0, _08012BE0 @ =gUnknown_02024C04
- strh r3, [r0]
- ldr r0, _08012BE4 @ =gUnknown_02024D1E
- ldrb r1, [r5]
- b _08012E3C
- .align 2, 0
-_08012BD8: .4byte gUnknown_02024260
-_08012BDC: .4byte gUnknown_02024A60
-_08012BE0: .4byte gUnknown_02024C04
-_08012BE4: .4byte gUnknown_02024D1E
-_08012BE8:
- ldr r4, _08012C04 @ =gUnknown_02024260
- ldr r7, _08012C08 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 9
- adds r1, r4, 0x1
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0x6
- bne _08012C10
- ldr r0, _08012C0C @ =gUnknown_02024D1E
- adds r0, r2, r0
-_08012BFE:
- movs r1, 0
- strb r1, [r0]
- b _08012F66
- .align 2, 0
-_08012C04: .4byte gUnknown_02024260
-_08012C08: .4byte gUnknown_02024A60
-_08012C0C: .4byte gUnknown_02024D1E
-_08012C10:
- ldr r0, _08012CC4 @ =0x02000000
- mov r12, r0
- ldr r3, _08012CC8 @ =0x00016068
- adds r0, r2, r3
- add r0, r12
- strb r1, [r0]
- ldr r0, _08012CCC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08012CBE
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r5, _08012CD0 @ =0x0001606c
- adds r1, r5
- add r1, r12
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r2, r0, 1
- adds r2, r0
- adds r2, r5
- add r2, r12
- lsls r0, 9
- adds r6, r4, 0x2
- adds r0, r6
- ldrb r1, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r2, _08012CD4 @ =0x0001606d
- adds r1, r2
- add r1, r12
- lsls r0, 9
- adds r4, 0x3
- mov r8, r4
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- add r1, r12
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 9
- adds r0, r6
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- lsls r1, r4, 1
- adds r1, r4
- ldr r3, _08012CD8 @ =0x0001606e
- adds r1, r3
- add r1, r12
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
-_08012CBE:
- ldr r0, _08012CDC @ =gUnknown_02024D1E
- ldrb r1, [r7]
- b _08012E3C
- .align 2, 0
-_08012CC4: .4byte 0x02000000
-_08012CC8: .4byte 0x00016068
-_08012CCC: .4byte gUnknown_020239F8
-_08012CD0: .4byte 0x0001606c
-_08012CD4: .4byte 0x0001606d
-_08012CD8: .4byte 0x0001606e
-_08012CDC: .4byte gUnknown_02024D1E
-_08012CE0:
- ldr r2, _08012CF8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08012CFC @ =gUnknown_02024D1E
- ldr r0, _08012D00 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012CF8: .4byte gUnknown_02024C6C
-_08012CFC: .4byte gUnknown_02024D1E
-_08012D00: .4byte gUnknown_02024A60
-_08012D04:
- ldr r2, _08012D10 @ =gUnknown_02024D1E
- ldr r0, _08012D14 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D10: .4byte gUnknown_02024D1E
-_08012D14: .4byte gUnknown_02024A60
-_08012D18:
- ldr r2, _08012D24 @ =gUnknown_02024D1E
- ldr r0, _08012D28 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D24: .4byte gUnknown_02024D1E
-_08012D28: .4byte gUnknown_02024A60
-_08012D2C:
- ldr r2, _08012D50 @ =gUnknown_02024260
- ldr r0, _08012D54 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r1, r4, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- cmp r3, 0
- bne _08012D4A
- b _08012F60
-_08012D4A:
- ldr r1, _08012D58 @ =gUnknown_02024D1E
- adds r1, r4, r1
- b _08012E3E
- .align 2, 0
-_08012D50: .4byte gUnknown_02024260
-_08012D54: .4byte gUnknown_02024A60
-_08012D58: .4byte gUnknown_02024D1E
-_08012D5C:
- ldr r2, _08012D68 @ =gUnknown_02024D1E
- ldr r0, _08012D6C @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D68: .4byte gUnknown_02024D1E
-_08012D6C: .4byte gUnknown_02024A60
-_08012D70:
- ldr r2, _08012D88 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- str r0, [r2]
- ldr r2, _08012D8C @ =gUnknown_02024D1E
- ldr r0, _08012D90 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012D88: .4byte gUnknown_02024C6C
-_08012D8C: .4byte gUnknown_02024D1E
-_08012D90: .4byte gUnknown_02024A60
-_08012D94:
- ldr r2, _08012DA0 @ =gUnknown_02024D1E
- ldr r0, _08012DA4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, r2
- b _08012E3E
- .align 2, 0
-_08012DA0: .4byte gUnknown_02024D1E
-_08012DA4: .4byte gUnknown_02024A60
-_08012DA8:
- ldr r3, _08012E10 @ =gUnknown_02024A64
- ldr r4, _08012E14 @ =gBitTable
- ldr r0, _08012E18 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- beq _08012DD2
- b _08012F66
-_08012DD2:
- ldr r0, _08012E1C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _08012E06
- movs r1, 0x2
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- bne _08012E06
- adds r0, r5, 0
- eors r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08012E20 @ =0x02000000
- ldr r2, _08012E24 @ =0x000160a6
- adds r1, r2
- ldrb r1, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08012E28
-_08012E06:
- movs r0, 0
- movs r1, 0
- bl sub_800D1D8
- b _08012E30
- .align 2, 0
-_08012E10: .4byte gUnknown_02024A64
-_08012E14: .4byte gBitTable
-_08012E18: .4byte gUnknown_02024A60
-_08012E1C: .4byte gUnknown_020239F8
-_08012E20: .4byte 0x02000000
-_08012E24: .4byte 0x000160a6
-_08012E28:
- movs r0, 0
- movs r1, 0x1
- bl sub_800D1D8
-_08012E30:
- ldr r4, _08012E48 @ =gUnknown_02024A60
-_08012E32:
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _08012E4C @ =gUnknown_02024D1E
- ldrb r1, [r4]
-_08012E3C:
- adds r1, r0
-_08012E3E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08012F66
- .align 2, 0
-_08012E48: .4byte gUnknown_02024A60
-_08012E4C: .4byte gUnknown_02024D1E
-_08012E50:
- ldr r3, _08012E84 @ =gUnknown_02024A64
- ldr r1, _08012E88 @ =gBitTable
- ldr r0, _08012E8C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08012F66
- ldr r1, _08012E90 @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _08012F66
- .align 2, 0
-_08012E84: .4byte gUnknown_02024A64
-_08012E88: .4byte gBitTable
-_08012E8C: .4byte gUnknown_02024A60
-_08012E90: .4byte gUnknown_02024D1E
-_08012E94:
- ldr r2, _08012EB8 @ =0x02000000
- ldr r5, _08012EBC @ =gUnknown_02024A60
- ldrb r1, [r5]
- ldr r3, _08012EC0 @ =0x00016060
- adds r0, r1, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08012ECC
- ldr r0, _08012EC4 @ =gUnknown_02024D1E
- adds r0, r1, r0
- ldr r4, _08012EC8 @ =0x00016094
- adds r1, r4
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- b _08012F66
- .align 2, 0
-_08012EB8: .4byte 0x02000000
-_08012EBC: .4byte gUnknown_02024A60
-_08012EC0: .4byte 0x00016060
-_08012EC4: .4byte gUnknown_02024D1E
-_08012EC8: .4byte 0x00016094
-_08012ECC:
- ldr r0, _08012F20 @ =gUnknown_02024C07
- strb r1, [r0]
- ldr r7, _08012F24 @ =gUnknown_02024C10
- ldr r6, _08012F28 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r4, [r0]
- str r4, [r7]
- ldr r3, _08012F2C @ =gUnknown_02024A64
- ldr r1, _08012F30 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r1, r2, 4
- movs r0, 0xF0
- lsls r0, 24
- orrs r1, r0
- orrs r1, r2
- lsls r0, r2, 8
- orrs r1, r0
- lsls r2, 12
- orrs r1, r2
- ldr r0, [r3]
- ands r0, r1
- cmp r0, 0
- bne _08012F12
- ldr r0, _08012F34 @ =gUnknown_081FA73C
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
-_08012F12:
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r7]
- str r1, [r0]
- b _08012F66
- .align 2, 0
-_08012F20: .4byte gUnknown_02024C07
-_08012F24: .4byte gUnknown_02024C10
-_08012F28: .4byte gUnknown_02024C1C
-_08012F2C: .4byte gUnknown_02024A64
-_08012F30: .4byte gBitTable
-_08012F34: .4byte gUnknown_081FA73C
-_08012F38:
- ldr r3, _08012FA0 @ =gUnknown_02024A64
- ldr r1, _08012FA4 @ =gBitTable
- ldr r0, _08012FA8 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r0, r4, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r2, 4
- movs r1, 0xF0
- lsls r1, 24
- orrs r0, r1
- orrs r0, r2
- lsls r1, r2, 8
- orrs r0, r1
- lsls r2, 12
- orrs r0, r2
- ldr r3, [r3]
- ands r3, r0
- cmp r3, 0
- bne _08012F66
-_08012F60:
- ldr r0, _08012FAC @ =gUnknown_02024D1E
- adds r0, r4, r0
- strb r3, [r0]
-_08012F66:
- ldr r0, _08012FA8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08012FB0 @ =gUnknown_02024A68
- lsls r1, 24
- lsrs r1, 24
-_08012F74:
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r1, r0
- bcs _08012F80
- bl _0801234C
-_08012F80:
- ldr r0, _08012FAC @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x4]
- ldrb r2, [r2]
- cmp r0, r2
- bne _08012F90
- ldr r1, _08012FB4 @ =gUnknown_030042D4
- ldr r0, _08012FB8 @ =sub_80133C8
- str r0, [r1]
-_08012F90:
- 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
-_08012FA0: .4byte gUnknown_02024A64
-_08012FA4: .4byte gBitTable
-_08012FA8: .4byte gUnknown_02024A60
-_08012FAC: .4byte gUnknown_02024D1E
-_08012FB0: .4byte gUnknown_02024A68
-_08012FB4: .4byte gUnknown_030042D4
-_08012FB8: .4byte sub_80133C8
- thumb_func_end sub_8012324
-
- thumb_func_start sub_8012FBC
-sub_8012FBC: @ 8012FBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08012FE8 @ =gUnknown_02024A76
- adds r4, r0, r2
- ldrb r5, [r4]
- adds r2, r1, r2
- ldrb r3, [r2]
- strb r3, [r4]
- strb r5, [r2]
- ldr r2, _08012FEC @ =gUnknown_02024A7A
- adds r0, r2
- ldrb r5, [r0]
- adds r1, r2
- ldrb r2, [r1]
- strb r2, [r0]
- strb r5, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08012FE8: .4byte gUnknown_02024A76
-_08012FEC: .4byte gUnknown_02024A7A
- thumb_func_end sub_8012FBC
-
- thumb_func_start b_first_side
-b_first_side: @ 8012FF0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _080130B8
- ldr r1, [sp, 0x8]
- str r1, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _080130B8
- ldr r1, _08013070 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x21
- bne _0801305C
- ldr r0, _08013074 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801306C
-_0801305C:
- cmp r3, 0x22
- bne _08013078
- ldr r0, _08013074 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08013078
-_0801306C:
- movs r3, 0x2
- b _0801307A
- .align 2, 0
-_08013070: .4byte gBattleMons
-_08013074: .4byte word_2024DB8
-_08013078:
- movs r3, 0x1
-_0801307A:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r2, _080130B0 @ =gBattleMons
- adds r0, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x21
- bne _0801309A
- ldr r0, _080130B4 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _080130AA
-_0801309A:
- cmp r2, 0x22
- bne _080130BA
- ldr r0, _080130B4 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080130BA
-_080130AA:
- movs r7, 0x2
- b _080130BC
- .align 2, 0
-_080130B0: .4byte gBattleMons
-_080130B4: .4byte word_2024DB8
-_080130B8:
- movs r3, 0x1
-_080130BA:
- movs r7, 0x1
-_080130BC:
- ldr r1, _08013100 @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- muls r3, r0
- ldr r2, _08013104 @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- mov r8, r0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _0801310C
- ldr r1, _08013108 @ =gEnigmaBerries
- mov r3, r9
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08013120
- .align 2, 0
-_08013100: .4byte gBattleMons
-_08013104: .4byte gStatStageRatios
-_08013108: .4byte gEnigmaBerries
-_0801310C:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08013120:
- ldr r0, _080131DC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08013154
- ldr r0, _080131E0 @ =0x00000809
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08013154
- mov r0, r9
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08013154
- movs r0, 0x6E
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x64
- bl __udivsi3
- mov r8, r0
-_08013154:
- cmp r6, 0x18
- bne _0801315E
- mov r2, r8
- lsrs r2, 1
- mov r8, r2
-_0801315E:
- ldr r1, _080131E4 @ =gBattleMons
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801317C
- mov r0, r8
- lsrs r0, 2
- mov r8, r0
-_0801317C:
- cmp r6, 0x1A
- bne _08013198
- ldr r0, _080131E8 @ =gUnknown_02024D1C
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08013198
- movs r1, 0x1
- negs r1, r1
- mov r8, r1
-_08013198:
- ldr r1, _080131E4 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r4, r0, r1
- ldrh r0, [r4, 0x6]
- adds r3, r0, 0
- muls r3, r7
- ldr r2, _080131EC @ =gStatStageRatios
- movs r1, 0x1B
- ldrsb r1, [r4, r1]
- lsls r1, 1
- adds r0, r1, r2
- ldrb r0, [r0]
- muls r0, r3
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- bl __divsi3
- adds r7, r0, 0
- ldrh r0, [r4, 0x2E]
- cmp r0, 0xAF
- bne _080131F4
- ldr r1, _080131F0 @ =gEnigmaBerries
- mov r3, r10
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- ldrb r5, [r0, 0x1A]
- b _08013208
- .align 2, 0
-_080131DC: .4byte gUnknown_020239F8
-_080131E0: .4byte 0x00000809
-_080131E4: .4byte gBattleMons
-_080131E8: .4byte gUnknown_02024D1C
-_080131EC: .4byte gStatStageRatios
-_080131F0: .4byte gEnigmaBerries
-_080131F4:
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r4, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r5, r0, 24
-_08013208:
- ldr r0, _08013280 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08013238
- ldr r0, _08013284 @ =0x00000809
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08013238
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08013238
- movs r0, 0x6E
- muls r0, r7
- movs r1, 0x64
- bl __udivsi3
- adds r7, r0, 0
-_08013238:
- cmp r6, 0x18
- bne _0801323E
- lsrs r7, 1
-_0801323E:
- ldr r2, _08013288 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801325A
- lsrs r7, 2
-_0801325A:
- cmp r6, 0x1A
- bne _08013274
- ldr r0, _0801328C @ =gUnknown_02024D1C
- ldrh r4, [r0]
- lsls r0, r5, 16
- subs r0, r5
- movs r1, 0x64
- bl __divsi3
- cmp r4, r0
- bge _08013274
- movs r7, 0x1
- negs r7, r7
-_08013274:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- beq _08013290
- movs r3, 0
- b _08013334
- .align 2, 0
-_08013280: .4byte gUnknown_020239F8
-_08013284: .4byte 0x00000809
-_08013288: .4byte gBattleMons
-_0801328C: .4byte gUnknown_02024D1C
-_08013290:
- ldr r0, _080132B0 @ =gUnknown_02024C18
- mov r3, r9
- adds r1, r3, r0
- ldrb r1, [r1]
- adds r2, r0, 0
- cmp r1, 0
- bne _080132E4
- ldr r0, _080132B4 @ =gUnknown_02024D28
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _080132B8
- movs r3, 0xA5
- b _080132E6
- .align 2, 0
-_080132B0: .4byte gUnknown_02024C18
-_080132B4: .4byte gUnknown_02024D28
-_080132B8:
- ldr r1, _080132D8 @ =0x02000000
- ldr r0, _080132DC @ =0x0001608c
- add r0, r9
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r3, r9
- muls r3, r1
- adds r1, r3, 0
- adds r0, r1
- ldr r1, _080132E0 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r3, [r0]
- b _080132E6
- .align 2, 0
-_080132D8: .4byte 0x02000000
-_080132DC: .4byte 0x0001608c
-_080132E0: .4byte gBattleMons
-_080132E4:
- movs r3, 0
-_080132E6:
- mov r1, r10
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013334
- ldr r0, _08013304 @ =gUnknown_02024D28
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- bge _08013308
- movs r2, 0xA5
- b _08013336
- .align 2, 0
-_08013304: .4byte gUnknown_02024D28
-_08013308:
- ldr r1, _08013328 @ =0x02000000
- ldr r0, _0801332C @ =0x0001608c
- add r0, r10
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- mov r2, r10
- muls r2, r1
- adds r1, r2, 0
- adds r0, r1
- ldr r1, _08013330 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldrh r2, [r0]
- b _08013336
- .align 2, 0
-_08013328: .4byte 0x02000000
-_0801332C: .4byte 0x0001608c
-_08013330: .4byte gBattleMons
-_08013334:
- movs r2, 0
-_08013336:
- ldr r4, _08013380 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- movs r1, 0x7
- ldrsb r1, [r0, r1]
- lsls r3, r2, 1
- cmp r1, 0
- bne _0801335A
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08013398
-_0801335A:
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r0, 24
- asrs r0, 24
- cmp r1, r0
- bne _0801338E
- cmp r8, r7
- bne _08013384
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08013384
- movs r3, 0x2
- b _080133B4
- .align 2, 0
-_08013380: .4byte gBattleMoves
-_08013384:
- cmp r8, r7
- bcs _080133B6
- movs r0, 0x1
- str r0, [sp, 0x8]
- b _080133B6
-_0801338E:
- cmp r1, r0
- bge _080133B6
- movs r1, 0x1
- str r1, [sp, 0x8]
- b _080133B6
-_08013398:
- cmp r8, r7
- bne _080133AE
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080133AE
- movs r2, 0x2
- str r2, [sp, 0x8]
- b _080133B6
-_080133AE:
- cmp r8, r7
- bcs _080133B6
- movs r3, 0x1
-_080133B4:
- str r3, [sp, 0x8]
-_080133B6:
- ldr r0, [sp, 0x8]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end b_first_side
-
- thumb_func_start sub_80133C8
-sub_80133C8: @ 80133C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r3, 0
- ldr r0, _0801341C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08013434
- ldr r0, _08013420 @ =gUnknown_02024A60
- strb r3, [r0]
- ldr r4, _08013424 @ =gUnknown_02024A68
- mov r8, r0
- ldrb r0, [r4]
- cmp r3, r0
- bcc _080133F0
- b _08013622
-_080133F0:
- ldr r7, _08013428 @ =gUnknown_02024A76
- ldr r6, _0801342C @ =gUnknown_02024C18
- mov r2, r8
- ldr r5, _08013430 @ =gUnknown_02024A7A
-_080133F8:
- adds r1, r3, r7
- ldrb r0, [r2]
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r3, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r3, 0x1
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- cmp r0, r1
- bcc _080133F8
- b _08013622
- .align 2, 0
-_0801341C: .4byte gUnknown_020239F8
-_08013420: .4byte gUnknown_02024A60
-_08013424: .4byte gUnknown_02024A68
-_08013428: .4byte gUnknown_02024A76
-_0801342C: .4byte gUnknown_02024C18
-_08013430: .4byte gUnknown_02024A7A
-_08013434:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013484
- ldr r0, _08013478 @ =gUnknown_02024A60
- strb r3, [r0]
- ldr r1, _0801347C @ =gUnknown_02024A68
- mov r8, r0
- adds r2, r1, 0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08013494
- ldr r0, _08013480 @ =gUnknown_02024C18
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x3
- beq _08013492
-_08013456:
- mov r7, r8
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0801347C @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08013494
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08013456
- b _08013492
- .align 2, 0
-_08013478: .4byte gUnknown_02024A60
-_0801347C: .4byte gUnknown_02024A68
-_08013480: .4byte gUnknown_02024C18
-_08013484:
- ldr r0, _080134FC @ =gUnknown_02024C18
- ldrb r0, [r0]
- ldr r2, _08013500 @ =gUnknown_02024A60
- mov r8, r2
- cmp r0, 0x3
- bne _08013494
- strb r3, [r2]
-_08013492:
- movs r3, 0x5
-_08013494:
- cmp r3, 0x5
- bne _08013520
- ldr r6, _08013504 @ =gUnknown_02024A76
- ldr r1, _080134FC @ =gUnknown_02024C18
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r6]
- ldr r2, _08013508 @ =gUnknown_02024A7A
- ldrb r0, [r3]
- strb r0, [r2]
- movs r3, 0x1
- movs r5, 0
- adds r4, r1, 0
- ldr r7, _0801350C @ =gUnknown_030042D4
- mov r9, r7
- ldr r0, _08013510 @ =bc_80154A0
- mov r12, r0
- ldr r1, _08013514 @ =0x02000000
- mov r10, r1
- ldr r7, _08013518 @ =gUnknown_02024A68
- ldrb r7, [r7]
- cmp r5, r7
- bge _080134EC
- adds r7, r6, 0
- adds r6, r4, 0
- adds r4, r2, 0
- ldr r2, _08013518 @ =gUnknown_02024A68
-_080134CE:
- mov r0, r8
- ldrb r0, [r0]
- cmp r5, r0
- beq _080134E4
- adds r1, r3, r7
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, r4
- strb r5, [r0]
- adds r3, 0x1
-_080134E4:
- adds r5, 0x1
- ldrb r1, [r2]
- cmp r5, r1
- blt _080134CE
-_080134EC:
- mov r2, r12
- mov r3, r9
- str r2, [r3]
- ldr r1, _0801351C @ =0x0001601d
- add r1, r10
- movs r0, 0
- strb r0, [r1]
- b _08013632
- .align 2, 0
-_080134FC: .4byte gUnknown_02024C18
-_08013500: .4byte gUnknown_02024A60
-_08013504: .4byte gUnknown_02024A76
-_08013508: .4byte gUnknown_02024A7A
-_0801350C: .4byte gUnknown_030042D4
-_08013510: .4byte bc_80154A0
-_08013514: .4byte 0x02000000
-_08013518: .4byte gUnknown_02024A68
-_0801351C: .4byte 0x0001601d
-_08013520:
- movs r0, 0
- mov r7, r8
- strb r0, [r7]
- ldr r1, _080135B0 @ =gUnknown_02024A68
- ldrb r0, [r1]
- cmp r0, 0
- beq _08013566
- ldr r6, _080135B4 @ =gUnknown_02024C18
- mov r2, r8
- ldr r5, _080135B8 @ =gUnknown_02024A76
- ldr r4, _080135BC @ =gUnknown_02024A7A
-_08013536:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013554
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08013554:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080135B0 @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013536
-_08013566:
- movs r0, 0
- mov r2, r8
- strb r0, [r2]
- ldr r7, _080135B0 @ =gUnknown_02024A68
- ldrb r0, [r7]
- cmp r0, 0
- beq _080135AA
- ldr r6, _080135B4 @ =gUnknown_02024C18
- ldr r5, _080135B8 @ =gUnknown_02024A76
- ldr r4, _080135BC @ =gUnknown_02024A7A
-_0801357A:
- ldrb r0, [r2]
- adds r0, r6
- ldrb r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08013598
- adds r0, r3, r5
- strb r1, [r0]
- adds r1, r3, r4
- mov r7, r8
- ldrb r0, [r7]
- strb r0, [r1]
- adds r3, 0x1
-_08013598:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080135B0 @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801357A
-_080135AA:
- movs r5, 0
- b _08013618
- .align 2, 0
-_080135B0: .4byte gUnknown_02024A68
-_080135B4: .4byte gUnknown_02024C18
-_080135B8: .4byte gUnknown_02024A76
-_080135BC: .4byte gUnknown_02024A7A
-_080135C0:
- adds r4, r5, 0x1
- adds r7, r4, 0
- ldrb r1, [r1]
- cmp r7, r1
- bge _08013616
- ldr r6, _08013640 @ =gUnknown_02024A76
- lsls r2, r5, 24
- mov r8, r2
-_080135D0:
- ldr r0, _08013644 @ =gUnknown_02024A7A
- adds r1, r5, r0
- ldrb r3, [r1]
- adds r0, r4, r0
- ldrb r1, [r0]
- adds r0, r5, r6
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _0801360C
- adds r0, r4, r6
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0801360C
- cmp r2, 0x2
- beq _0801360C
- cmp r0, 0x2
- beq _0801360C
- adds r0, r3, 0
- movs r2, 0
- bl b_first_side
- lsls r0, 24
- cmp r0, 0
- beq _0801360C
- lsls r1, r4, 24
- lsrs r1, 24
- mov r3, r8
- lsrs r0, r3, 24
- bl sub_8012FBC
-_0801360C:
- adds r4, 0x1
- ldr r0, _08013648 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _080135D0
-_08013616:
- adds r5, r7, 0
-_08013618:
- ldr r1, _08013648 @ =gUnknown_02024A68
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _080135C0
-_08013622:
- ldr r1, _0801364C @ =gUnknown_030042D4
- ldr r0, _08013650 @ =bc_80154A0
- str r0, [r1]
- ldr r0, _08013654 @ =0x02000000
- ldr r7, _08013658 @ =0x0001601d
- adds r0, r7
- movs r1, 0
- strb r1, [r0]
-_08013632:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013640: .4byte gUnknown_02024A76
-_08013644: .4byte gUnknown_02024A7A
-_08013648: .4byte gUnknown_02024A68
-_0801364C: .4byte gUnknown_030042D4
-_08013650: .4byte bc_80154A0
-_08013654: .4byte 0x02000000
-_08013658: .4byte 0x0001601d
- thumb_func_end sub_80133C8
-
- thumb_func_start sub_801365C
-sub_801365C: @ 801365C
- 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
- ldr r1, _080136B4 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080136B8 @ =gUnknown_02024A68
- ldrb r2, [r0]
- adds r5, r1, 0
- cmp r2, 0
- beq _08013754
- ldr r7, _080136BC @ =gUnknown_02024D28
- adds r6, r5, 0
- ldr r0, _080136C0 @ =gUnknown_02024AD0
- mov r12, r0
- ldr r1, _080136C4 @ =gUnknown_02024CA8
- mov r8, r1
- mov r10, r8
-_0801368A:
- mov r2, r9
- cmp r2, 0
- beq _080136C8
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r6]
- lsls r1, 4
- adds r1, r7
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08013724
- .align 2, 0
-_080136B4: .4byte gUnknown_02024A60
-_080136B8: .4byte gUnknown_02024A68
-_080136BC: .4byte gUnknown_02024D28
-_080136C0: .4byte gUnknown_02024AD0
-_080136C4: .4byte gUnknown_02024CA8
-_080136C8:
- ldrb r0, [r6]
- lsls r0, 4
- adds r2, r0, r7
- movs r1, 0
- mov r4, r10
- movs r3, 0
-_080136D4:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, 0xF
- bls _080136D4
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x16]
- cmp r0, 0
- beq _080136F2
- subs r0, 0x1
- strb r0, [r1, 0x16]
-_080136F2:
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- beq _08013724
- subs r0, 0x1
- strb r0, [r1, 0x19]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x19]
- cmp r0, 0
- bne _08013724
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _0801376C @ =0xffbfffff
- ands r0, r1
- str r0, [r2]
-_08013724:
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- bne _08013742
- movs r0, 0x58
- muls r2, r0
- add r2, r12
- ldr r0, [r2]
- ldr r1, _08013770 @ =0xfeffffff
- ands r0, r1
- str r0, [r2]
-_08013742:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08013774 @ =gUnknown_02024A68
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0801368A
-_08013754:
- movs r0, 0
- ldr r2, _08013778 @ =gUnknown_02024C80
- strb r0, [r2, 0x8]
- strb r0, [r2, 0x14]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801376C: .4byte 0xffbfffff
-_08013770: .4byte 0xfeffffff
-_08013774: .4byte gUnknown_02024A68
-_08013778: .4byte gUnknown_02024C80
- thumb_func_end sub_801365C
-
- thumb_func_start sub_801377C
-sub_801377C: @ 801377C
- push {r4-r6,lr}
- ldr r2, _080137C0 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r2]
- ldr r0, _080137C4 @ =gUnknown_02024A68
- ldrb r1, [r0]
- adds r6, r0, 0
- cmp r1, 0
- beq _080137BA
- adds r3, r2, 0
- movs r4, 0
- ldr r5, _080137C8 @ =gUnknown_02024D68
-_08013794:
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r5
- movs r1, 0
-_080137A0:
- adds r0, r2, r1
- strb r4, [r0]
- adds r1, 0x1
- cmp r1, 0x13
- bls _080137A0
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r6]
- cmp r0, r1
- bcc _08013794
-_080137BA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080137C0: .4byte gUnknown_02024A60
-_080137C4: .4byte gUnknown_02024A68
-_080137C8: .4byte gUnknown_02024D68
- thumb_func_end sub_801377C
-
- thumb_func_start bc_80154A0
-bc_80154A0: @ 80137CC
- push {r4-r7,lr}
- ldr r0, _08013850 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _08013884
- ldr r0, _08013854 @ =0x02000000
- ldr r1, _08013858 @ =0x0001601d
- adds r2, r0, r1
- ldr r0, _0801385C @ =gUnknown_02024A68
- ldrb r1, [r2]
- adds r7, r0, 0
- ldrb r0, [r7]
- cmp r1, r0
- bcs _08013884
- ldr r6, _08013860 @ =gUnknown_02024A60
- ldr r5, _08013864 @ =gUnknown_02024C07
- adds r4, r2, 0
- movs r1, 0x84
- lsls r1, 1
- mov r12, r1
-_080137FA:
- ldrb r0, [r4]
- strb r0, [r5]
- strb r0, [r6]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013868 @ =gUnknown_02024C60
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r12
- bne _0801387C
- ldr r1, _0801386C @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801387C
- ldr r2, _08013870 @ =gUnknown_02024CA8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _0801387C
- ldr r0, _08013874 @ =gUnknown_02024D28
- lsls r1, r3, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 29
- cmp r0, 0
- blt _0801387C
- ldr r0, _08013878 @ =gUnknown_081D94DA
- bl b_call_bc_move_exec
- b _080138BE
- .align 2, 0
-_08013850: .4byte gUnknown_02024C6C
-_08013854: .4byte 0x02000000
-_08013858: .4byte 0x0001601d
-_0801385C: .4byte gUnknown_02024A68
-_08013860: .4byte gUnknown_02024A60
-_08013864: .4byte gUnknown_02024C07
-_08013868: .4byte gUnknown_02024C60
-_0801386C: .4byte gBattleMons
-_08013870: .4byte gUnknown_02024CA8
-_08013874: .4byte gUnknown_02024D28
-_08013878: .4byte gUnknown_081D94DA
-_0801387C:
- ldrb r0, [r4]
- ldrb r2, [r7]
- cmp r0, r2
- bcc _080137FA
-_08013884:
- bl b_clear_atk_up_if_hit_flag_unless_enraged
- ldr r1, _080138C4 @ =gUnknown_02024A7E
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080138C8 @ =gUnknown_02024A7F
- ldr r0, _080138CC @ =gUnknown_02024A76
- movs r2, 0
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _080138D0 @ =gUnknown_02024DEC
- movs r3, 0
- strh r2, [r0]
- ldr r1, _080138D4 @ =0x02000000
- ldr r2, _080138D8 @ =0x0001601c
- adds r0, r1, r2
- strb r3, [r0]
- ldr r2, _080138DC @ =gUnknown_030042D4
- ldr r0, _080138E0 @ =sub_80138F0
- str r0, [r2]
- ldr r0, _080138E4 @ =gUnknown_02024D1E
- strb r3, [r0, 0x3]
- strb r3, [r0, 0x4]
- ldr r2, _080138E8 @ =0x00016112
- adds r0, r1, r2
- strb r3, [r0]
- ldr r0, _080138EC @ =0x00017130
- adds r1, r0
- strb r3, [r1]
-_080138BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080138C4: .4byte gUnknown_02024A7E
-_080138C8: .4byte gUnknown_02024A7F
-_080138CC: .4byte gUnknown_02024A76
-_080138D0: .4byte gUnknown_02024DEC
-_080138D4: .4byte 0x02000000
-_080138D8: .4byte 0x0001601c
-_080138DC: .4byte gUnknown_030042D4
-_080138E0: .4byte sub_80138F0
-_080138E4: .4byte gUnknown_02024D1E
-_080138E8: .4byte 0x00016112
-_080138EC: .4byte 0x00017130
- thumb_func_end bc_80154A0
-
- thumb_func_start sub_80138F0
-sub_80138F0: @ 80138F0
- push {r4-r6,lr}
- ldr r6, _08013944 @ =gUnknown_02024D26
- ldrb r0, [r6]
- ldr r2, _08013948 @ =gUnknown_02024A7F
- cmp r0, 0
- beq _08013900
- movs r0, 0xC
- strb r0, [r2]
-_08013900:
- ldr r1, _0801394C @ =0x02000000
- ldr r4, _08013950 @ =gUnknown_02024A7E
- ldrb r0, [r4]
- ldr r3, _08013954 @ =0x00016057
- adds r5, r1, r3
- strb r0, [r5]
- ldr r1, _08013958 @ =gUnknown_081FA640
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0801395C @ =gUnknown_02024A68
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08013970
- ldr r2, _08013960 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08013964 @ =0xffefffff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08013968 @ =gUnknown_030042D4
- ldr r2, _0801396C @ =gUnknown_081FA678
- ldrb r1, [r6]
- movs r0, 0x7F
- ands r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- b _08013984
- .align 2, 0
-_08013944: .4byte gUnknown_02024D26
-_08013948: .4byte gUnknown_02024A7F
-_0801394C: .4byte 0x02000000
-_08013950: .4byte gUnknown_02024A7E
-_08013954: .4byte 0x00016057
-_08013958: .4byte gUnknown_081FA640
-_0801395C: .4byte gUnknown_02024A68
-_08013960: .4byte gUnknown_02024C6C
-_08013964: .4byte 0xffefffff
-_08013968: .4byte gUnknown_030042D4
-_0801396C: .4byte gUnknown_081FA678
-_08013970:
- ldrb r0, [r5]
- cmp r0, r1
- beq _08013984
- ldr r2, _0801398C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08013990 @ =0xfffffdff
- ands r0, r1
- ldr r1, _08013994 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
-_08013984:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801398C: .4byte gUnknown_02024C6C
-_08013990: .4byte 0xfffffdff
-_08013994: .4byte 0xfff7ffff
- thumb_func_end sub_80138F0
-
- thumb_func_start sub_8013998
-sub_8013998: @ 8013998
- push {r4,lr}
- ldr r1, _080139D0 @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080139D4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080139EC
- ldr r1, _080139D8 @ =gUnknown_030041C0
- ldr r4, _080139DC @ =gUnknown_02024D26
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _080139E0 @ =gUnknown_02024C07
- strb r0, [r1]
- ldr r1, _080139E4 @ =gUnknown_02024C10
- ldr r0, _080139E8 @ =gUnknown_081D8E02
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08013B48
- .align 2, 0
-_080139D0: .4byte gUnknown_02024A7F
-_080139D4: .4byte gUnknown_020239F8
-_080139D8: .4byte gUnknown_030041C0
-_080139DC: .4byte gUnknown_02024D26
-_080139E0: .4byte gUnknown_02024C07
-_080139E4: .4byte gUnknown_02024C10
-_080139E8: .4byte gUnknown_081D8E02
-_080139EC:
- movs r0, 0x90
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08013A04
- ldr r1, _080139FC @ =gUnknown_02024C10
- ldr r0, _08013A00 @ =gUnknown_081D8E0D
- b _08013B46
- .align 2, 0
-_080139FC: .4byte gUnknown_02024C10
-_08013A00: .4byte gUnknown_081D8E0D
-_08013A04:
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0x8
- beq _08013A0E
- b _08013B42
-_08013A0E:
- bl sub_80325B8
- ldr r1, _08013A3C @ =gUnknown_02024C10
- ldr r0, _08013A40 @ =gUnknown_081D8DBE
- str r0, [r1]
- ldr r2, _08013A44 @ =gTrainers
- ldr r0, _08013A48 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x1]
- subs r0, 0x2
- cmp r0, 0x31
- bls _08013A30
- b _08013B38
-_08013A30:
- lsls r0, 2
- ldr r1, _08013A4C @ =_08013A50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08013A3C: .4byte gUnknown_02024C10
-_08013A40: .4byte gUnknown_081D8DBE
-_08013A44: .4byte gTrainers
-_08013A48: .4byte gTrainerBattleOpponent
-_08013A4C: .4byte _08013A50
- .align 2, 0
-_08013A50:
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B18
- .4byte _08013B2E
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B18
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B38
- .4byte _08013B24
- .4byte _08013B24
- .4byte _08013B24
-_08013B18:
- ldr r0, _08013B20 @ =0x00000163
- bl PlayBGM
- b _08013B48
- .align 2, 0
-_08013B20: .4byte 0x00000163
-_08013B24:
- movs r0, 0xD4
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B2E:
- movs r0, 0xB1
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B38:
- movs r0, 0xCE
- lsls r0, 1
- bl PlayBGM
- b _08013B48
-_08013B42:
- ldr r1, _08013B54 @ =gUnknown_02024C10
- ldr r0, _08013B58 @ =gUnknown_081D8DCE
-_08013B46:
- str r0, [r1]
-_08013B48:
- ldr r1, _08013B5C @ =gUnknown_030042D4
- ldr r0, _08013B60 @ =sub_8013C9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013B54: .4byte gUnknown_02024C10
-_08013B58: .4byte gUnknown_081D8DCE
-_08013B5C: .4byte gUnknown_030042D4
-_08013B60: .4byte sub_8013C9C
- thumb_func_end sub_8013998
-
- thumb_func_start sub_8013B64
-sub_8013B64: @ 8013B64
- push {r4,lr}
- ldr r1, _08013B9C @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08013BA0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08013BB8
- ldr r1, _08013BA4 @ =gUnknown_030041C0
- ldr r4, _08013BA8 @ =gUnknown_02024D26
- ldrb r0, [r4]
- strb r0, [r1]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08013BAC @ =gUnknown_02024C07
- strb r0, [r1]
- ldr r1, _08013BB0 @ =gUnknown_02024C10
- ldr r0, _08013BB4 @ =gUnknown_081D8E02
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4]
- b _08013BBE
- .align 2, 0
-_08013B9C: .4byte gUnknown_02024A7F
-_08013BA0: .4byte gUnknown_020239F8
-_08013BA4: .4byte gUnknown_030041C0
-_08013BA8: .4byte gUnknown_02024D26
-_08013BAC: .4byte gUnknown_02024C07
-_08013BB0: .4byte gUnknown_02024C10
-_08013BB4: .4byte gUnknown_081D8E02
-_08013BB8:
- ldr r1, _08013BCC @ =gUnknown_02024C10
- ldr r0, _08013BD0 @ =gUnknown_081D8DD1
- str r0, [r1]
-_08013BBE:
- ldr r1, _08013BD4 @ =gUnknown_030042D4
- ldr r0, _08013BD8 @ =sub_8013C9C
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08013BCC: .4byte gUnknown_02024C10
-_08013BD0: .4byte gUnknown_081D8DD1
-_08013BD4: .4byte gUnknown_030042D4
-_08013BD8: .4byte sub_8013C9C
- thumb_func_end sub_8013B64
-
- thumb_func_start sub_8013BDC
-sub_8013BDC: @ 8013BDC
- push {lr}
- ldr r1, _08013C04 @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08013C08 @ =gUnknown_02024D28
- ldr r0, _08013C0C @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 27
- lsrs r0, 30
- cmp r0, 0x1
- beq _08013C18
- cmp r0, 0x2
- beq _08013C28
- ldr r1, _08013C10 @ =gUnknown_02024C10
- ldr r0, _08013C14 @ =gUnknown_081D8E29
- b _08013C2C
- .align 2, 0
-_08013C04: .4byte gUnknown_02024A7F
-_08013C08: .4byte gUnknown_02024D28
-_08013C0C: .4byte gUnknown_02024C07
-_08013C10: .4byte gUnknown_02024C10
-_08013C14: .4byte gUnknown_081D8E29
-_08013C18:
- ldr r1, _08013C20 @ =gUnknown_02024C10
- ldr r0, _08013C24 @ =gUnknown_081D8E14
- b _08013C2C
- .align 2, 0
-_08013C20: .4byte gUnknown_02024C10
-_08013C24: .4byte gUnknown_081D8E14
-_08013C28:
- ldr r1, _08013C38 @ =gUnknown_02024C10
- ldr r0, _08013C3C @ =gUnknown_081D8E22
-_08013C2C:
- str r0, [r1]
- ldr r1, _08013C40 @ =gUnknown_030042D4
- ldr r0, _08013C44 @ =sub_8013C9C
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08013C38: .4byte gUnknown_02024C10
-_08013C3C: .4byte gUnknown_081D8E22
-_08013C40: .4byte gUnknown_030042D4
-_08013C44: .4byte sub_8013C9C
- thumb_func_end sub_8013BDC
-
- thumb_func_start sub_8013C48
-sub_8013C48: @ 8013C48
- ldr r1, _08013C7C @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08013C80 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _08013C84 @ =gUnknown_02024C07
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _08013C88 @ =gUnknown_02024A6A
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08013C8C @ =gUnknown_02024C10
- ldr r0, _08013C90 @ =gUnknown_081D8E30
- str r0, [r1]
- ldr r1, _08013C94 @ =gUnknown_030042D4
- ldr r0, _08013C98 @ =sub_8013C9C
- str r0, [r1]
- bx lr
- .align 2, 0
-_08013C7C: .4byte gUnknown_02024A7F
-_08013C80: .4byte gUnknown_030041C0
-_08013C84: .4byte gUnknown_02024C07
-_08013C88: .4byte gUnknown_02024A6A
-_08013C8C: .4byte gUnknown_02024C10
-_08013C90: .4byte gUnknown_081D8E30
-_08013C94: .4byte gUnknown_030042D4
-_08013C98: .4byte sub_8013C9C
- thumb_func_end sub_8013C48
-
- thumb_func_start sub_8013C9C
-sub_8013C9C: @ 8013C9C
- push {r4-r7,lr}
- ldr r0, _08013D00 @ =gUnknown_02024A7F
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013D7C
- ldr r0, _08013D04 @ =gUnknown_020239F8
- ldrh r0, [r0]
- ldr r1, _08013D08 @ =0x00000b92
- ands r1, r0
- cmp r1, 0
- bne _08013D4C
- ldr r2, _08013D0C @ =gUnknown_02024A60
- strb r1, [r2]
- ldr r0, _08013D10 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08013D48
- adds r4, r2, 0
- ldr r6, _08013D14 @ =gBattleMons
- movs r5, 0x58
- adds r7, r6, 0
- adds r7, 0x30
-_08013CCE:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08013D36
- ldr r2, _08013D18 @ =gUnknown_030042E0
- ldrh r0, [r2, 0x6]
- cmp r0, 0
- bne _08013D1C
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x6]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x8
- bl StringCopy
- b _08013D36
- .align 2, 0
-_08013D00: .4byte gUnknown_02024A7F
-_08013D04: .4byte gUnknown_020239F8
-_08013D08: .4byte 0x00000b92
-_08013D0C: .4byte gUnknown_02024A60
-_08013D10: .4byte gUnknown_02024A68
-_08013D14: .4byte gBattleMons
-_08013D18: .4byte gUnknown_030042E0
-_08013D1C:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r2, 0x26]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r7
- adds r0, r2, 0
- adds r0, 0x14
- bl StringCopy
-_08013D36:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08013D68 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08013CCE
-_08013D48:
- bl sub_80BDEC8
-_08013D4C:
- movs r0, 0x3
- bl BeginFastPaletteFade
- movs r0, 0x5
- bl FadeOutMapMusic
- ldr r1, _08013D6C @ =gUnknown_030042D4
- ldr r0, _08013D70 @ =sub_8013DA8
- str r0, [r1]
- ldr r1, _08013D74 @ =gUnknown_03005E94
- ldr r0, _08013D78 @ =sub_800F808
- str r0, [r1]
- b _08013D96
- .align 2, 0
-_08013D68: .4byte gUnknown_02024A68
-_08013D6C: .4byte gUnknown_030042D4
-_08013D70: .4byte sub_8013DA8
-_08013D74: .4byte gUnknown_03005E94
-_08013D78: .4byte sub_800F808
-_08013D7C:
- ldr r0, _08013D9C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08013D96
- ldr r1, _08013DA0 @ =gUnknown_081FA73C
- ldr r0, _08013DA4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013D96:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08013D9C: .4byte gUnknown_02024A64
-_08013DA0: .4byte gUnknown_081FA73C
-_08013DA4: .4byte gUnknown_02024C10
- thumb_func_end sub_8013C9C
-
- thumb_func_start sub_8013DA8
-sub_8013DA8: @ 8013DA8
- push {lr}
- ldr r0, _08013DD0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08013DEA
- bl ResetSpriteData
- ldr r0, _08013DD4 @ =gUnknown_03004324
- ldrb r0, [r0]
- cmp r0, 0
- beq _08013DCA
- ldr r0, _08013DD8 @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08013DE4
-_08013DCA:
- ldr r1, _08013DDC @ =gUnknown_030042D4
- ldr r0, _08013DE0 @ =c4_overworld
- b _08013DE8
- .align 2, 0
-_08013DD0: .4byte gPaletteFade
-_08013DD4: .4byte gUnknown_03004324
-_08013DD8: .4byte gUnknown_02024D26
-_08013DDC: .4byte gUnknown_030042D4
-_08013DE0: .4byte c4_overworld
-_08013DE4:
- ldr r1, _08013DF0 @ =gUnknown_030042D4
- ldr r0, _08013DF4 @ =bc_evolution_cutscene
-_08013DE8:
- str r0, [r1]
-_08013DEA:
- pop {r0}
- bx r0
- .align 2, 0
-_08013DF0: .4byte gUnknown_030042D4
-_08013DF4: .4byte bc_evolution_cutscene
- thumb_func_end sub_8013DA8
-
- thumb_func_start bc_evolution_cutscene
-bc_evolution_cutscene: @ 8013DF8
- push {r4,r5,lr}
- ldr r0, _08013E4C @ =gUnknown_03004324
- ldrb r1, [r0]
- adds r3, r0, 0
- cmp r1, 0
- beq _08013E6E
-_08013E04:
- movs r5, 0
-_08013E06:
- ldrb r2, [r3]
- ldr r0, _08013E50 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08013E60
- bics r2, r1
- strb r2, [r3]
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08013E54 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08013E60
- ldr r0, _08013E58 @ =gUnknown_030042D4
- ldr r1, _08013E5C @ =sub_8013E88
- str r1, [r0]
- lsls r3, r5, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r2, 0
- movs r2, 0x81
- bl EvolutionScene
- b _08013E74
- .align 2, 0
-_08013E4C: .4byte gUnknown_03004324
-_08013E50: .4byte gBitTable
-_08013E54: .4byte gPlayerParty
-_08013E58: .4byte gUnknown_030042D4
-_08013E5C: .4byte sub_8013E88
-_08013E60:
- adds r5, 0x1
- ldr r3, _08013E7C @ =gUnknown_03004324
- cmp r5, 0x5
- ble _08013E06
- ldrb r0, [r3]
- cmp r0, 0
- bne _08013E04
-_08013E6E:
- ldr r1, _08013E80 @ =gUnknown_030042D4
- ldr r0, _08013E84 @ =c4_overworld
- str r0, [r1]
-_08013E74:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08013E7C: .4byte gUnknown_03004324
-_08013E80: .4byte gUnknown_030042D4
-_08013E84: .4byte c4_overworld
- thumb_func_end bc_evolution_cutscene
-
- thumb_func_start sub_8013E88
-sub_8013E88: @ 8013E88
- push {lr}
- ldr r0, _08013EA0 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08013EA4 @ =sub_800F808
- cmp r1, r0
- bne _08013E9A
- ldr r1, _08013EA8 @ =gUnknown_030042D4
- ldr r0, _08013EAC @ =bc_evolution_cutscene
- str r0, [r1]
-_08013E9A:
- pop {r0}
- bx r0
- .align 2, 0
-_08013EA0: .4byte gMain
-_08013EA4: .4byte sub_800F808
-_08013EA8: .4byte gUnknown_030042D4
-_08013EAC: .4byte bc_evolution_cutscene
- thumb_func_end sub_8013E88
-
- thumb_func_start c4_overworld
-c4_overworld: @ 8013EB0
- push {r4-r6,lr}
- ldr r5, _08013F30 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08013ECE
- ldr r4, _08013F34 @ =gPlayerParty
- adds r0, r4, 0
- bl RandomlyGivePartyPokerus
- adds r0, r4, 0
- bl PartySpreadPokerus
-_08013ECE:
- ldrh r4, [r5]
- adds r0, r6, 0
- ands r0, r4
- cmp r0, 0
- beq _08013EE0
- ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08013F2A
-_08013EE0:
- ldr r1, _08013F3C @ =gScriptResult
- ldr r5, _08013F40 @ =gUnknown_02024D26
- ldrb r0, [r5]
- strh r0, [r1]
- ldr r3, _08013F44 @ =gMain
- ldr r0, _08013F48 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08013F4C @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0x80
- lsls r0, 3
- ands r0, r4
- cmp r0, 0
- beq _08013F1C
- ldr r0, _08013F50 @ =gEnemyParty
- bl sub_8134504
- ldrb r0, [r5]
- cmp r0, 0x1
- beq _08013F18
- cmp r0, 0x7
- bne _08013F1C
-_08013F18:
- bl sub_813452C
-_08013F1C:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r0, _08013F44 @ =gMain
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_08013F2A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08013F30: .4byte gUnknown_020239F8
-_08013F34: .4byte gPlayerParty
-_08013F38: .4byte gReceivedRemoteLinkPlayers
-_08013F3C: .4byte gScriptResult
-_08013F40: .4byte gUnknown_02024D26
-_08013F44: .4byte gMain
-_08013F48: .4byte 0x0000043d
-_08013F4C: .4byte gUnknown_030042D0
-_08013F50: .4byte gEnemyParty
- thumb_func_end c4_overworld
-
- thumb_func_start sub_8013F54
-sub_8013F54: @ 8013F54
- push {lr}
- ldr r0, _08013F84 @ =gUnknown_02024A7F
- ldrb r0, [r0]
- subs r0, 0xB
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08013F90
- ldr r2, _08013F88 @ =0x02017140
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _08013F74
- subs r0, 0x1
- strb r0, [r1]
-_08013F74:
- ldr r0, _08013F8C @ =gUnknown_030042D4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- b _08013FAA
- .align 2, 0
-_08013F84: .4byte gUnknown_02024A7F
-_08013F88: .4byte 0x02017140
-_08013F8C: .4byte gUnknown_030042D4
-_08013F90:
- ldr r0, _08013FB0 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08013FAA
- ldr r1, _08013FB4 @ =gUnknown_081FA73C
- ldr r0, _08013FB8 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013FAA:
- pop {r0}
- bx r0
- .align 2, 0
-_08013FB0: .4byte gUnknown_02024A64
-_08013FB4: .4byte gUnknown_081FA73C
-_08013FB8: .4byte gUnknown_02024C10
- thumb_func_end sub_8013F54
-
- thumb_func_start sub_8013FBC
-sub_8013FBC: @ 8013FBC
- push {lr}
- ldr r0, _08013FDC @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08013FD8
- ldr r1, _08013FE0 @ =gUnknown_081FA73C
- ldr r0, _08013FE4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_08013FD8:
- pop {r0}
- bx r0
- .align 2, 0
-_08013FDC: .4byte gUnknown_02024A64
-_08013FE0: .4byte gUnknown_081FA73C
-_08013FE4: .4byte gUnknown_02024C10
- thumb_func_end sub_8013FBC
-
- thumb_func_start sub_8013FE8
-sub_8013FE8: @ 8013FE8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- movs r0, 0x4
- str r0, [sp]
- ldr r7, _08014028 @ =gUnknown_02024C07
- ldr r1, _0801402C @ =gUnknown_02024A7A
- ldr r0, _08014030 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r7]
- ldr r1, _08014034 @ =0x02000000
- mov r10, r1
- ldr r0, _08014038 @ =0x000160a6
- add r0, r10
- ldrb r2, [r0]
- ldr r1, _0801403C @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _08014044
- ldr r1, _08014040 @ =gUnknown_02024A7F
- movs r0, 0xC
- b _080146CC
- .align 2, 0
-_08014028: .4byte gUnknown_02024C07
-_0801402C: .4byte gUnknown_02024A7A
-_08014030: .4byte gUnknown_02024A7E
-_08014034: .4byte 0x02000000
-_08014038: .4byte 0x000160a6
-_0801403C: .4byte gBitTable
-_08014040: .4byte gUnknown_02024A7F
-_08014044:
- ldr r1, _080140B8 @ =gCritMultiplier
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _080140BC @ =0x0001601f
- add r1, r10
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080140C0 @ =0x000160e7
- add r0, r10
- strb r2, [r0]
- ldr r0, _080140C4 @ =gUnknown_02024C68
- strb r2, [r0]
- ldr r0, _080140C8 @ =gUnknown_02024C0E
- strb r2, [r0]
- ldr r0, _080140CC @ =gUnknown_02024D1E
- strb r2, [r0, 0x6]
- ldr r3, _080140D0 @ =gUnknown_02024BE4
- ldrb r0, [r7]
- ldr r2, _080140D4 @ =0x0001608c
- adds r0, r2
- add r0, r10
- ldrb r0, [r0]
- ldr r4, _080140D8 @ =gUnknown_02024BE5
- strb r0, [r4]
- strb r0, [r3]
- ldr r1, _080140DC @ =gUnknown_02024D28
- ldrb r2, [r7]
- lsls r0, r2, 4
- adds r5, r0, r1
- ldrb r1, [r5]
- lsls r0, r1, 29
- adds r4, r2, 0
- mov r8, r3
- cmp r0, 0
- bge _080140F0
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r5]
- ldr r2, _080140E0 @ =gUnknown_02024BE6
- ldr r1, _080140E4 @ =gUnknown_02024BE8
- movs r0, 0xA5
- strh r0, [r1]
- strh r0, [r2]
- ldr r2, _080140E8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 4
- orrs r0, r1
- str r0, [r2]
- movs r0, 0xA5
- movs r1, 0
- bl sub_801B5C0
- ldrb r1, [r7]
- ldr r2, _080140EC @ =0x00016010
- adds r1, r2
- b _08014200
- .align 2, 0
-_080140B8: .4byte gCritMultiplier
-_080140BC: .4byte 0x0001601f
-_080140C0: .4byte 0x000160e7
-_080140C4: .4byte gUnknown_02024C68
-_080140C8: .4byte gUnknown_02024C0E
-_080140CC: .4byte gUnknown_02024D1E
-_080140D0: .4byte gUnknown_02024BE4
-_080140D4: .4byte 0x0001608c
-_080140D8: .4byte gUnknown_02024BE5
-_080140DC: .4byte gUnknown_02024D28
-_080140E0: .4byte gUnknown_02024BE6
-_080140E4: .4byte gUnknown_02024BE8
-_080140E8: .4byte gUnknown_02024C6C
-_080140EC: .4byte 0x00016010
-_080140F0:
- ldr r1, _08014128 @ =gBattleMons
- movs r0, 0x58
- adds r5, r4, 0
- muls r5, r0
- adds r0, r1, 0
- adds r0, 0x50
- adds r0, r5, r0
- ldr r2, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _08014114
- movs r6, 0x80
- lsls r6, 15
- ands r6, r2
- cmp r6, 0
- beq _08014138
-_08014114:
- ldr r3, _0801412C @ =gUnknown_02024BE6
- ldr r2, _08014130 @ =gUnknown_02024BE8
- ldr r1, _08014134 @ =gUnknown_02024C54
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- strh r0, [r3]
- b _08014280
- .align 2, 0
-_08014128: .4byte gBattleMons
-_0801412C: .4byte gUnknown_02024BE6
-_08014130: .4byte gUnknown_02024BE8
-_08014134: .4byte gUnknown_02024C54
-_08014138:
- ldr r3, _08014188 @ =gUnknown_02024CA8
- mov r12, r3
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r2, r0, r3
- ldrh r4, [r2, 0x6]
- adds r1, r4, 0
- cmp r1, 0
- beq _08014218
- ldrb r3, [r2, 0xC]
- lsls r0, r3, 1
- adds r0, r5
- str r0, [sp, 0x8]
- ldr r0, _0801418C @ =gBattleMons
- adds r0, 0xC
- mov r9, r0
- ldr r0, [sp, 0x8]
- add r0, r9
- ldrh r0, [r0]
- cmp r1, r0
- bne _080141A0
- ldr r1, _08014190 @ =gUnknown_02024BE6
- ldr r0, _08014194 @ =gUnknown_02024BE8
- strh r4, [r0]
- strh r4, [r1]
- ldrb r0, [r2, 0xC]
- ldr r2, _08014198 @ =gUnknown_02024BE5
- strb r0, [r2]
- mov r3, r8
- strb r0, [r3]
- ldrh r0, [r1]
- movs r1, 0
- bl sub_801B5C0
- ldrb r1, [r7]
- ldr r4, _0801419C @ =0x00016010
- adds r1, r4
- b _08014200
- .align 2, 0
-_08014188: .4byte gUnknown_02024CA8
-_0801418C: .4byte gBattleMons
-_08014190: .4byte gUnknown_02024BE6
-_08014194: .4byte gUnknown_02024BE8
-_08014198: .4byte gUnknown_02024BE5
-_0801419C: .4byte 0x00016010
-_080141A0:
- cmp r1, 0
- beq _08014218
- cmp r1, r0
- beq _08014218
- ldr r0, _08014208 @ =gUnknown_02024BE5
- strb r3, [r0]
- mov r1, r8
- strb r3, [r1]
- ldr r3, _0801420C @ =gUnknown_02024BE6
- ldr r1, _08014210 @ =gUnknown_02024BE8
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r5
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r3]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- movs r2, 0
- strh r6, [r0, 0x6]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r2, [r0, 0xC]
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldrh r0, [r3]
- movs r1, 0
- bl sub_801B5C0
- ldrb r1, [r7]
- ldr r3, _08014214 @ =0x00016010
- adds r1, r3
-_08014200:
- add r1, r10
- strb r0, [r1]
- b _08014280
- .align 2, 0
-_08014208: .4byte gUnknown_02024BE5
-_0801420C: .4byte gUnknown_02024BE6
-_08014210: .4byte gUnknown_02024BE8
-_08014214: .4byte 0x00016010
-_08014218:
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- ldr r4, _0801425C @ =gUnknown_02024C07
- ldrb r2, [r4]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- ldr r1, _08014260 @ =gBattleMons
- adds r1, 0xC
- adds r0, r1
- ldr r1, _08014264 @ =gUnknown_02024C60
- lsls r2, 1
- adds r2, r1
- ldrh r3, [r0]
- ldrh r2, [r2]
- cmp r3, r2
- beq _08014278
- ldr r1, _08014268 @ =gUnknown_02024BE6
- ldr r0, _0801426C @ =gUnknown_02024BE8
- strh r3, [r0]
- strh r3, [r1]
- ldrh r0, [r1]
- movs r1, 0
- bl sub_801B5C0
- ldr r2, _08014270 @ =0x02000000
- ldrb r1, [r4]
- ldr r3, _08014274 @ =0x00016010
- adds r1, r3
- adds r1, r2
- strb r0, [r1]
- b _08014280
- .align 2, 0
-_0801425C: .4byte gUnknown_02024C07
-_08014260: .4byte gBattleMons
-_08014264: .4byte gUnknown_02024C60
-_08014268: .4byte gUnknown_02024BE6
-_0801426C: .4byte gUnknown_02024BE8
-_08014270: .4byte 0x02000000
-_08014274: .4byte 0x00016010
-_08014278:
- ldr r1, _08014298 @ =gUnknown_02024BE6
- ldr r0, _0801429C @ =gUnknown_02024BE8
- strh r3, [r0]
- strh r3, [r1]
-_08014280:
- ldr r0, _080142A0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080142A8
- ldr r0, _080142A4 @ =gUnknown_030042E0
- ldr r1, _08014298 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0, 0x22]
- b _080142B0
- .align 2, 0
-_08014298: .4byte gUnknown_02024BE6
-_0801429C: .4byte gUnknown_02024BE8
-_080142A0: .4byte gUnknown_02024C07
-_080142A4: .4byte gUnknown_030042E0
-_080142A8:
- ldr r0, _08014314 @ =gUnknown_030042E0
- ldr r1, _08014318 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0, 0x24]
-_080142B0:
- ldr r4, _0801431C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08014320 @ =gUnknown_02024C80
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- ldrb r0, [r5, 0x8]
- adds r3, r4, 0
- cmp r0, 0
- beq _08014330
- ldr r2, _08014324 @ =gBattleMoves
- ldr r0, _08014318 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _08014330
- ldrb r0, [r3]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5, 0x9]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08014330
- ldr r1, _08014328 @ =gBattleMons
- ldrb r2, [r5, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08014330
- ldr r0, _0801432C @ =gUnknown_02024C08
- strb r2, [r0]
- b _080146AC
- .align 2, 0
-_08014314: .4byte gUnknown_030042E0
-_08014318: .4byte gUnknown_02024BE6
-_0801431C: .4byte gUnknown_02024C07
-_08014320: .4byte gUnknown_02024C80
-_08014324: .4byte gBattleMoves
-_08014328: .4byte gBattleMons
-_0801432C: .4byte gUnknown_02024C08
-_08014330:
- ldr r2, _08014454 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- ldr r3, _08014458 @ =gUnknown_02024C07
- mov r9, r2
- cmp r0, 0
- bne _08014342
- b _0801461C
-_08014342:
- ldr r1, _0801445C @ =gUnknown_02024C80
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r7, [r0, 0x8]
- cmp r7, 0
- beq _08014354
- b _08014570
-_08014354:
- ldr r2, _08014460 @ =gBattleMoves
- ldr r0, _08014464 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08014370
- ldrb r0, [r4, 0x6]
- cmp r0, 0x10
- bne _08014370
- b _08014570
-_08014370:
- ldr r3, _08014468 @ =gBattleMons
- ldr r0, _0801446C @ =0x02000000
- mov r8, r0
- ldr r2, _08014458 @ =gUnknown_02024C07
- ldrb r5, [r2]
- ldr r1, _08014470 @ =0x00016010
- adds r0, r5, r1
- add r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r2, 0
- cmp r0, 0x1F
- bne _08014394
- b _08014570
-_08014394:
- ldrb r0, [r4, 0x2]
- cmp r0, 0xD
- beq _0801439C
- b _08014570
-_0801439C:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08014474 @ =gUnknown_02024A60
- strb r7, [r1]
- ldr r0, _08014478 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcs _08014416
- adds r4, r1, 0
- mov r5, r8
-_080143B6:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- beq _08014404
- ldr r0, _08014458 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _08014470 @ =0x00016010
- adds r0, r2
- adds r0, r5
- ldrb r0, [r0]
- ldrb r3, [r4]
- cmp r0, r3
- beq _08014404
- ldr r1, _08014468 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _08014404
- adds r0, r2, 0
- bl sub_801E3B4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp]
- cmp r0, r1
- bcs _08014404
- ldrb r0, [r4]
- bl sub_801E3B4
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_08014404:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08014478 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080143B6
-_08014416:
- ldr r2, [sp]
- cmp r2, 0x4
- beq _0801441E
- b _08014522
-_0801441E:
- ldr r2, _08014460 @ =gBattleMoves
- ldr r0, _0801447C @ =gUnknown_02024BE8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- ldr r3, [sp]
- ands r3, r0
- cmp r3, 0
- beq _080144A4
- ldr r0, _08014458 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08014484
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014480
- movs r0, 0x1
- b _08014496
- .align 2, 0
-_08014454: .4byte gUnknown_020239F8
-_08014458: .4byte gUnknown_02024C07
-_0801445C: .4byte gUnknown_02024C80
-_08014460: .4byte gBattleMoves
-_08014464: .4byte gUnknown_02024BE6
-_08014468: .4byte gBattleMons
-_0801446C: .4byte 0x02000000
-_08014470: .4byte 0x00016010
-_08014474: .4byte gUnknown_02024A60
-_08014478: .4byte gUnknown_02024A68
-_0801447C: .4byte gUnknown_02024BE8
-_08014480:
- movs r0, 0x3
- b _08014496
-_08014484:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014494
- movs r0, 0
- b _08014496
-_08014494:
- movs r0, 0x2
-_08014496:
- bl battle_get_side_with_given_state
- ldr r1, _080144A0 @ =gUnknown_02024C08
- strb r0, [r1]
- b _080144B6
- .align 2, 0
-_080144A0: .4byte gUnknown_02024C08
-_080144A4:
- ldr r2, _080144EC @ =gUnknown_02024C08
- ldr r1, _080144F0 @ =0x02000000
- ldr r0, _080144F4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r4, _080144F8 @ =0x00016010
- adds r0, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
-_080144B6:
- ldr r7, _080144FC @ =gUnknown_02024C0C
- ldrb r0, [r7]
- ldr r1, _08014500 @ =gBitTable
- mov r8, r1
- ldr r5, _080144EC @ =gUnknown_02024C08
- ldrb r1, [r5]
- lsls r1, 2
- add r1, r8
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _080144D0
- b _080146AC
-_080144D0:
- ldr r6, _080144F4 @ =gUnknown_02024C07
- ldrb r0, [r6]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _08014504
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_080144EC: .4byte gUnknown_02024C08
-_080144F0: .4byte 0x02000000
-_080144F4: .4byte gUnknown_02024C07
-_080144F8: .4byte 0x00016010
-_080144FC: .4byte gUnknown_02024C0C
-_08014500: .4byte gBitTable
-_08014504:
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r5]
- lsls r0, r2, 2
- add r0, r8
- b _08014690
-_08014522:
- ldr r4, _0801455C @ =gUnknown_02024A60
- ldr r0, _08014560 @ =gUnknown_02024A7A
- ldr r2, [sp]
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r0, [r4]
- ldr r2, _08014564 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- adds r1, 0x20
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r2, _08014568 @ =gUnknown_02024D68
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0801456C @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1]
- b _080146AC
- .align 2, 0
-_0801455C: .4byte gUnknown_02024A60
-_08014560: .4byte gUnknown_02024A7A
-_08014564: .4byte gBattleMons
-_08014568: .4byte gUnknown_02024D68
-_0801456C: .4byte gUnknown_02024C08
-_08014570:
- mov r4, r9
- ldrh r1, [r4]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0801461C
- ldr r2, _080145B4 @ =gBattleMoves
- ldr r0, _080145B8 @ =gUnknown_02024BE8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801461C
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080145C0
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080145BC
- movs r0, 0x1
- b _080145D2
- .align 2, 0
-_080145B4: .4byte gBattleMoves
-_080145B8: .4byte gUnknown_02024BE8
-_080145BC:
- movs r0, 0x3
- b _080145D2
-_080145C0:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _080145D0
- movs r0, 0
- b _080145D2
-_080145D0:
- movs r0, 0x2
-_080145D2:
- bl battle_get_side_with_given_state
- ldr r1, _0801460C @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r0, _08014610 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08014614 @ =gBitTable
- ldr r5, _0801460C @ =gUnknown_02024C08
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- ldr r0, _08014618 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080146AC
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_0801460C: .4byte gUnknown_02024C08
-_08014610: .4byte gUnknown_02024C0C
-_08014614: .4byte gBitTable
-_08014618: .4byte gUnknown_02024C07
-_0801461C:
- ldr r5, _08014660 @ =gUnknown_02024C08
- ldr r1, _08014664 @ =0x02000000
- adds r2, r3, 0
- ldrb r0, [r2]
- ldr r4, _08014668 @ =0x00016010
- adds r0, r4
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0801466C @ =gUnknown_02024C0C
- ldrb r1, [r6]
- ldr r7, _08014670 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- ldrb r0, [r2]
- str r3, [sp, 0x4]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- ldr r3, [sp, 0x4]
- cmp r4, r0
- beq _08014674
- ldrb r0, [r5]
- b _0801469A
- .align 2, 0
-_08014660: .4byte gUnknown_02024C08
-_08014664: .4byte 0x02000000
-_08014668: .4byte 0x00016010
-_0801466C: .4byte gUnknown_02024C0C
-_08014670: .4byte gBitTable
-_08014674:
- ldrb r0, [r3]
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldrb r1, [r6]
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r7
-_08014690:
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080146AC
- adds r0, r2, 0
-_0801469A:
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r5]
-_080146AC:
- ldr r4, _080146E0 @ =gUnknown_02024C10
- ldr r3, _080146E4 @ =gUnknown_081D6BBC
- ldr r2, _080146E8 @ =gBattleMoves
- ldr r0, _080146EC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- ldr r1, _080146F0 @ =gUnknown_02024A7F
- movs r0, 0xA
-_080146CC:
- strb r0, [r1]
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080146E0: .4byte gUnknown_02024C10
-_080146E4: .4byte gUnknown_081D6BBC
-_080146E8: .4byte gBattleMoves
-_080146EC: .4byte gUnknown_02024BE6
-_080146F0: .4byte gUnknown_02024A7F
- thumb_func_end sub_8013FE8
-
- thumb_func_start sub_80146F4
-sub_80146F4: @ 80146F4
- push {r4,lr}
- ldr r3, _08014764 @ =gUnknown_02024C07
- ldr r1, _08014768 @ =gUnknown_02024A7A
- ldr r0, _0801476C @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _08014770 @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08014774 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r1, _08014778 @ =gUnknown_02024E60
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r1, _0801477C @ =gUnknown_02024E64
- ldrb r0, [r3]
- adds r0, r1
- strb r2, [r0]
- ldr r2, _08014780 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldrb r4, [r3]
- strb r4, [r2, 0x2]
- ldr r1, _08014784 @ =0x02000000
- ldrb r0, [r3]
- ldr r3, _08014788 @ =0x00016064
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- ldr r0, _0801478C @ =0x00016003
- adds r1, r0
- strb r4, [r1]
- ldr r1, _08014790 @ =gUnknown_02024C10
- ldr r0, _08014794 @ =gUnknown_081D8E4E
- str r0, [r1]
- ldr r1, _08014798 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _0801479C @ =gUnknown_030042E0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _0801475C
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_0801475C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08014764: .4byte gUnknown_02024C07
-_08014768: .4byte gUnknown_02024A7A
-_0801476C: .4byte gUnknown_02024A7E
-_08014770: .4byte gUnknown_030042A4
-_08014774: .4byte gUnknown_030042A0
-_08014778: .4byte gUnknown_02024E60
-_0801477C: .4byte gUnknown_02024E64
-_08014780: .4byte gUnknown_030041C0
-_08014784: .4byte 0x02000000
-_08014788: .4byte 0x00016064
-_0801478C: .4byte 0x00016003
-_08014790: .4byte gUnknown_02024C10
-_08014794: .4byte gUnknown_081D8E4E
-_08014798: .4byte gUnknown_02024A7F
-_0801479C: .4byte gUnknown_030042E0
- thumb_func_end sub_80146F4
-
- thumb_func_start sub_80147A0
-sub_80147A0: @ 80147A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08014804 @ =gUnknown_02024C07
- ldr r2, _08014808 @ =gUnknown_02024C08
- ldr r1, _0801480C @ =gUnknown_02024A7A
- ldr r0, _08014810 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r4]
- ldr r0, _08014814 @ =gUnknown_030042A4
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08014818 @ =gUnknown_030042A0
- strh r2, [r0]
- ldr r3, _0801481C @ =gUnknown_02024CA8
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- strb r2, [r0, 0x10]
- ldr r5, _08014820 @ =gUnknown_02024C04
- ldr r2, _08014824 @ =gUnknown_02024260
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- strh r3, [r5]
- cmp r3, 0xC
- bhi _08014830
- ldr r2, _08014828 @ =gUnknown_02024C10
- ldr r1, _0801482C @ =gUnknown_081D9E48
- ldrh r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- b _08014A8C
- .align 2, 0
-_08014804: .4byte gUnknown_02024C07
-_08014808: .4byte gUnknown_02024C08
-_0801480C: .4byte gUnknown_02024A7A
-_08014810: .4byte gUnknown_02024A7E
-_08014814: .4byte gUnknown_030042A4
-_08014818: .4byte gUnknown_030042A0
-_0801481C: .4byte gUnknown_02024CA8
-_08014820: .4byte gUnknown_02024C04
-_08014824: .4byte gUnknown_02024260
-_08014828: .4byte gUnknown_02024C10
-_0801482C: .4byte gUnknown_081D9E48
-_08014830:
- adds r0, r3, 0
- subs r0, 0x50
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0801484C
- ldr r0, _08014844 @ =gUnknown_02024C10
- ldr r1, _08014848 @ =gUnknown_081D9E94
- b _0801485C
- .align 2, 0
-_08014844: .4byte gUnknown_02024C10
-_08014848: .4byte gUnknown_081D9E94
-_0801484C:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801486C
- ldr r0, _08014864 @ =gUnknown_02024C10
- ldr r1, _08014868 @ =gUnknown_081D9E7C
-_0801485C:
- ldr r1, [r1]
- str r1, [r0]
- b _08014A8C
- .align 2, 0
-_08014864: .4byte gUnknown_02024C10
-_08014868: .4byte gUnknown_081D9E7C
-_0801486C:
- ldr r2, _080148A0 @ =0x02000000
- ldrb r0, [r4]
- ldr r3, _080148A4 @ =0x00016003
- adds r1, r2, r3
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _080148A8 @ =0x000160d8
- adds r0, r1
- adds r0, r2
- ldrb r0, [r0]
- subs r0, 0x1
- mov r8, r4
- ldr r3, _080148AC @ =gUnknown_02024C10
- mov r9, r3
- ldr r1, _080148B0 @ =gUnknown_081D9E7C
- mov r10, r1
- adds r7, r2, 0
- cmp r0, 0x4
- bls _08014896
- b _08014A74
-_08014896:
- lsls r0, 2
- ldr r1, _080148B4 @ =_080148B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080148A0: .4byte 0x02000000
-_080148A4: .4byte 0x00016003
-_080148A8: .4byte 0x000160d8
-_080148AC: .4byte gUnknown_02024C10
-_080148B0: .4byte gUnknown_081D9E7C
-_080148B4: .4byte _080148B8
- .align 2, 0
-_080148B8:
- .4byte _08014A74
- .4byte _08014A74
- .4byte _080148CC
- .4byte _08014958
- .4byte _08014A30
-_080148CC:
- ldr r2, _08014904 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r2, 0x5]
- ldr r1, _08014908 @ =gUnknown_02024C07
- ldrb r0, [r1]
- lsrs r0, 1
- ldr r6, _0801490C @ =0x000160da
- adds r0, r6
- adds r0, r7
- ldrb r3, [r0]
- movs r0, 0x1
- ands r0, r3
- mov r8, r1
- cmp r0, 0
- beq _08014918
- movs r0, 0x3E
- ands r0, r3
- ldr r3, _08014910 @ =gUnknown_02024C10
- mov r9, r3
- ldr r1, _08014914 @ =gUnknown_081D9E7C
- mov r10, r1
- cmp r0, 0
- bne _080148FC
- b _08014A74
-_080148FC:
- movs r0, 0x5
- strb r0, [r2, 0x5]
- b _08014A74
- .align 2, 0
-_08014904: .4byte gUnknown_02024D1E
-_08014908: .4byte gUnknown_02024C07
-_0801490C: .4byte 0x000160da
-_08014910: .4byte gUnknown_02024C10
-_08014914: .4byte gUnknown_081D9E7C
-_08014918:
- ldr r3, _08014950 @ =gUnknown_02024C10
- mov r9, r3
- ldr r0, _08014954 @ =gUnknown_081D9E7C
- mov r10, r0
- adds r5, r7, 0
- mov r4, r8
- adds r3, r6, 0
-_08014926:
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r5
- ldrb r1, [r0]
- lsrs r1, 1
- strb r1, [r0]
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08014926
- b _08014A74
- .align 2, 0
-_08014950: .4byte gUnknown_02024C10
-_08014954: .4byte gUnknown_081D9E7C
-_08014958:
- ldr r3, _0801498C @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r3, 0x5]
- ldr r2, _08014990 @ =gUnknown_02024C07
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r1, _08014994 @ =0x000160da
- mov r12, r1
- add r0, r12
- adds r6, r0, r7
- ldrb r1, [r6]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r8, r2
- cmp r5, 0
- beq _080149A0
- movs r0, 0x5
- strb r0, [r3, 0x5]
- ldr r2, _08014998 @ =gUnknown_02024C10
- mov r9, r2
- ldr r3, _0801499C @ =gUnknown_081D9E7C
- mov r10, r3
- b _08014A74
- .align 2, 0
-_0801498C: .4byte gUnknown_02024D1E
-_08014990: .4byte gUnknown_02024C07
-_08014994: .4byte 0x000160da
-_08014998: .4byte gUnknown_02024C10
-_0801499C: .4byte gUnknown_081D9E7C
-_080149A0:
- ldr r3, _08014A18 @ =gUnknown_030041C0
- movs r4, 0xFD
- strb r4, [r3]
- movs r0, 0x5
- strb r0, [r3, 0x1]
- movs r2, 0x1
- strb r2, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r1, _08014A1C @ =gUnknown_03004290
- strb r4, [r1]
- strb r5, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r5, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- ands r2, r0
- ldr r0, _08014A20 @ =gUnknown_02024C10
- mov r9, r0
- ldr r1, _08014A24 @ =gUnknown_081D9E7C
- mov r10, r1
- adds r6, r3, 0
- cmp r2, 0
- bne _08014A02
- adds r3, r7, 0
- mov r5, r8
- mov r4, r12
- adds r2, r6, 0
-_080149DC:
- ldrb r0, [r5]
- lsrs r0, 1
- adds r0, r4
- adds r0, r3
- ldrb r1, [r0]
- lsrs r1, 1
- strb r1, [r0]
- ldrb r0, [r2, 0x2]
- adds r0, 0x1
- strb r0, [r2, 0x2]
- ldrb r0, [r5]
- lsrs r0, 1
- adds r0, r4
- adds r0, r3
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080149DC
-_08014A02:
- ldrb r0, [r6, 0x2]
- adds r0, 0xE
- ldr r2, _08014A28 @ =0x000160a4
- adds r1, r7, r2
- movs r2, 0
- strb r0, [r1]
- ldr r3, _08014A2C @ =0x000160a5
- adds r0, r7, r3
- strb r2, [r0]
- b _08014A74
- .align 2, 0
-_08014A18: .4byte gUnknown_030041C0
-_08014A1C: .4byte gUnknown_03004290
-_08014A20: .4byte gUnknown_02024C10
-_08014A24: .4byte gUnknown_081D9E7C
-_08014A28: .4byte 0x000160a4
-_08014A2C: .4byte 0x000160a5
-_08014A30:
- ldr r0, _08014A50 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08014A64
- ldr r1, _08014A54 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r0, _08014A58 @ =gUnknown_02024C07
- mov r8, r0
- ldr r1, _08014A5C @ =gUnknown_02024C10
- mov r9, r1
- ldr r2, _08014A60 @ =gUnknown_081D9E7C
- mov r10, r2
- b _08014A74
- .align 2, 0
-_08014A50: .4byte gUnknown_020239F8
-_08014A54: .4byte gUnknown_02024D1E
-_08014A58: .4byte gUnknown_02024C07
-_08014A5C: .4byte gUnknown_02024C10
-_08014A60: .4byte gUnknown_081D9E7C
-_08014A64:
- ldr r0, _08014AA0 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- ldr r3, _08014AA4 @ =gUnknown_02024C07
- mov r8, r3
- ldr r0, _08014AA8 @ =gUnknown_02024C10
- mov r9, r0
- ldr r1, _08014AAC @ =gUnknown_081D9E7C
- mov r10, r1
-_08014A74:
- mov r2, r8
- ldrb r0, [r2]
- lsrs r0, 1
- ldr r3, _08014AB0 @ =0x000160d8
- adds r0, r3
- adds r0, r7
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- mov r1, r9
- str r0, [r1]
-_08014A8C:
- movs r0, 0xA
- ldr r2, _08014AB4 @ =gUnknown_02024A7F
- strb r0, [r2]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08014AA0: .4byte gUnknown_02024D1E
-_08014AA4: .4byte gUnknown_02024C07
-_08014AA8: .4byte gUnknown_02024C10
-_08014AAC: .4byte gUnknown_081D9E7C
-_08014AB0: .4byte 0x000160d8
-_08014AB4: .4byte gUnknown_02024A7F
- thumb_func_end sub_80147A0
-
- thumb_func_start sub_8014AB8
-sub_8014AB8: @ 8014AB8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r1, _08014ADC @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08014AE4
- ldr r1, _08014AE0 @ =gEnigmaBerries
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x7]
- b _08014AEE
- .align 2, 0
-_08014ADC: .4byte gBattleMons
-_08014AE0: .4byte gEnigmaBerries
-_08014AE4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r1, r0, 24
-_08014AEE:
- ldr r0, _08014B18 @ =gUnknown_02024C0B
- strb r4, [r0]
- cmp r1, 0x25
- bne _08014B28
- ldr r2, _08014B1C @ =gUnknown_02024C04
- ldr r1, _08014B20 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r0, _08014B24 @ =gUnknown_02024D28
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- b _08014B50
- .align 2, 0
-_08014B18: .4byte gUnknown_02024C0B
-_08014B1C: .4byte gUnknown_02024C04
-_08014B20: .4byte gBattleMons
-_08014B24: .4byte gUnknown_02024D28
-_08014B28:
- ldr r6, _08014B5C @ =gBattleMons
- movs r2, 0x58
- adds r0, r4, 0
- muls r0, r2
- adds r3, r0, r6
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x32
- bne _08014B68
- ldr r0, _08014B60 @ =byte_2024C06
- strb r1, [r0]
- ldr r0, _08014B64 @ =gUnknown_02024D28
- lsls r2, r4, 4
- adds r2, r0
- ldrb r1, [r2, 0x1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
-_08014B50:
- orrs r0, r1
- strb r0, [r2, 0x1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _08014BC2
- .align 2, 0
-_08014B5C: .4byte gBattleMons
-_08014B60: .4byte byte_2024C06
-_08014B64: .4byte gUnknown_02024D28
-_08014B68:
- ldr r0, _08014BDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08014BB6
- movs r1, 0x1
- adds r0, r4, 0
- eors r0, r1
- muls r0, r2
- adds r2, r0, r6
- ldrh r0, [r3, 0x6]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- bcs _08014BB0
- lsls r0, 7
- ldrh r1, [r2, 0x6]
- bl __divsi3
- adds r4, r0, 0
- ldr r0, _08014BE0 @ =0x02000000
- ldr r1, _08014BE4 @ =0x00016078
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- movs r1, 0xFF
- ands r1, r0
- cmp r4, r1
- bls _08014BB6
-_08014BB0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08014BB6:
- ldr r1, _08014BE0 @ =0x02000000
- ldr r0, _08014BE4 @ =0x00016078
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08014BC2:
- cmp r5, 0
- beq _08014BD4
- ldr r1, _08014BE8 @ =gUnknown_02024A7E
- ldr r0, _08014BEC @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _08014BF0 @ =gUnknown_02024D26
- movs r0, 0x4
- strb r0, [r1]
-_08014BD4:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08014BDC: .4byte gUnknown_020239F8
-_08014BE0: .4byte 0x02000000
-_08014BE4: .4byte 0x00016078
-_08014BE8: .4byte gUnknown_02024A7E
-_08014BEC: .4byte gUnknown_02024A68
-_08014BF0: .4byte gUnknown_02024D26
- thumb_func_end sub_8014AB8
-
- thumb_func_start sub_8014BF4
-sub_8014BF4: @ 8014BF4
- push {r4-r6,lr}
- ldr r4, _08014C44 @ =gUnknown_02024C07
- ldr r1, _08014C48 @ =gUnknown_02024A7A
- ldr r5, _08014C4C @ =gUnknown_02024A7E
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08014C50 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08014C9C
- ldr r0, _08014C54 @ =gUnknown_02024A68
- ldrb r1, [r0]
- strb r1, [r5]
- ldr r2, _08014C58 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r2]
- lsls r1, 24
- cmp r1, 0
- beq _08014C88
- adds r4, r2, 0
- ldr r6, _08014C5C @ =gUnknown_02024C18
- ldr r5, _08014C60 @ =gUnknown_02024D26
-_08014C28:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08014C64
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08014C76
- ldrb r0, [r5]
- movs r1, 0x2
- b _08014C72
- .align 2, 0
-_08014C44: .4byte gUnknown_02024C07
-_08014C48: .4byte gUnknown_02024A7A
-_08014C4C: .4byte gUnknown_02024A7E
-_08014C50: .4byte gUnknown_020239F8
-_08014C54: .4byte gUnknown_02024A68
-_08014C58: .4byte gUnknown_02024A60
-_08014C5C: .4byte gUnknown_02024C18
-_08014C60: .4byte gUnknown_02024D26
-_08014C64:
- ldrb r0, [r4]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _08014C76
- ldrb r0, [r5]
- movs r1, 0x1
-_08014C72:
- orrs r0, r1
- strb r0, [r5]
-_08014C76:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08014C94 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08014C28
-_08014C88:
- ldr r0, _08014C98 @ =gUnknown_02024D26
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _08014D40
- .align 2, 0
-_08014C94: .4byte gUnknown_02024A68
-_08014C98: .4byte gUnknown_02024D26
-_08014C9C:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08014CF4
- ldrb r0, [r4]
- bl sub_8014AB8
- lsls r0, 24
- cmp r0, 0
- bne _08014D40
- ldr r1, _08014CDC @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _08014CE0 @ =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r1, _08014CE4 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r1, _08014CE8 @ =gUnknown_02024C10
- ldr r0, _08014CEC @ =gUnknown_081D8E3B
- str r0, [r1]
- ldr r1, _08014CF0 @ =gUnknown_02024A7F
- movs r0, 0xA
- b _08014D3E
- .align 2, 0
-_08014CDC: .4byte gBattleMons
-_08014CE0: .4byte 0xfdffffff
-_08014CE4: .4byte gUnknown_02024D1E
-_08014CE8: .4byte gUnknown_02024C10
-_08014CEC: .4byte gUnknown_081D8E3B
-_08014CF0: .4byte gUnknown_02024A7F
-_08014CF4:
- ldr r1, _08014D1C @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08014D20 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _08014D34
- ldr r1, _08014D24 @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r1, _08014D28 @ =gUnknown_02024C10
- ldr r0, _08014D2C @ =gUnknown_081D8E3B
- str r0, [r1]
- ldr r1, _08014D30 @ =gUnknown_02024A7F
- movs r0, 0xA
- b _08014D3E
- .align 2, 0
-_08014D1C: .4byte gBattleMons
-_08014D20: .4byte 0x0400e000
-_08014D24: .4byte gUnknown_02024D1E
-_08014D28: .4byte gUnknown_02024C10
-_08014D2C: .4byte gUnknown_081D8E3B
-_08014D30: .4byte gUnknown_02024A7F
-_08014D34:
- ldr r0, _08014D48 @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r1, _08014D4C @ =gUnknown_02024D26
- movs r0, 0x6
-_08014D3E:
- strb r0, [r1]
-_08014D40:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08014D48: .4byte gUnknown_02024A68
-_08014D4C: .4byte gUnknown_02024D26
- thumb_func_end sub_8014BF4
-
- thumb_func_start sub_8014D50
-sub_8014D50: @ 8014D50
- ldr r2, _08014D78 @ =gUnknown_02024C07
- ldr r1, _08014D7C @ =gUnknown_02024A7A
- ldr r0, _08014D80 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014D84 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014D88 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _08014D8C @ =gUnknown_02024C10
- ldr r0, _08014D90 @ =gUnknown_081D9E98
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _08014D94 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08014D78: .4byte gUnknown_02024C07
-_08014D7C: .4byte gUnknown_02024A7A
-_08014D80: .4byte gUnknown_02024A7E
-_08014D84: .4byte gUnknown_030042A4
-_08014D88: .4byte gUnknown_030042A0
-_08014D8C: .4byte gUnknown_02024C10
-_08014D90: .4byte gUnknown_081D9E98
-_08014D94: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014D50
-
- thumb_func_start sub_8014D98
-sub_8014D98: @ 8014D98
- ldr r2, _08014DD0 @ =gUnknown_02024C07
- ldr r1, _08014DD4 @ =gUnknown_02024A7A
- ldr r0, _08014DD8 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014DDC @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014DE0 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _08014DE4 @ =gUnknown_02038808
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- ldr r1, _08014DE8 @ =gUnknown_02024C04
- movs r0, 0x5
- strh r0, [r1]
- ldr r1, _08014DEC @ =gUnknown_02024C10
- ldr r0, _08014DF0 @ =gUnknown_081D9E48
- ldr r0, [r0, 0x14]
- str r0, [r1]
- ldr r1, _08014DF4 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08014DD0: .4byte gUnknown_02024C07
-_08014DD4: .4byte gUnknown_02024A7A
-_08014DD8: .4byte gUnknown_02024A7E
-_08014DDC: .4byte gUnknown_030042A4
-_08014DE0: .4byte gUnknown_030042A0
-_08014DE4: .4byte gUnknown_02038808
-_08014DE8: .4byte gUnknown_02024C04
-_08014DEC: .4byte gUnknown_02024C10
-_08014DF0: .4byte gUnknown_081D9E48
-_08014DF4: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014D98
-
- thumb_func_start sub_8014DF8
-sub_8014DF8: @ 8014DF8
- push {r4-r6,lr}
- ldr r3, _08014E68 @ =gUnknown_02024C07
- ldr r1, _08014E6C @ =gUnknown_02024A7A
- ldr r0, _08014E70 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r0, _08014E74 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08014E78 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r6, _08014E7C @ =gUnknown_02024D1E
- ldr r2, _08014E80 @ =gUnknown_02024260
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x1
- strb r0, [r6, 0x5]
- ldr r1, _08014E84 @ =gUnknown_02024C04
- ldrb r0, [r3]
- lsls r0, 9
- adds r2, 0x2
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r2, _08014E88 @ =0x02000000
- ldr r0, _08014E8C @ =0x00016087
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08014E42
- adds r0, 0x1
- strb r0, [r1]
-_08014E42:
- ldr r0, _08014E90 @ =0x00016088
- adds r4, r2, r0
- ldrb r5, [r4]
- adds r3, r5, 0
- cmp r3, 0x1
- bls _08014E9C
- ldr r2, _08014E94 @ =gUnknown_081FA70C
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- ldrb r6, [r6, 0x5]
- adds r0, r6
- adds r0, r2
- ldrb r0, [r0]
- cmp r3, r0
- bcs _08014E98
- movs r0, 0x1
- b _08014E9A
- .align 2, 0
-_08014E68: .4byte gUnknown_02024C07
-_08014E6C: .4byte gUnknown_02024A7A
-_08014E70: .4byte gUnknown_02024A7E
-_08014E74: .4byte gUnknown_030042A4
-_08014E78: .4byte gUnknown_030042A0
-_08014E7C: .4byte gUnknown_02024D1E
-_08014E80: .4byte gUnknown_02024260
-_08014E84: .4byte gUnknown_02024C04
-_08014E88: .4byte 0x02000000
-_08014E8C: .4byte 0x00016087
-_08014E90: .4byte 0x00016088
-_08014E94: .4byte gUnknown_081FA70C
-_08014E98:
- subs r0, r5, r0
-_08014E9A:
- strb r0, [r4]
-_08014E9C:
- ldr r1, _08014EB0 @ =gUnknown_02024C10
- ldr r0, _08014EB4 @ =gUnknown_081D9E98
- ldr r0, [r0, 0x8]
- str r0, [r1]
- ldr r1, _08014EB8 @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08014EB0: .4byte gUnknown_02024C10
-_08014EB4: .4byte gUnknown_081D9E98
-_08014EB8: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014DF8
-
- thumb_func_start sub_8014EBC
-sub_8014EBC: @ 8014EBC
- push {r4,r5,lr}
- ldr r2, _08014F28 @ =gUnknown_02024C07
- ldr r1, _08014F2C @ =gUnknown_02024A7A
- ldr r0, _08014F30 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _08014F34 @ =gUnknown_030042A4
- movs r5, 0
- strh r5, [r0]
- ldr r0, _08014F38 @ =gUnknown_030042A0
- strh r5, [r0]
- ldr r3, _08014F3C @ =0x02000000
- ldr r0, _08014F40 @ =0x00016089
- adds r2, r3, r0
- ldr r1, _08014F44 @ =gUnknown_081FA71B
- subs r0, 0x3
- adds r4, r3, r0
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- bls _08014EFA
- movs r0, 0x14
- strb r0, [r2]
-_08014EFA:
- ldr r0, _08014F48 @ =0x00016088
- adds r2, r3, r0
- ldr r1, _08014F4C @ =gUnknown_081FA71F
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- ldrb r1, [r2]
- adds r0, r1
- strb r0, [r2]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x14
- bls _08014F18
- movs r0, 0x14
- strb r0, [r2]
-_08014F18:
- ldrb r0, [r4]
- cmp r0, 0x2
- bhi _08014F54
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _08014F50 @ =gUnknown_02024D1E
- strb r5, [r0, 0x5]
- b _08014F5A
- .align 2, 0
-_08014F28: .4byte gUnknown_02024C07
-_08014F2C: .4byte gUnknown_02024A7A
-_08014F30: .4byte gUnknown_02024A7E
-_08014F34: .4byte gUnknown_030042A4
-_08014F38: .4byte gUnknown_030042A0
-_08014F3C: .4byte 0x02000000
-_08014F40: .4byte 0x00016089
-_08014F44: .4byte gUnknown_081FA71B
-_08014F48: .4byte 0x00016088
-_08014F4C: .4byte gUnknown_081FA71F
-_08014F50: .4byte gUnknown_02024D1E
-_08014F54:
- ldr r1, _08014F70 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08014F5A:
- ldr r1, _08014F74 @ =gUnknown_02024C10
- ldr r0, _08014F78 @ =gUnknown_081D9E98
- ldr r0, [r0, 0x4]
- str r0, [r1]
- ldr r1, _08014F7C @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08014F70: .4byte gUnknown_02024D1E
-_08014F74: .4byte gUnknown_02024C10
-_08014F78: .4byte gUnknown_081D9E98
-_08014F7C: .4byte gUnknown_02024A7F
- thumb_func_end sub_8014EBC
-
- thumb_func_start bs8_exit_by_flight
-bs8_exit_by_flight: @ 8014F80
- push {r4,lr}
- ldr r2, _08014FA8 @ =gUnknown_02024C07
- ldr r1, _08014FAC @ =gUnknown_02024A7A
- ldr r4, _08014FB0 @ =gUnknown_02024A7E
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x11
- bl PlaySE
- ldr r0, _08014FB4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _08014FB8 @ =gUnknown_02024D26
- movs r0, 0x4
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08014FA8: .4byte gUnknown_02024C07
-_08014FAC: .4byte gUnknown_02024A7A
-_08014FB0: .4byte gUnknown_02024A7E
-_08014FB4: .4byte gUnknown_02024A68
-_08014FB8: .4byte gUnknown_02024D26
- thumb_func_end bs8_exit_by_flight
-
- thumb_func_start sub_8014FBC
-sub_8014FBC: @ 8014FBC
- ldr r3, _08015008 @ =gUnknown_02024C07
- ldr r1, _0801500C @ =gUnknown_02024A7A
- ldr r0, _08015010 @ =gUnknown_02024A7E
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- strb r2, [r3]
- ldr r0, _08015014 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08015018 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r1, _0801501C @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _08015020 @ =gUnknown_02024A6A
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08015024 @ =gUnknown_02024C10
- ldr r0, _08015028 @ =gUnknown_081D9E98
- ldr r0, [r0, 0xC]
- str r0, [r1]
- ldr r1, _0801502C @ =gUnknown_02024A7F
- movs r0, 0xA
- strb r0, [r1]
- ldr r1, _08015030 @ =gUnknown_02024A76
- movs r0, 0xC
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_08015008: .4byte gUnknown_02024C07
-_0801500C: .4byte gUnknown_02024A7A
-_08015010: .4byte gUnknown_02024A7E
-_08015014: .4byte gUnknown_030042A4
-_08015018: .4byte gUnknown_030042A0
-_0801501C: .4byte gUnknown_030041C0
-_08015020: .4byte gUnknown_02024A6A
-_08015024: .4byte gUnknown_02024C10
-_08015028: .4byte gUnknown_081D9E98
-_0801502C: .4byte gUnknown_02024A7F
-_08015030: .4byte gUnknown_02024A76
- thumb_func_end sub_8014FBC
-
- thumb_func_start bsB_exit_by_move
-bsB_exit_by_move: @ 8015034
- push {lr}
- bl sub_80173A4
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08015050
- ldr r0, _08015054 @ =0x02000000
- ldr r2, _08015058 @ =0x00016059
- adds r0, r2
- strb r1, [r0]
- ldr r1, _0801505C @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
-_08015050:
- pop {r0}
- bx r0
- .align 2, 0
-_08015054: .4byte 0x02000000
-_08015058: .4byte 0x00016059
-_0801505C: .4byte gUnknown_02024A7F
- thumb_func_end bsB_exit_by_move
-
- thumb_func_start sub_8015060
-sub_8015060: @ 8015060
- ldr r1, _08015080 @ =gUnknown_02024A7E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08015084 @ =gUnknown_02024A7F
- ldr r2, _08015088 @ =gUnknown_02024A76
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- ldr r2, _0801508C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08015090 @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08015080: .4byte gUnknown_02024A7E
-_08015084: .4byte gUnknown_02024A7F
-_08015088: .4byte gUnknown_02024A76
-_0801508C: .4byte gUnknown_02024C6C
-_08015090: .4byte 0xf1e892af
- thumb_func_end sub_8015060
-
- thumb_func_start bsC_8016D70
-bsC_8016D70: @ 8015094
- push {r4,r5,lr}
- ldr r1, _0801510C @ =gUnknown_02024A7E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r3, _08015110 @ =gUnknown_02024A7F
- ldr r2, _08015114 @ =gUnknown_02024A76
- ldrb r0, [r1]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r3]
- bl sub_801377C
- ldr r2, _08015118 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801511C @ =0xf1e892af
- ands r0, r1
- str r0, [r2]
- ldr r0, _08015120 @ =gUnknown_02024BEC
- movs r4, 0
- str r4, [r0]
- ldr r1, _08015124 @ =0x02000000
- ldr r2, _08015128 @ =0x00016002
- adds r0, r1, r2
- strb r4, [r0]
- ldr r3, _0801512C @ =0x000160a1
- adds r0, r1, r3
- strb r4, [r0]
- ldr r2, _08015130 @ =gUnknown_02024C3C
- ldr r5, _08015134 @ =gUnknown_02024C07
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- strh r4, [r0]
- ldr r3, _08015138 @ =gUnknown_02024C44
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r3
- strh r4, [r0]
- ldr r3, _0801513C @ =0x0001601c
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08015140 @ =gUnknown_02024DEC
- strh r4, [r0]
- subs r3, 0x10
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08015144 @ =gUnknown_02024D1E
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x4]
- ldr r3, _08015148 @ =0x00016112
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _0801514C @ =0x00017130
- adds r1, r0
- strb r2, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801510C: .4byte gUnknown_02024A7E
-_08015110: .4byte gUnknown_02024A7F
-_08015114: .4byte gUnknown_02024A76
-_08015118: .4byte gUnknown_02024C6C
-_0801511C: .4byte 0xf1e892af
-_08015120: .4byte gUnknown_02024BEC
-_08015124: .4byte 0x02000000
-_08015128: .4byte 0x00016002
-_0801512C: .4byte 0x000160a1
-_08015130: .4byte gUnknown_02024C3C
-_08015134: .4byte gUnknown_02024C07
-_08015138: .4byte gUnknown_02024C44
-_0801513C: .4byte 0x0001601c
-_08015140: .4byte gUnknown_02024DEC
-_08015144: .4byte gUnknown_02024D1E
-_08015148: .4byte 0x00016112
-_0801514C: .4byte 0x00017130
- thumb_func_end bsC_8016D70
-
- thumb_func_start sub_8015150
-sub_8015150: @ 8015150
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r0, 0xA
- bhi _080151C8
- lsls r0, 2
- ldr r1, _08015168 @ =_0801516C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015168: .4byte _0801516C
- .align 2, 0
-_0801516C:
- .4byte _08015198
- .4byte _080151A0
- .4byte _080151A8
- .4byte _080151C4
- .4byte _080151C8
- .4byte _080151C4
- .4byte _080151C8
- .4byte _080151B0
- .4byte _080151C8
- .4byte _080151C8
- .4byte _080151B4
-_08015198:
- ldr r0, _0801519C @ =gUnknown_02024C08
- b _080151C6
- .align 2, 0
-_0801519C: .4byte gUnknown_02024C08
-_080151A0:
- ldr r0, _080151A4 @ =gUnknown_02024C07
- b _080151C6
- .align 2, 0
-_080151A4: .4byte gUnknown_02024C07
-_080151A8:
- ldr r0, _080151AC @ =gUnknown_02024C0A
- b _080151C6
- .align 2, 0
-_080151AC: .4byte gUnknown_02024C0A
-_080151B0:
- movs r2, 0
- b _080151C8
-_080151B4:
- ldr r0, _080151BC @ =0x02000000
- ldr r1, _080151C0 @ =0x00016003
- adds r0, r1
- b _080151C6
- .align 2, 0
-_080151BC: .4byte 0x02000000
-_080151C0: .4byte 0x00016003
-_080151C4:
- ldr r0, _080151D0 @ =gUnknown_02024C09
-_080151C6:
- ldrb r2, [r0]
-_080151C8:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080151D0: .4byte gUnknown_02024C09
- thumb_func_end sub_8015150
-
- thumb_func_start sub_80151D4
-sub_80151D4: @ 80151D4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r1, _08015204 @ =gBattleMons
- movs r4, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x2E
- bne _08015286
- movs r3, 0
- adds r0, r5, 0
- muls r0, r4
- adds r1, 0xC
- adds r1, r0, r1
- b _08015210
- .align 2, 0
-_08015204: .4byte gBattleMons
-_08015208:
- adds r1, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08015216
-_08015210:
- ldrh r0, [r1]
- cmp r0, r2
- bne _08015208
-_08015216:
- cmp r3, 0x4
- beq _08015286
- movs r7, 0x58
- adds r2, r5, 0
- muls r2, r7
- adds r0, r3, r2
- mov r6, r12
- adds r6, 0x24
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015232
- subs r0, 0x1
- strb r0, [r1]
-_08015232:
- mov r0, r12
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08015286
- ldr r1, _08015290 @ =gUnknown_02024CA8
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08015294 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08015286
- ldr r4, _08015298 @ =gUnknown_02024A60
- strb r5, [r4]
- adds r1, r3, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r7
- adds r0, r6
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08015286:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08015290: .4byte gUnknown_02024CA8
-_08015294: .4byte gBitTable
-_08015298: .4byte gUnknown_02024A60
- thumb_func_end sub_80151D4
-
- thumb_func_start sub_801529C
-sub_801529C: @ 801529C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x4
- mov r8, r0
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, _080153BC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bge _08015344
- ldr r1, _080153C0 @ =gBattleMons
- movs r0, 0x58
- adds r7, r5, 0
- muls r7, r0
- adds r1, 0xC
- mov r10, r1
-_080152D2:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r6, r4, 0x1
- cmp r9, r0
- beq _0801533A
- ldr r0, _080153C0 @ =gBattleMons
- movs r3, 0x58
- adds r1, r4, 0
- muls r1, r3
- adds r1, r0
- adds r1, 0x20
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0x2E
- bne _0801533A
- movs r2, 0
- adds r0, r5, 0
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- movs r1, 0x8F
- lsls r1, 1
- cmp r0, r1
- beq _08015322
- adds r3, r1, 0
- mov r0, r10
- adds r1, r7, r0
-_08015314:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015322
- ldrh r0, [r1]
- cmp r0, r3
- bne _08015314
-_08015322:
- cmp r2, 0x4
- beq _0801533A
- mov r8, r2
- adds r1, r2, r7
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801533A
- subs r0, 0x1
- strb r0, [r1]
-_0801533A:
- adds r4, r6, 0
- ldr r0, _080153BC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _080152D2
-_08015344:
- mov r1, r8
- cmp r1, 0x4
- beq _080153AC
- ldr r6, _080153C0 @ =gBattleMons
- movs r3, 0x58
- adds r0, r5, 0
- muls r0, r3
- adds r1, r6, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080153AC
- ldr r1, _080153C4 @ =gUnknown_02024CA8
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _080153C8 @ =gBitTable
- mov r4, r8
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080153AC
- ldr r4, _080153CC @ =gUnknown_02024A60
- strb r5, [r4]
- mov r1, r8
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r3
- adds r2, r6, 0
- adds r2, 0x24
- adds r0, r2
- add r0, r8
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080153AC:
- 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
-_080153BC: .4byte gUnknown_02024A68
-_080153C0: .4byte gBattleMons
-_080153C4: .4byte gUnknown_02024CA8
-_080153C8: .4byte gBitTable
-_080153CC: .4byte gUnknown_02024A60
- thumb_func_end sub_801529C
-
- thumb_func_start sub_80153D0
-sub_80153D0: @ 80153D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- movs r6, 0x4
- movs r1, 0
- ldr r0, _080154C8 @ =gUnknown_02024A68
- mov r8, r0
- ldrb r0, [r0]
- cmp r1, r0
- bge _08015452
- ldr r7, _080154CC @ =gBattleMons
- movs r2, 0x58
- mov r12, r2
- mov r5, r12
- muls r5, r3
- adds r0, r7, 0
- adds r0, 0xC
- adds r2, r5, r0
- mov r10, r2
- mov r9, r5
-_08015402:
- mov r0, r12
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r1, 0x1
- cmp r0, 0x2E
- bne _08015448
- cmp r1, r3
- beq _08015448
- movs r2, 0
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, 0xC3
- beq _08015432
- ldr r1, _080154D0 @ =gUnknown_02024A8C
- add r1, r9
-_08015424:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015432
- ldrh r0, [r1]
- cmp r0, 0xC3
- bne _08015424
-_08015432:
- cmp r2, 0x4
- beq _08015448
- adds r6, r2, 0
- adds r0, r6, r5
- ldr r2, _080154D4 @ =gUnknown_02024AA4
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0
- beq _08015448
- subs r0, 0x1
- strb r0, [r1]
-_08015448:
- adds r1, r4, 0
- mov r0, r8
- ldrb r0, [r0]
- cmp r1, r0
- blt _08015402
-_08015452:
- cmp r6, 0x4
- beq _080154B6
- ldr r7, _080154CC @ =gBattleMons
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080154B6
- ldr r1, _080154D8 @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _080154DC @ =gBitTable
- lsls r0, r6, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080154B6
- ldr r4, _080154E0 @ =gUnknown_02024A60
- strb r3, [r4]
- adds r1, r6, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r4]
- muls r0, r5
- adds r2, r7, 0
- adds r2, 0x24
- adds r0, r2
- adds r0, r6
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080154B6:
- 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
-_080154C8: .4byte gUnknown_02024A68
-_080154CC: .4byte gBattleMons
-_080154D0: .4byte gUnknown_02024A8C
-_080154D4: .4byte gUnknown_02024AA4
-_080154D8: .4byte gUnknown_02024CA8
-_080154DC: .4byte gBitTable
-_080154E0: .4byte gUnknown_02024A60
- thumb_func_end sub_80153D0
-
- thumb_func_start unref_sub_80154E4
-unref_sub_80154E4: @ 80154E4
- push {r4,r5,lr}
- ldr r0, _08015514 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08015524
- movs r2, 0
- ldr r4, _08015518 @ =gUnknown_02024A68
- ldrb r0, [r4]
- cmp r2, r0
- bge _08015542
- ldr r3, _0801551C @ =gUnknown_02024A64
- ldr r5, _08015520 @ =gBitTable
-_08015500:
- ldm r5!, {r1}
- lsls r1, 28
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- adds r2, 0x1
- ldrb r0, [r4]
- cmp r2, r0
- blt _08015500
- b _08015542
- .align 2, 0
-_08015514: .4byte gUnknown_020239F8
-_08015518: .4byte gUnknown_02024A68
-_0801551C: .4byte gUnknown_02024A64
-_08015520: .4byte gBitTable
-_08015524:
- movs r2, 0
- ldr r4, _08015548 @ =gUnknown_02024A68
- ldrb r0, [r4]
- cmp r2, r0
- bge _08015542
- ldr r3, _0801554C @ =gUnknown_02024A64
- ldr r5, _08015550 @ =gBitTable
-_08015532:
- ldr r0, [r3]
- ldm r5!, {r1}
- orrs r0, r1
- str r0, [r3]
- adds r2, 0x1
- ldrb r0, [r4]
- cmp r2, r0
- blt _08015532
-_08015542:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08015548: .4byte gUnknown_02024A68
-_0801554C: .4byte gUnknown_02024A64
-_08015550: .4byte gBitTable
- thumb_func_end unref_sub_80154E4
-
- thumb_func_start dp01_battle_side_mark_buffer_for_execution
-dp01_battle_side_mark_buffer_for_execution: @ 8015554
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0801557C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08015588
- ldr r2, _08015580 @ =gUnknown_02024A64
- ldr r1, _08015584 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- b _08015598
- .align 2, 0
-_0801557C: .4byte gUnknown_020239F8
-_08015580: .4byte gUnknown_02024A64
-_08015584: .4byte gBitTable
-_08015588:
- ldr r2, _0801559C @ =gUnknown_02024A64
- ldr r1, _080155A0 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
-_08015598:
- pop {r0}
- bx r0
- .align 2, 0
-_0801559C: .4byte gUnknown_02024A64
-_080155A0: .4byte gBitTable
- thumb_func_end dp01_battle_side_mark_buffer_for_execution
-
- thumb_func_start sub_80155A4
-sub_80155A4: @ 80155A4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r5, _080155B8 @ =gUnknown_02024A64
- ldr r1, _080155BC @ =gBitTable
- lsls r0, r7, 2
- adds r6, r0, r1
- b _080155CE
- .align 2, 0
-_080155B8: .4byte gUnknown_02024A64
-_080155BC: .4byte gBitTable
-_080155C0:
- lsls r0, r4, 2
- ldr r1, [r6]
- lsls r1, r0
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- adds r4, 0x1
-_080155CE:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _080155C0
- ldr r2, _080155F0 @ =gUnknown_02024A64
- movs r1, 0x80
- lsls r1, 21
- lsls r1, r7
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080155F0: .4byte gUnknown_02024A64
- thumb_func_end sub_80155A4
-
- thumb_func_start b_cancel_multi_turn_move_maybe
-b_cancel_multi_turn_move_maybe: @ 80155F4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08015644 @ =gBattleMons
- movs r2, 0x58
- adds r3, r0, 0
- muls r3, r2
- adds r1, 0x50
- adds r3, r1
- ldr r1, [r3]
- ldr r2, _08015648 @ =0xffffefff
- ands r1, r2
- ldr r2, _0801564C @ =0xfffff3ff
- ands r1, r2
- movs r2, 0x71
- negs r2, r2
- ands r1, r2
- ldr r2, _08015650 @ =0xfffffcff
- ands r1, r2
- str r1, [r3]
- ldr r1, _08015654 @ =gUnknown_02024C98
- lsls r2, r0, 2
- adds r2, r1
- ldr r1, [r2]
- ldr r3, _08015658 @ =0xfffbff3f
- ands r1, r3
- str r1, [r2]
- ldr r2, _0801565C @ =gUnknown_02024CA8
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x11]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x11]
- movs r0, 0
- strb r0, [r1, 0x10]
- bx lr
- .align 2, 0
-_08015644: .4byte gBattleMons
-_08015648: .4byte 0xffffefff
-_0801564C: .4byte 0xfffff3ff
-_08015650: .4byte 0xfffffcff
-_08015654: .4byte gUnknown_02024C98
-_08015658: .4byte 0xfffbff3f
-_0801565C: .4byte gUnknown_02024CA8
- thumb_func_end b_cancel_multi_turn_move_maybe
-
- thumb_func_start sub_8015660
-sub_8015660: @ 8015660
- push {lr}
- lsls r0, 24
- ldr r1, _080156AC @ =gUnknown_02024D28
- lsrs r0, 20
- adds r1, r0, r1
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- bne _080156A6
- ldrb r2, [r1, 0x1]
- lsls r0, r2, 30
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 26
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 25
- cmp r0, 0
- blt _080156A6
- lsrs r0, r2, 7
- cmp r0, 0
- bne _080156A6
- ldrb r1, [r1, 0x2]
- lsls r0, r1, 31
- cmp r0, 0
- bne _080156A6
- lsls r0, r1, 30
- cmp r0, 0
- blt _080156A6
- lsls r0, r1, 29
- cmp r0, 0
- blt _080156A6
- lsls r0, r2, 31
- cmp r0, 0
- beq _080156B0
-_080156A6:
- movs r0, 0x1
- b _080156B2
- .align 2, 0
-_080156AC: .4byte gUnknown_02024D28
-_080156B0:
- movs r0, 0
-_080156B2:
- pop {r1}
- bx r1
- thumb_func_end sub_8015660
-
- thumb_func_start b_std_message
-b_std_message: @ 80156B8
- push {r4,lr}
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _080156D8 @ =gUnknown_02024A60
- strb r1, [r4]
- movs r0, 0
- adds r1, r2, 0
- bl dp01_build_cmdbuf_x10_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080156D8: .4byte gUnknown_02024A60
- thumb_func_end b_std_message
-
- thumb_func_start sub_80156DC
-sub_80156DC: @ 80156DC
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _08015730 @ =gUnknown_02024DEA
- strb r3, [r0]
- strb r3, [r0, 0x1]
- movs r1, 0
- ldr r0, _08015734 @ =gUnknown_02024A68
- ldrb r2, [r0]
- adds r6, r0, 0
- cmp r1, r2
- bge _0801570A
- ldr r5, _08015738 @ =gBitTable
- adds r4, r2, 0
- ldr r2, _0801573C @ =gUnknown_02024A6A
-_080156F8:
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- orrs r3, r0
- adds r2, 0x4
- adds r1, 0x2
- cmp r1, r4
- blt _080156F8
-_0801570A:
- movs r1, 0x1
- adds r2, r6, 0
- ldrb r0, [r2]
- cmp r1, r0
- bge _0801572A
- ldr r5, _08015730 @ =gUnknown_02024DEA
- movs r4, 0x2
-_08015718:
- adds r0, r1, 0
- ands r0, r4
- asrs r0, 1
- adds r0, r5
- strb r3, [r0]
- adds r1, 0x2
- ldrb r0, [r2]
- cmp r1, r0
- blt _08015718
-_0801572A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08015730: .4byte gUnknown_02024DEA
-_08015734: .4byte gUnknown_02024A68
-_08015738: .4byte gBitTable
-_0801573C: .4byte gUnknown_02024A6A
- thumb_func_end sub_80156DC
-
- thumb_func_start sub_8015740
-sub_8015740: @ 8015740
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080157A4
- movs r0, 0x2
- ands r0, r5
- lsls r0, 24
- lsrs r0, 25
- mov r12, r0
- ldr r1, _080157B0 @ =gUnknown_02024DEA
- adds r0, r1
- strb r4, [r0]
- adds r5, r4, 0
- ldr r0, _080157B4 @ =gUnknown_02024A68
- ldrb r2, [r0]
- mov r8, r1
- cmp r4, r2
- bge _0801579E
- ldr r0, _080157B8 @ =gUnknown_02024C0C
- ldrb r7, [r0]
- ldr r1, _080157BC @ =gBitTable
- adds r6, r2, 0
- ldr r3, _080157C0 @ =gUnknown_02024A6A
- adds r2, r1, 0
-_08015782:
- ldr r0, [r2]
- ands r0, r7
- cmp r0, 0
- bne _08015794
- ldrh r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r4, r0
-_08015794:
- adds r3, 0x4
- adds r2, 0x8
- adds r5, 0x2
- cmp r5, r6
- blt _08015782
-_0801579E:
- mov r0, r12
- add r0, r8
- strb r4, [r0]
-_080157A4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080157B0: .4byte gUnknown_02024DEA
-_080157B4: .4byte gUnknown_02024A68
-_080157B8: .4byte gUnknown_02024C0C
-_080157BC: .4byte gBitTable
-_080157C0: .4byte gUnknown_02024A6A
- thumb_func_end sub_8015740
-
- thumb_func_start sub_80157C4
-sub_80157C4: @ 80157C4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080157E0
- adds r0, r4, 0
- bl sub_8015740
- b _08015816
-_080157E0:
- movs r3, 0x1
- ldr r5, _0801581C @ =gUnknown_02024A68
- ldrb r0, [r5]
- cmp r3, r0
- bge _08015816
- ldr r0, _08015820 @ =gUnknown_02024DEA
- mov r12, r0
- movs r7, 0x2
- ldr r6, _08015824 @ =gBitTable
- ldr r1, _08015828 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r4, r0, r1
-_080157F8:
- adds r2, r3, 0
- ands r2, r7
- asrs r2, 1
- add r2, r12
- ldrh r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _080157F8
-_08015816:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801581C: .4byte gUnknown_02024A68
-_08015820: .4byte gUnknown_02024DEA
-_08015824: .4byte gBitTable
-_08015828: .4byte gUnknown_02024A6A
- thumb_func_end sub_80157C4
-
- thumb_func_start b_movescr_stack_push
-b_movescr_stack_push: @ 801582C
- push {r4,lr}
- ldr r4, _08015848 @ =0x02017110
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- lsls r1, 24
- lsrs r1, 22
- adds r1, r4
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08015848: .4byte 0x02017110
- thumb_func_end b_movescr_stack_push
-
- thumb_func_start b_movescr_stack_push_cursor
-b_movescr_stack_push_cursor: @ 801584C
- ldr r3, _08015868 @ =0x02017110
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r1, _0801586C @ =gUnknown_02024C10
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08015868: .4byte 0x02017110
-_0801586C: .4byte gUnknown_02024C10
- thumb_func_end b_movescr_stack_push_cursor
-
- thumb_func_start b_movescr_stack_pop_cursor
-b_movescr_stack_pop_cursor: @ 8015870
- ldr r3, _0801588C @ =gUnknown_02024C10
- ldr r2, _08015890 @ =0x02017110
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- bx lr
- .align 2, 0
-_0801588C: .4byte gUnknown_02024C10
-_08015890: .4byte 0x02017110
- thumb_func_end b_movescr_stack_pop_cursor
-
- thumb_func_start sub_8015894
-sub_8015894: @ 8015894
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r2, _080159AC @ =gBattleMons
- ldr r1, _080159B0 @ =gUnknown_02024260
- ldr r5, _080159B4 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r0, r3, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r4, [r0]
- lsls r0, r3, 1
- ldr r2, _080159B8 @ =0x020160e8
- adds r0, r2
- mov r8, r0
- ldr r1, _080159BC @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x4]
- cmp r0, r4
- bne _080158EE
- cmp r4, 0
- beq _080158EE
- adds r0, r2, 0
- subs r0, 0xE5
- strb r3, [r0]
- ldr r0, _080159C0 @ =gUnknown_02024BE6
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159C8 @ =gUnknown_081D9144
- str r1, [r0]
- movs r6, 0x1
-_080158EE:
- ldr r1, _080159CC @ =gUnknown_02024C34
- ldr r5, _080159B4 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _0801592A
- cmp r4, 0xA5
- beq _0801592A
- ldr r1, _080159AC @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bge _0801592A
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159D0 @ =gUnknown_081D937C
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801592A:
- ldr r2, _080159BC @ =gUnknown_02024CA8
- ldr r3, _080159B4 @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08015966
- ldr r0, _080159D4 @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08015966
- ldr r0, _080159C0 @ =gUnknown_02024BE6
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159D8 @ =gUnknown_081D938B
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015966:
- ldr r5, _080159B4 @ =gUnknown_02024A60
- ldrb r0, [r5]
- adds r1, r4, 0
- bl sub_8015D5C
- lsls r0, 24
- cmp r0, 0
- beq _0801598C
- ldr r0, _080159C0 @ =gUnknown_02024BE6
- strh r4, [r0]
- ldr r1, _080159C4 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080159DC @ =gUnknown_081D9464
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0801598C:
- ldr r1, _080159AC @ =gBattleMons
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _080159E4
- ldr r1, _080159E0 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- b _080159EE
- .align 2, 0
-_080159AC: .4byte gBattleMons
-_080159B0: .4byte gUnknown_02024260
-_080159B4: .4byte gUnknown_02024A60
-_080159B8: .4byte 0x020160e8
-_080159BC: .4byte gUnknown_02024CA8
-_080159C0: .4byte gUnknown_02024BE6
-_080159C4: .4byte gUnknown_02024C1C
-_080159C8: .4byte gUnknown_081D9144
-_080159CC: .4byte gUnknown_02024C34
-_080159D0: .4byte gUnknown_081D937C
-_080159D4: .4byte gBattleMoves
-_080159D8: .4byte gUnknown_081D938B
-_080159DC: .4byte gUnknown_081D9464
-_080159E0: .4byte gEnigmaBerries
-_080159E4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r3, r0, 24
-_080159EE:
- ldr r2, _08015A70 @ =gUnknown_02024C0B
- ldr r1, _08015A74 @ =gUnknown_02024A60
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r7, _08015A78 @ =gBattleMons
- adds r5, r1, 0
- cmp r3, 0x1D
- bne _08015A36
- mov r0, r8
- ldrh r2, [r0]
- adds r1, r2, 0
- cmp r1, 0
- beq _08015A36
- ldr r0, _08015A7C @ =0x0000ffff
- cmp r1, r0
- beq _08015A36
- cmp r1, r4
- beq _08015A36
- ldr r0, _08015A80 @ =gUnknown_02024BE6
- strh r2, [r0]
- ldr r2, _08015A84 @ =gUnknown_02024C04
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- strh r0, [r2]
- ldr r1, _08015A88 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08015A8C @ =gUnknown_081D9AC2
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015A36:
- ldr r0, _08015A90 @ =gUnknown_02024260
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, 0x2
- adds r1, r0
- movs r0, 0x58
- muls r0, r2
- ldrb r1, [r1]
- adds r0, r1
- adds r1, r7, 0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015A64
- ldr r1, _08015A88 @ =gUnknown_02024C1C
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, _08015A94 @ =gUnknown_081D9369
- str r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015A64:
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015A70: .4byte gUnknown_02024C0B
-_08015A74: .4byte gUnknown_02024A60
-_08015A78: .4byte gBattleMons
-_08015A7C: .4byte 0x0000ffff
-_08015A80: .4byte gUnknown_02024BE6
-_08015A84: .4byte gUnknown_02024C04
-_08015A88: .4byte gUnknown_02024C1C
-_08015A8C: .4byte gUnknown_081D9AC2
-_08015A90: .4byte gUnknown_02024260
-_08015A94: .4byte gUnknown_081D9369
- thumb_func_end sub_8015894
-
- thumb_func_start sub_8015A98
-sub_8015A98: @ 8015A98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r3, r2, 24
- lsls r1, r7, 1
- ldr r0, _08015AD8 @ =0x020160e8
- adds r1, r0
- str r1, [sp, 0x4]
- ldr r1, _08015ADC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08015AE4
- ldr r2, _08015AE0 @ =gEnigmaBerries
- lsls r1, r7, 3
- subs r0, r1, r7
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x7]
- str r0, [sp]
- b _08015AF6
- .align 2, 0
-_08015AD8: .4byte 0x020160e8
-_08015ADC: .4byte gBattleMons
-_08015AE0: .4byte gEnigmaBerries
-_08015AE4:
- ldrh r0, [r1, 0x2E]
- str r3, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, r7, 3
- ldr r3, [sp, 0x14]
-_08015AF6:
- ldr r0, _08015C70 @ =gUnknown_02024C0B
- strb r7, [r0]
- movs r0, 0
- mov r9, r0
- lsls r2, r7, 1
- str r2, [sp, 0xC]
- ldr r5, _08015C74 @ =gUnknown_02024CA8
- mov r12, r5
- ldr r0, _08015C78 @ =gBattleMons
- movs r2, 0x58
- adds r6, r7, 0
- muls r6, r2
- str r6, [sp, 0x8]
- ldr r2, _08015C7C @ =gUnknown_02024A8C
- adds r5, r6, r2
- movs r6, 0
- str r6, [sp, 0x10]
- mov r10, r0
- subs r0, r1, r7
- lsls r0, 2
- mov r8, r0
- ldr r6, _08015C80 @ =gBitTable
-_08015B22:
- ldrh r0, [r5]
- cmp r0, 0
- bne _08015B38
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08015B38
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B38:
- ldr r0, [sp, 0x8]
- add r0, r9
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08015B58
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- beq _08015B58
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B58:
- mov r1, r8
- add r1, r12
- ldrh r0, [r5]
- ldrh r1, [r1, 0x4]
- cmp r0, r1
- bne _08015B74
- movs r0, 0x4
- ands r0, r3
- cmp r0, 0
- beq _08015B74
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015B74:
- movs r0, 0x58
- adds r2, r7, 0
- muls r2, r0
- ldr r1, [sp, 0x10]
- adds r0, r1, r2
- ldr r1, _08015C7C @ =gUnknown_02024A8C
- adds r0, r1
- mov r12, r0
- ldr r1, _08015C84 @ =gUnknown_02024C34
- ldr r0, [sp, 0xC]
- adds r1, r0, r1
- str r1, [sp, 0x18]
- mov r1, r12
- ldrh r1, [r1]
- mov r12, r1
- ldr r0, [sp, 0x18]
- ldrh r0, [r0]
- cmp r12, r0
- bne _08015BB6
- movs r0, 0x8
- ands r0, r3
- cmp r0, 0
- beq _08015BB6
- mov r0, r10
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bge _08015BB6
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015BB6:
- ldr r0, _08015C74 @ =gUnknown_02024CA8
- add r0, r8
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08015BE4
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _08015BE4
- ldr r2, _08015C88 @ =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08015BE4
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015BE4:
- ldrh r1, [r5]
- adds r0, r7, 0
- str r3, [sp, 0x14]
- bl sub_8015D5C
- lsls r0, 24
- ldr r3, [sp, 0x14]
- cmp r0, 0
- beq _08015C06
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08015C06
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C06:
- ldr r1, _08015C74 @ =gUnknown_02024CA8
- mov r0, r8
- adds r2, r0, r1
- ldrb r0, [r2, 0xE]
- lsls r0, 28
- mov r12, r1
- cmp r0, 0
- beq _08015C26
- ldrh r0, [r2, 0x6]
- ldrh r1, [r5]
- cmp r0, r1
- beq _08015C26
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C26:
- ldr r2, [sp]
- cmp r2, 0x1D
- bne _08015C48
- ldr r0, [sp, 0x4]
- ldrh r1, [r0]
- cmp r1, 0
- beq _08015C48
- ldr r0, _08015C8C @ =0x0000ffff
- cmp r1, r0
- beq _08015C48
- ldrh r2, [r5]
- cmp r1, r2
- beq _08015C48
- ldr r0, [r6]
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_08015C48:
- adds r6, 0x4
- adds r5, 0x2
- ldr r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x10]
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x3
- bgt _08015C5E
- b _08015B22
-_08015C5E:
- adds r0, r4, 0
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015C70: .4byte gUnknown_02024C0B
-_08015C74: .4byte gUnknown_02024CA8
-_08015C78: .4byte gBattleMons
-_08015C7C: .4byte gUnknown_02024A8C
-_08015C80: .4byte gBitTable
-_08015C84: .4byte gUnknown_02024C34
-_08015C88: .4byte gBattleMoves
-_08015C8C: .4byte 0x0000ffff
- thumb_func_end sub_8015A98
-
- thumb_func_start sub_8015C90
-sub_8015C90: @ 8015C90
- push {r4-r6,lr}
- ldr r5, _08015CFC @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r1, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _08015D38
- ldr r0, _08015D00 @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08015D04 @ =gUnknown_02024C1C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08015D08 @ =gUnknown_081D9365
- str r1, [r0]
- ldr r0, _08015D0C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08015D14
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r4, r0, 0
- bl Random
- movs r1, 0x1
- eors r4, r1
- movs r1, 0x2
- ands r1, r0
- orrs r4, r1
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl battle_get_side_with_given_state
- ldr r2, _08015D10 @ =gUnknown_02024260
- ldrb r1, [r5]
- lsls r1, 9
- adds r2, 0x3
- adds r1, r2
- b _08015D48
- .align 2, 0
-_08015CFC: .4byte gUnknown_02024A60
-_08015D00: .4byte gUnknown_02024D28
-_08015D04: .4byte gUnknown_02024C1C
-_08015D08: .4byte gUnknown_081D9365
-_08015D0C: .4byte gUnknown_020239F8
-_08015D10: .4byte gUnknown_02024260
-_08015D14:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r2, _08015D34 @ =gUnknown_02024260
- ldrb r1, [r5]
- lsls r1, 9
- adds r2, 0x3
- adds r1, r2
- b _08015D48
- .align 2, 0
-_08015D34: .4byte gUnknown_02024260
-_08015D38:
- ldr r0, _08015D58 @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
-_08015D48:
- strb r0, [r1]
- movs r0, 0
- cmp r6, 0xF
- bne _08015D52
- movs r0, 0x1
-_08015D52:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08015D58: .4byte gUnknown_02024D28
- thumb_func_end sub_8015C90
-
- thumb_func_start sub_8015D5C
-sub_8015D5C: @ 8015D5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- movs r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r4, 0
- ldr r0, _08015DF0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bge _08015DE0
- ldr r7, _08015DF4 @ =gUnknown_02024A8C
- mov r8, r7
-_08015D86:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r9, r0
- beq _08015DD6
- ldr r1, _08015DF8 @ =gUnknown_02024C98
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _08015DD6
- movs r2, 0
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- adds r0, r1, r7
- ldrh r0, [r0]
- cmp r5, r0
- beq _08015DCC
- mov r4, r8
- adds r0, r1, r4
-_08015DBE:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- bgt _08015DD6
- ldrh r1, [r0]
- cmp r5, r1
- bne _08015DBE
-_08015DCC:
- cmp r2, 0x3
- bgt _08015DD6
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08015DD6:
- adds r4, r3, 0
- ldr r0, _08015DF0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08015D86
-_08015DE0:
- adds r0, r6, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08015DF0: .4byte gUnknown_02024A68
-_08015DF4: .4byte gUnknown_02024A8C
-_08015DF8: .4byte gUnknown_02024C98
- thumb_func_end sub_8015D5C
-
- thumb_func_start sub_8015DFC
-sub_8015DFC: @ 8015DFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0
- mov r9, r0
- ldr r1, _08015EA0 @ =gUnknown_02024C07
- mov r2, r9
- strb r2, [r1]
- ldr r0, _08015EA4 @ =gUnknown_02024A68
- ldrb r4, [r0]
- adds r6, r1, 0
- mov r10, r0
- ldr r7, _08015EA8 @ =gUnknown_02024C08
- ldr r3, _08015EAC @ =0x02000000
- mov r12, r3
- cmp r9, r4
- bcs _08015E50
- ldr r2, _08015EB0 @ =gUnknown_02024C0C
- ldrb r1, [r2]
- ldr r5, _08015EB4 @ =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _08015E50
- adds r3, r6, 0
-_08015E32:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08015E50
- ldrb r0, [r2]
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08015E32
-_08015E50:
- movs r0, 0
- strb r0, [r7]
- mov r0, r10
- ldrb r4, [r0]
- cmp r4, 0
- beq _08015E8A
- ldr r2, _08015EB0 @ =gUnknown_02024C0C
- ldrb r1, [r2]
- ldr r5, _08015EB4 @ =gBitTable
- ldr r0, [r5]
- ands r1, r0
- cmp r1, 0
- beq _08015E8A
- adds r3, r7, 0
-_08015E6C:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08015E8A
- ldrb r0, [r2]
- ldrb r1, [r7]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _08015E6C
-_08015E8A:
- ldr r0, _08015EB8 @ =0x0001600e
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _08015E96
- b _0801652A
-_08015E96:
- lsls r0, 2
- ldr r1, _08015EBC @ =_08015EC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08015EA0: .4byte gUnknown_02024C07
-_08015EA4: .4byte gUnknown_02024A68
-_08015EA8: .4byte gUnknown_02024C08
-_08015EAC: .4byte 0x02000000
-_08015EB0: .4byte gUnknown_02024C0C
-_08015EB4: .4byte gBitTable
-_08015EB8: .4byte 0x0001600e
-_08015EBC: .4byte _08015EC0
- .align 2, 0
-_08015EC0:
- .4byte _08015EEC
- .4byte _08015F74
- .4byte _08016034
- .4byte _080160F4
- .4byte _080161C8
- .4byte _08016274
- .4byte _08016324
- .4byte _080163A8
- .4byte _08016420
- .4byte _08016494
- .4byte _08016520
-_08015EEC:
- movs r5, 0
- ldr r1, _08015F0C @ =gUnknown_02024A68
- mov r10, r1
- ldrb r2, [r1]
- cmp r5, r2
- bge _08015F06
- ldr r2, _08015F10 @ =gUnknown_02024A7A
-_08015EFA:
- adds r0, r5, r2
- strb r5, [r0]
- adds r5, 0x1
- ldrb r3, [r1]
- cmp r5, r3
- blt _08015EFA
-_08015F06:
- movs r5, 0
- b _08015F54
- .align 2, 0
-_08015F0C: .4byte gUnknown_02024A68
-_08015F10: .4byte gUnknown_02024A7A
-_08015F14:
- adds r4, r5, 0x1
- adds r6, r4, 0
- ldrb r1, [r1]
- cmp r6, r1
- bge _08015F52
- ldr r7, _08016004 @ =gUnknown_02024A7A
- ldr r0, _08016008 @ =gUnknown_02024A68
- mov r10, r0
- lsls r1, r5, 24
- mov r8, r1
-_08015F28:
- adds r0, r5, r7
- ldrb r0, [r0]
- adds r1, r4, r7
- ldrb r1, [r1]
- movs r2, 0
- bl b_first_side
- lsls r0, 24
- cmp r0, 0
- beq _08015F48
- lsls r1, r4, 24
- lsrs r1, 24
- mov r2, r8
- lsrs r0, r2, 24
- bl sub_8012FBC
-_08015F48:
- adds r4, 0x1
- ldr r0, _08016008 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08015F28
-_08015F52:
- adds r5, r6, 0
-_08015F54:
- mov r1, r10
- ldrb r0, [r1]
- subs r0, 0x1
- cmp r5, r0
- blt _08015F14
- ldr r1, _0801600C @ =0x02000000
- ldr r3, _08016010 @ =0x0001600e
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r2]
- ldr r2, _08016014 @ =0x000160fc
- adds r0, r1, r2
- strb r3, [r0]
- mov r12, r1
-_08015F74:
- ldr r1, _08016014 @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bls _08015F80
- b _08016236
-_08015F80:
- ldr r3, _08016018 @ =gUnknown_02024A60
- mov r8, r3
- adds r6, r1, 0
- movs r7, 0
- ldr r5, _0801601C @ =gUnknown_030041C0
-_08015F8A:
- ldr r0, _08016020 @ =gUnknown_02024C07
- ldrb r4, [r6]
- strb r4, [r0]
- mov r0, r8
- strb r4, [r0]
- ldr r0, _08016024 @ =gUnknown_02024C7A
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08015FE8
- ldr r0, _08016028 @ =gUnknown_02024C80
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- movs r4, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _08015FE8
- ldrh r0, [r3]
- ldr r2, _0801602C @ =0x0000fffe
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _08016030 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x73
- strb r0, [r5, 0x2]
- strb r7, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r4
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08015FE8:
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- ldr r3, _0801600C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _08015FFA
- b _08016532
-_08015FFA:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _08015F8A
- b _08016236
- .align 2, 0
-_08016004: .4byte gUnknown_02024A7A
-_08016008: .4byte gUnknown_02024A68
-_0801600C: .4byte 0x02000000
-_08016010: .4byte 0x0001600e
-_08016014: .4byte 0x000160fc
-_08016018: .4byte gUnknown_02024A60
-_0801601C: .4byte gUnknown_030041C0
-_08016020: .4byte gUnknown_02024C07
-_08016024: .4byte gUnknown_02024C7A
-_08016028: .4byte gUnknown_02024C80
-_0801602C: .4byte 0x0000fffe
-_08016030: .4byte gUnknown_081D9030
-_08016034:
- ldr r1, _080160CC @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bls _08016040
- b _08016182
-_08016040:
- adds r7, r1, 0
- movs r3, 0x2
- mov r10, r3
- movs r0, 0
- mov r8, r0
- ldr r5, _080160D0 @ =gUnknown_030041C0
-_0801604C:
- ldr r0, _080160D4 @ =gUnknown_02024C07
- ldrb r4, [r7]
- strb r4, [r0]
- ldr r1, _080160D8 @ =gUnknown_02024A60
- strb r4, [r1]
- ldr r0, _080160DC @ =gUnknown_02024C7A
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080160B0
- ldr r0, _080160E0 @ =gUnknown_02024C80
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- subs r0, 0x1
- strb r0, [r1, 0x1]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _080160B0
- ldrh r0, [r3]
- ldr r2, _080160E4 @ =0x0000fffd
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _080160E8 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- ldr r0, _080160EC @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- mov r3, r10
- strb r3, [r5, 0x1]
- movs r0, 0x71
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080160B0:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- ldr r1, _080160F0 @ =0x02000000
- mov r12, r1
- mov r2, r9
- cmp r2, 0
- beq _080160C2
- b _08016532
-_080160C2:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0801604C
- b _08016182
- .align 2, 0
-_080160CC: .4byte 0x000160fc
-_080160D0: .4byte gUnknown_030041C0
-_080160D4: .4byte gUnknown_02024C07
-_080160D8: .4byte gUnknown_02024A60
-_080160DC: .4byte gUnknown_02024C7A
-_080160E0: .4byte gUnknown_02024C80
-_080160E4: .4byte 0x0000fffd
-_080160E8: .4byte gUnknown_081D9030
-_080160EC: .4byte gUnknown_02024D1E
-_080160F0: .4byte 0x02000000
-_080160F4:
- ldr r1, _0801619C @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _08016182
- ldr r0, _080161A0 @ =gUnknown_02024A60
- mov r10, r0
- adds r7, r1, 0
- movs r1, 0
- mov r8, r1
- ldr r5, _080161A4 @ =gUnknown_030041C0
-_0801610A:
- ldr r0, _080161A8 @ =gUnknown_02024C07
- ldrb r4, [r7]
- strb r4, [r0]
- mov r2, r10
- strb r4, [r2]
- ldr r1, _080161AC @ =gUnknown_02024C80
- lsls r3, r4, 1
- adds r0, r3, r4
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _08016168
- subs r0, 0x1
- strb r0, [r1, 0x2]
- movs r6, 0xFF
- lsls r0, 24
- cmp r0, 0
- bne _08016168
- ldr r2, _080161B0 @ =gUnknown_02024C7A
- adds r2, r3, r2
- ldrh r0, [r2]
- ldr r3, _080161B4 @ =0x0000feff
- adds r1, r3, 0
- ands r0, r1
- strh r0, [r2]
- ldr r0, _080161B8 @ =gUnknown_081D9030
- bl b_call_bc_move_exec
- ldr r0, _080161BC @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- movs r0, 0xFD
- strb r0, [r5]
- movs r0, 0x2
- strb r0, [r5, 0x1]
- movs r0, 0x36
- strb r0, [r5, 0x2]
- mov r0, r8
- strb r0, [r5, 0x3]
- ldrb r0, [r5, 0x4]
- orrs r0, r6
- strb r0, [r5, 0x4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016168:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- ldr r1, _080161C0 @ =0x02000000
- mov r12, r1
- mov r2, r9
- cmp r2, 0
- beq _0801617A
- b _08016532
-_0801617A:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _0801610A
-_08016182:
- mov r3, r9
- cmp r3, 0
- beq _0801618A
- b _08016532
-_0801618A:
- ldr r0, _080161C4 @ =0x0001600e
- add r0, r12
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _0801619C @ =0x000160fc
- add r0, r12
- strb r3, [r0]
- b _0801652A
- .align 2, 0
-_0801619C: .4byte 0x000160fc
-_080161A0: .4byte gUnknown_02024A60
-_080161A4: .4byte gUnknown_030041C0
-_080161A8: .4byte gUnknown_02024C07
-_080161AC: .4byte gUnknown_02024C80
-_080161B0: .4byte gUnknown_02024C7A
-_080161B4: .4byte 0x0000feff
-_080161B8: .4byte gUnknown_081D9030
-_080161BC: .4byte gUnknown_02024D1E
-_080161C0: .4byte 0x02000000
-_080161C4: .4byte 0x0001600e
-_080161C8:
- ldr r1, _08016250 @ =0x000160fc
- add r1, r12
- ldrb r0, [r1]
- cmp r0, 0x1
- bhi _08016236
- ldr r7, _08016254 @ =gUnknown_02024A60
- adds r5, r1, 0
- ldr r6, _08016258 @ =gUnknown_02024C07
-_080161D8:
- ldrb r4, [r5]
- strb r4, [r6]
- strb r4, [r7]
- ldr r0, _0801625C @ =gUnknown_02024C7A
- lsls r2, r4, 1
- adds r3, r2, r0
- ldrh r1, [r3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801621C
- ldr r0, _08016260 @ =gUnknown_02024C80
- adds r1, r2, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x7]
- subs r0, 0x1
- strb r0, [r1, 0x7]
- lsls r0, 24
- cmp r0, 0
- bne _0801621C
- ldrh r0, [r3]
- ldr r2, _08016264 @ =0x0000ffdf
- adds r1, r2, 0
- ands r0, r1
- strh r0, [r3]
- ldr r0, _08016268 @ =gUnknown_081D9041
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801621C:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r3, _0801626C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _0801622E
- b _08016532
-_0801622E:
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080161D8
-_08016236:
- mov r2, r9
- cmp r2, 0
- beq _0801623E
- b _08016532
-_0801623E:
- ldr r0, _08016270 @ =0x0001600e
- add r0, r12
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08016250 @ =0x000160fc
- add r0, r12
- strb r2, [r0]
- b _0801652A
- .align 2, 0
-_08016250: .4byte 0x000160fc
-_08016254: .4byte gUnknown_02024A60
-_08016258: .4byte gUnknown_02024C07
-_0801625C: .4byte gUnknown_02024C7A
-_08016260: .4byte gUnknown_02024C80
-_08016264: .4byte 0x0000ffdf
-_08016268: .4byte gUnknown_081D9041
-_0801626C: .4byte 0x02000000
-_08016270: .4byte 0x0001600e
-_08016274:
- ldr r2, _080162FC @ =0x000160fc
- add r2, r12
- ldr r1, _08016300 @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080162E8
- ldr r5, _08016304 @ =gUnknown_02024A60
- adds r4, r2, 0
- ldr r6, _08016308 @ =gUnknown_02024DDC
-_08016288:
- ldr r1, _0801630C @ =gUnknown_02024A7A
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r5]
- ldrb r0, [r5]
- adds r1, r0, r6
- ldrb r0, [r1]
- cmp r0, 0
- beq _080162CA
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080162CA
- ldr r1, _08016310 @ =gBattleMons
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080162CA
- ldr r0, _08016314 @ =gUnknown_02024C08
- strb r2, [r0]
- ldr r0, _08016318 @ =gUnknown_081D939A
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080162CA:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r3, _0801631C @ =0x02000000
- mov r12, r3
- mov r1, r9
- cmp r1, 0
- beq _080162DC
- b _08016532
-_080162DC:
- ldr r1, _08016300 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08016288
-_080162E8:
- mov r2, r9
- cmp r2, 0
- beq _080162F0
- b _08016532
-_080162F0:
- ldr r1, _08016320 @ =0x0001600e
- add r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801652A
- .align 2, 0
-_080162FC: .4byte 0x000160fc
-_08016300: .4byte gUnknown_02024A68
-_08016304: .4byte gUnknown_02024A60
-_08016308: .4byte gUnknown_02024DDC
-_0801630C: .4byte gUnknown_02024A7A
-_08016310: .4byte gBattleMons
-_08016314: .4byte gUnknown_02024C08
-_08016318: .4byte gUnknown_081D939A
-_0801631C: .4byte 0x02000000
-_08016320: .4byte 0x0001600e
-_08016324:
- ldr r3, _0801635C @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _08016332
- b _080164F8
-_08016332:
- movs r0, 0x4
- ands r0, r2
- cmp r0, 0
- bne _0801637E
- ldr r1, _08016360 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08016370
- ldr r0, _08016364 @ =0x0000fffe
- ands r0, r2
- ldr r1, _08016368 @ =0x0000fffd
- ands r0, r1
- strh r0, [r3]
- ldr r1, _0801636C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0801639C
- .align 2, 0
-_0801635C: .4byte word_2024DB8
-_08016360: .4byte gUnknown_02024DBC
-_08016364: .4byte 0x0000fffe
-_08016368: .4byte 0x0000fffd
-_0801636C: .4byte gUnknown_02024D1E
-_08016370:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- bne _0801638A
- b _08016398
-_0801637E:
- movs r0, 0x2
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08016398
-_0801638A:
- ldr r1, _08016394 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0801639C
- .align 2, 0
-_08016394: .4byte gUnknown_02024D1E
-_08016398:
- ldr r0, _080163A0 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
-_0801639C:
- ldr r0, _080163A4 @ =gUnknown_081D8F62
- b _080164EA
- .align 2, 0
-_080163A0: .4byte gUnknown_02024D1E
-_080163A4: .4byte gUnknown_081D8F62
-_080163A8:
- ldr r3, _080163DC @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _080163B6
- b _080164F8
-_080163B6:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _080163F0
- ldr r1, _080163E0 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080163F0
- ldr r0, _080163E4 @ =0x0000fff7
- ands r0, r2
- strh r0, [r3]
- ldr r1, _080163E8 @ =gUnknown_02024C10
- ldr r0, _080163EC @ =gUnknown_081D8FFF
- b _080163F4
- .align 2, 0
-_080163DC: .4byte word_2024DB8
-_080163E0: .4byte gUnknown_02024DBC
-_080163E4: .4byte 0x0000fff7
-_080163E8: .4byte gUnknown_02024C10
-_080163EC: .4byte gUnknown_081D8FFF
-_080163F0:
- ldr r1, _0801640C @ =gUnknown_02024C10
- ldr r0, _08016410 @ =gUnknown_081D8F7D
-_080163F4:
- str r0, [r1]
- adds r3, r1, 0
- ldr r1, _08016414 @ =0x02000000
- ldr r0, _08016418 @ =0x000160a4
- adds r1, r0
- movs r2, 0
- movs r0, 0xC
- strb r0, [r1]
- ldr r0, _0801641C @ =gUnknown_02024D1E
- strb r2, [r0, 0x5]
- b _080164E8
- .align 2, 0
-_0801640C: .4byte gUnknown_02024C10
-_08016410: .4byte gUnknown_081D8F7D
-_08016414: .4byte 0x02000000
-_08016418: .4byte 0x000160a4
-_0801641C: .4byte gUnknown_02024D1E
-_08016420:
- ldr r3, _08016450 @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x60
- ands r0, r2
- cmp r0, 0
- beq _0801647C
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _08016464
- ldr r1, _08016454 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08016464
- ldr r0, _08016458 @ =0x0000ffdf
- ands r0, r2
- strh r0, [r3]
- ldr r1, _0801645C @ =gUnknown_02024C10
- ldr r0, _08016460 @ =gUnknown_081D9016
- b _08016468
- .align 2, 0
-_08016450: .4byte word_2024DB8
-_08016454: .4byte gUnknown_02024DBC
-_08016458: .4byte 0x0000ffdf
-_0801645C: .4byte gUnknown_02024C10
-_08016460: .4byte gUnknown_081D9016
-_08016464:
- ldr r1, _08016484 @ =gUnknown_02024C10
- ldr r0, _08016488 @ =gUnknown_081D9008
-_08016468:
- str r0, [r1]
- adds r3, r1, 0
- ldr r0, [r3]
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801647C:
- ldr r2, _0801648C @ =0x02000000
- ldr r0, _08016490 @ =0x0001600e
- adds r1, r2, r0
- b _080164FE
- .align 2, 0
-_08016484: .4byte gUnknown_02024C10
-_08016488: .4byte gUnknown_081D9008
-_0801648C: .4byte 0x02000000
-_08016490: .4byte 0x0001600e
-_08016494:
- ldr r3, _080164BC @ =word_2024DB8
- ldrh r2, [r3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080164F8
- ldr r1, _080164C0 @ =gUnknown_02024DBC
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _080164D0
- ldr r0, _080164C4 @ =0x0000ff7f
- ands r0, r2
- strh r0, [r3]
- ldr r1, _080164C8 @ =gUnknown_02024C10
- ldr r0, _080164CC @ =gUnknown_081D8FFF
- b _080164D4
- .align 2, 0
-_080164BC: .4byte word_2024DB8
-_080164C0: .4byte gUnknown_02024DBC
-_080164C4: .4byte 0x0000ff7f
-_080164C8: .4byte gUnknown_02024C10
-_080164CC: .4byte gUnknown_081D8FFF
-_080164D0:
- ldr r1, _08016508 @ =gUnknown_02024C10
- ldr r0, _0801650C @ =gUnknown_081D8F7D
-_080164D4:
- str r0, [r1]
- adds r3, r1, 0
- ldr r0, _08016510 @ =0x02000000
- ldr r1, _08016514 @ =0x000160a4
- adds r0, r1
- movs r1, 0xD
- strb r1, [r0]
- ldr r1, _08016518 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080164E8:
- ldr r0, [r3]
-_080164EA:
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080164F8:
- ldr r2, _08016510 @ =0x02000000
- ldr r3, _0801651C @ =0x0001600e
- adds r1, r2, r3
-_080164FE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- b _0801652A
- .align 2, 0
-_08016508: .4byte gUnknown_02024C10
-_0801650C: .4byte gUnknown_081D8F7D
-_08016510: .4byte 0x02000000
-_08016514: .4byte 0x000160a4
-_08016518: .4byte gUnknown_02024D1E
-_0801651C: .4byte 0x0001600e
-_08016520:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801652A:
- mov r0, r9
- cmp r0, 0
- bne _08016532
- b _08015E8A
-_08016532:
- ldr r0, _08016550 @ =gUnknown_030042D4
- ldr r1, [r0]
- ldr r0, _08016554 @ =sub_8011E8C
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08016550: .4byte gUnknown_030042D4
-_08016554: .4byte sub_8011E8C
- thumb_func_end sub_8015DFC
-
- thumb_func_start sub_8016558
-sub_8016558: @ 8016558
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r9, r0
- ldr r2, _08016578 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801657C @ =0x01000020
- orrs r0, r1
- str r0, [r2]
- bl _08017088
- .align 2, 0
-_08016578: .4byte gUnknown_02024C6C
-_0801657C: .4byte 0x01000020
-_08016580:
- ldr r3, _080165B4 @ =gUnknown_02024A60
- ldr r4, _080165B8 @ =gUnknown_02024C07
- ldr r1, _080165BC @ =gUnknown_02024A7A
- adds r5, r7, r2
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- strb r0, [r3]
- ldr r0, _080165C0 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080165C4 @ =gBitTable
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- adds r6, r3, 0
- cmp r1, 0
- beq _080165C8
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- bl _08017088
- .align 2, 0
-_080165B4: .4byte gUnknown_02024A60
-_080165B8: .4byte gUnknown_02024C07
-_080165BC: .4byte gUnknown_02024A7A
-_080165C0: .4byte gUnknown_02024C0C
-_080165C4: .4byte gBitTable
-_080165C8:
- movs r5, 0xB0
- lsls r5, 9
- adds r0, r7, r5
- ldrb r0, [r0]
- cmp r0, 0x13
- bls _080165D8
- bl _08017078
-_080165D8:
- lsls r0, 2
- ldr r1, _080165E4 @ =_080165E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080165E4: .4byte _080165E8
- .align 2, 0
-_080165E8:
- .4byte _08016638
- .4byte _080166A8
- .4byte _080166D8
- .4byte _08016730
- .4byte _080167C8
- .4byte _08016828
- .4byte _080168C0
- .4byte _0801691C
- .4byte _0801697C
- .4byte _080169DC
- .4byte _08016B78
- .4byte _08016CA0
- .4byte _08016D58
- .4byte _08016E30
- .4byte _08016EFC
- .4byte _08016F20
- .4byte _08016F6C
- .4byte _08016F9C
- .4byte _08016704
- .4byte _08017064
-_08016638:
- ldr r1, _08016694 @ =gUnknown_02024C98
- ldrb r3, [r6]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _08016686
- ldr r0, _08016698 @ =gBattleMons
- movs r1, 0x58
- muls r1, r3
- adds r0, r1, r0
- ldrh r2, [r0, 0x28]
- ldrh r7, [r0, 0x2C]
- cmp r2, r7
- beq _08016686
- cmp r2, 0
- beq _08016686
- ldr r1, _0801669C @ =gUnknown_02024BEC
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08016670
- movs r0, 0x1
- str r0, [r1]
-_08016670:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r0, _080166A0 @ =gUnknown_081D93D1
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016686:
- ldr r1, _080166A4 @ =0x02000000
- movs r0, 0xB0
- lsls r0, 9
- adds r1, r0
- bl _08017072
- .align 2, 0
-_08016694: .4byte gUnknown_02024C98
-_08016698: .4byte gBattleMons
-_0801669C: .4byte gUnknown_02024BEC
-_080166A0: .4byte gUnknown_081D93D1
-_080166A4: .4byte 0x02000000
-_080166A8:
- ldrb r1, [r6]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080166C8
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080166C8:
- ldr r1, _080166D4 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- bl _08017072
- .align 2, 0
-_080166D4: .4byte 0x02000000
-_080166D8:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _080166F2
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080166F2:
- ldr r1, _08016700 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- bl _08017072
- .align 2, 0
-_08016700: .4byte 0x02000000
-_08016704:
- ldrb r1, [r6]
- movs r0, 0x1
- movs r2, 0x1
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _0801671E
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801671E:
- ldr r1, _0801672C @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- bl _08017072
- .align 2, 0
-_0801672C: .4byte 0x02000000
-_08016730:
- ldr r0, _080167A8 @ =gUnknown_02024C98
- ldrb r2, [r6]
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801679C
- ldr r3, _080167AC @ =gBattleMons
- movs r5, 0x3
- ands r5, r1
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801679C
- adds r0, r2, 0
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801679C
- ldr r0, _080167B0 @ =gUnknown_02024C08
- strb r5, [r0]
- ldr r2, _080167B4 @ =gUnknown_02024BEC
- ldrb r0, [r6]
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _0801677C
- movs r0, 0x1
- str r0, [r2]
-_0801677C:
- ldr r1, _080167B8 @ =0x02000000
- ldr r7, _080167BC @ =0x000160a4
- adds r0, r1, r7
- strb r5, [r0]
- ldrb r0, [r4]
- ldr r2, _080167C0 @ =0x000160a5
- adds r1, r2
- strb r0, [r1]
- ldr r0, _080167C4 @ =gUnknown_081D904B
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801679C:
- ldr r1, _080167B8 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- bl _08017072
- .align 2, 0
-_080167A8: .4byte gUnknown_02024C98
-_080167AC: .4byte gBattleMons
-_080167B0: .4byte gUnknown_02024C08
-_080167B4: .4byte gUnknown_02024BEC
-_080167B8: .4byte 0x02000000
-_080167BC: .4byte 0x000160a4
-_080167C0: .4byte 0x000160a5
-_080167C4: .4byte gUnknown_081D904B
-_080167C8:
- ldr r2, _08016818 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801680A
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _0801680A
- ldr r2, _0801681C @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _080167FA
- movs r0, 0x1
- str r0, [r2]
-_080167FA:
- ldr r0, _08016820 @ =gUnknown_081D9518
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801680A:
- ldr r1, _08016824 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- bl _08017072
- .align 2, 0
-_08016818: .4byte gBattleMons
-_0801681C: .4byte gUnknown_02024BEC
-_08016820: .4byte gUnknown_081D9518
-_08016824: .4byte 0x02000000
-_08016828:
- ldr r4, _080168B0 @ =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- mov r8, r7
- mov r2, r8
- muls r2, r0
- adds r3, r4, 0
- adds r3, 0x4C
- adds r0, r2, r3
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080168A2
- adds r1, r2, r4
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _080168A2
- ldr r5, _080168B4 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r5]
- cmp r0, 0
- bne _0801685C
- movs r0, 0x1
- str r0, [r5]
-_0801685C:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r2, r0, r3
- ldr r1, [r2]
- movs r4, 0xF0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, r4
- beq _0801687C
- movs r7, 0x80
- lsls r7, 1
- adds r0, r1, r7
- str r0, [r2]
-_0801687C:
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r3
- ldr r0, [r0]
- ands r0, r4
- lsrs r0, 8
- ldr r1, [r5]
- muls r0, r1
- str r0, [r5]
- ldr r0, _080168B8 @ =gUnknown_081D9518
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080168A2:
- ldr r1, _080168BC @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- bl _08017072
- .align 2, 0
-_080168B0: .4byte gBattleMons
-_080168B4: .4byte gUnknown_02024BEC
-_080168B8: .4byte gUnknown_081D9518
-_080168BC: .4byte 0x02000000
-_080168C0:
- ldr r2, _0801690C @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08016902
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08016902
- ldr r2, _08016910 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 3
- str r0, [r2]
- cmp r0, 0
- bne _080168F2
- movs r0, 0x1
- str r0, [r2]
-_080168F2:
- ldr r0, _08016914 @ =gUnknown_081D953A
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016902:
- ldr r1, _08016918 @ =0x02000000
- movs r3, 0xB0
- lsls r3, 9
- adds r1, r3
- b _08017072
- .align 2, 0
-_0801690C: .4byte gBattleMons
-_08016910: .4byte gUnknown_02024BEC
-_08016914: .4byte gUnknown_081D953A
-_08016918: .4byte 0x02000000
-_0801691C:
- ldr r2, _0801696C @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08016960
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08016960
- ldr r2, _08016970 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _08016950
- movs r0, 0x1
- str r0, [r2]
-_08016950:
- ldr r0, _08016974 @ =gUnknown_081D9613
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016960:
- ldr r1, _08016978 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- b _08017072
- .align 2, 0
-_0801696C: .4byte gBattleMons
-_08016970: .4byte gUnknown_02024BEC
-_08016974: .4byte gUnknown_081D9613
-_08016978: .4byte 0x02000000
-_0801697C:
- ldr r2, _080169CC @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 21
- ands r0, r1
- cmp r0, 0
- beq _080169C0
- adds r1, r3, r2
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _080169C0
- ldr r2, _080169D0 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _080169B0
- movs r0, 0x1
- str r0, [r2]
-_080169B0:
- ldr r0, _080169D4 @ =gUnknown_081D9624
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_080169C0:
- ldr r1, _080169D8 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_080169CC: .4byte gBattleMons
-_080169D0: .4byte gUnknown_02024BEC
-_080169D4: .4byte gUnknown_081D9624
-_080169D8: .4byte 0x02000000
-_080169DC:
- ldr r0, _08016A8C @ =gBattleMons
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x58
- mov r10, r1
- mov r1, r10
- muls r1, r0
- mov r5, r8
- adds r5, 0x50
- adds r3, r1, r5
- ldr r2, [r3]
- movs r4, 0xE0
- lsls r4, 8
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08016AF6
- mov r7, r8
- adds r0, r1, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08016AF6
- ldr r1, _08016A90 @ =0xffffe000
- adds r0, r2, r1
- str r0, [r3]
- ldrb r1, [r6]
- mov r0, r10
- muls r0, r1
- adds r0, r5
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08016AB4
- ldr r2, _08016A94 @ =0x02000000
- lsls r0, r1, 1
- ldr r4, _08016A98 @ =0x00016004
- adds r0, r4
- adds r0, r2
- ldrb r1, [r0]
- ldr r3, _08016A9C @ =0x000160a4
- adds r0, r2, r3
- strb r1, [r0]
- ldrb r0, [r6]
- lsls r0, 1
- subs r3, 0x9F
- adds r0, r3
- adds r0, r2
- ldrb r1, [r0]
- ldr r5, _08016AA0 @ =0x000160a5
- adds r0, r2, r5
- strb r1, [r0]
- ldr r1, _08016AA4 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r4
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016AA8 @ =gUnknown_02024C10
- ldr r0, _08016AAC @ =gUnknown_081D95E2
- str r0, [r1]
- ldr r2, _08016AB0 @ =gUnknown_02024BEC
- ldrb r0, [r6]
- mov r7, r10
- muls r7, r0
- adds r0, r7, 0
- add r0, r8
- ldrh r0, [r0, 0x2C]
- lsrs r0, 4
- str r0, [r2]
- cmp r0, 0
- bne _08016AE6
- movs r0, 0x1
- str r0, [r2]
- b _08016AE6
- .align 2, 0
-_08016A8C: .4byte gBattleMons
-_08016A90: .4byte 0xffffe000
-_08016A94: .4byte 0x02000000
-_08016A98: .4byte 0x00016004
-_08016A9C: .4byte 0x000160a4
-_08016AA0: .4byte 0x000160a5
-_08016AA4: .4byte gUnknown_030041C0
-_08016AA8: .4byte gUnknown_02024C10
-_08016AAC: .4byte gUnknown_081D95E2
-_08016AB0: .4byte gUnknown_02024BEC
-_08016AB4:
- ldr r1, _08016B00 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _08016B04 @ =0x02000000
- ldrb r0, [r6]
- lsls r0, 1
- ldr r3, _08016B08 @ =0x00016004
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- lsls r0, 1
- ldr r5, _08016B0C @ =0x00016005
- adds r0, r5
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08016B10 @ =gUnknown_02024C10
- ldr r0, _08016B14 @ =gUnknown_081D95F4
- str r0, [r1]
-_08016AE6:
- ldr r0, [r1]
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016AF6:
- ldr r1, _08016B04 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016B00: .4byte gUnknown_030041C0
-_08016B04: .4byte 0x02000000
-_08016B08: .4byte 0x00016004
-_08016B0C: .4byte 0x00016005
-_08016B10: .4byte gUnknown_02024C10
-_08016B14: .4byte gUnknown_081D95F4
-_08016B18:
- movs r0, 0x8
- negs r0, r0
- ands r4, r0
- str r4, [r2]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- mov r0, r10
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08016B68 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r1, _08016B6C @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r0, _08016B70 @ =gUnknown_081D950F
- bl b_call_bc_move_exec
- ldr r4, _08016B74 @ =gUnknown_02024A60
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08016BE0
- .align 2, 0
-_08016B68: .4byte 0xf7ffffff
-_08016B6C: .4byte gUnknown_02024D1E
-_08016B70: .4byte gUnknown_081D950F
-_08016B74: .4byte gUnknown_02024A60
-_08016B78:
- ldr r2, _08016BF4 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x70
- ands r1, r0
- adds r7, r2, 0
- cmp r1, 0
- beq _08016C82
- movs r0, 0
- strb r0, [r4]
- mov r2, r8
- ldrb r1, [r2]
- cmp r1, 0
- beq _08016BE0
- mov r10, r7
- adds r6, r4, 0
- movs r3, 0x58
- mov r8, r3
- movs r5, 0x4C
- adds r5, r7
- mov r9, r5
- str r1, [sp, 0x4]
- movs r0, 0x7
- mov r12, r0
-_08016BB2:
- ldrb r1, [r6]
- mov r3, r8
- muls r3, r1
- mov r5, r9
- adds r2, r3, r5
- ldr r4, [r2]
- adds r0, r4, 0
- mov r5, r12
- ands r0, r5
- cmp r0, 0
- beq _08016BD2
- adds r0, r3, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08016B18
-_08016BD2:
- adds r0, r1, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [sp, 0x4]
- cmp r0, r1
- bcc _08016BB2
-_08016BE0:
- ldr r2, _08016BF8 @ =gUnknown_02024C07
- ldr r1, _08016BFC @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08016C00
- movs r2, 0x2
- mov r9, r2
- b _0801707E
- .align 2, 0
-_08016BF4: .4byte gBattleMons
-_08016BF8: .4byte gUnknown_02024C07
-_08016BFC: .4byte gUnknown_02024A68
-_08016C00:
- ldr r5, _08016C38 @ =gUnknown_02024A60
- ldrb r0, [r5]
- strb r0, [r2]
- ldr r2, _08016C3C @ =gBattleMons
- ldrb r0, [r5]
- movs r7, 0x58
- adds r1, r0, 0
- muls r1, r7
- adds r6, r2, 0
- adds r6, 0x50
- adds r1, r6
- ldr r0, [r1]
- subs r0, 0x10
- str r0, [r1]
- ldrb r0, [r5]
- bl sub_8015660
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _08016C44
- ldrb r0, [r5]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08016C40 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08016C78
- .align 2, 0
-_08016C38: .4byte gUnknown_02024A60
-_08016C3C: .4byte gBattleMons
-_08016C40: .4byte gUnknown_02024D1E
-_08016C44:
- ldrb r3, [r5]
- adds r0, r3, 0
- muls r0, r7
- adds r2, r0, r6
- ldr r0, [r2]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08016C6C
- ldr r0, _08016C68 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- b _08016C78
- .align 2, 0
-_08016C68: .4byte gUnknown_02024D1E
-_08016C6C:
- ldr r1, _08016C94 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- adds r0, r3, 0
- bl b_cancel_multi_turn_move_maybe
-_08016C78:
- ldr r0, _08016C98 @ =gUnknown_081D957E
- bl b_call_bc_move_exec
- movs r3, 0x1
- mov r9, r3
-_08016C82:
- mov r5, r9
- cmp r5, 0x2
- bne _08016C8A
- b _08017078
-_08016C8A:
- ldr r1, _08016C9C @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016C94: .4byte gUnknown_02024D1E
-_08016C98: .4byte gUnknown_081D957E
-_08016C9C: .4byte 0x02000000
-_08016CA0:
- ldr r1, _08016CD8 @ =gBattleMons
- ldrb r0, [r6]
- movs r7, 0x58
- muls r0, r7
- adds r5, r1, 0
- adds r5, 0x50
- adds r2, r0, r5
- ldr r1, [r2]
- movs r4, 0xC0
- lsls r4, 4
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- beq _08016D3C
- ldr r3, _08016CDC @ =0xfffffc00
- adds r0, r1, r3
- str r0, [r2]
- ldrb r0, [r6]
- bl sub_8015660
- lsls r0, 24
- cmp r0, 0
- beq _08016CE0
- ldrb r0, [r6]
- bl b_cancel_multi_turn_move_maybe
- b _08016D3C
- .align 2, 0
-_08016CD8: .4byte gBattleMons
-_08016CDC: .4byte 0xfffffc00
-_08016CE0:
- ldrb r0, [r6]
- muls r0, r7
- adds r2, r0, r5
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08016D3C
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _08016D3C
- ldr r0, _08016D48 @ =0xffffefff
- ands r1, r0
- str r1, [r2]
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x7
- ands r0, r4
- cmp r0, 0
- bne _08016D3C
- ldr r1, _08016D4C @ =gUnknown_02024D1E
- movs r0, 0x47
- strb r0, [r1, 0x3]
- movs r0, 0x1
- movs r1, 0
- bl sub_801E3EC
- ldrb r0, [r6]
- muls r0, r7
- adds r0, r5
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08016D32
- ldr r0, _08016D50 @ =gUnknown_081D9587
- bl b_call_bc_move_exec
-_08016D32:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016D3C:
- ldr r1, _08016D54 @ =0x02000000
- movs r5, 0xB0
- lsls r5, 9
- adds r1, r5
- b _08017072
- .align 2, 0
-_08016D48: .4byte 0xffffefff
-_08016D4C: .4byte gUnknown_02024D1E
-_08016D50: .4byte gUnknown_081D9587
-_08016D54: .4byte 0x02000000
-_08016D58:
- ldr r0, _08016DD4 @ =gUnknown_02024CA8
- ldrb r3, [r6]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r5, r1, r0
- ldrb r1, [r5, 0xB]
- lsls r1, 28
- adds r7, r0, 0
- cmp r1, 0
- beq _08016E1E
- movs r4, 0
- ldr r2, _08016DD8 @ =gBattleMons
- movs r0, 0x58
- adds r1, r3, 0
- muls r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r5, 0x4]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08016DAC
- mov r12, r7
- mov r8, r2
- adds r5, r6, 0
- movs r3, 0x58
-_08016D8C:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08016DAC
- ldrb r2, [r5]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r12
- lsls r0, r4, 1
- muls r2, r3
- adds r0, r2
- add r0, r8
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _08016D8C
-_08016DAC:
- cmp r4, 0x4
- bne _08016DDC
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strh r1, [r0, 0x4]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- b _08016E1E
- .align 2, 0
-_08016DD4: .4byte gUnknown_02024CA8
-_08016DD8: .4byte gBattleMons
-_08016DDC:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r3, [r2, 0xB]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0xB]
- adds r2, r1, 0
- cmp r2, 0
- bne _08016E1E
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- strh r2, [r0, 0x4]
- ldr r0, _08016E28 @ =gUnknown_081D9148
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016E1E:
- ldr r1, _08016E2C @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_08016E28: .4byte gUnknown_081D9148
-_08016E2C: .4byte 0x02000000
-_08016E30:
- ldr r3, _08016E7C @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r2, r0, r3
- ldrb r5, [r2, 0xE]
- lsls r4, r5, 28
- cmp r4, 0
- beq _08016EE8
- ldr r0, _08016E80 @ =gBattleMons
- mov r8, r0
- ldrb r0, [r2, 0xC]
- lsls r0, 1
- movs r7, 0x58
- muls r1, r7
- adds r0, r1
- mov r1, r8
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r1, [r2, 0x6]
- cmp r0, r1
- beq _08016E84
- movs r0, 0
- strh r0, [r2, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xE]
- b _08016EE8
- .align 2, 0
-_08016E7C: .4byte gUnknown_02024CA8
-_08016E80: .4byte gBattleMons
-_08016E84:
- lsrs r1, r4, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r4, 0x10
- negs r4, r4
- adds r0, r4, 0
- ands r0, r5
- orrs r0, r1
- strb r0, [r2, 0xE]
- cmp r1, 0
- beq _08016EB8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- muls r1, r7
- ldrb r0, [r0, 0xC]
- adds r1, r0
- mov r0, r8
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08016EE8
-_08016EB8:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x6]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0xE]
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0xE]
- ldr r0, _08016EF4 @ =gUnknown_081D914F
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08016EE8:
- ldr r1, _08016EF8 @ =0x02000000
- movs r2, 0xB0
- lsls r2, 9
- adds r1, r2
- b _08017072
- .align 2, 0
-_08016EF4: .4byte gUnknown_081D914F
-_08016EF8: .4byte 0x02000000
-_08016EFC:
- ldr r0, _08016F1C @ =gUnknown_02024C98
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- beq _08016F14
- adds r0, r2, 0
- subs r0, 0x8
- str r0, [r1]
-_08016F14:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F1C: .4byte gUnknown_02024C98
-_08016F20:
- ldr r2, _08016F60 @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x12]
- lsls r1, r2, 28
- cmp r1, 0
- beq _08016F5A
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x12]
- cmp r1, 0
- bne _08016F5A
- ldr r0, _08016F64 @ =gUnknown_02024C98
- ldrb r2, [r6]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08016F68 @ =0xfffffdff
- ands r0, r1
- str r0, [r2]
-_08016F5A:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F60: .4byte gUnknown_02024CA8
-_08016F64: .4byte gUnknown_02024C98
-_08016F68: .4byte 0xfffffdff
-_08016F6C:
- ldr r2, _08016F98 @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r3, r0, r2
- ldrb r2, [r3, 0x13]
- lsls r1, r2, 28
- cmp r1, 0
- beq _08016F92
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x13]
-_08016F92:
- movs r1, 0xB0
- lsls r1, 9
- b _08017070
- .align 2, 0
-_08016F98: .4byte gUnknown_02024CA8
-_08016F9C:
- ldr r4, _0801704C @ =gUnknown_02024C98
- ldrb r0, [r6]
- lsls r0, 2
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0xC0
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08017042
- ldr r5, _08017050 @ =0xfffff800
- adds r0, r1, r5
- str r0, [r2]
- ldrb r2, [r6]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08017042
- ldr r3, _08017054 @ =gBattleMons
- movs r5, 0x58
- adds r1, r2, 0
- muls r1, r5
- adds r4, r3, 0
- adds r4, 0x4C
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08017042
- adds r0, r1, r3
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _08017042
- cmp r0, 0xF
- beq _08017042
- adds r0, r2, 0
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- bne _08017042
- ldrb r0, [r6]
- bl b_cancel_multi_turn_move_maybe
- bl Random
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08017058 @ =gUnknown_02024C0A
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r0, _0801705C @ =gUnknown_081D964C
- bl b_call_bc_move_exec
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08017042:
- ldr r1, _08017060 @ =0x02000000
- movs r7, 0xB0
- lsls r7, 9
- adds r1, r7
- b _08017072
- .align 2, 0
-_0801704C: .4byte gUnknown_02024C98
-_08017050: .4byte 0xfffff800
-_08017054: .4byte gBattleMons
-_08017058: .4byte gUnknown_02024C0A
-_0801705C: .4byte gUnknown_081D964C
-_08017060: .4byte 0x02000000
-_08017064:
- movs r1, 0xB0
- lsls r1, 9
- add r1, r10
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08017084 @ =0x00016001
-_08017070:
- add r1, r10
-_08017072:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08017078:
- mov r0, r9
- cmp r0, 0
- beq _08017088
-_0801707E:
- mov r0, r9
- b _080170B8
- .align 2, 0
-_08017084: .4byte 0x00016001
-_08017088:
- ldr r7, _080170C8 @ =0x02000000
- ldr r2, _080170CC @ =0x00016001
- adds r0, r7, r2
- ldr r1, _080170D0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- mov r10, r7
- mov r8, r1
- ldrb r1, [r1]
- cmp r0, r1
- bcs _080170AC
- movs r3, 0xB0
- lsls r3, 9
- adds r0, r7, r3
- ldrb r0, [r0]
- cmp r0, 0x13
- bhi _080170AC
- bl _08016580
-_080170AC:
- ldr r0, _080170D4 @ =gUnknown_02024C6C
- ldr r1, [r0]
- ldr r2, _080170D8 @ =0xfeffffdf
- ands r1, r2
- str r1, [r0]
- movs r0, 0
-_080170B8:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080170C8: .4byte 0x02000000
-_080170CC: .4byte 0x00016001
-_080170D0: .4byte gUnknown_02024A68
-_080170D4: .4byte gUnknown_02024C6C
-_080170D8: .4byte 0xfeffffdf
- thumb_func_end sub_8016558
-
- thumb_func_start sub_80170DC
-sub_80170DC: @ 80170DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08017108 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801710C @ =0x01000020
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08017110 @ =0x02000000
- ldr r3, _08017114 @ =0x00016110
- adds r0, r1, r3
- ldrb r0, [r0]
- mov r8, r1
- cmp r0, 0
- beq _08017118
- cmp r0, 0x1
- bne _08017104
- b _08017258
-_08017104:
- b _08017380
- .align 2, 0
-_08017108: .4byte gUnknown_02024C6C
-_0801710C: .4byte 0x01000020
-_08017110: .4byte 0x02000000
-_08017114: .4byte 0x00016110
-_08017118:
- ldr r2, _0801715C @ =0x00016111
- add r2, r8
- ldr r0, _08017160 @ =gUnknown_02024A68
- ldrb r1, [r2]
- mov r9, r0
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0801712A
- b _08017248
-_0801712A:
- ldr r4, _08017164 @ =gUnknown_02024A60
- adds r5, r2, 0
- ldr r1, _08017168 @ =gUnknown_02024DBC
- mov r12, r1
- movs r2, 0x8
- add r2, r12
- mov r10, r2
- mov r7, r12
- adds r7, 0x18
- ldr r6, _0801716C @ =gUnknown_030041C0
-_0801713E:
- ldrb r3, [r5]
- strb r3, [r4]
- ldr r0, _08017170 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08017174 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08017178
- adds r0, r3, 0x1
- strb r0, [r5]
- b _0801723C
- .align 2, 0
-_0801715C: .4byte 0x00016111
-_08017160: .4byte gUnknown_02024A68
-_08017164: .4byte gUnknown_02024A60
-_08017168: .4byte gUnknown_02024DBC
-_0801716C: .4byte gUnknown_030041C0
-_08017170: .4byte gUnknown_02024C0C
-_08017174: .4byte gBitTable
-_08017178:
- adds r0, r3, 0x1
- strb r0, [r5]
- ldr r1, _080171B4 @ =gUnknown_02024DBC
- ldrb r0, [r4]
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801723C
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _0801723C
- ldr r1, _080171B8 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801723C
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, 0xF8
- bne _080171C0
- ldr r0, _080171BC @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
- b _080171C6
- .align 2, 0
-_080171B4: .4byte gUnknown_02024DBC
-_080171B8: .4byte gBattleMons
-_080171BC: .4byte gUnknown_02024D1E
-_080171C0:
- ldr r1, _08017220 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080171C6:
- movs r0, 0xFD
- strb r0, [r6]
- movs r0, 0x2
- strb r0, [r6, 0x1]
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r6, 0x2]
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r6, 0x3]
- movs r0, 0xFF
- strb r0, [r6, 0x4]
- ldr r3, _08017224 @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r3]
- ldr r1, _08017228 @ =gUnknown_02024C07
- mov r0, r12
- adds r0, 0x4
- ldrb r2, [r4]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0801722C @ =gUnknown_02024BEC
- ldrb r0, [r4]
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- str r0, [r1]
- ldr r2, _08017230 @ =gUnknown_02024D68
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08017234 @ =0x0000ffff
- str r1, [r0]
- ldr r0, _08017238 @ =gUnknown_081D92D7
- b _08017364
- .align 2, 0
-_08017220: .4byte gUnknown_02024D1E
-_08017224: .4byte gUnknown_02024C08
-_08017228: .4byte gUnknown_02024C07
-_0801722C: .4byte gUnknown_02024BEC
-_08017230: .4byte gUnknown_02024D68
-_08017234: .4byte 0x0000ffff
-_08017238: .4byte gUnknown_081D92D7
-_0801723C:
- ldrb r0, [r5]
- mov r3, r9
- ldrb r3, [r3]
- cmp r0, r3
- bcs _08017248
- b _0801713E
-_08017248:
- ldr r1, _0801729C @ =0x00016110
- add r1, r8
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080172A0 @ =0x00016111
- add r0, r8
- strb r2, [r0]
-_08017258:
- ldr r2, _080172A0 @ =0x00016111
- add r2, r8
- ldr r0, _080172A4 @ =gUnknown_02024A68
- ldrb r1, [r2]
- mov r9, r0
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0801726A
- b _08017380
-_0801726A:
- ldr r5, _080172A8 @ =gUnknown_02024A60
- adds r3, r2, 0
- ldr r4, _080172AC @ =gUnknown_030041C0
- ldr r7, _080172B0 @ =gUnknown_02024CA8
-_08017272:
- ldr r2, _080172B4 @ =gUnknown_02024C07
- ldr r1, _080172B8 @ =gUnknown_02024A7A
- ldrb r0, [r3]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r0, _080172BC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080172C0 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080172C4
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- b _08017374
- .align 2, 0
-_0801729C: .4byte 0x00016110
-_080172A0: .4byte 0x00016111
-_080172A4: .4byte gUnknown_02024A68
-_080172A8: .4byte gUnknown_02024A60
-_080172AC: .4byte gUnknown_030041C0
-_080172B0: .4byte gUnknown_02024CA8
-_080172B4: .4byte gUnknown_02024C07
-_080172B8: .4byte gUnknown_02024A7A
-_080172BC: .4byte gUnknown_02024C0C
-_080172C0: .4byte gBitTable
-_080172C4:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldr r6, _08017334 @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08017374
- movs r0, 0xFD
- strb r0, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0xF]
- lsls r0, 28
- lsrs r0, 28
- strb r0, [r4, 0x4]
- movs r0, 0xFF
- strb r0, [r4, 0x5]
- ldrb r2, [r5]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r4, r0, r7
- ldrb r3, [r4, 0xF]
- lsls r1, r3, 28
- cmp r1, 0
- bne _08017348
- lsls r2, 2
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldr r3, _08017338 @ =gUnknown_02024BEC
- ldr r2, _0801733C @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- str r0, [r3]
- ldr r1, _08017340 @ =gUnknown_02024C10
- ldr r0, _08017344 @ =gUnknown_081D9202
- b _08017360
- .align 2, 0
-_08017334: .4byte gUnknown_02024C98
-_08017338: .4byte gUnknown_02024BEC
-_0801733C: .4byte gBattleMons
-_08017340: .4byte gUnknown_02024C10
-_08017344: .4byte gUnknown_081D9202
-_08017348:
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r1
- strb r0, [r4, 0xF]
- ldr r1, _0801736C @ =gUnknown_02024C10
- ldr r0, _08017370 @ =gUnknown_081D921D
-_08017360:
- str r0, [r1]
- ldr r0, [r1]
-_08017364:
- bl b_call_bc_move_exec
- movs r0, 0x1
- b _0801738C
- .align 2, 0
-_0801736C: .4byte gUnknown_02024C10
-_08017370: .4byte gUnknown_081D921D
-_08017374:
- ldrb r0, [r3]
- mov r1, r9
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08017380
- b _08017272
-_08017380:
- ldr r2, _0801739C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _080173A0 @ =0xfeffffdf
- ands r0, r1
- str r0, [r2]
- movs r0, 0
-_0801738C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801739C: .4byte gUnknown_02024C6C
-_080173A0: .4byte 0xfeffffdf
- thumb_func_end sub_80170DC
-
- thumb_func_start sub_80173A4
-sub_80173A4: @ 80173A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _080173C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080173F8
- b _080176AC
- .align 2, 0
-_080173C0: .4byte gUnknown_020239F8
-_080173C4:
- ldr r0, _080173D4 @ =gUnknown_081D8C72
- bl b_call_bc_move_exec
- ldr r1, _080173D8 @ =0x00016059
- add r1, r10
- movs r0, 0x2
- b _080173E8
- .align 2, 0
-_080173D4: .4byte gUnknown_081D8C72
-_080173D8: .4byte 0x00016059
-_080173DC:
- ldr r0, _080173F0 @ =gUnknown_081D8C7B
- bl b_call_bc_move_exec
- ldr r1, _080173F4 @ =0x00016059
- add r1, r8
- movs r0, 0x5
-_080173E8:
- strb r0, [r1]
-_080173EA:
- movs r0, 0x1
- b _080176AE
- .align 2, 0
-_080173F0: .4byte gUnknown_081D8C7B
-_080173F4: .4byte 0x00016059
-_080173F8:
- ldr r0, _08017414 @ =0x02000000
- mov r9, r0
-_080173FC:
- ldr r0, _08017418 @ =0x00016059
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08017408
- b _080176A0
-_08017408:
- lsls r0, 2
- ldr r1, _0801741C @ =_08017420
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017414: .4byte 0x02000000
-_08017418: .4byte 0x00016059
-_0801741C: .4byte _08017420
- .align 2, 0
-_08017420:
- .4byte _08017440
- .4byte _08017490
- .4byte _08017534
- .4byte _0801757C
- .4byte _0801758E
- .4byte _080175FC
- .4byte _08017638
- .4byte _080176A0
-_08017440:
- ldr r1, _08017508 @ =0x0001605a
- add r1, r9
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0801750C @ =0x00016059
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r5, 0
- ldr r0, _08017510 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _08017490
- ldr r6, _08017514 @ =gUnknown_02024C0C
-_0801745E:
- ldrb r0, [r6]
- ldr r2, _08017518 @ =gBitTable
- lsls r1, r5, 2
- adds r1, r2
- ldr r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _08017486
- lsls r0, r5, 24
- lsrs r0, 24
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- bne _08017486
- ldrb r0, [r6]
- bics r0, r4
- strb r0, [r6]
-_08017486:
- adds r5, 0x1
- ldr r0, _08017510 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _0801745E
-_08017490:
- ldr r1, _0801751C @ =0x02000000
- mov r9, r1
- ldr r0, _08017520 @ =gUnknown_02024C09
- mov r12, r0
- ldr r1, _08017524 @ =gUnknown_02024C08
- mov r8, r1
- mov r10, r9
- ldr r5, _08017508 @ =0x0001605a
- add r5, r9
- ldr r7, _08017528 @ =gBattleMons
- ldr r6, _0801752C @ =0x00016113
- add r6, r9
-_080174A8:
- ldrb r0, [r5]
- mov r1, r8
- strb r0, [r1]
- mov r1, r12
- strb r0, [r1]
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080174EA
- ldrb r2, [r6]
- ldr r4, _08017518 @ =gBitTable
- ldr r1, _08017530 @ =gUnknown_02024A6A
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _080174EA
- ldr r0, _08017514 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- lsls r0, r3, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080174EA
- b _080173C4
-_080174EA:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r1, _08017510 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _080174A8
- ldr r1, _0801750C @ =0x00016059
- add r1, r9
- movs r0, 0x3
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_08017508: .4byte 0x0001605a
-_0801750C: .4byte 0x00016059
-_08017510: .4byte gUnknown_02024A68
-_08017514: .4byte gUnknown_02024C0C
-_08017518: .4byte gBitTable
-_0801751C: .4byte 0x02000000
-_08017520: .4byte gUnknown_02024C09
-_08017524: .4byte gUnknown_02024C08
-_08017528: .4byte gBattleMons
-_0801752C: .4byte 0x00016113
-_08017530: .4byte gUnknown_02024A6A
-_08017534:
- ldr r0, _0801755C @ =gUnknown_02024C09
- ldrb r0, [r0]
- bl sub_8015740
- ldr r2, _08017560 @ =0x02000000
- ldr r0, _08017564 @ =0x0001605a
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08017568 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08017570
- ldr r0, _0801756C @ =0x00016059
- adds r1, r2, r0
- movs r0, 0x3
- b _0801769C
- .align 2, 0
-_0801755C: .4byte gUnknown_02024C09
-_08017560: .4byte 0x02000000
-_08017564: .4byte 0x0001605a
-_08017568: .4byte gUnknown_02024A68
-_0801756C: .4byte 0x00016059
-_08017570:
- ldr r0, _08017578 @ =0x00016059
- adds r1, r2, r0
- movs r0, 0x1
- b _0801769C
- .align 2, 0
-_08017578: .4byte 0x00016059
-_0801757C:
- ldr r1, _080175D8 @ =0x0001605a
- add r1, r9
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080175DC @ =0x00016059
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0801758E:
- ldr r7, _080175E0 @ =gUnknown_02024C09
- ldr r6, _080175E4 @ =gUnknown_02024C08
- ldr r1, _080175E8 @ =0x02000000
- mov r8, r1
- ldr r3, _080175D8 @ =0x0001605a
- add r3, r8
- ldr r5, _080175EC @ =gBattleMons
- ldr r4, _080175F0 @ =gBitTable
-_0801759E:
- ldrb r0, [r3]
- strb r0, [r6]
- strb r0, [r7]
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _080175C4
- ldr r0, _080175F4 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080175C4
- b _080173DC
-_080175C4:
- adds r0, r2, 0x1
- strb r0, [r3]
- ldr r1, _080175F8 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801759E
- b _08017612
- .align 2, 0
-_080175D8: .4byte 0x0001605a
-_080175DC: .4byte 0x00016059
-_080175E0: .4byte gUnknown_02024C09
-_080175E4: .4byte gUnknown_02024C08
-_080175E8: .4byte 0x02000000
-_080175EC: .4byte gBattleMons
-_080175F0: .4byte gBitTable
-_080175F4: .4byte gUnknown_02024C0C
-_080175F8: .4byte gUnknown_02024A68
-_080175FC:
- ldr r0, _0801761C @ =0x0001605a
- add r0, r9
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _08017620 @ =gUnknown_02024A68
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0]
- cmp r1, r0
- bne _08017628
-_08017612:
- ldr r1, _08017624 @ =0x00016059
- add r1, r9
- movs r0, 0x6
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_0801761C: .4byte 0x0001605a
-_08017620: .4byte gUnknown_02024A68
-_08017624: .4byte 0x00016059
-_08017628:
- ldr r1, _08017634 @ =0x00016059
- add r1, r9
- movs r0, 0x4
- strb r0, [r1]
- b _080176A0
- .align 2, 0
-_08017634: .4byte 0x00016059
-_08017638:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08017652
- b _080173EA
-_08017652:
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08017668
- b _080173EA
-_08017668:
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- bl sub_801A02C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801767C
- b _080173EA
-_0801767C:
- str r0, [sp]
- movs r0, 0x6
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08017692
- b _080173EA
-_08017692:
- ldr r2, _080176C0 @ =0x02000000
- ldr r0, _080176C4 @ =0x00016059
- adds r1, r2, r0
- ldrb r0, [r1]
- adds r0, 0x1
-_0801769C:
- strb r0, [r1]
- mov r9, r2
-_080176A0:
- ldr r0, _080176C4 @ =0x00016059
- add r0, r9
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080176AC
- b _080173FC
-_080176AC:
- movs r0, 0
-_080176AE:
- 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
-_080176C0: .4byte 0x02000000
-_080176C4: .4byte 0x00016059
- thumb_func_end sub_80173A4
-
- thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged
-b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8
- push {r4-r6,lr}
- movs r3, 0
- ldr r0, _08017708 @ =gUnknown_02024A68
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r3, r0
- bge _08017700
- ldr r4, _0801770C @ =gUnknown_02024C60
- movs r6, 0x80
- lsls r6, 16
- ldr r2, _08017710 @ =gUnknown_02024AD0
-_080176DE:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r6
- cmp r0, 0
- beq _080176F4
- ldrh r0, [r4]
- cmp r0, 0x63
- beq _080176F4
- ldr r0, _08017714 @ =0xff7fffff
- ands r1, r0
- str r1, [r2]
-_080176F4:
- adds r4, 0x2
- adds r2, 0x58
- adds r3, 0x1
- ldrb r0, [r5]
- cmp r3, r0
- blt _080176DE
-_08017700:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08017708: .4byte gUnknown_02024A68
-_0801770C: .4byte gUnknown_02024C60
-_08017710: .4byte gUnknown_02024AD0
-_08017714: .4byte 0xff7fffff
- thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged
-
- thumb_func_start sub_8017718
-sub_8017718: @ 8017718
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r0, 0
- mov r9, r0
- ldr r1, _08017734 @ =0x02016090
- mov r10, r1
- ldr r2, _08017738 @ =0xfffe9f70
- add r2, r10
- mov r8, r2
- b _08017746
- .align 2, 0
-_08017734: .4byte 0x02016090
-_08017738: .4byte 0xfffe9f70
-_0801773C:
- mov r4, r9
- cmp r4, 0
- beq _08017746
- bl _08017FAC
-_08017746:
- ldr r0, _08017760 @ =0x000160e7
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xE
- bls _08017754
- bl _08017F9E
-_08017754:
- lsls r0, 2
- ldr r1, _08017764 @ =_08017768
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08017760: .4byte 0x000160e7
-_08017764: .4byte _08017768
- .align 2, 0
-_08017768:
- .4byte _080177A4
- .4byte _080177E4
- .4byte _08017920
- .4byte _080179D8
- .4byte _08017A50
- .4byte _08017AC8
- .4byte _08017B1C
- .4byte _08017B98
- .4byte _08017C1C
- .4byte _08017C60
- .4byte _08017D3C
- .4byte _08017DC0
- .4byte _08017E5C
- .4byte _08017F48
- .4byte _08017F9E
-_080177A4:
- ldr r1, _080177D0 @ =gBattleMons
- ldr r3, _080177D4 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _080177D8 @ =0xfdffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _080177DC @ =gUnknown_02024C98
- ldrb r2, [r3]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _080177E0 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bl _08017F94
- .align 2, 0
-_080177D0: .4byte gBattleMons
-_080177D4: .4byte gUnknown_02024C07
-_080177D8: .4byte 0xfdffffff
-_080177DC: .4byte gUnknown_02024C98
-_080177E0: .4byte 0xffffbfff
-_080177E4:
- ldr r7, _0801784C @ =gBattleMons
- ldr r4, _08017850 @ =gUnknown_02024C07
- ldrb r1, [r4]
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r6, r7, 0
- adds r6, 0x4C
- adds r0, r6
- ldr r0, [r0]
- movs r2, 0x7
- mov r8, r2
- ands r0, r2
- cmp r0, 0
- bne _08017804
- b _08017D90
-_08017804:
- adds r0, r1, 0
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- beq _08017864
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r2, r6
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- ldrb r0, [r4]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r7, 0
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08017854 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08017858 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r1, _0801785C @ =gUnknown_02024C10
- ldr r0, _08017860 @ =gUnknown_081D94FB
- str r0, [r1]
- movs r4, 0x2
- mov r9, r4
- b _08017D90
- .align 2, 0
-_0801784C: .4byte gBattleMons
-_08017850: .4byte gUnknown_02024C07
-_08017854: .4byte 0xf7ffffff
-_08017858: .4byte gUnknown_02024D1E
-_0801785C: .4byte gUnknown_02024C10
-_08017860: .4byte gUnknown_081D94FB
-_08017864:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- movs r3, 0x1
- cmp r0, 0x30
- bne _08017878
- movs r3, 0x2
-_08017878:
- adds r2, r1, r6
- ldr r1, [r2]
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- cmp r0, r3
- bcs _08017890
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- b _08017894
-_08017890:
- subs r0, r1, r3
- str r0, [r2]
-_08017894:
- ldr r2, _080178D8 @ =gBattleMons
- ldr r0, _080178DC @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r4, [r0]
- movs r0, 0x7
- ands r4, r0
- cmp r4, 0
- beq _080178F0
- ldr r0, _080178E0 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAD
- bne _080178B8
- b _08017D90
-_080178B8:
- cmp r0, 0xD6
- bne _080178BE
- b _08017D90
-_080178BE:
- ldr r1, _080178E4 @ =gUnknown_02024C10
- ldr r0, _080178E8 @ =gUnknown_081D94EE
- str r0, [r1]
- ldr r2, _080178EC @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
- mov r9, r0
- b _08017D90
- .align 2, 0
-_080178D8: .4byte gBattleMons
-_080178DC: .4byte gUnknown_02024C07
-_080178E0: .4byte gUnknown_02024BE6
-_080178E4: .4byte gUnknown_02024C10
-_080178E8: .4byte gUnknown_081D94EE
-_080178EC: .4byte gUnknown_02024C6C
-_080178F0:
- adds r2, 0x50
- adds r2, r1, r2
- ldr r0, [r2]
- ldr r1, _08017910 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r0, _08017914 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _08017918 @ =gUnknown_02024C10
- ldr r0, _0801791C @ =gUnknown_081D94FB
- str r0, [r1]
- movs r1, 0x2
- b _08017D8E
- .align 2, 0
-_08017910: .4byte 0xf7ffffff
-_08017914: .4byte gUnknown_02024D1E
-_08017918: .4byte gUnknown_02024C10
-_0801791C: .4byte gUnknown_081D94FB
-_08017920:
- ldr r1, _0801797C @ =gBattleMons
- ldr r7, _08017980 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r0, r5
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801793C
- b _08017F94
-_0801793C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _080179A8
- ldr r2, _08017984 @ =gBattleMoves
- ldr r0, _08017988 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- beq _08017998
- ldr r1, _0801798C @ =gUnknown_02024C10
- ldr r0, _08017990 @ =gUnknown_081D9545
- str r0, [r1]
- ldr r2, _08017994 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 2
- orrs r0, r1
- str r0, [r2]
- b _080179C8
- .align 2, 0
-_0801797C: .4byte gBattleMons
-_08017980: .4byte gUnknown_02024C07
-_08017984: .4byte gBattleMoves
-_08017988: .4byte gUnknown_02024BE6
-_0801798C: .4byte gUnknown_02024C10
-_08017990: .4byte gUnknown_081D9545
-_08017994: .4byte gUnknown_02024C6C
-_08017998:
- ldr r2, _080179A0 @ =0x02000000
- ldr r7, _080179A4 @ =0x000160e7
- adds r1, r2, r7
- b _08017D96
- .align 2, 0
-_080179A0: .4byte 0x02000000
-_080179A4: .4byte 0x000160e7
-_080179A8:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r5
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _080179CC @ =gUnknown_02024C10
- ldr r0, _080179D0 @ =gUnknown_081D9552
- str r0, [r1]
- ldr r0, _080179D4 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
-_080179C8:
- movs r0, 0x2
- b _08017E3C
- .align 2, 0
-_080179CC: .4byte gUnknown_02024C10
-_080179D0: .4byte gUnknown_081D9552
-_080179D4: .4byte gUnknown_02024D1E
-_080179D8:
- ldr r1, _08017A30 @ =gBattleMons
- ldr r0, _08017A34 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- beq _080179EE
- b _08017D90
-_080179EE:
- ldr r0, _08017A38 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _08017A02
- b _08017D90
-_08017A02:
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- ldr r2, _08017A3C @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08017A40 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, _08017A44 @ =gUnknown_02024C10
- ldr r0, _08017A48 @ =gUnknown_081D9977
- str r0, [r1]
- ldr r2, _08017A4C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r2, 0x1
- mov r9, r2
- b _08017D90
- .align 2, 0
-_08017A30: .4byte gBattleMons
-_08017A34: .4byte gUnknown_02024C07
-_08017A38: .4byte gUnknown_02024CA8
-_08017A3C: .4byte gUnknown_02024C6C
-_08017A40: .4byte gUnknown_02024D1E
-_08017A44: .4byte gUnknown_02024C10
-_08017A48: .4byte gUnknown_081D9977
-_08017A4C: .4byte gUnknown_02024C68
-_08017A50:
- ldr r1, _08017AA4 @ =gBattleMons
- ldr r3, _08017AA8 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 15
- ands r0, r1
- cmp r0, 0
- beq _08017A9C
- ldr r0, _08017AAC @ =0xffbfffff
- ands r1, r0
- str r1, [r2]
- ldr r2, _08017AB0 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x19]
- ldrb r0, [r3]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017AB4 @ =gUnknown_02024C10
- ldr r0, _08017AB8 @ =gUnknown_081D7956
- str r0, [r1]
- ldr r2, _08017ABC @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08017A9C:
- ldr r2, _08017AC0 @ =0x02000000
- ldr r0, _08017AC4 @ =0x000160e7
- adds r1, r2, r0
- b _08017D96
- .align 2, 0
-_08017AA4: .4byte gBattleMons
-_08017AA8: .4byte gUnknown_02024C07
-_08017AAC: .4byte 0xffbfffff
-_08017AB0: .4byte gUnknown_02024CA8
-_08017AB4: .4byte gUnknown_02024C10
-_08017AB8: .4byte gUnknown_081D7956
-_08017ABC: .4byte gUnknown_02024C6C
-_08017AC0: .4byte 0x02000000
-_08017AC4: .4byte 0x000160e7
-_08017AC8:
- ldr r1, _08017B08 @ =gBattleMons
- ldr r3, _08017B0C @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08017AE2
- b _08017D90
-_08017AE2:
- movs r0, 0x9
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- ldr r0, _08017B10 @ =gUnknown_02024D28
- ldrb r2, [r3]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r3]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017B14 @ =gUnknown_02024C10
- ldr r0, _08017B18 @ =gUnknown_081D9573
- b _08017D7E
- .align 2, 0
-_08017B08: .4byte gBattleMons
-_08017B0C: .4byte gUnknown_02024C07
-_08017B10: .4byte gUnknown_02024D28
-_08017B14: .4byte gUnknown_02024C10
-_08017B18: .4byte gUnknown_081D9573
-_08017B1C:
- ldr r0, _08017B74 @ =gUnknown_02024CA8
- ldr r3, _08017B78 @ =gUnknown_02024C07
- ldrb r2, [r3]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, _08017B7C @ =gUnknown_02024BE6
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0]
- cmp r1, r0
- beq _08017B36
- b _08017D90
-_08017B36:
- cmp r1, 0
- bne _08017B3C
- b _08017D90
-_08017B3C:
- ldr r0, _08017B80 @ =gUnknown_02024D28
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _08017B84 @ =0x02000000
- ldrb r1, [r3]
- ldr r7, _08017B88 @ =0x00016003
- adds r0, r7
- strb r1, [r0]
- ldrb r0, [r3]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017B8C @ =gUnknown_02024C10
- ldr r0, _08017B90 @ =gUnknown_081D9139
- str r0, [r1]
- ldr r2, _08017B94 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x1
- mov r9, r0
- b _08017D90
- .align 2, 0
-_08017B74: .4byte gUnknown_02024CA8
-_08017B78: .4byte gUnknown_02024C07
-_08017B7C: .4byte gUnknown_02024BE6
-_08017B80: .4byte gUnknown_02024D28
-_08017B84: .4byte 0x02000000
-_08017B88: .4byte 0x00016003
-_08017B8C: .4byte gUnknown_02024C10
-_08017B90: .4byte gUnknown_081D9139
-_08017B94: .4byte gUnknown_02024C6C
-_08017B98:
- ldr r0, _08017BF4 @ =gUnknown_02024CA8
- ldr r4, _08017BF8 @ =gUnknown_02024C07
- ldrb r3, [r4]
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08017BEC
- ldr r2, _08017BFC @ =gBattleMoves
- ldr r0, _08017C00 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08017BEC
- ldr r0, _08017C04 @ =gUnknown_02024D28
- lsls r2, r3, 4
- adds r2, r0
- ldrb r0, [r2, 0x2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017C08 @ =gUnknown_02024C10
- ldr r0, _08017C0C @ =gUnknown_081D938F
- str r0, [r1]
- ldr r2, _08017C10 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r7, 0x1
- mov r9, r7
-_08017BEC:
- ldr r2, _08017C14 @ =0x02000000
- ldr r0, _08017C18 @ =0x000160e7
- adds r1, r2, r0
- b _08017D96
- .align 2, 0
-_08017BF4: .4byte gUnknown_02024CA8
-_08017BF8: .4byte gUnknown_02024C07
-_08017BFC: .4byte gBattleMoves
-_08017C00: .4byte gUnknown_02024BE6
-_08017C04: .4byte gUnknown_02024D28
-_08017C08: .4byte gUnknown_02024C10
-_08017C0C: .4byte gUnknown_081D938F
-_08017C10: .4byte gUnknown_02024C6C
-_08017C14: .4byte 0x02000000
-_08017C18: .4byte 0x000160e7
-_08017C1C:
- ldr r4, _08017C4C @ =gUnknown_02024C07
- ldrb r0, [r4]
- ldr r1, _08017C50 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- bl sub_8015D5C
- lsls r0, 24
- cmp r0, 0
- bne _08017C30
- b _08017D90
-_08017C30:
- ldr r0, _08017C54 @ =gUnknown_02024D28
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017C58 @ =gUnknown_02024C10
- ldr r0, _08017C5C @ =gUnknown_081D9459
- b _08017D7E
- .align 2, 0
-_08017C4C: .4byte gUnknown_02024C07
-_08017C50: .4byte gUnknown_02024BE6
-_08017C54: .4byte gUnknown_02024D28
-_08017C58: .4byte gUnknown_02024C10
-_08017C5C: .4byte gUnknown_081D9459
-_08017C60:
- ldr r7, _08017CAC @ =gBattleMons
- ldr r5, _08017CB0 @ =gUnknown_02024C07
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r4, r7, 0
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r3, 0x7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _08017C7E
- b _08017F94
-_08017C7E:
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r4
- ldr r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _08017D24
- bl Random
- movs r1, 0x1
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08017CB8
- ldr r1, _08017CB4 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- bl b_movescr_stack_push_cursor
- b _08017D02
- .align 2, 0
-_08017CAC: .4byte gBattleMons
-_08017CB0: .4byte gUnknown_02024C07
-_08017CB4: .4byte gUnknown_02024D1E
-_08017CB8:
- ldr r0, _08017D08 @ =gUnknown_02024D1E
- movs r4, 0x1
- strb r1, [r0, 0x5]
- ldr r1, _08017D0C @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r7
- movs r0, 0x28
- str r0, [sp]
- str r2, [sp, 0x4]
- ldrb r0, [r5]
- str r0, [sp, 0x8]
- ldrb r0, [r5]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, _08017D10 @ =gUnknown_02024BEC
- str r0, [r1]
- ldr r0, _08017D14 @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- orrs r0, r4
- strb r0, [r1, 0x1]
- ldr r2, _08017D18 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
-_08017D02:
- ldr r1, _08017D1C @ =gUnknown_02024C10
- ldr r0, _08017D20 @ =gUnknown_081D9595
- b _08017D2C
- .align 2, 0
-_08017D08: .4byte gUnknown_02024D1E
-_08017D0C: .4byte gUnknown_02024C08
-_08017D10: .4byte gUnknown_02024BEC
-_08017D14: .4byte gUnknown_02024D28
-_08017D18: .4byte gUnknown_02024C6C
-_08017D1C: .4byte gUnknown_02024C10
-_08017D20: .4byte gUnknown_081D9595
-_08017D24:
- bl b_movescr_stack_push_cursor
- ldr r1, _08017D34 @ =gUnknown_02024C10
- ldr r0, _08017D38 @ =gUnknown_081D95D4
-_08017D2C:
- str r0, [r1]
- movs r7, 0x1
- b _08017F8E
- .align 2, 0
-_08017D34: .4byte gUnknown_02024C10
-_08017D38: .4byte gUnknown_081D95D4
-_08017D3C:
- ldr r1, _08017DA0 @ =gBattleMons
- ldr r4, _08017DA4 @ =gUnknown_02024C07
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08017D90
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08017D90
- ldr r0, _08017DA8 @ =gUnknown_02024D28
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08017DAC @ =gUnknown_02024C10
- ldr r0, _08017DB0 @ =gUnknown_081D9566
-_08017D7E:
- str r0, [r1]
- ldr r2, _08017DB4 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- movs r1, 0x1
-_08017D8E:
- mov r9, r1
-_08017D90:
- ldr r2, _08017DB8 @ =0x02000000
- ldr r4, _08017DBC @ =0x000160e7
- adds r1, r2, r4
-_08017D96:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r8, r2
- b _08017F9E
- .align 2, 0
-_08017DA0: .4byte gBattleMons
-_08017DA4: .4byte gUnknown_02024C07
-_08017DA8: .4byte gUnknown_02024D28
-_08017DAC: .4byte gUnknown_02024C10
-_08017DB0: .4byte gUnknown_081D9566
-_08017DB4: .4byte gUnknown_02024C6C
-_08017DB8: .4byte 0x02000000
-_08017DBC: .4byte 0x000160e7
-_08017DC0:
- ldr r1, _08017DFC @ =gBattleMons
- ldr r4, _08017E00 @ =gUnknown_02024C07
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0xF0
- lsls r0, 12
- ands r1, r0
- cmp r1, 0
- bne _08017DDC
- b _08017F94
-_08017DDC:
- lsrs r0, r1, 16
- bl sub_804114C
- ldr r1, _08017E04 @ =0x02000000
- ldr r7, _08017E08 @ =0x00016003
- adds r1, r7
- strb r0, [r1]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08017E0C
- bl b_movescr_stack_push_cursor
- b _08017E34
- .align 2, 0
-_08017DFC: .4byte gBattleMons
-_08017E00: .4byte gUnknown_02024C07
-_08017E04: .4byte 0x02000000
-_08017E08: .4byte 0x00016003
-_08017E0C:
- ldr r0, _08017E44 @ =gUnknown_081D9608
- bl b_movescr_stack_push
- ldr r2, _08017E48 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
- orrs r0, r1
- str r0, [r2]
- ldr r0, _08017E4C @ =gUnknown_02024D28
- ldrb r2, [r4]
- lsls r2, 4
- adds r2, r0
- ldrb r0, [r2, 0x1]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r4]
- bl b_cancel_multi_turn_move_maybe
-_08017E34:
- ldr r1, _08017E50 @ =gUnknown_02024C10
- ldr r0, _08017E54 @ =gUnknown_081D95FB
- str r0, [r1]
- movs r0, 0x1
-_08017E3C:
- mov r9, r0
- ldr r1, _08017E58 @ =0x02000000
- mov r8, r1
- b _08017F94
- .align 2, 0
-_08017E44: .4byte gUnknown_081D9608
-_08017E48: .4byte gUnknown_02024C6C
-_08017E4C: .4byte gUnknown_02024D28
-_08017E50: .4byte gUnknown_02024C10
-_08017E54: .4byte gUnknown_081D95FB
-_08017E58: .4byte 0x02000000
-_08017E5C:
- ldr r1, _08017E98 @ =gBattleMons
- ldr r6, _08017E9C @ =gUnknown_02024C07
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r1, 0x50
- adds r3, r0, r1
- ldr r2, [r3]
- movs r4, 0xC0
- lsls r4, 2
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- bne _08017E7A
- b _08017F94
-_08017E7A:
- ldr r7, _08017EA0 @ =0xffffff00
- adds r0, r2, r7
- str r0, [r3]
- ldrb r0, [r6]
- muls r0, r5
- adds r1, r0, r1
- ldr r2, [r1]
- adds r0, r2, 0
- ands r0, r4
- cmp r0, 0
- beq _08017EAC
- ldr r1, _08017EA4 @ =gUnknown_02024C10
- ldr r0, _08017EA8 @ =gUnknown_081D90A7
- b _08017F38
- .align 2, 0
-_08017E98: .4byte gBattleMons
-_08017E9C: .4byte gUnknown_02024C07
-_08017EA0: .4byte 0xffffff00
-_08017EA4: .4byte gUnknown_02024C10
-_08017EA8: .4byte gUnknown_081D90A7
-_08017EAC:
- ldr r0, _08017F0C @ =0xffffefff
- ands r2, r0
- str r2, [r1]
- ldr r2, _08017F10 @ =gUnknown_02024BF4
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _08017F34
- ldr r1, _08017F14 @ =gUnknown_02024BE6
- movs r0, 0x75
- strh r0, [r1]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r0, 1
- mov r1, r10
- str r0, [r1]
- ldr r4, _08017F18 @ =gUnknown_02024C08
- ldr r1, _08017F1C @ =gUnknown_02024C74
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r0, _08017F20 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08017F24 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08017EFE
- movs r0, 0x75
- movs r1, 0x1
- bl sub_801B5C0
- strb r0, [r4]
-_08017EFE:
- ldr r1, _08017F28 @ =gUnknown_02024C10
- ldr r0, _08017F2C @ =gUnknown_081D90B2
- str r0, [r1]
- ldr r2, _08017F30 @ =0x02000000
- mov r8, r2
- b _08017F3A
- .align 2, 0
-_08017F0C: .4byte 0xffffefff
-_08017F10: .4byte gUnknown_02024BF4
-_08017F14: .4byte gUnknown_02024BE6
-_08017F18: .4byte gUnknown_02024C08
-_08017F1C: .4byte gUnknown_02024C74
-_08017F20: .4byte gUnknown_02024C0C
-_08017F24: .4byte gBitTable
-_08017F28: .4byte gUnknown_02024C10
-_08017F2C: .4byte gUnknown_081D90B2
-_08017F30: .4byte 0x02000000
-_08017F34:
- ldr r1, _08017F40 @ =gUnknown_02024C10
- ldr r0, _08017F44 @ =gUnknown_081D90F1
-_08017F38:
- str r0, [r1]
-_08017F3A:
- movs r4, 0x1
- mov r9, r4
- b _08017F94
- .align 2, 0
-_08017F40: .4byte gUnknown_02024C10
-_08017F44: .4byte gUnknown_081D90F1
-_08017F48:
- ldr r1, _08017FEC @ =gBattleMons
- ldr r0, _08017FF0 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r4, r0, r1
- ldr r3, [r4]
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _08017F94
- ldr r2, _08017FF4 @ =gBattleMoves
- ldr r0, _08017FF8 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7D
- bne _08017F8C
- movs r0, 0x21
- negs r0, r0
- ands r3, r0
- str r3, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, _08017FFC @ =gUnknown_02024C10
- ldr r0, _08018000 @ =gUnknown_081D9552
- str r0, [r1]
- ldr r1, _08018004 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_08017F8C:
- movs r7, 0x2
-_08017F8E:
- mov r9, r7
- ldr r0, _08018008 @ =0x02000000
- mov r8, r0
-_08017F94:
- ldr r1, _0801800C @ =0x000160e7
- add r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08017F9E:
- ldr r0, _0801800C @ =0x000160e7
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0xE
- beq _08017FAC
- bl _0801773C
-_08017FAC:
- mov r1, r9
- cmp r1, 0x2
- bne _08017FD8
- ldr r4, _08018010 @ =gUnknown_02024A60
- ldr r0, _08017FF0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08018014 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08017FD8:
- mov r0, r9
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08017FEC: .4byte gBattleMons
-_08017FF0: .4byte gUnknown_02024C07
-_08017FF4: .4byte gBattleMoves
-_08017FF8: .4byte gUnknown_02024BE6
-_08017FFC: .4byte gUnknown_02024C10
-_08018000: .4byte gUnknown_081D9552
-_08018004: .4byte gUnknown_02024D1E
-_08018008: .4byte 0x02000000
-_0801800C: .4byte 0x000160e7
-_08018010: .4byte gUnknown_02024A60
-_08018014: .4byte gUnknown_02024ACC
- thumb_func_end sub_8017718
-
- thumb_func_start sub_8018018
-sub_8018018: @ 8018018
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r3, r4, 0
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldr r0, _08018044 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08018048
- movs r0, 0
- b _08018198
- .align 2, 0
-_08018044: .4byte gUnknown_020239F8
-_08018048:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080180D4
- adds r0, r4, 0
- bl sub_803FC34
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080180CC @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _0801806E
- ldr r2, _080180D0 @ =gPlayerParty
- mov r8, r2
-_0801806E:
- adds r0, r7, 0
- bl sub_803FBFC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 1
- adds r5, r0, r6
- adds r0, r5, 0x3
- cmp r5, r0
- bge _080180BA
- adds r7, r0, 0
-_08018084:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080180B4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080180B4
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _080180BA
-_080180B4:
- adds r5, 0x1
- cmp r5, r7
- blt _08018084
-_080180BA:
- movs r1, 0
- lsls r0, r6, 1
- adds r0, r6
- adds r0, 0x3
- cmp r5, r0
- bne _080180C8
- movs r1, 0x1
-_080180C8:
- adds r0, r1, 0
- b _08018198
- .align 2, 0
-_080180CC: .4byte gEnemyParty
-_080180D0: .4byte gPlayerParty
-_080180D4:
- adds r0, r3, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08018100
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _080180FC @ =gEnemyParty
- mov r8, r2
- b _08018118
- .align 2, 0
-_080180FC: .4byte gEnemyParty
-_08018100:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _080181A8 @ =gPlayerParty
- mov r8, r0
-_08018118:
- mov r1, r10
- cmp r1, 0x6
- bne _08018128
- ldr r1, _080181AC @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r10, r0
-_08018128:
- mov r2, r9
- cmp r2, 0x6
- bne _08018138
- ldr r1, _080181AC @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrb r0, [r0]
- mov r9, r0
-_08018138:
- movs r5, 0
-_0801813A:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0801818A
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0801818A
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0801818A
- cmp r5, r10
- beq _0801818A
- cmp r5, r9
- beq _0801818A
- ldr r1, _080181B0 @ =0x02000000
- ldr r2, _080181B4 @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _0801818A
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- bne _08018190
-_0801818A:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0801813A
-_08018190:
- movs r0, 0
- cmp r5, 0x6
- bne _08018198
- movs r0, 0x1
-_08018198:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080181A8: .4byte gPlayerParty
-_080181AC: .4byte gUnknown_02024A6A
-_080181B0: .4byte 0x02000000
-_080181B4: .4byte 0x00016068
- thumb_func_end sub_8018018
-
- thumb_func_start castform_switch
-castform_switch: @ 80181B8
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _08018228 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, _0801822C @ =SPECIES_CASTFORM
- cmp r1, r0
- bne _0801825C
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _0801825C
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _0801825C
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801820A
- str r5, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08018230
-_0801820A:
- adds r2, r4, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0
- beq _08018230
- adds r1, r4, 0
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _08018230
- strb r5, [r2]
- strb r5, [r1]
- movs r0, 0x1
- b _08018314
- .align 2, 0
-_08018228: .4byte gBattleMons
-_0801822C: .4byte SPECIES_CASTFORM
-_08018230:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801825C
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08018260
-_0801825C:
- movs r0, 0
- b _08018314
-_08018260:
- ldr r1, _0801831C @ =word_2024DB8
- ldrh r0, [r1]
- movs r2, 0xE7
- ands r2, r0
- adds r4, r1, 0
- cmp r2, 0
- bne _0801828E
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, 0
- beq _0801828E
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0
- beq _0801828E
- strb r2, [r3]
- strb r2, [r1]
- movs r5, 0x1
-_0801828E:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _080182BA
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xA
- beq _080182BA
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xA
- beq _080182BA
- movs r0, 0xA
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x2
-_080182BA:
- ldrh r1, [r4]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080182E6
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xB
- beq _080182E6
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _080182E6
- movs r0, 0xB
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x3
-_080182E6:
- ldrh r1, [r4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08018312
- ldr r1, _08018320 @ =gBattleMons
- movs r0, 0x58
- muls r0, r6
- adds r1, r0, r1
- adds r2, r1, 0
- adds r2, 0x21
- ldrb r0, [r2]
- cmp r0, 0xF
- beq _08018312
- adds r1, 0x22
- ldrb r0, [r1]
- cmp r0, 0xF
- beq _08018312
- movs r0, 0xF
- strb r0, [r2]
- strb r0, [r1]
- movs r5, 0x4
-_08018312:
- adds r0, r5, 0
-_08018314:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0801831C: .4byte word_2024DB8
-_08018320: .4byte gBattleMons
- thumb_func_end castform_switch
-
- thumb_func_start sub_8018324
-sub_8018324: @ 8018324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- ldr r4, [sp, 0x48]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0
- mov r9, r0
- ldr r5, _08018380 @ =gUnknown_02024C07
- ldr r1, _08018384 @ =gUnknown_02024A68
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08018360
- mov r1, r10
- strb r1, [r5]
-_08018360:
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08018390
- ldr r1, _08018388 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801838C @ =gPlayerParty
- b _080183A0
- .align 2, 0
-_08018380: .4byte gUnknown_02024C07
-_08018384: .4byte gUnknown_02024A68
-_08018388: .4byte gUnknown_02024A6A
-_0801838C: .4byte gPlayerParty
-_08018390:
- ldr r1, _080183D0 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080183D4 @ =gEnemyParty
-_080183A0:
- adds r7, r1, r0
- ldr r5, _080183D8 @ =gUnknown_02024C08
- ldr r1, _080183DC @ =gUnknown_02024A68
- ldrb r0, [r5]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _080183B2
- mov r2, r10
- strb r2, [r5]
-_080183B2:
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080183E4
- ldr r1, _080183D0 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080183E0 @ =gPlayerParty
- b _080183F4
- .align 2, 0
-_080183D0: .4byte gUnknown_02024A6A
-_080183D4: .4byte gEnemyParty
-_080183D8: .4byte gUnknown_02024C08
-_080183DC: .4byte gUnknown_02024A68
-_080183E0: .4byte gPlayerParty
-_080183E4:
- ldr r1, _08018444 @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08018448 @ =gEnemyParty
-_080183F4:
- adds r5, r1, r0
- adds r0, r7, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0xC]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x14]
- ldr r0, _0801844C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08018436
- bl _08019F92
-_08018436:
- mov r3, r8
- cmp r3, 0
- beq _08018454
- ldr r0, _08018450 @ =byte_2024C06
- strb r3, [r0]
- mov r8, r0
- b _0801846A
- .align 2, 0
-_08018444: .4byte gUnknown_02024A6A
-_08018448: .4byte gEnemyParty
-_0801844C: .4byte gUnknown_020239F8
-_08018450: .4byte byte_2024C06
-_08018454:
- ldr r2, _08018474 @ =byte_2024C06
- ldr r1, _08018478 @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2]
- mov r8, r2
-_0801846A:
- cmp r4, 0
- beq _0801847C
- adds r3, r4, 0
- b _08018480
- .align 2, 0
-_08018474: .4byte byte_2024C06
-_08018478: .4byte gBattleMons
-_0801847C:
- ldr r0, _08018494 @ =gUnknown_02024BE6
- ldrh r3, [r0]
-_08018480:
- ldr r1, _08018498 @ =0x02000000
- ldr r2, _0801849C @ =0x0001601c
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- beq _080184A0
- movs r4, 0x3F
- ands r4, r0
- b _080184AC
- .align 2, 0
-_08018494: .4byte gUnknown_02024BE6
-_08018498: .4byte 0x02000000
-_0801849C: .4byte 0x0001601c
-_080184A0:
- ldr r1, _080184C0 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x2]
-_080184AC:
- ldr r5, [sp, 0x4]
- cmp r5, 0x13
- bls _080184B6
- bl _08019F76
-_080184B6:
- lsls r0, r5, 2
- ldr r1, _080184C4 @ =_080184C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080184C0: .4byte gBattleMoves
-_080184C4: .4byte _080184C8
- .align 2, 0
-_080184C8:
- .4byte _08018518
- .4byte _08018814
- .4byte _08018A40
- .4byte _08018AD8
- .4byte _08018CF0
- .4byte _08019448
- .4byte _080197B4
- .4byte _08019804
- .4byte _08019880
- .4byte _080198FC
- .4byte _08019B1C
- .4byte _08019940
- .4byte _08019B60
- .4byte _08019BBC
- .4byte _08019C18
- .4byte _08019D18
- .4byte _08019D5C
- .4byte _08019DB8
- .4byte _08019F44
- .4byte _08019CD4
-_08018518:
- ldr r2, _0801854C @ =gUnknown_02024C07
- ldr r0, _08018550 @ =gUnknown_02024A68
- ldrb r1, [r2]
- adds r5, r0, 0
- ldrb r0, [r5]
- cmp r1, r0
- bcc _0801852A
- mov r1, r10
- strb r1, [r2]
-_0801852A:
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0x2D
- bne _08018534
- b _080186B8
-_08018534:
- cmp r0, 0x2D
- bgt _08018564
- cmp r0, 0xD
- bne _0801853E
- b _080187DC
-_0801853E:
- cmp r0, 0xD
- bgt _08018554
- cmp r0, 0x2
- bne _08018548
- b _08018680
-_08018548:
- bl _08019F76
- .align 2, 0
-_0801854C: .4byte gUnknown_02024C07
-_08018550: .4byte gUnknown_02024A68
-_08018554:
- cmp r0, 0x16
- bne _0801855A
- b _08018728
-_0801855A:
- cmp r0, 0x24
- bne _08018560
- b _080187A0
-_08018560:
- bl _08019F76
-_08018564:
- cmp r0, 0x46
- bne _0801856A
- b _080186F0
-_0801856A:
- cmp r0, 0x46
- bgt _08018578
- cmp r0, 0x3B
- bne _08018574
- b _0801875C
-_08018574:
- bl _08019F76
-_08018578:
- cmp r0, 0x4D
- bne _0801857E
- b _080187DC
-_0801857E:
- cmp r0, 0xFF
- beq _08018586
- bl _08019F76
-_08018586:
- bl weather_get_current
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0xA
- bhi _0801864C
- lsls r0, 2
- ldr r1, _080185A0 @ =_080185A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080185A0: .4byte _080185A4
- .align 2, 0
-_080185A4:
- .4byte _080185D0
- .4byte _0801864C
- .4byte _080185D0
- .4byte _0801864C
- .4byte _0801864C
- .4byte _080185F8
- .4byte _0801864C
- .4byte _0801864C
- .4byte _0801864C
- .4byte _08018620
- .4byte _080185D0
-_080185D0:
- ldr r2, _080185EC @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, _080185F0 @ =0x02000000
- ldr r3, _080185F4 @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xA
- b _08018638
- .align 2, 0
-_080185EC: .4byte word_2024DB8
-_080185F0: .4byte 0x02000000
-_080185F4: .4byte 0x000160a4
-_080185F8:
- ldr r3, _08018614 @ =word_2024DB8
- ldrh r1, [r3]
- movs r2, 0x18
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- strh r2, [r3]
- ldr r0, _08018618 @ =0x02000000
- ldr r3, _0801861C @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xC
- b _08018638
- .align 2, 0
-_08018614: .4byte word_2024DB8
-_08018618: .4byte 0x02000000
-_0801861C: .4byte 0x000160a4
-_08018620:
- ldr r3, _08018668 @ =word_2024DB8
- ldrh r1, [r3]
- movs r2, 0x60
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0801864C
- strh r2, [r3]
- ldr r0, _0801866C @ =0x02000000
- ldr r3, _08018670 @ =0x000160a4
- adds r2, r0, r3
- movs r1, 0xB
-_08018638:
- strb r1, [r2]
- ldr r5, _08018674 @ =0x00016003
- adds r0, r5
- mov r1, r10
- strb r1, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0801864C:
- mov r2, r9
- cmp r2, 0
- bne _08018656
- bl _08019F92
-_08018656:
- bl weather_get_current
- ldr r1, _08018678 @ =gUnknown_02024D1E
- strb r0, [r1, 0x5]
- ldr r0, _0801867C @ =gUnknown_081D901D
- bl b_push_move_exec
- bl _08019F76
- .align 2, 0
-_08018668: .4byte word_2024DB8
-_0801866C: .4byte 0x02000000
-_08018670: .4byte 0x000160a4
-_08018674: .4byte 0x00016003
-_08018678: .4byte gUnknown_02024D1E
-_0801867C: .4byte gUnknown_081D901D
-_08018680:
- ldr r2, _080186A8 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08018690
- bl _08019F76
-_08018690:
- movs r0, 0x5
- strh r0, [r2]
- ldr r0, _080186AC @ =gUnknown_081D9704
- bl b_push_move_exec
- ldr r0, _080186B0 @ =0x02000000
- ldr r3, _080186B4 @ =0x00016003
- adds r0, r3
- mov r5, r10
- strb r5, [r0]
- bl _08019F22
- .align 2, 0
-_080186A8: .4byte word_2024DB8
-_080186AC: .4byte gUnknown_081D9704
-_080186B0: .4byte 0x02000000
-_080186B4: .4byte 0x00016003
-_080186B8:
- ldr r2, _080186E0 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080186C8
- bl _08019F76
-_080186C8:
- movs r0, 0x18
- strh r0, [r2]
- ldr r0, _080186E4 @ =gUnknown_081D9744
- bl b_push_move_exec
- ldr r0, _080186E8 @ =0x02000000
- ldr r1, _080186EC @ =0x00016003
- adds r0, r1
- mov r2, r10
- strb r2, [r0]
- bl _08019F22
- .align 2, 0
-_080186E0: .4byte word_2024DB8
-_080186E4: .4byte gUnknown_081D9744
-_080186E8: .4byte 0x02000000
-_080186EC: .4byte 0x00016003
-_080186F0:
- ldr r2, _08018718 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08018700
- bl _08019F76
-_08018700:
- movs r0, 0x60
- strh r0, [r2]
- ldr r0, _0801871C @ =gUnknown_081D97FE
- bl b_push_move_exec
- ldr r0, _08018720 @ =0x02000000
- ldr r3, _08018724 @ =0x00016003
- adds r0, r3
- mov r5, r10
- strb r5, [r0]
- bl _08019F22
- .align 2, 0
-_08018718: .4byte word_2024DB8
-_0801871C: .4byte gUnknown_081D97FE
-_08018720: .4byte 0x02000000
-_08018724: .4byte 0x00016003
-_08018728:
- ldr r0, _08018754 @ =gUnknown_02024D68
- mov r1, r10
- lsls r2, r1, 2
- adds r1, r2, r1
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 28
- cmp r0, 0
- bge _08018740
- bl _08019F76
-_08018740:
- ldr r1, _08018758 @ =gUnknown_02024C98
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 12
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x8
- b _080187CA
- .align 2, 0
-_08018754: .4byte gUnknown_02024D68
-_08018758: .4byte gUnknown_02024C98
-_0801875C:
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- bne _08018770
- bl _08019F92
-_08018770:
- ldr r0, _08018790 @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08018794 @ =0x02000000
- ldr r2, _08018798 @ =0x00016003
- adds r1, r0, r2
- mov r3, r10
- strb r3, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r5, _0801879C @ =0x0001609b
- adds r0, r5
- strb r1, [r0]
- bl _08019F76
- .align 2, 0
-_08018790: .4byte gUnknown_081D977D
-_08018794: .4byte 0x02000000
-_08018798: .4byte 0x00016003
-_0801879C: .4byte 0x0001609b
-_080187A0:
- ldr r0, _080187D4 @ =gUnknown_02024D68
- mov r1, r10
- lsls r2, r1, 2
- adds r1, r2, r1
- lsls r1, 2
- adds r3, r1, r0
- ldrb r0, [r3]
- lsls r0, 27
- cmp r0, 0
- bge _080187B8
- bl _08019F76
-_080187B8:
- ldr r1, _080187D8 @ =gUnknown_02024C98
- adds r1, r2, r1
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 13
- orrs r0, r2
- str r0, [r1]
- ldrb r0, [r3]
- movs r1, 0x10
-_080187CA:
- orrs r0, r1
- strb r0, [r3]
- bl _08019F76
- .align 2, 0
-_080187D4: .4byte gUnknown_02024D68
-_080187D8: .4byte gUnknown_02024C98
-_080187DC:
- movs r6, 0
- ldrb r5, [r5]
- cmp r6, r5
- bcc _080187E8
- bl _08019F76
-_080187E8:
- adds r0, r6, 0
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _080187FC
- bl _08019E14
-_080187FC:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08018810 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bcc _080187E8
- bl _08019F76
- .align 2, 0
-_08018810: .4byte gUnknown_02024A68
-_08018814:
- ldr r2, _08018844 @ =gBattleMons
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r4, r1, r2
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _08018828
- bl _08019F76
-_08018828:
- ldr r0, _08018848 @ =gUnknown_02024C07
- mov r3, r10
- strb r3, [r0]
- mov r3, r8
- ldrb r5, [r3]
- cmp r5, 0x2C
- beq _0801885A
- cmp r5, 0x2C
- bgt _0801884C
- cmp r5, 0x3
- bne _08018840
- b _080189B8
-_08018840:
- bl _08019F76
- .align 2, 0
-_08018844: .4byte gBattleMons
-_08018848: .4byte gUnknown_02024C07
-_0801884C:
- cmp r5, 0x36
- bne _08018852
- b _08018A18
-_08018852:
- cmp r5, 0x3D
- beq _080188DC
- bl _08019F76
-_0801885A:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08018876
- bl _08019F76
-_08018876:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0801888E
- bl _08019F76
-_0801888E:
- ldr r0, _080188D0 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801889E
- bl _08019F76
-_0801889E:
- ldrh r0, [r4, 0x2C]
- ldrh r1, [r4, 0x28]
- cmp r0, r1
- bhi _080188AA
- bl _08019F76
-_080188AA:
- mov r2, r8
- strb r5, [r2]
- ldr r0, _080188D4 @ =gUnknown_081D9730
- bl b_push_move_exec
- ldr r1, _080188D8 @ =gUnknown_02024BEC
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _080188C4
- movs r0, 0x1
- str r0, [r1]
-_080188C4:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_080188D0: .4byte word_2024DB8
-_080188D4: .4byte gUnknown_081D9730
-_080188D8: .4byte gUnknown_02024BEC
-_080188DC:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r5, r1, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _080188EC
- bl _08019F76
-_080188EC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08018906
- bl _08019F76
-_08018906:
- ldr r0, [r5]
- movs r1, 0x88
- ands r0, r1
- cmp r0, 0
- beq _08018918
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
-_08018918:
- ldr r0, [r5]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801892A
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _08018998 @ =gStatusConditionString_SleepJpn
- bl StringCopy
-_0801892A:
- ldr r0, [r5]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801893C
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
-_0801893C:
- ldr r0, [r5]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801894E
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn
- bl StringCopy
-_0801894E:
- ldr r0, [r5]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08018960
- ldr r0, _08018990 @ =gUnknown_030041C0
- ldr r1, _080189A4 @ =gStatusConditionString_IceJpn
- bl StringCopy
-_08018960:
- str r4, [r5]
- ldr r0, _080189A8 @ =0x02000000
- ldr r4, _080189AC @ =gUnknown_02024A60
- mov r3, r10
- strb r3, [r4]
- ldr r1, _080189B0 @ =0x00016003
- adds r0, r1
- strb r3, [r0]
- ldr r0, _080189B4 @ =gUnknown_081D9758
- bl b_push_move_exec
- str r5, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl _08019F22
- .align 2, 0
-_08018990: .4byte gUnknown_030041C0
-_08018994: .4byte gStatusConditionString_PoisonJpn
-_08018998: .4byte gStatusConditionString_SleepJpn
-_0801899C: .4byte gStatusConditionString_ParalysisJpn
-_080189A0: .4byte gStatusConditionString_BurnJpn
-_080189A4: .4byte gStatusConditionString_IceJpn
-_080189A8: .4byte 0x02000000
-_080189AC: .4byte gUnknown_02024A60
-_080189B0: .4byte 0x00016003
-_080189B4: .4byte gUnknown_081D9758
-_080189B8:
- ldrb r2, [r4, 0x1B]
- movs r0, 0x1B
- ldrsb r0, [r4, r0]
- cmp r0, 0xB
- ble _080189C6
- bl _08019F76
-_080189C6:
- ldr r0, _08018A04 @ =gUnknown_02024CA8
- mov r3, r10
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x16]
- cmp r0, 0x2
- bne _080189DC
- bl _08019F76
-_080189DC:
- adds r0, r2, 0x1
- movs r2, 0
- strb r0, [r4, 0x1B]
- ldr r5, _08018A08 @ =0x000160a4
- adds r1, r7, r5
- movs r0, 0x11
- strb r0, [r1]
- ldr r1, _08018A0C @ =0x000160a5
- adds r0, r7, r1
- strb r2, [r0]
- ldr r0, _08018A10 @ =gUnknown_081D9718
- bl b_push_move_exec
- ldr r2, _08018A14 @ =0x00016003
- adds r0, r7, r2
- mov r3, r10
- strb r3, [r0]
- bl _08019F22
- .align 2, 0
-_08018A04: .4byte gUnknown_02024CA8
-_08018A08: .4byte 0x000160a4
-_08018A0C: .4byte 0x000160a5
-_08018A10: .4byte gUnknown_081D9718
-_08018A14: .4byte 0x00016003
-_08018A18:
- ldr r2, _08018A3C @ =gUnknown_02024CA8
- ldrb r0, [r0]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x18]
- lsls r0, r3, 31
- lsrs r0, 31
- movs r2, 0x1
- eors r2, r0
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x18]
- bl _08019F76
- .align 2, 0
-_08018A3C: .4byte gUnknown_02024CA8
-_08018A40:
- mov r5, r8
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _08018A4C
- bl _08019F76
-_08018A4C:
- movs r4, 0
- ldr r0, _08018ABC @ =gUnknown_081FA724
- ldrh r2, [r0]
- ldr r5, _08018AC0 @ =0x0000ffff
- adds r1, r0, 0
- cmp r2, r5
- bne _08018A5E
- bl _08019F76
-_08018A5E:
- cmp r2, r3
- beq _08018A76
- adds r2, r1, 0
-_08018A64:
- adds r2, 0x2
- adds r4, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- bne _08018A72
- bl _08019F76
-_08018A72:
- cmp r0, r3
- bne _08018A64
-_08018A76:
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08018AC0 @ =0x0000ffff
- cmp r1, r0
- bne _08018A86
- bl _08019F76
-_08018A86:
- ldr r1, _08018AC4 @ =gBattleMons
- ldr r0, _08018AC8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _08018AAC
- ldr r0, _08018ACC @ =gUnknown_02024C6C
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 4
- orrs r1, r2
- str r1, [r0]
-_08018AAC:
- ldr r1, _08018AD0 @ =gUnknown_02024C10
- ldr r0, _08018AD4 @ =gUnknown_081D98F3
- str r0, [r1]
- movs r0, 0x1
- mov r9, r0
- bl _08019F7C
- .align 2, 0
-_08018ABC: .4byte gUnknown_081FA724
-_08018AC0: .4byte 0x0000ffff
-_08018AC4: .4byte gBattleMons
-_08018AC8: .4byte gUnknown_02024C07
-_08018ACC: .4byte gUnknown_02024C6C
-_08018AD0: .4byte gUnknown_02024C10
-_08018AD4: .4byte gUnknown_081D98F3
-_08018AD8:
- cmp r3, 0
- bne _08018AE0
- bl _08019F76
-_08018AE0:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0xB
- beq _08018B50
- cmp r0, 0xB
- bgt _08018AF2
- cmp r0, 0xA
- beq _08018AF8
- b _08018C6A
-_08018AF2:
- cmp r0, 0x12
- beq _08018BA8
- b _08018C6A
-_08018AF8:
- cmp r4, 0xD
- beq _08018AFE
- b _08018C6A
-_08018AFE:
- ldr r0, _08018B28 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018B10
- b _08018C6A
-_08018B10:
- ldr r1, _08018B2C @ =gUnknown_02024D28
- ldr r0, _08018B30 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018B3C
- ldr r1, _08018B34 @ =gUnknown_02024C10
- ldr r0, _08018B38 @ =gUnknown_081D9843
- b _08018B40
- .align 2, 0
-_08018B28: .4byte gBattleMoves
-_08018B2C: .4byte gUnknown_02024D28
-_08018B30: .4byte gUnknown_02024C07
-_08018B34: .4byte gUnknown_02024C10
-_08018B38: .4byte gUnknown_081D9843
-_08018B3C:
- ldr r1, _08018B48 @ =gUnknown_02024C10
- ldr r0, _08018B4C @ =gUnknown_081D9842
-_08018B40:
- str r0, [r1]
- movs r2, 0x1
- b _08018C68
- .align 2, 0
-_08018B48: .4byte gUnknown_02024C10
-_08018B4C: .4byte gUnknown_081D9842
-_08018B50:
- cmp r4, 0xB
- beq _08018B56
- b _08018C6A
-_08018B56:
- ldr r0, _08018B80 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018B68
- b _08018C6A
-_08018B68:
- ldr r1, _08018B84 @ =gUnknown_02024D28
- ldr r0, _08018B88 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018B94
- ldr r1, _08018B8C @ =gUnknown_02024C10
- ldr r0, _08018B90 @ =gUnknown_081D9843
- b _08018B98
- .align 2, 0
-_08018B80: .4byte gBattleMoves
-_08018B84: .4byte gUnknown_02024D28
-_08018B88: .4byte gUnknown_02024C07
-_08018B8C: .4byte gUnknown_02024C10
-_08018B90: .4byte gUnknown_081D9843
-_08018B94:
- ldr r1, _08018BA0 @ =gUnknown_02024C10
- ldr r0, _08018BA4 @ =gUnknown_081D9842
-_08018B98:
- str r0, [r1]
- movs r3, 0x1
- mov r9, r3
- b _08018C6A
- .align 2, 0
-_08018BA0: .4byte gUnknown_02024C10
-_08018BA4: .4byte gUnknown_081D9842
-_08018BA8:
- cmp r4, 0xA
- bne _08018C6A
- ldr r1, _08018BF4 @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08018C6A
- ldr r2, _08018BF8 @ =0x02017100
- mov r0, r10
- lsls r1, r0, 2
- adds r0, r1, r2
- ldr r3, [r0]
- movs r4, 0x1
- ands r3, r4
- adds r5, r1, 0
- cmp r3, 0
- bne _08018C30
- ldr r0, _08018BFC @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
- ldr r1, _08018C00 @ =gUnknown_02024D28
- ldr r0, _08018C04 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018C10
- ldr r1, _08018C08 @ =gUnknown_02024C10
- ldr r0, _08018C0C @ =gUnknown_081D987C
- b _08018C14
- .align 2, 0
-_08018BF4: .4byte gBattleMons
-_08018BF8: .4byte 0x02017100
-_08018BFC: .4byte gUnknown_02024D1E
-_08018C00: .4byte gUnknown_02024D28
-_08018C04: .4byte gUnknown_02024C07
-_08018C08: .4byte gUnknown_02024C10
-_08018C0C: .4byte gUnknown_081D987C
-_08018C10:
- ldr r1, _08018C28 @ =gUnknown_02024C10
- ldr r0, _08018C2C @ =gUnknown_081D987B
-_08018C14:
- str r0, [r1]
- adds r0, r5, r2
- ldr r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- str r1, [r0]
- movs r1, 0x2
- mov r9, r1
- b _08018C6A
- .align 2, 0
-_08018C28: .4byte gUnknown_02024C10
-_08018C2C: .4byte gUnknown_081D987B
-_08018C30:
- ldr r0, _08018C4C @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _08018C50 @ =gUnknown_02024D28
- ldr r0, _08018C54 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018C60
- ldr r1, _08018C58 @ =gUnknown_02024C10
- ldr r0, _08018C5C @ =gUnknown_081D987C
- b _08018C64
- .align 2, 0
-_08018C4C: .4byte gUnknown_02024D1E
-_08018C50: .4byte gUnknown_02024D28
-_08018C54: .4byte gUnknown_02024C07
-_08018C58: .4byte gUnknown_02024C10
-_08018C5C: .4byte gUnknown_081D987C
-_08018C60:
- ldr r1, _08018CA4 @ =gUnknown_02024C10
- ldr r0, _08018CA8 @ =gUnknown_081D987B
-_08018C64:
- str r0, [r1]
- movs r2, 0x2
-_08018C68:
- mov r9, r2
-_08018C6A:
- mov r3, r9
- cmp r3, 0x1
- beq _08018C74
- bl _08019F76
-_08018C74:
- ldr r1, _08018CAC @ =gBattleMons
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bne _08018CD0
- ldr r1, _08018CB0 @ =gUnknown_02024D28
- ldr r0, _08018CB4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 28
- cmp r0, 0
- bge _08018CBC
- ldr r1, _08018CA4 @ =gUnknown_02024C10
- ldr r0, _08018CB8 @ =gUnknown_081D9866
- str r0, [r1]
- bl _08019F76
- .align 2, 0
-_08018CA4: .4byte gUnknown_02024C10
-_08018CA8: .4byte gUnknown_081D987B
-_08018CAC: .4byte gBattleMons
-_08018CB0: .4byte gUnknown_02024D28
-_08018CB4: .4byte gUnknown_02024C07
-_08018CB8: .4byte gUnknown_081D9866
-_08018CBC:
- ldr r1, _08018CC8 @ =gUnknown_02024C10
- ldr r0, _08018CCC @ =gUnknown_081D9865
- str r0, [r1]
- bl _08019F76
- .align 2, 0
-_08018CC8: .4byte gUnknown_02024C10
-_08018CCC: .4byte gUnknown_081D9865
-_08018CD0:
- ldr r2, _08018CEC @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 2
- str r0, [r2]
- cmp r0, 0
- bne _08018CE0
- mov r3, r9
- str r3, [r2]
-_08018CE0:
- ldr r0, [r2]
- negs r0, r0
- str r0, [r2]
- bl _08019F76
- .align 2, 0
-_08018CEC: .4byte gUnknown_02024BEC
-_08018CF0:
- mov r5, r8
- ldrb r0, [r5]
- subs r0, 0x9
- cmp r0, 0x2F
- bls _08018CFE
- bl _08019F76
-_08018CFE:
- lsls r0, 2
- ldr r1, _08018D08 @ =_08018D0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08018D08: .4byte _08018D0C
- .align 2, 0
-_08018D0C:
- .4byte _08019128
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018DCC
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018E94
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08018F54
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _0801904C
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019204
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _08019F76
- .4byte _080192E0
-_08018DCC:
- ldr r0, _08018E74 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018DDC
- bl _08019F76
-_08018DDC:
- cmp r3, 0xA5
- bne _08018DE4
- bl _08019F76
-_08018DE4:
- ldr r0, _08018E78 @ =gBattleMoves
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08018DF8
- bl _08019F76
-_08018DF8:
- ldr r2, _08018E7C @ =gUnknown_02024D68
- ldr r0, _08018E80 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018E20
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018E20
- bl _08019F76
-_08018E20:
- ldr r1, _08018E84 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r1, r0, r1
- adds r3, r1, 0
- adds r3, 0x21
- ldrb r0, [r3]
- cmp r0, r4
- bne _08018E3A
- bl _08019F76
-_08018E3A:
- adds r2, r1, 0
- adds r2, 0x22
- ldrb r0, [r2]
- cmp r0, r4
- bne _08018E48
- bl _08019F76
-_08018E48:
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- bne _08018E52
- bl _08019F76
-_08018E52:
- strb r4, [r3]
- strb r4, [r2]
- ldr r1, _08018E88 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _08018E8C @ =gUnknown_02024C10
- ldr r0, _08018E90 @ =gUnknown_081D9921
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08018E74: .4byte gUnknown_02024C68
-_08018E78: .4byte gBattleMoves
-_08018E7C: .4byte gUnknown_02024D68
-_08018E80: .4byte gUnknown_02024C08
-_08018E84: .4byte gBattleMons
-_08018E88: .4byte gUnknown_030041C0
-_08018E8C: .4byte gUnknown_02024C10
-_08018E90: .4byte gUnknown_081D9921
-_08018E94:
- ldr r0, _08018F2C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018EA4
- bl _08019F76
-_08018EA4:
- ldr r1, _08018F30 @ =gBattleMons
- ldr r0, _08018F34 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r4, r0, r1
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- bne _08018EBA
- bl _08019F76
-_08018EBA:
- ldr r0, _08018F38 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08018ECC
- bl _08019F76
-_08018ECC:
- ldr r2, _08018F3C @ =gUnknown_02024D68
- ldr r0, _08018F40 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018EF4
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018EF4
- bl _08019F76
-_08018EF4:
- ldr r1, _08018F44 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08018F0E
- bl _08019F76
-_08018F0E:
- ldr r1, _08018F48 @ =gUnknown_02024BEC
- ldrh r0, [r4, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08018F1C
- str r2, [r1]
-_08018F1C:
- bl b_movescr_stack_push_cursor
- ldr r1, _08018F4C @ =gUnknown_02024C10
- ldr r0, _08018F50 @ =gUnknown_081D9928
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08018F2C: .4byte gUnknown_02024C68
-_08018F30: .4byte gBattleMons
-_08018F34: .4byte gUnknown_02024C07
-_08018F38: .4byte gUnknown_02024D28
-_08018F3C: .4byte gUnknown_02024D68
-_08018F40: .4byte gUnknown_02024C08
-_08018F44: .4byte gBattleMoves
-_08018F48: .4byte gUnknown_02024BEC
-_08018F4C: .4byte gUnknown_02024C10
-_08018F50: .4byte gUnknown_081D9928
-_08018F54:
- ldr r0, _08019020 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08018F64
- bl _08019F76
-_08018F64:
- ldr r1, _08019024 @ =gBattleMons
- ldr r0, _08019028 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08018F7A
- bl _08019F76
-_08018F7A:
- ldr r0, _0801902C @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08018F8C
- bl _08019F76
-_08018F8C:
- ldr r2, _08019030 @ =gUnknown_02024D68
- ldr r0, _08019034 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018FB4
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08018FB4
- bl _08019F76
-_08018FB4:
- ldr r1, _08019038 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08018FCC
- bl _08019F76
-_08018FCC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08018FE4
- bl _08019F76
-_08018FE4:
- ldr r5, _0801903C @ =gUnknown_02024D1E
- movs r4, 0x3
-_08018FE8:
- bl Random
- ands r0, r4
- strb r0, [r5, 0x3]
- cmp r0, 0
- beq _08018FE8
- ldr r1, _0801903C @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x3]
- cmp r0, 0x3
- bne _08019000
- adds r0, 0x2
- strb r0, [r1, 0x3]
-_08019000:
- ldrb r0, [r1, 0x3]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019040 @ =gUnknown_02024C10
- ldr r0, _08019044 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019048 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_08019020: .4byte gUnknown_02024C68
-_08019024: .4byte gBattleMons
-_08019028: .4byte gUnknown_02024C07
-_0801902C: .4byte gUnknown_02024D28
-_08019030: .4byte gUnknown_02024D68
-_08019034: .4byte gUnknown_02024C08
-_08019038: .4byte gBattleMoves
-_0801903C: .4byte gUnknown_02024D1E
-_08019040: .4byte gUnknown_02024C10
-_08019044: .4byte gUnknown_081D9950
-_08019048: .4byte gUnknown_02024C6C
-_0801904C:
- ldr r0, _080190FC @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801905C
- bl _08019F76
-_0801905C:
- ldr r1, _08019100 @ =gBattleMons
- ldr r0, _08019104 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08019072
- bl _08019F76
-_08019072:
- ldr r0, _08019108 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08019084
- bl _08019F76
-_08019084:
- ldr r2, _0801910C @ =gUnknown_02024D68
- ldr r0, _08019110 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080190AC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080190AC
- bl _08019F76
-_080190AC:
- ldr r1, _08019114 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080190C4
- bl _08019F76
-_080190C4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _080190DC
- bl _08019F76
-_080190DC:
- ldr r1, _08019118 @ =gUnknown_02024D1E
- movs r0, 0x42
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801911C @ =gUnknown_02024C10
- ldr r0, _08019120 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019124 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080190FC: .4byte gUnknown_02024C68
-_08019100: .4byte gBattleMons
-_08019104: .4byte gUnknown_02024C07
-_08019108: .4byte gUnknown_02024D28
-_0801910C: .4byte gUnknown_02024D68
-_08019110: .4byte gUnknown_02024C08
-_08019114: .4byte gBattleMoves
-_08019118: .4byte gUnknown_02024D1E
-_0801911C: .4byte gUnknown_02024C10
-_08019120: .4byte gUnknown_081D9950
-_08019124: .4byte gUnknown_02024C6C
-_08019128:
- ldr r0, _080191D8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08019138
- bl _08019F76
-_08019138:
- ldr r1, _080191DC @ =gBattleMons
- ldr r0, _080191E0 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801914E
- bl _08019F76
-_0801914E:
- ldr r0, _080191E4 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _08019160
- bl _08019F76
-_08019160:
- ldr r2, _080191E8 @ =gUnknown_02024D68
- ldr r0, _080191EC @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08019188
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08019188
- bl _08019F76
-_08019188:
- ldr r1, _080191F0 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080191A0
- bl _08019F76
-_080191A0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _080191B8
- bl _08019F76
-_080191B8:
- ldr r1, _080191F4 @ =gUnknown_02024D1E
- movs r0, 0x45
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _080191F8 @ =gUnknown_02024C10
- ldr r0, _080191FC @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _08019200 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080191D8: .4byte gUnknown_02024C68
-_080191DC: .4byte gBattleMons
-_080191E0: .4byte gUnknown_02024C07
-_080191E4: .4byte gUnknown_02024D28
-_080191E8: .4byte gUnknown_02024D68
-_080191EC: .4byte gUnknown_02024C08
-_080191F0: .4byte gBattleMoves
-_080191F4: .4byte gUnknown_02024D1E
-_080191F8: .4byte gUnknown_02024C10
-_080191FC: .4byte gUnknown_081D9950
-_08019200: .4byte gUnknown_02024C6C
-_08019204:
- ldr r0, _080192B4 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08019214
- bl _08019F76
-_08019214:
- ldr r1, _080192B8 @ =gBattleMons
- ldr r0, _080192BC @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801922A
- bl _08019F76
-_0801922A:
- ldr r0, _080192C0 @ =gUnknown_02024D28
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801923C
- bl _08019F76
-_0801923C:
- ldr r1, _080192C4 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08019254
- bl _08019F76
-_08019254:
- ldr r2, _080192C8 @ =gUnknown_02024D68
- ldr r0, _080192CC @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801927C
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801927C
- bl _08019F76
-_0801927C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08019294
- bl _08019F76
-_08019294:
- ldr r1, _080192D0 @ =gUnknown_02024D1E
- movs r0, 0x43
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- ldr r1, _080192D4 @ =gUnknown_02024C10
- ldr r0, _080192D8 @ =gUnknown_081D9950
- str r0, [r1]
- ldr r2, _080192DC @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r2]
- bl _08019F22
- .align 2, 0
-_080192B4: .4byte gUnknown_02024C68
-_080192B8: .4byte gBattleMons
-_080192BC: .4byte gUnknown_02024C07
-_080192C0: .4byte gUnknown_02024D28
-_080192C4: .4byte gBattleMoves
-_080192C8: .4byte gUnknown_02024D68
-_080192CC: .4byte gUnknown_02024C08
-_080192D0: .4byte gUnknown_02024D1E
-_080192D4: .4byte gUnknown_02024C10
-_080192D8: .4byte gUnknown_081D9950
-_080192DC: .4byte gUnknown_02024C6C
-_080192E0:
- ldr r0, _08019420 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _080192F0
- bl _08019F76
-_080192F0:
- ldr r5, _08019424 @ =gBattleMons
- ldr r7, _08019428 @ =gUnknown_02024C07
- ldrb r1, [r7]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08019308
- bl _08019F76
-_08019308:
- ldr r0, _0801942C @ =gUnknown_02024D28
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 31
- cmp r0, 0
- beq _0801931A
- bl _08019F76
-_0801931A:
- ldr r1, _08019430 @ =gBattleMoves
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08019332
- bl _08019F76
-_08019332:
- ldr r3, _08019434 @ =gUnknown_02024D68
- ldr r0, _08019438 @ =gUnknown_02024C08
- mov r8, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801935C
- adds r0, r3, 0
- adds r0, 0xC
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801935C
- bl _08019F76
-_0801935C:
- adds r0, r1, 0
- muls r0, r6
- adds r0, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801936C
- bl _08019F76
-_0801936C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08019384
- bl _08019F76
-_08019384:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08019396
- bl _08019F76
-_08019396:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080193B4
- bl _08019F76
-_080193B4:
- ldrb r0, [r7]
- muls r0, r6
- adds r4, r5, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _080193CE
- bl _08019F76
-_080193CE:
- ldr r0, [sp, 0x8]
- ldr r1, [sp, 0x10]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080193E2
- bl _08019F76
-_080193E2:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x14]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080193F6
- bl _08019F76
-_080193F6:
- ldrb r0, [r7]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0801943C @ =gBitTable
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019440 @ =gUnknown_02024C10
- ldr r0, _08019444 @ =gUnknown_081D9943
- str r0, [r1]
- bl _08019F22
- .align 2, 0
-_08019420: .4byte gUnknown_02024C68
-_08019424: .4byte gBattleMons
-_08019428: .4byte gUnknown_02024C07
-_0801942C: .4byte gUnknown_02024D28
-_08019430: .4byte gBattleMoves
-_08019434: .4byte gUnknown_02024D68
-_08019438: .4byte gUnknown_02024C08
-_0801943C: .4byte gBitTable
-_08019440: .4byte gUnknown_02024C10
-_08019444: .4byte gUnknown_081D9943
-_08019448:
- movs r5, 0
- mov r10, r5
- ldr r0, _0801947C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcc _08019458
- bl _08019F76
-_08019458:
- ldr r1, _08019480 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- subs r0, 0x7
- adds r2, r1, 0
- cmp r0, 0x41
- bls _08019472
- b _080196D6
-_08019472:
- lsls r0, 2
- ldr r1, _08019484 @ =_08019488
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801947C: .4byte gUnknown_02024A68
-_08019480: .4byte gBattleMons
-_08019484: .4byte _08019488
- .align 2, 0
-_08019488:
- .4byte _080195EC
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196B0
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019614
- .4byte _080196D6
- .4byte _08019590
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080195BC
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019680
- .4byte _08019650
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _080196D6
- .4byte _08019614
-_08019590:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080195B0 @ =0x00000f88
- ands r0, r1
- cmp r0, 0
- bne _080195AA
- b _080196D6
-_080195AA:
- ldr r0, _080195B4 @ =gUnknown_030041C0
- ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn
- b _0801969C
- .align 2, 0
-_080195B0: .4byte 0x00000f88
-_080195B4: .4byte gUnknown_030041C0
-_080195B8: .4byte gStatusConditionString_PoisonJpn
-_080195BC:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _080195D6
- b _080196D6
-_080195D6:
- ldr r0, _080195E4 @ =gUnknown_030041C0
- ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
- movs r2, 0x2
- mov r9, r2
- b _080196DC
- .align 2, 0
-_080195E4: .4byte gUnknown_030041C0
-_080195E8: .4byte gStatusConditionString_ConfusionJpn
-_080195EC:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _0801960C @ =gUnknown_030041C0
- ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn
- b _0801969C
- .align 2, 0
-_0801960C: .4byte gUnknown_030041C0
-_08019610: .4byte gStatusConditionString_ParalysisJpn
-_08019614:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- adds r2, 0x50
- adds r2, r3, r2
- ldr r0, [r2]
- ldr r1, _08019644 @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08019648 @ =gUnknown_030041C0
- ldr r1, _0801964C @ =gStatusConditionString_SleepJpn
- bl StringCopy
- movs r0, 0x1
- mov r9, r0
- b _080196DC
- .align 2, 0
-_08019644: .4byte 0xf7ffffff
-_08019648: .4byte gUnknown_030041C0
-_0801964C: .4byte gStatusConditionString_SleepJpn
-_08019650:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _08019678 @ =gUnknown_030041C0
- ldr r1, _0801967C @ =gStatusConditionString_BurnJpn
- bl StringCopy
- movs r2, 0x1
- mov r9, r2
- b _080196DC
- .align 2, 0
-_08019678: .4byte gUnknown_030041C0
-_0801967C: .4byte gStatusConditionString_BurnJpn
-_08019680:
- movs r0, 0x58
- mov r3, r10
- muls r3, r0
- adds r0, r3, 0
- adds r1, r2, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _080196A8 @ =gUnknown_030041C0
- ldr r1, _080196AC @ =gStatusConditionString_IceJpn
-_0801969C:
- bl StringCopy
- movs r5, 0x1
- mov r9, r5
- b _080196DC
- .align 2, 0
-_080196A8: .4byte gUnknown_030041C0
-_080196AC: .4byte gStatusConditionString_IceJpn
-_080196B0:
- movs r0, 0x58
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- beq _080196D6
- ldr r0, _080196EC @ =gUnknown_030041C0
- ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn
- bl StringCopy
- movs r2, 0x3
- mov r9, r2
-_080196D6:
- mov r3, r9
- cmp r3, 0
- beq _08019798
-_080196DC:
- mov r5, r9
- cmp r5, 0x2
- beq _08019710
- cmp r5, 0x2
- bgt _080196F4
- cmp r5, 0x1
- beq _080196FC
- b _0801973C
- .align 2, 0
-_080196EC: .4byte gUnknown_030041C0
-_080196F0: .4byte gStatusConditionString_LoveJpn
-_080196F4:
- mov r0, r9
- cmp r0, 0x3
- beq _08019728
- b _0801973C
-_080196FC:
- ldr r1, _0801970C @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x4C
- adds r2, r1
- movs r0, 0
- b _0801973A
- .align 2, 0
-_0801970C: .4byte gBattleMons
-_08019710:
- ldr r1, _08019724 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x8
- negs r1, r1
- b _08019738
- .align 2, 0
-_08019724: .4byte gBattleMons
-_08019728:
- ldr r1, _08019778 @ =gBattleMons
- movs r0, 0x58
- mov r2, r10
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- ldr r1, _0801977C @ =0xfff0ffff
-_08019738:
- ands r0, r1
-_0801973A:
- str r0, [r2]
-_0801973C:
- bl b_movescr_stack_push_cursor
- ldr r1, _08019780 @ =gUnknown_02024C10
- ldr r0, _08019784 @ =gUnknown_081D9956
- str r0, [r1]
- ldr r0, _08019788 @ =0x02000000
- ldr r1, _0801978C @ =0x00016003
- adds r0, r1
- mov r2, r10
- strb r2, [r0]
- ldr r4, _08019790 @ =gUnknown_02024A60
- strb r2, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _08019794 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl _08019F92
- .align 2, 0
-_08019778: .4byte gBattleMons
-_0801977C: .4byte 0xfff0ffff
-_08019780: .4byte gUnknown_02024C10
-_08019784: .4byte gUnknown_081D9956
-_08019788: .4byte 0x02000000
-_0801978C: .4byte 0x00016003
-_08019790: .4byte gUnknown_02024A60
-_08019794: .4byte gUnknown_02024ACC
-_08019798:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080197B0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcs _080197AC
- b _08019458
-_080197AC:
- bl _08019F76
- .align 2, 0
-_080197B0: .4byte gUnknown_02024A68
-_080197B4:
- movs r3, 0
- mov r10, r3
- ldr r0, _080197FC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcc _080197C2
- b _08019F76
-_080197C2:
- ldr r4, _08019800 @ =gBattleMons
-_080197C4:
- movs r0, 0x58
- mov r5, r10
- muls r5, r0
- adds r0, r5, 0
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3B
- bne _080197E8
- mov r0, r10
- bl castform_switch
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0
- beq _080197E8
- b _08019E40
-_080197E8:
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _080197FC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r10, r0
- bcc _080197C4
- b _08019F76
- .align 2, 0
-_080197FC: .4byte gUnknown_02024A68
-_08019800: .4byte gBattleMons
-_08019804:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x1C
- beq _0801980E
- b _08019F76
-_0801980E:
- ldr r4, _08019860 @ =gUnknown_02024C6C
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801981E
- b _08019F76
-_0801981E:
- ldr r0, _08019864 @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- ldr r3, _08019868 @ =0x000160ca
- adds r2, r7, r3
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0x6
- bne _08019838
- movs r0, 0x2
- strb r0, [r2]
-_08019838:
- ldr r1, _0801986C @ =gUnknown_02024D1E
- ldrb r0, [r2]
- adds r0, 0x40
- strb r0, [r1, 0x3]
- ldr r0, _08019870 @ =gUnknown_02024C08
- ldrb r1, [r0]
- ldr r5, _08019874 @ =0x00016003
- adds r0, r7, r5
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019878 @ =gUnknown_02024C10
- ldr r0, _0801987C @ =gUnknown_081D9953
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _08019F22
- .align 2, 0
-_08019860: .4byte gUnknown_02024C6C
-_08019864: .4byte 0xffffbfff
-_08019868: .4byte 0x000160ca
-_0801986C: .4byte gUnknown_02024D1E
-_08019870: .4byte gUnknown_02024C08
-_08019874: .4byte 0x00016003
-_08019878: .4byte gUnknown_02024C10
-_0801987C: .4byte gUnknown_081D9953
-_08019880:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0x1C
- beq _0801988A
- b _08019F76
-_0801988A:
- ldr r4, _080198DC @ =gUnknown_02024C6C
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0801989A
- b _08019F76
-_0801989A:
- ldr r0, _080198E0 @ =0xffffbfff
- ands r1, r0
- str r1, [r4]
- ldr r3, _080198E4 @ =0x000160ca
- adds r2, r7, r3
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- cmp r0, 0x6
- bne _080198B4
- movs r0, 0x2
- strb r0, [r2]
-_080198B4:
- ldr r1, _080198E8 @ =gUnknown_02024D1E
- ldrb r0, [r2]
- strb r0, [r1, 0x3]
- ldr r0, _080198EC @ =gUnknown_02024C07
- ldrb r1, [r0]
- ldr r5, _080198F0 @ =0x00016003
- adds r0, r7, r5
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _080198F4 @ =gUnknown_02024C10
- ldr r0, _080198F8 @ =gUnknown_081D9953
- str r0, [r1]
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 6
- orrs r0, r1
- str r0, [r4]
- b _08019F22
- .align 2, 0
-_080198DC: .4byte gUnknown_02024C6C
-_080198E0: .4byte 0xffffbfff
-_080198E4: .4byte 0x000160ca
-_080198E8: .4byte gUnknown_02024D1E
-_080198EC: .4byte gUnknown_02024C07
-_080198F0: .4byte 0x00016003
-_080198F4: .4byte gUnknown_02024C10
-_080198F8: .4byte gUnknown_081D9953
-_080198FC:
- movs r4, 0
- ldr r0, _08019934 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- blt _08019908
- b _08019F76
-_08019908:
- ldr r0, _08019938 @ =gBattleMons
- adds r5, r1, 0
- ldr r2, _0801993C @ =gUnknown_02024C98
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08019916:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _08019926
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _08019926
- b _08019E6C
-_08019926:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08019916
- b _08019F76
- .align 2, 0
-_08019934: .4byte gUnknown_02024A68
-_08019938: .4byte gBattleMons
-_0801993C: .4byte gUnknown_02024C98
-_08019940:
- movs r4, 0
- ldr r0, _08019A1C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _0801994C
- b _08019F76
-_0801994C:
- ldr r0, _08019A20 @ =gUnknown_02024A60
- mov r8, r0
- ldr r1, _08019A24 @ =gBattleMons
- adds r1, 0x20
- str r1, [sp, 0x1C]
- movs r2, 0
- str r2, [sp, 0x20]
-_0801995A:
- ldr r3, [sp, 0x1C]
- ldrb r0, [r3]
- cmp r0, 0x24
- beq _08019964
- b _08019AF6
-_08019964:
- ldr r0, _08019A28 @ =gUnknown_02024C98
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 13
- ands r1, r0
- str r5, [sp, 0x18]
- cmp r1, 0
- bne _0801997A
- b _08019AF6
-_0801997A:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- movs r1, 0x1
- adds r5, r0, 0
- eors r5, r1
- ands r5, r1
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08019A2C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080199AE
- b _08019ABC
-_080199AE:
- movs r1, 0x58
- adds r0, r6, 0
- muls r0, r1
- ldr r3, _08019A24 @ =gBattleMons
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A78
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A34
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A34
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A34
- str r2, [sp, 0x24]
- bl Random
- ldr r2, [sp, 0x24]
- adds r1, r2, 0
- ands r1, r0
- lsls r1, 1
- orrs r5, r1
- adds r0, r5, 0
- bl battle_get_side_with_given_state
- mov r2, r8
- strb r0, [r2]
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- ldr r5, _08019A24 @ =gBattleMons
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r3
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- ldr r2, _08019A30 @ =byte_2024C06
- strb r0, [r2]
- b _08019AE4
- .align 2, 0
-_08019A1C: .4byte gUnknown_02024A68
-_08019A20: .4byte gUnknown_02024A60
-_08019A24: .4byte gBattleMons
-_08019A28: .4byte gUnknown_02024C98
-_08019A2C: .4byte gUnknown_020239F8
-_08019A30: .4byte byte_2024C06
-_08019A34:
- ldr r3, _08019A74 @ =gBattleMons
- movs r2, 0x58
- adds r0, r6, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019A78
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019A78
- mov r5, r8
- strb r6, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08019AE0
- .align 2, 0
-_08019A74: .4byte gBattleMons
-_08019A78:
- ldr r3, _08019AB8 @ =gBattleMons
- movs r2, 0x58
- adds r0, r7, 0
- muls r0, r2
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08019AEE
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019AEE
- mov r5, r8
- strb r7, [r5]
- adds r1, r4, 0
- muls r1, r2
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- b _08019AE0
- .align 2, 0
-_08019AB8: .4byte gBattleMons
-_08019ABC:
- mov r2, r8
- strb r6, [r2]
- movs r3, 0x58
- adds r0, r6, 0
- muls r0, r3
- ldr r5, _08019B10 @ =gBattleMons
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- beq _08019AEE
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08019AEE
- ldr r0, [sp, 0x1C]
- strb r1, [r0]
- ldrb r0, [r2]
-_08019AE0:
- ldr r1, _08019B14 @ =byte_2024C06
- strb r0, [r1]
-_08019AE4:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019AEE:
- mov r2, r9
- cmp r2, 0
- beq _08019AF6
- b _08019E88
-_08019AF6:
- ldr r3, [sp, 0x1C]
- adds r3, 0x58
- str r3, [sp, 0x1C]
- ldr r5, [sp, 0x20]
- adds r5, 0x4
- str r5, [sp, 0x20]
- adds r4, 0x1
- ldr r0, _08019B18 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bge _08019B0E
- b _0801995A
-_08019B0E:
- b _08019F76
- .align 2, 0
-_08019B10: .4byte gBattleMons
-_08019B14: .4byte byte_2024C06
-_08019B18: .4byte gUnknown_02024A68
-_08019B1C:
- movs r4, 0
- ldr r0, _08019B54 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- blt _08019B28
- b _08019F76
-_08019B28:
- ldr r0, _08019B58 @ =gBattleMons
- adds r5, r1, 0
- ldr r2, _08019B5C @ =gUnknown_02024C98
- adds r3, r0, 0
- adds r3, 0x20
- movs r6, 0x80
- lsls r6, 12
-_08019B36:
- ldrb r1, [r3]
- cmp r1, 0x16
- bne _08019B46
- ldr r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _08019B46
- b _08019F04
-_08019B46:
- adds r2, 0x4
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- blt _08019B36
- b _08019F76
- .align 2, 0
-_08019B54: .4byte gUnknown_02024A68
-_08019B58: .4byte gBattleMons
-_08019B5C: .4byte gUnknown_02024C98
-_08019B60:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019BB0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019B76
- b _08019F76
-_08019B76:
- ldr r7, _08019BB4 @ =gBattleMons
-_08019B78:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- beq _08019BA2
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019BA2
- ldr r0, _08019BB8 @ =byte_2024C06
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019BA2:
- adds r4, r3, 0
- ldr r0, _08019BB0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019B78
- b _08019F76
- .align 2, 0
-_08019BB0: .4byte gUnknown_02024A68
-_08019BB4: .4byte gBattleMons
-_08019BB8: .4byte byte_2024C06
-_08019BBC:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019C0C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019BD2
- b _08019F76
-_08019BD2:
- ldr r7, _08019C10 @ =gBattleMons
-_08019BD4:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- adds r3, r4, 0x1
- cmp r0, r5
- bne _08019BFE
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019BFE
- ldr r0, _08019C14 @ =byte_2024C06
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019BFE:
- adds r4, r3, 0
- ldr r0, _08019C0C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019BD4
- b _08019F76
- .align 2, 0
-_08019C0C: .4byte gUnknown_02024A68
-_08019C10: .4byte gBattleMons
-_08019C14: .4byte byte_2024C06
-_08019C18:
- mov r1, r8
- ldrb r0, [r1]
- cmp r0, 0xFD
- beq _08019C40
- cmp r0, 0xFE
- beq _08019C78
- movs r4, 0
- ldr r0, _08019C38 @ =gUnknown_02024A68
- adds r5, r0, 0
- ldrb r2, [r5]
- cmp r4, r2
- blt _08019C32
- b _08019F76
-_08019C32:
- ldr r2, _08019C3C @ =gBattleMons
- b _08019CB0
- .align 2, 0
-_08019C38: .4byte gUnknown_02024A68
-_08019C3C: .4byte gBattleMons
-_08019C40:
- movs r4, 0
- ldr r0, _08019C70 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019C4C
- b _08019F76
-_08019C4C:
- ldr r5, _08019C74 @ =gUnknown_02024C98
- movs r2, 0x80
- lsls r2, 9
- adds r1, r0, 0
-_08019C54:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _08019C68
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019C68:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019C54
- b _08019F76
- .align 2, 0
-_08019C70: .4byte gUnknown_02024A68
-_08019C74: .4byte gUnknown_02024C98
-_08019C78:
- movs r4, 0
- ldr r0, _08019CA8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019C84
- b _08019F76
-_08019C84:
- ldr r5, _08019CAC @ =gUnknown_02024C98
- movs r2, 0x80
- lsls r2, 10
- adds r1, r0, 0
-_08019C8C:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- ands r0, r2
- adds r3, r4, 0x1
- cmp r0, 0
- beq _08019CA0
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019CA0:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019C8C
- b _08019F76
- .align 2, 0
-_08019CA8: .4byte gUnknown_02024A68
-_08019CAC: .4byte gUnknown_02024C98
-_08019CB0:
- movs r0, 0x58
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019CCA
- mov r0, r8
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019CCA:
- adds r4, r3, 0
- ldrb r1, [r5]
- cmp r4, r1
- blt _08019CB0
- b _08019F76
-_08019CD4:
- movs r4, 0
- ldr r0, _08019D10 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019CE0
- b _08019F76
-_08019CE0:
- ldr r7, _08019D14 @ =gBattleMons
- adds r2, r0, 0
- movs r5, 0x58
-_08019CE6:
- adds r0, r4, 0
- muls r0, r5
- adds r1, r0, r7
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019D08
- ldrh r0, [r1, 0x28]
- cmp r0, 0
- beq _08019D08
- mov r0, r8
- strb r6, [r0]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019D08:
- adds r4, r3, 0
- cmp r4, r2
- blt _08019CE6
- b _08019F76
- .align 2, 0
-_08019D10: .4byte gUnknown_02024A68
-_08019D14: .4byte gBattleMons
-_08019D18:
- movs r4, 0
- ldr r0, _08019D50 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D24
- b _08019F76
-_08019D24:
- ldr r7, _08019D54 @ =gBattleMons
- adds r1, r0, 0
- movs r5, 0x58
- ldr r2, _08019D58 @ =byte_2024C06
-_08019D2C:
- adds r0, r4, 0
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- adds r3, r4, 0x1
- cmp r0, r6
- bne _08019D48
- cmp r4, r10
- beq _08019D48
- strb r6, [r2]
- lsls r0, r3, 24
- lsrs r0, 24
- mov r9, r0
-_08019D48:
- adds r4, r3, 0
- cmp r4, r1
- blt _08019D2C
- b _08019F76
- .align 2, 0
-_08019D50: .4byte gUnknown_02024A68
-_08019D54: .4byte gBattleMons
-_08019D58: .4byte byte_2024C06
-_08019D5C:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019DAC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D72
- b _08019F76
-_08019D72:
- ldr r7, _08019DB0 @ =gBattleMons
-_08019D74:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _08019DA0
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019DA0
- ldr r0, _08019DB4 @ =byte_2024C06
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019DA0:
- adds r4, 0x1
- ldr r0, _08019DAC @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019D74
- b _08019F76
- .align 2, 0
-_08019DAC: .4byte gUnknown_02024A68
-_08019DB0: .4byte gBattleMons
-_08019DB4: .4byte byte_2024C06
-_08019DB8:
- mov r0, r10
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _08019E08 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019DCE
- b _08019F76
-_08019DCE:
- ldr r7, _08019E0C @ =gBattleMons
-_08019DD0:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bne _08019DFC
- movs r0, 0x58
- muls r0, r4
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r6
- bne _08019DFC
- ldr r0, _08019E10 @ =byte_2024C06
- strb r6, [r0]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019DFC:
- adds r4, 0x1
- ldr r0, _08019E08 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08019DD0
- b _08019F76
- .align 2, 0
-_08019E08: .4byte gUnknown_02024A68
-_08019E0C: .4byte gBattleMons
-_08019E10: .4byte byte_2024C06
-_08019E14:
- ldr r0, _08019E30 @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08019E34 @ =0x02000000
- ldr r2, _08019E38 @ =0x00016003
- adds r1, r0, r2
- strb r6, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r3, _08019E3C @ =0x0001609b
- adds r0, r3
- strb r1, [r0]
- b _08019F76
- .align 2, 0
-_08019E30: .4byte gUnknown_081D977D
-_08019E34: .4byte 0x02000000
-_08019E38: .4byte 0x00016003
-_08019E3C: .4byte 0x0001609b
-_08019E40:
- ldr r0, _08019E5C @ =gUnknown_081D977D
- bl b_push_move_exec
- ldr r0, _08019E60 @ =0x02000000
- ldr r5, _08019E64 @ =0x00016003
- adds r1, r0, r5
- mov r2, r10
- strb r2, [r1]
- mov r1, r9
- subs r1, 0x1
- ldr r3, _08019E68 @ =0x0001609b
- adds r0, r3
- strb r1, [r0]
- b _08019F92
- .align 2, 0
-_08019E5C: .4byte gUnknown_081D977D
-_08019E60: .4byte 0x02000000
-_08019E64: .4byte 0x00016003
-_08019E68: .4byte 0x0001609b
-_08019E6C:
- mov r5, r8
- strb r1, [r5]
- ldr r0, [r2]
- ldr r1, _08019E80 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _08019E84 @ =gUnknown_081D978C
- bl b_push_move_exec
- b _08019F1A
- .align 2, 0
-_08019E80: .4byte 0xfff7ffff
-_08019E84: .4byte gUnknown_081D978C
-_08019E88:
- ldr r0, _08019EDC @ =gUnknown_081D9726
- bl b_push_move_exec
- ldr r1, _08019EE0 @ =gUnknown_02024C98
- ldr r2, [sp, 0x18]
- adds r1, r2, r1
- ldr r0, [r1]
- ldr r2, _08019EE4 @ =0xffefffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _08019EE8 @ =0x02000000
- ldr r3, _08019EEC @ =0x00016003
- adds r0, r3
- strb r4, [r0]
- ldr r1, _08019EF0 @ =gUnknown_030041C0
- movs r4, 0xFD
- strb r4, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r2, _08019EF4 @ =gUnknown_02024A60
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _08019EF8 @ =gUnknown_02024A6A
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08019EFC @ =gUnknown_03004290
- strb r4, [r1]
- movs r0, 0x9
- strb r0, [r1, 0x1]
- ldr r0, _08019F00 @ =byte_2024C06
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x3]
- b _08019F76
- .align 2, 0
-_08019EDC: .4byte gUnknown_081D9726
-_08019EE0: .4byte gUnknown_02024C98
-_08019EE4: .4byte 0xffefffff
-_08019EE8: .4byte 0x02000000
-_08019EEC: .4byte 0x00016003
-_08019EF0: .4byte gUnknown_030041C0
-_08019EF4: .4byte gUnknown_02024A60
-_08019EF8: .4byte gUnknown_02024A6A
-_08019EFC: .4byte gUnknown_03004290
-_08019F00: .4byte byte_2024C06
-_08019F04:
- mov r5, r8
- strb r1, [r5]
- ldr r0, [r2]
- ldr r1, _08019F30 @ =0xfff7ffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _08019F34 @ =gUnknown_02024C10
- ldr r0, _08019F38 @ =gUnknown_081D9795
- str r0, [r1]
-_08019F1A:
- ldr r0, _08019F3C @ =0x02000000
- ldr r1, _08019F40 @ =0x000160dd
- adds r0, r1
- strb r4, [r0]
-_08019F22:
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- b _08019F76
- .align 2, 0
-_08019F30: .4byte 0xfff7ffff
-_08019F34: .4byte gUnknown_02024C10
-_08019F38: .4byte gUnknown_081D9795
-_08019F3C: .4byte 0x02000000
-_08019F40: .4byte 0x000160dd
-_08019F44:
- movs r4, 0
- ldr r0, _08019FA4 @ =gUnknown_02024A68
- ldrb r1, [r0]
- cmp r4, r1
- bge _08019F76
- ldr r0, _08019FA8 @ =gBattleMons
- adds r2, r1, 0
- adds r1, r0, 0
- adds r1, 0x20
- ldr r3, _08019FAC @ =byte_2024C06
-_08019F58:
- ldrb r0, [r1]
- cmp r0, r6
- bne _08019F6E
- cmp r4, r10
- beq _08019F6E
- strb r6, [r3]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08019F6E:
- adds r1, 0x58
- adds r4, 0x1
- cmp r4, r2
- blt _08019F58
-_08019F76:
- mov r2, r9
- cmp r2, 0
- beq _08019F92
-_08019F7C:
- ldr r3, [sp, 0x4]
- cmp r3, 0xB
- bhi _08019F92
- ldr r1, _08019FAC @ =byte_2024C06
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08019F92
- adds r1, r0, 0
- mov r0, r10
- bl sub_81074C4
-_08019F92:
- mov r0, r9
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08019FA4: .4byte gUnknown_02024A68
-_08019FA8: .4byte gBattleMons
-_08019FAC: .4byte byte_2024C06
- thumb_func_end sub_8018324
-
- thumb_func_start b_call_bc_move_exec
-b_call_bc_move_exec: @ 8019FB0
- ldr r1, _08019FD8 @ =gUnknown_02024C10
- str r0, [r1]
- ldr r3, _08019FDC @ =0x02017140
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r2, _08019FE0 @ =gUnknown_030042D4
- ldr r1, [r2]
- str r1, [r0]
- ldr r0, _08019FE4 @ =sub_8013F54
- str r0, [r2]
- ldr r1, _08019FE8 @ =gUnknown_02024A7F
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08019FD8: .4byte gUnknown_02024C10
-_08019FDC: .4byte 0x02017140
-_08019FE0: .4byte gUnknown_030042D4
-_08019FE4: .4byte sub_8013F54
-_08019FE8: .4byte gUnknown_02024A7F
- thumb_func_end b_call_bc_move_exec
-
- thumb_func_start b_push_move_exec
-b_push_move_exec: @ 8019FEC
- push {r4,lr}
- adds r4, r0, 0
- bl b_movescr_stack_push_cursor
- ldr r0, _0801A01C @ =gUnknown_02024C10
- str r4, [r0]
- ldr r3, _0801A020 @ =0x02017140
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r2, _0801A024 @ =gUnknown_030042D4
- ldr r1, [r2]
- str r1, [r0]
- ldr r0, _0801A028 @ =sub_8013FBC
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801A01C: .4byte gUnknown_02024C10
-_0801A020: .4byte 0x02017140
-_0801A024: .4byte gUnknown_030042D4
-_0801A028: .4byte sub_8013FBC
- thumb_func_end b_push_move_exec
-
- thumb_func_start sub_801A02C
-sub_801A02C: @ 801A02C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r0, 0
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0xC]
- add r0, sp, 0x4
- strb r1, [r0]
- ldr r4, _0801A078 @ =gUnknown_02024C04
- ldr r1, _0801A07C @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0801A084
- ldr r1, _0801A080 @ =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r0, [r0, 0x1A]
- b _0801A098
- .align 2, 0
-_0801A078: .4byte gUnknown_02024C04
-_0801A07C: .4byte gBattleMons
-_0801A080: .4byte gEnigmaBerries
-_0801A084:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0801A098:
- mov r9, r0
- ldr r1, _0801A0C0 @ =gBattleMons
- ldr r0, _0801A0C4 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- str r0, [sp, 0x14]
- cmp r0, 0xAF
- bne _0801A0CC
- ldr r1, _0801A0C8 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r3, [r0, 0x7]
- mov r8, r3
- ldrb r0, [r0, 0x1A]
- b _0801A0E2
- .align 2, 0
-_0801A0C0: .4byte gBattleMons
-_0801A0C4: .4byte gUnknown_02024C07
-_0801A0C8: .4byte gEnigmaBerries
-_0801A0CC:
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, [sp, 0x14]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r0, 24
-_0801A0E2:
- str r0, [sp, 0x10]
- ldr r2, _0801A118 @ =gBattleMons
- ldr r0, _0801A11C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- cmp r4, 0xAF
- beq _0801A102
- adds r0, r4, 0
- bl ItemId_GetHoldEffect
- adds r0, r4, 0
- bl ItemId_GetHoldEffectParam
-_0801A102:
- ldr r4, [sp, 0x8]
- cmp r4, 0x4
- bls _0801A10C
- bl _0801B3CA
-_0801A10C:
- lsls r0, r4, 2
- ldr r1, _0801A120 @ =_0801A124
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A118: .4byte gBattleMons
-_0801A11C: .4byte gUnknown_02024C08
-_0801A120: .4byte _0801A124
- .align 2, 0
-_0801A124:
- .4byte _0801A138
- .4byte _0801A1D4
- .4byte _0801B3CA
- .4byte _0801AE0C
- .4byte _0801B26C
-_0801A138:
- cmp r5, 0x17
- beq _0801A15C
- cmp r5, 0x20
- beq _0801A144
- bl _0801B3CA
-_0801A144:
- ldr r0, _0801A154 @ =0x02000000
- ldr r5, _0801A158 @ =0x00016056
- adds r0, r5
- movs r1, 0x2
- strb r1, [r0]
- bl _0801B3CA
- .align 2, 0
-_0801A154: .4byte 0x02000000
-_0801A158: .4byte 0x00016056
-_0801A15C:
- ldr r0, _0801A1B8 @ =gBattleMons
- mov r8, r0
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0801A172:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801A180
- strb r2, [r1]
- movs r4, 0x5
- str r4, [sp, 0xC]
-_0801A180:
- adds r1, 0x1
- movs r5, 0x1
- negs r5, r5
- add r10, r5
- mov r0, r10
- cmp r0, 0
- bge _0801A172
- ldr r1, [sp, 0xC]
- cmp r1, 0
- bne _0801A198
- bl _0801B3CA
-_0801A198:
- ldr r0, _0801A1BC @ =0x02000000
- ldr r2, _0801A1C0 @ =0x00016003
- adds r0, r2
- strb r7, [r0]
- ldr r0, _0801A1C4 @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r1, _0801A1C8 @ =gUnknown_02024A60
- ldr r0, _0801A1CC @ =gUnknown_02024C07
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, _0801A1D0 @ =gUnknown_081D9A5E
- bl b_call_bc_move_exec
- bl _0801B3CA
- .align 2, 0
-_0801A1B8: .4byte gBattleMons
-_0801A1BC: .4byte 0x02000000
-_0801A1C0: .4byte 0x00016003
-_0801A1C4: .4byte gUnknown_02024C0B
-_0801A1C8: .4byte gUnknown_02024A60
-_0801A1CC: .4byte gUnknown_02024C07
-_0801A1D0: .4byte gUnknown_081D9A5E
-_0801A1D4:
- ldr r1, _0801A1FC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x28]
- mov r8, r1
- cmp r0, 0
- bne _0801A1E8
- bl _0801B3CA
-_0801A1E8:
- subs r0, r5, 0x1
- cmp r0, 0x2A
- bls _0801A1F2
- bl _0801AD5A
-_0801A1F2:
- lsls r0, 2
- ldr r1, _0801A200 @ =_0801A204
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801A1FC: .4byte gBattleMons
-_0801A200: .4byte _0801A204
- .align 2, 0
-_0801A204:
- .4byte _0801A2B0
- .4byte _0801AAC8
- .4byte _0801AB84
- .4byte _0801AAF8
- .4byte _0801AB2C
- .4byte _0801AB5C
- .4byte _0801A2F8
- .4byte _0801ABC8
- .4byte _0801ABF8
- .4byte _0801A4CC
- .4byte _0801A548
- .4byte _0801A5C4
- .4byte _0801A634
- .4byte _0801A6C8
- .4byte _0801A75C
- .4byte _0801A7D4
- .4byte _0801A838
- .4byte _0801A89C
- .4byte _0801A900
- .4byte _0801A97C
- .4byte _0801A9C8
- .4byte _0801AD5A
- .4byte _0801A3F8
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD24
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801AD5A
- .4byte _0801A46C
-_0801A2B0:
- movs r0, 0x58
- muls r0, r7
- mov r3, r8
- adds r2, r0, r3
- ldrh r0, [r2, 0x2C]
- ldrh r1, [r2, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A2C6
- bl _0801AD5A
-_0801A2C6:
- cmp r6, 0
- beq _0801A2CE
- bl _0801AD5A
-_0801A2CE:
- ldr r4, _0801A2F0 @ =gUnknown_02024BEC
- mov r5, r9
- str r5, [r4]
- ldrh r3, [r2, 0x28]
- adds r0, r3, r5
- ldrh r1, [r2, 0x2C]
- cmp r0, r1
- ble _0801A2E2
- subs r0, r1, r3
- str r0, [r4]
-_0801A2E2:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- ldr r0, _0801A2F4 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
- b _0801A752
- .align 2, 0
-_0801A2F0: .4byte gUnknown_02024BEC
-_0801A2F4: .4byte gUnknown_081D9A74
-_0801A2F8:
- cmp r6, 0
- beq _0801A300
- bl _0801AD5A
-_0801A300:
- adds r0, r7, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801A324
- ldr r1, _0801A31C @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801A320 @ =gPlayerParty
- b _0801A332
- .align 2, 0
-_0801A31C: .4byte gUnknown_02024A6A
-_0801A320: .4byte gPlayerParty
-_0801A324:
- ldr r1, _0801A3A0 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0801A3A4 @ =gEnemyParty
-_0801A332:
- adds r4, r1, r0
- movs r1, 0
- mov r10, r1
- add r5, sp, 0x4
-_0801A33A:
- mov r1, r10
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- mov r1, r10
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- strb r0, [r5]
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r6, 0
- beq _0801A36A
- ldrb r0, [r5]
- cmp r0, 0
- beq _0801A374
-_0801A36A:
- movs r2, 0x1
- add r10, r2
- mov r3, r10
- cmp r3, 0x3
- ble _0801A33A
-_0801A374:
- mov r4, r10
- cmp r4, 0x4
- bne _0801A37E
- bl _0801AD5A
-_0801A37E:
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r6, 0
- bl CalculatePPWithBonus
- lsls r0, 24
- lsrs r2, r0, 24
- add r0, sp, 0x4
- ldrb r0, [r0]
- mov r5, r9
- adds r1, r0, r5
- cmp r1, r2
- ble _0801A3A8
- add r0, sp, 0x4
- strb r2, [r0]
- b _0801A3AC
- .align 2, 0
-_0801A3A0: .4byte gUnknown_02024A6A
-_0801A3A4: .4byte gEnemyParty
-_0801A3A8:
- add r0, sp, 0x4
- strb r1, [r0]
-_0801A3AC:
- ldr r1, _0801A3EC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- lsrs r0, r6, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r0, _0801A3F0 @ =gUnknown_081D9A91
- bl b_call_bc_move_exec
- mov r1, r10
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- add r0, sp, 0x4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r0, _0801A3F4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r1, 0x3
- str r1, [sp, 0xC]
- bl _0801AD62
- .align 2, 0
-_0801A3EC: .4byte gUnknown_030041C0
-_0801A3F0: .4byte gUnknown_081D9A91
-_0801A3F4: .4byte gUnknown_02024A60
-_0801A3F8:
- ldr r0, _0801A450 @ =gBattleMons
- movs r1, 0x58
- muls r1, r7
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r3, 0x7
- mov r10, r3
-_0801A408:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801A416
- strb r2, [r1]
- movs r4, 0x5
- str r4, [sp, 0xC]
-_0801A416:
- adds r1, 0x1
- movs r5, 0x1
- negs r5, r5
- add r10, r5
- mov r0, r10
- cmp r0, 0
- bge _0801A408
- movs r1, 0x8
- mov r10, r1
- ldr r2, [sp, 0xC]
- cmp r2, 0
- bne _0801A432
- bl _0801B3CA
-_0801A432:
- ldr r0, _0801A454 @ =0x02000000
- ldr r3, _0801A458 @ =0x00016003
- adds r0, r3
- strb r7, [r0]
- ldr r0, _0801A45C @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r1, _0801A460 @ =gUnknown_02024A60
- ldr r0, _0801A464 @ =gUnknown_02024C07
- strb r7, [r0]
- strb r7, [r1]
- ldr r0, _0801A468 @ =gUnknown_081D9A5E
- bl b_call_bc_move_exec
- bl _0801AD5A
- .align 2, 0
-_0801A450: .4byte gBattleMons
-_0801A454: .4byte 0x02000000
-_0801A458: .4byte 0x00016003
-_0801A45C: .4byte gUnknown_02024C0B
-_0801A460: .4byte gUnknown_02024A60
-_0801A464: .4byte gUnknown_02024C07
-_0801A468: .4byte gUnknown_081D9A5E
-_0801A46C:
- movs r0, 0x58
- muls r0, r7
- mov r4, r8
- adds r1, r0, r4
- ldrh r0, [r1, 0x28]
- ldrh r2, [r1, 0x2C]
- cmp r0, r2
- bcc _0801A480
- bl _0801AD5A
-_0801A480:
- cmp r6, 0
- beq _0801A488
- bl _0801AD5A
-_0801A488:
- ldr r3, _0801A4C4 @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- lsrs r0, 4
- str r0, [r3]
- cmp r0, 0
- bne _0801A498
- movs r0, 0x1
- str r0, [r3]
-_0801A498:
- ldrh r2, [r1, 0x28]
- ldr r0, [r3]
- adds r0, r2, r0
- ldrh r1, [r1, 0x2C]
- cmp r0, r1
- ble _0801A4A8
- subs r0, r1, r2
- str r0, [r3]
-_0801A4A8:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
- ldr r0, _0801A4C8 @ =gUnknown_081D9AA1
- bl b_call_bc_move_exec
- movs r3, 0x4
- str r3, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_81074F8
- bl _0801AD5A
- .align 2, 0
-_0801A4C4: .4byte gUnknown_02024BEC
-_0801A4C8: .4byte gUnknown_081D9AA1
-_0801A4CC:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x18]
- add r4, r8
- ldrh r0, [r4, 0x2C]
- ldrh r1, [r4, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A4E4
- bl _0801AD5A
-_0801A4E4:
- cmp r6, 0
- beq _0801A4EC
- bl _0801AD5A
-_0801A4EC:
- ldr r1, _0801A540 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r5, _0801A544 @ =gUnknown_02024BEC
- ldrh r0, [r4, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801A510
- movs r0, 0x1
- str r0, [r5]
-_0801A510:
- ldrh r2, [r4, 0x28]
- ldr r0, [r5]
- adds r0, r2, r0
- ldrh r1, [r4, 0x2C]
- cmp r0, r1
- ble _0801A520
- subs r0, r1, r2
- str r0, [r5]
-_0801A520:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x18]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0
-_0801A532:
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A53E
- b _0801A738
-_0801A53E:
- b _0801A74C
- .align 2, 0
-_0801A540: .4byte gUnknown_030041C0
-_0801A544: .4byte gUnknown_02024BEC
-_0801A548:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x1C]
- adds r5, r1, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A562
- bl _0801AD5A
-_0801A562:
- cmp r6, 0
- beq _0801A56A
- bl _0801AD5A
-_0801A56A:
- ldr r1, _0801A5BC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r6, 0x1
- strb r6, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A5C0 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A58E
- str r6, [r4]
-_0801A58E:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A59E
- subs r0, r1, r2
- str r0, [r4]
-_0801A59E:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x1C]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x1
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- blt _0801A6A4
- b _0801A6B8
- .align 2, 0
-_0801A5BC: .4byte gUnknown_030041C0
-_0801A5C0: .4byte gUnknown_02024BEC
-_0801A5C4:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x20]
- adds r5, r4, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A5DC
- b _0801AD5A
-_0801A5DC:
- cmp r6, 0
- beq _0801A5E2
- b _0801AD5A
-_0801A5E2:
- ldr r1, _0801A62C @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A630 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A608
- movs r0, 0x1
- str r0, [r4]
-_0801A608:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A618
- subs r0, r1, r2
- str r0, [r4]
-_0801A618:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x20]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x2
- b _0801A532
- .align 2, 0
-_0801A62C: .4byte gUnknown_030041C0
-_0801A630: .4byte gUnknown_02024BEC
-_0801A634:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- str r1, [sp, 0x24]
- adds r5, r1, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A64C
- b _0801AD5A
-_0801A64C:
- cmp r6, 0
- beq _0801A652
- b _0801AD5A
-_0801A652:
- ldr r1, _0801A6AC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A6B0 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A678
- movs r0, 0x1
- str r0, [r4]
-_0801A678:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A688
- subs r0, r1, r2
- str r0, [r4]
-_0801A688:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r2, [sp, 0x24]
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x3
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A6B8
-_0801A6A4:
- ldr r0, _0801A6B4 @ =gUnknown_081D9AD4
- bl b_call_bc_move_exec
- b _0801A6BE
- .align 2, 0
-_0801A6AC: .4byte gUnknown_030041C0
-_0801A6B0: .4byte gUnknown_02024BEC
-_0801A6B4: .4byte gUnknown_081D9AD4
-_0801A6B8:
- ldr r0, _0801A6C4 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
-_0801A6BE:
- movs r3, 0x4
- str r3, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A6C4: .4byte gUnknown_081D9A74
-_0801A6C8:
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- str r4, [sp, 0x28]
- adds r5, r4, 0
- add r5, r8
- ldrh r0, [r5, 0x2C]
- ldrh r1, [r5, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bls _0801A6E0
- b _0801AD5A
-_0801A6E0:
- cmp r6, 0
- beq _0801A6E6
- b _0801AD5A
-_0801A6E6:
- ldr r1, _0801A740 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x8
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r4, _0801A744 @ =gUnknown_02024BEC
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801A70C
- movs r0, 0x1
- str r0, [r4]
-_0801A70C:
- ldrh r2, [r5, 0x28]
- ldr r0, [r4]
- adds r0, r2, r0
- ldrh r1, [r5, 0x2C]
- cmp r0, r1
- ble _0801A71C
- subs r0, r1, r2
- str r0, [r4]
-_0801A71C:
- ldr r0, [r4]
- negs r0, r0
- str r0, [r4]
- mov r0, r8
- adds r0, 0x48
- ldr r5, [sp, 0x28]
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x4
- bl sub_8040A7C
- lsls r0, 24
- cmp r0, 0
- bge _0801A74C
-_0801A738:
- ldr r0, _0801A748 @ =gUnknown_081D9AD4
- bl b_call_bc_move_exec
- b _0801A752
- .align 2, 0
-_0801A740: .4byte gUnknown_030041C0
-_0801A744: .4byte gUnknown_02024BEC
-_0801A748: .4byte gUnknown_081D9AD4
-_0801A74C:
- ldr r0, _0801A758 @ =gUnknown_081D9A74
- bl b_call_bc_move_exec
-_0801A752:
- movs r0, 0x4
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A758: .4byte gUnknown_081D9A74
-_0801A75C:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A774
- b _0801AD5A
-_0801A774:
- cmp r6, 0
- beq _0801A77A
- b _0801AD5A
-_0801A77A:
- movs r0, 0x19
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A784
- b _0801AD5A
-_0801A784:
- ldr r1, _0801A7BC @ =gUnknown_030041C0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0801A7C0 @ =gUnknown_03004290
- strb r2, [r1]
- strb r6, [r1, 0x1]
- movs r0, 0xD2
- strb r0, [r1, 0x2]
- strb r6, [r1, 0x3]
- subs r0, 0xD3
- strb r0, [r1, 0x4]
- ldr r0, _0801A7C4 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A7C8 @ =0x02000000
- ldr r3, _0801A7CC @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x11
- strb r0, [r2]
- ldr r4, _0801A7D0 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0xF
- b _0801A94C
- .align 2, 0
-_0801A7BC: .4byte gUnknown_030041C0
-_0801A7C0: .4byte gUnknown_03004290
-_0801A7C4: .4byte gUnknown_02024C0A
-_0801A7C8: .4byte 0x02000000
-_0801A7CC: .4byte 0x0001601e
-_0801A7D0: .4byte 0x000160a4
-_0801A7D4:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A7EC
- b _0801AD5A
-_0801A7EC:
- cmp r6, 0
- beq _0801A7F2
- b _0801AD5A
-_0801A7F2:
- movs r0, 0x1A
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A7FC
- b _0801AD5A
-_0801A7FC:
- ldr r1, _0801A824 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A828 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A82C @ =0x02000000
- ldr r3, _0801A830 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x12
- strb r0, [r2]
- ldr r4, _0801A834 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x10
- b _0801A94C
- .align 2, 0
-_0801A824: .4byte gUnknown_030041C0
-_0801A828: .4byte gUnknown_02024C0A
-_0801A82C: .4byte 0x02000000
-_0801A830: .4byte 0x0001601e
-_0801A834: .4byte 0x000160a4
-_0801A838:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A850
- b _0801AD5A
-_0801A850:
- cmp r6, 0
- beq _0801A856
- b _0801AD5A
-_0801A856:
- movs r0, 0x1B
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A860
- b _0801AD5A
-_0801A860:
- ldr r1, _0801A888 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x3
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A88C @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A890 @ =0x02000000
- ldr r3, _0801A894 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x13
- strb r0, [r2]
- ldr r4, _0801A898 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x11
- b _0801A94C
- .align 2, 0
-_0801A888: .4byte gUnknown_030041C0
-_0801A88C: .4byte gUnknown_02024C0A
-_0801A890: .4byte 0x02000000
-_0801A894: .4byte 0x0001601e
-_0801A898: .4byte 0x000160a4
-_0801A89C:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A8B4
- b _0801AD5A
-_0801A8B4:
- cmp r6, 0
- beq _0801A8BA
- b _0801AD5A
-_0801A8BA:
- movs r0, 0x1C
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A8C4
- b _0801AD5A
-_0801A8C4:
- ldr r1, _0801A8EC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A8F0 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A8F4 @ =0x02000000
- ldr r3, _0801A8F8 @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x14
- strb r0, [r2]
- ldr r4, _0801A8FC @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x12
- b _0801A94C
- .align 2, 0
-_0801A8EC: .4byte gUnknown_030041C0
-_0801A8F0: .4byte gUnknown_02024C0A
-_0801A8F4: .4byte 0x02000000
-_0801A8F8: .4byte 0x0001601e
-_0801A8FC: .4byte 0x000160a4
-_0801A900:
- movs r0, 0x58
- muls r0, r7
- mov r1, r8
- adds r5, r0, r1
- ldrh r4, [r5, 0x28]
- ldrh r0, [r5, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A918
- b _0801AD5A
-_0801A918:
- cmp r6, 0
- beq _0801A91E
- b _0801AD5A
-_0801A91E:
- movs r0, 0x1D
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- ble _0801A928
- b _0801AD5A
-_0801A928:
- ldr r1, _0801A960 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801A964 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801A968 @ =0x02000000
- ldr r3, _0801A96C @ =0x0001601e
- adds r2, r1, r3
- movs r0, 0x15
- strb r0, [r2]
- ldr r4, _0801A970 @ =0x000160a4
- adds r2, r1, r4
- movs r0, 0x13
-_0801A94C:
- strb r0, [r2]
- ldr r5, _0801A974 @ =0x000160a5
- adds r1, r5
- strb r6, [r1]
- ldr r0, _0801A978 @ =gUnknown_081D9AFE
- bl b_call_bc_move_exec
- movs r0, 0x5
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A960: .4byte gUnknown_030041C0
-_0801A964: .4byte gUnknown_02024C0A
-_0801A968: .4byte 0x02000000
-_0801A96C: .4byte 0x0001601e
-_0801A970: .4byte 0x000160a4
-_0801A974: .4byte 0x000160a5
-_0801A978: .4byte gUnknown_081D9AFE
-_0801A97C:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r1, r8
- adds r0, r5, r1
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A996
- b _0801AD5A
-_0801A996:
- cmp r6, 0
- beq _0801A99C
- b _0801AD5A
-_0801A99C:
- mov r0, r8
- adds r0, 0x50
- adds r1, r5, r0
- ldr r2, [r1]
- movs r3, 0x80
- lsls r3, 13
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _0801A9B2
- b _0801AD5A
-_0801A9B2:
- orrs r2, r3
- str r2, [r1]
- ldr r0, _0801A9C4 @ =gUnknown_081D9B19
- bl b_call_bc_move_exec
- movs r2, 0x2
- str r2, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801A9C4: .4byte gUnknown_081D9B19
-_0801A9C8:
- cmp r6, 0
- beq _0801A9CE
- b _0801AD5A
-_0801A9CE:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r3, r8
- adds r0, r5, r3
- ldrh r4, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- mov r1, r9
- bl __divsi3
- cmp r4, r0
- ble _0801A9E8
- b _0801AD5A
-_0801A9E8:
- movs r4, 0
- mov r10, r4
- adds r0, r5, 0x1
- mov r1, r8
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- ble _0801AA18
- mov r0, r8
- adds r0, 0x19
- adds r1, r5, r0
-_0801AA04:
- adds r1, 0x1
- movs r5, 0x1
- add r10, r5
- mov r0, r10
- cmp r0, 0x4
- bgt _0801AA18
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _0801AA04
-_0801AA18:
- mov r1, r10
- cmp r1, 0x5
- bne _0801AA20
- b _0801AD5A
-_0801AA20:
- movs r0, 0x58
- muls r0, r7
- adds r4, r0, 0x1
- ldr r5, _0801AAA4 @ =gUnknown_02024A98
-_0801AA28:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- beq _0801AA28
- ldr r1, _0801AAA8 @ =gUnknown_030041C0
- movs r3, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- mov r0, r10
- adds r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r0, _0801AAAC @ =gUnknown_03004290
- strb r2, [r0]
- strb r3, [r0, 0x1]
- movs r1, 0xD1
- strb r1, [r0, 0x2]
- strb r3, [r0, 0x3]
- strb r3, [r0, 0x4]
- movs r1, 0xD2
- strb r1, [r0, 0x5]
- strb r3, [r0, 0x6]
- subs r1, 0xD3
- strb r1, [r0, 0x7]
- ldr r0, _0801AAB0 @ =gUnknown_02024C0A
- strb r7, [r0]
- ldr r1, _0801AAB4 @ =0x02000000
- mov r2, r10
- adds r2, 0x21
- ldr r4, _0801AAB8 @ =0x0001601e
- adds r0, r1, r4
- strb r2, [r0]
- adds r2, 0x6
- ldr r5, _0801AABC @ =0x000160a4
- adds r0, r1, r5
- strb r2, [r0]
- ldr r0, _0801AAC0 @ =0x000160a5
- adds r1, r0
- strb r3, [r1]
- ldr r0, _0801AAC4 @ =gUnknown_081D9AFE
- bl b_call_bc_move_exec
- movs r1, 0x5
- str r1, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AAA4: .4byte gUnknown_02024A98
-_0801AAA8: .4byte gUnknown_030041C0
-_0801AAAC: .4byte gUnknown_03004290
-_0801AAB0: .4byte gUnknown_02024C0A
-_0801AAB4: .4byte 0x02000000
-_0801AAB8: .4byte 0x0001601e
-_0801AABC: .4byte 0x000160a4
-_0801AAC0: .4byte 0x000160a5
-_0801AAC4: .4byte gUnknown_081D9AFE
-_0801AAC8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _0801AAE0
- b _0801AD5A
-_0801AAE0:
- movs r0, 0x41
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AAF4 @ =gUnknown_081D99B6
- bl b_call_bc_move_exec
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AAF4: .4byte gUnknown_081D99B6
-_0801AAF8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x88
- ands r0, r2
- cmp r0, 0
- bne _0801AB10
- b _0801AD5A
-_0801AB10:
- ldr r0, _0801AB24 @ =0xfffff077
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB28 @ =gUnknown_081D99CE
- bl b_call_bc_move_exec
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AB24: .4byte 0xfffff077
-_0801AB28: .4byte gUnknown_081D99CE
-_0801AB2C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _0801AB44
- b _0801AD5A
-_0801AB44:
- movs r0, 0x11
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB58 @ =gUnknown_081D99E6
- bl b_call_bc_move_exec
- movs r4, 0x1
- str r4, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AB58: .4byte gUnknown_081D99E6
-_0801AB5C:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x4C
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0801AB74
- b _0801AD5A
-_0801AB74:
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AB80 @ =gUnknown_081D99FE
- b _0801AD0E
- .align 2, 0
-_0801AB80: .4byte gUnknown_081D99FE
-_0801AB84:
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- mov r0, r8
- adds r0, 0x4C
- adds r2, r3, r0
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AB9C
- b _0801AD5A
-_0801AB9C:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- mov r1, r8
- adds r1, 0x50
- adds r1, r3, r1
- ldr r0, [r1]
- ldr r2, _0801ABC0 @ =0xf7ffffff
- ands r0, r2
- str r0, [r1]
- ldr r0, _0801ABC4 @ =gUnknown_081D9A16
- bl b_call_bc_move_exec
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801ABC0: .4byte 0xf7ffffff
-_0801ABC4: .4byte gUnknown_081D9A16
-_0801ABC8:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0x7
- ands r0, r2
- cmp r0, 0
- bne _0801ABE0
- b _0801AD5A
-_0801ABE0:
- movs r0, 0x8
- negs r0, r0
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801ABF4 @ =gUnknown_081D9A2E
- bl b_call_bc_move_exec
- movs r1, 0x2
- str r1, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801ABF4: .4byte gUnknown_081D9A2E
-_0801ABF8:
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- mov r0, r8
- adds r0, 0x4C
- adds r4, r5, r0
- ldr r2, [r4]
- ldrb r0, [r4]
- cmp r0, 0
- bne _0801AC1E
- mov r0, r8
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AC1E
- b _0801AD5A
-_0801AC1E:
- movs r3, 0
- mov r10, r3
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _0801AC36
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
- movs r0, 0x1
- mov r10, r0
-_0801AC36:
- ldr r0, [r4]
- movs r1, 0x7
- mov r9, r1
- ands r0, r1
- mov r6, r8
- adds r6, 0x50
- cmp r0, 0
- beq _0801AC5C
- adds r2, r5, r6
- ldr r0, [r2]
- ldr r1, _0801ACCC @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn
- bl StringCopy
- movs r2, 0x1
- add r10, r2
-_0801AC5C:
- ldr r0, [r4]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801AC72
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_0801AC72:
- ldr r0, [r4]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801AC88
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn
- bl StringCopy
- movs r0, 0x1
- add r10, r0
-_0801AC88:
- ldr r0, [r4]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801AC9E
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn
- bl StringCopy
- movs r1, 0x1
- add r10, r1
-_0801AC9E:
- adds r0, r5, r6
- ldr r0, [r0]
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- beq _0801ACB6
- ldr r0, _0801ACC4 @ =gUnknown_030041C0
- ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
- movs r3, 0x1
- add r10, r3
-_0801ACB6:
- mov r4, r10
- cmp r4, 0x1
- bgt _0801ACE8
- ldr r1, _0801ACE4 @ =gUnknown_02024D1E
- movs r0, 0
- b _0801ACEC
- .align 2, 0
-_0801ACC4: .4byte gUnknown_030041C0
-_0801ACC8: .4byte gStatusConditionString_PoisonJpn
-_0801ACCC: .4byte 0xf7ffffff
-_0801ACD0: .4byte gStatusConditionString_SleepJpn
-_0801ACD4: .4byte gStatusConditionString_ParalysisJpn
-_0801ACD8: .4byte gStatusConditionString_BurnJpn
-_0801ACDC: .4byte gStatusConditionString_IceJpn
-_0801ACE0: .4byte gStatusConditionString_ConfusionJpn
-_0801ACE4: .4byte gUnknown_02024D1E
-_0801ACE8:
- ldr r1, _0801AD18 @ =gUnknown_02024D1E
- movs r0, 0x1
-_0801ACEC:
- strb r0, [r1, 0x5]
- ldr r2, _0801AD1C @ =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r3, r0
- movs r1, 0
- str r1, [r0]
- adds r2, 0x50
- adds r3, r2
- ldr r0, [r3]
- subs r1, 0x8
- ands r0, r1
- str r0, [r3]
- ldr r0, _0801AD20 @ =gUnknown_081D9A44
-_0801AD0E:
- bl b_call_bc_move_exec
- movs r5, 0x1
- str r5, [sp, 0xC]
- b _0801AD62
- .align 2, 0
-_0801AD18: .4byte gUnknown_02024D1E
-_0801AD1C: .4byte gBattleMons
-_0801AD20: .4byte gUnknown_081D9A44
-_0801AD24:
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x50
- adds r1, r0
- ldr r2, [r1]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- beq _0801AD5A
- ldr r0, _0801AD84 @ =0xfff0ffff
- ands r2, r0
- str r2, [r1]
- ldr r0, _0801AD88 @ =gUnknown_030041C0
- ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn
- bl StringCopy
- ldr r0, _0801AD90 @ =gUnknown_081D9A44
- bl b_call_bc_move_exec
- ldr r1, _0801AD94 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- movs r0, 0x2
- str r0, [sp, 0xC]
-_0801AD5A:
- ldr r1, [sp, 0xC]
- cmp r1, 0
- bne _0801AD62
- b _0801B3CA
-_0801AD62:
- ldr r0, _0801AD98 @ =0x02000000
- ldr r2, _0801AD9C @ =0x00016003
- adds r0, r2
- strb r7, [r0]
- ldr r0, _0801ADA0 @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r4, _0801ADA4 @ =gUnknown_02024A60
- ldr r0, _0801ADA8 @ =gUnknown_02024C07
- strb r7, [r0]
- strb r7, [r4]
- ldr r3, [sp, 0xC]
- cmp r3, 0x1
- beq _0801ADAC
- cmp r3, 0x3
- beq _0801ADB2
- b _0801B3CA
- .align 2, 0
-_0801AD84: .4byte 0xfff0ffff
-_0801AD88: .4byte gUnknown_030041C0
-_0801AD8C: .4byte gStatusConditionString_LoveJpn
-_0801AD90: .4byte gUnknown_081D9A44
-_0801AD94: .4byte gUnknown_02024D1E
-_0801AD98: .4byte 0x02000000
-_0801AD9C: .4byte 0x00016003
-_0801ADA0: .4byte gUnknown_02024C0B
-_0801ADA4: .4byte gUnknown_02024A60
-_0801ADA8: .4byte gUnknown_02024C07
-_0801ADAC:
- movs r0, 0x58
- muls r0, r7
- b _0801B224
-_0801ADB2:
- ldr r4, _0801AE00 @ =gBattleMons
- movs r0, 0x58
- adds r3, r7, 0
- muls r3, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- beq _0801ADCE
- b _0801B3CA
-_0801ADCE:
- ldr r1, _0801AE04 @ =gUnknown_02024CA8
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801AE08 @ =gBitTable
- mov r5, r10
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801ADEE
- b _0801B3CA
-_0801ADEE:
- adds r1, r5, r3
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- add r0, sp, 0x4
- ldrb r0, [r0]
- strb r0, [r1]
- b _0801B3CA
- .align 2, 0
-_0801AE00: .4byte gBattleMons
-_0801AE04: .4byte gUnknown_02024CA8
-_0801AE08: .4byte gBitTable
-_0801AE0C:
- movs r7, 0
- ldr r0, _0801AE3C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcc _0801AE18
- b _0801B3CA
-_0801AE18:
- ldr r4, _0801AE40 @ =gUnknown_02024C04
- ldr r1, _0801AE44 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0801AE4C
- ldr r1, _0801AE48 @ =gEnigmaBerries
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- b _0801AE5C
- .align 2, 0
-_0801AE3C: .4byte gUnknown_02024A68
-_0801AE40: .4byte gUnknown_02024C04
-_0801AE44: .4byte gBattleMons
-_0801AE48: .4byte gEnigmaBerries
-_0801AE4C:
- ldrh r0, [r4]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4]
- bl ItemId_GetHoldEffectParam
-_0801AE5C:
- subs r0, r5, 0x2
- cmp r0, 0x1A
- bls _0801AE64
- b _0801B208
-_0801AE64:
- lsls r0, 2
- ldr r1, _0801AE70 @ =_0801AE74
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801AE70: .4byte _0801AE74
- .align 2, 0
-_0801AE74:
- .4byte _0801AEE0
- .4byte _0801AFC8
- .4byte _0801AF1C
- .4byte _0801AF58
- .4byte _0801AF94
- .4byte _0801B208
- .4byte _0801B018
- .4byte _0801B0AC
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B1A0
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B208
- .4byte _0801B054
-_0801AEE0:
- ldr r1, _0801AF10 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801AEF6
- b _0801B208
-_0801AEF6:
- movs r0, 0x41
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF14 @ =gUnknown_02024C10
- ldr r0, _0801AF18 @ =gUnknown_081D99BC
- str r0, [r1]
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF10: .4byte gBattleMons
-_0801AF14: .4byte gUnknown_02024C10
-_0801AF18: .4byte gUnknown_081D99BC
-_0801AF1C:
- ldr r1, _0801AF48 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0801AF32
- b _0801B208
-_0801AF32:
- ldr r0, _0801AF4C @ =0xfffff077
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF50 @ =gUnknown_02024C10
- ldr r0, _0801AF54 @ =gUnknown_081D99D4
- str r0, [r1]
- movs r1, 0x1
- str r1, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF48: .4byte gBattleMons
-_0801AF4C: .4byte 0xfffff077
-_0801AF50: .4byte gUnknown_02024C10
-_0801AF54: .4byte gUnknown_081D99D4
-_0801AF58:
- ldr r1, _0801AF88 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0801AF6E
- b _0801B208
-_0801AF6E:
- movs r0, 0x11
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AF8C @ =gUnknown_02024C10
- ldr r0, _0801AF90 @ =gUnknown_081D99EC
- str r0, [r1]
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801AF88: .4byte gBattleMons
-_0801AF8C: .4byte gUnknown_02024C10
-_0801AF90: .4byte gUnknown_081D99EC
-_0801AF94:
- ldr r1, _0801AFBC @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x4C
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801AFAA
- b _0801B208
-_0801AFAA:
- movs r0, 0x21
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801AFC0 @ =gUnknown_02024C10
- ldr r0, _0801AFC4 @ =gUnknown_081D9A04
- b _0801B168
- .align 2, 0
-_0801AFBC: .4byte gBattleMons
-_0801AFC0: .4byte gUnknown_02024C10
-_0801AFC4: .4byte gUnknown_081D9A04
-_0801AFC8:
- ldr r2, _0801B008 @ =gBattleMons
- movs r0, 0x58
- adds r4, r7, 0
- muls r4, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r3, r4, r0
- ldr r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801AFE2
- b _0801B208
-_0801AFE2:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- adds r2, 0x50
- adds r2, r4, r2
- ldr r0, [r2]
- ldr r1, _0801B00C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B010 @ =gUnknown_02024C10
- ldr r0, _0801B014 @ =gUnknown_081D9A1C
- str r0, [r1]
- movs r4, 0x1
- str r4, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B008: .4byte gBattleMons
-_0801B00C: .4byte 0xf7ffffff
-_0801B010: .4byte gUnknown_02024C10
-_0801B014: .4byte gUnknown_081D9A1C
-_0801B018:
- ldr r1, _0801B048 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801B02E
- b _0801B208
-_0801B02E:
- movs r0, 0x8
- negs r0, r0
- ands r1, r0
- str r1, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B04C @ =gUnknown_02024C10
- ldr r0, _0801B050 @ =gUnknown_081D9A34
- str r0, [r1]
- movs r5, 0x2
- str r5, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B048: .4byte gBattleMons
-_0801B04C: .4byte gUnknown_02024C10
-_0801B050: .4byte gUnknown_081D9A34
-_0801B054:
- ldr r1, _0801B090 @ =gBattleMons
- movs r0, 0x58
- muls r0, r7
- adds r1, 0x50
- adds r2, r0, r1
- ldr r1, [r2]
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r1
- cmp r0, 0
- bne _0801B06C
- b _0801B208
-_0801B06C:
- ldr r0, _0801B094 @ =0xfff0ffff
- ands r1, r0
- str r1, [r2]
- ldr r0, _0801B098 @ =gUnknown_030041C0
- ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn
- bl StringCopy
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B0A0 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- ldr r1, _0801B0A4 @ =gUnknown_02024C10
- ldr r0, _0801B0A8 @ =gUnknown_081D9A4A
- str r0, [r1]
- movs r0, 0x2
- str r0, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B090: .4byte gBattleMons
-_0801B094: .4byte 0xfff0ffff
-_0801B098: .4byte gUnknown_030041C0
-_0801B09C: .4byte gStatusConditionString_LoveJpn
-_0801B0A0: .4byte gUnknown_02024D1E
-_0801B0A4: .4byte gUnknown_02024C10
-_0801B0A8: .4byte gUnknown_081D9A4A
-_0801B0AC:
- ldr r4, _0801B170 @ =gBattleMons
- movs r0, 0x58
- adds r5, r7, 0
- muls r5, r0
- adds r0, r4, 0
- adds r0, 0x4C
- adds r6, r5, r0
- ldr r2, [r6]
- ldrb r0, [r6]
- cmp r0, 0
- bne _0801B0D4
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r5, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0801B0D4
- b _0801B208
-_0801B0D4:
- movs r0, 0x88
- ands r2, r0
- cmp r2, 0
- beq _0801B0E4
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn
- bl StringCopy
-_0801B0E4:
- ldr r0, [r6]
- movs r1, 0x7
- mov r8, r1
- ands r0, r1
- adds r4, 0x50
- cmp r0, 0
- beq _0801B104
- adds r2, r5, r4
- ldr r0, [r2]
- ldr r1, _0801B17C @ =0xf7ffffff
- ands r0, r1
- str r0, [r2]
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn
- bl StringCopy
-_0801B104:
- ldr r0, [r6]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801B116
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn
- bl StringCopy
-_0801B116:
- ldr r0, [r6]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0801B128
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn
- bl StringCopy
-_0801B128:
- ldr r0, [r6]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801B13A
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B18C @ =gStatusConditionString_IceJpn
- bl StringCopy
-_0801B13A:
- adds r5, r4
- ldr r0, [r5]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _0801B14E
- ldr r0, _0801B174 @ =gUnknown_030041C0
- ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn
- bl StringCopy
-_0801B14E:
- movs r4, 0
- str r4, [r6]
- ldr r0, [r5]
- movs r1, 0x8
- negs r1, r1
- ands r0, r1
- str r0, [r5]
- bl b_movescr_stack_push_cursor
- ldr r0, _0801B194 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _0801B198 @ =gUnknown_02024C10
- ldr r0, _0801B19C @ =gUnknown_081D9A4A
-_0801B168:
- str r0, [r1]
- movs r3, 0x1
- str r3, [sp, 0xC]
- b _0801B20E
- .align 2, 0
-_0801B170: .4byte gBattleMons
-_0801B174: .4byte gUnknown_030041C0
-_0801B178: .4byte gStatusConditionString_PoisonJpn
-_0801B17C: .4byte 0xf7ffffff
-_0801B180: .4byte gStatusConditionString_SleepJpn
-_0801B184: .4byte gStatusConditionString_ParalysisJpn
-_0801B188: .4byte gStatusConditionString_BurnJpn
-_0801B18C: .4byte gStatusConditionString_IceJpn
-_0801B190: .4byte gStatusConditionString_ConfusionJpn
-_0801B194: .4byte gUnknown_02024D1E
-_0801B198: .4byte gUnknown_02024C10
-_0801B19C: .4byte gUnknown_081D9A4A
-_0801B1A0:
- ldr r4, _0801B1F0 @ =gBattleMons
- mov r8, r4
- movs r0, 0x58
- adds r1, r7, 0
- muls r1, r0
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- movs r2, 0x6
- movs r5, 0x7
- mov r10, r5
-_0801B1B6:
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0x5
- bgt _0801B1C4
- strb r2, [r1]
- movs r0, 0x5
- str r0, [sp, 0xC]
-_0801B1C4:
- adds r1, 0x1
- movs r3, 0x1
- negs r3, r3
- add r10, r3
- mov r4, r10
- cmp r4, 0
- bge _0801B1B6
- ldr r5, [sp, 0xC]
- cmp r5, 0
- beq _0801B254
- ldr r0, _0801B1F4 @ =0x02000000
- ldr r1, _0801B1F8 @ =0x00016003
- adds r0, r1
- strb r7, [r0]
- ldr r0, _0801B1FC @ =gUnknown_02024C0B
- strb r7, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B200 @ =gUnknown_02024C10
- ldr r0, _0801B204 @ =gUnknown_081D9A64
- str r0, [r1]
- b _0801B3CA
- .align 2, 0
-_0801B1F0: .4byte gBattleMons
-_0801B1F4: .4byte 0x02000000
-_0801B1F8: .4byte 0x00016003
-_0801B1FC: .4byte gUnknown_02024C0B
-_0801B200: .4byte gUnknown_02024C10
-_0801B204: .4byte gUnknown_081D9A64
-_0801B208:
- ldr r2, [sp, 0xC]
- cmp r2, 0
- beq _0801B254
-_0801B20E:
- ldr r0, _0801B240 @ =0x02000000
- ldr r3, _0801B244 @ =0x00016003
- adds r0, r3
- strb r7, [r0]
- ldr r0, _0801B248 @ =gUnknown_02024C0B
- strb r7, [r0]
- ldr r4, _0801B24C @ =gUnknown_02024A60
- strb r7, [r4]
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
-_0801B224:
- ldr r1, _0801B250 @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801B3CA
- .align 2, 0
-_0801B240: .4byte 0x02000000
-_0801B244: .4byte 0x00016003
-_0801B248: .4byte gUnknown_02024C0B
-_0801B24C: .4byte gUnknown_02024A60
-_0801B250: .4byte gUnknown_02024ACC
-_0801B254:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0801B268 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcs _0801B264
- b _0801AE18
-_0801B264:
- b _0801B3CA
- .align 2, 0
-_0801B268: .4byte gUnknown_02024A68
-_0801B26C:
- ldr r7, _0801B284 @ =gUnknown_02024BEC
- ldr r0, [r7]
- cmp r0, 0
- bne _0801B276
- b _0801B3CA
-_0801B276:
- mov r4, r8
- cmp r4, 0x1E
- beq _0801B288
- cmp r4, 0x3E
- beq _0801B330
- b _0801B3CA
- .align 2, 0
-_0801B284: .4byte gUnknown_02024BEC
-_0801B288:
- ldr r0, _0801B314 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801B296
- b _0801B3CA
-_0801B296:
- ldr r2, _0801B318 @ =gUnknown_02024D68
- ldr r4, _0801B31C @ =gUnknown_02024C08
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r1, r0, 2
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B2BC
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B2BC
- b _0801B3CA
-_0801B2BC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r9
- bcs _0801B3CA
- ldr r2, _0801B320 @ =gBattleMoves
- ldr r0, _0801B324 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801B3CA
- ldr r2, _0801B328 @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B3CA
- ldr r1, _0801B32C @ =gUnknown_02024D1E
- movs r0, 0x8
- strb r0, [r1, 0x3]
- bl b_movescr_stack_push_cursor
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- bl b_movescr_stack_pop_cursor
- b _0801B3CA
- .align 2, 0
-_0801B314: .4byte gUnknown_02024C68
-_0801B318: .4byte gUnknown_02024D68
-_0801B31C: .4byte gUnknown_02024C08
-_0801B320: .4byte gBattleMoves
-_0801B324: .4byte gUnknown_02024BE6
-_0801B328: .4byte gBattleMons
-_0801B32C: .4byte gUnknown_02024D1E
-_0801B330:
- ldr r0, _0801B3DC @ =gUnknown_02024C68
- ldrb r0, [r0]
- movs r4, 0x29
- ands r4, r0
- cmp r4, 0
- bne _0801B3CA
- ldr r1, _0801B3E0 @ =gUnknown_02024D68
- ldr r5, _0801B3E4 @ =gUnknown_02024C08
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r6, r1, 0x4
- adds r0, r6
- ldr r1, [r0]
- cmp r1, 0
- beq _0801B3CA
- ldr r0, _0801B3E8 @ =0x0000ffff
- cmp r1, r0
- beq _0801B3CA
- ldr r0, _0801B3EC @ =gUnknown_02024C07
- ldrb r3, [r0]
- cmp r3, r2
- beq _0801B3CA
- ldr r2, _0801B3F0 @ =gBattleMons
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0801B3CA
- cmp r1, 0
- beq _0801B3CA
- ldr r0, _0801B3F4 @ =gUnknown_02024C04
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0]
- ldr r0, _0801B3F8 @ =gUnknown_02024C0B
- strb r3, [r0]
- ldr r0, _0801B3FC @ =0x02000000
- ldr r2, _0801B400 @ =0x00016003
- adds r0, r2
- strb r3, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldr r1, [sp, 0x10]
- bl __divsi3
- negs r0, r0
- str r0, [r7]
- ldrb r1, [r5]
- cmp r0, 0
- bne _0801B3AC
- movs r0, 0x1
- negs r0, r0
- str r0, [r7]
-_0801B3AC:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- str r4, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801B404 @ =gUnknown_02024C10
- ldr r0, _0801B408 @ =gUnknown_081D9AA7
- str r0, [r1]
- ldr r0, [sp, 0xC]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
-_0801B3CA:
- ldr r0, [sp, 0xC]
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B3DC: .4byte gUnknown_02024C68
-_0801B3E0: .4byte gUnknown_02024D68
-_0801B3E4: .4byte gUnknown_02024C08
-_0801B3E8: .4byte 0x0000ffff
-_0801B3EC: .4byte gUnknown_02024C07
-_0801B3F0: .4byte gBattleMons
-_0801B3F4: .4byte gUnknown_02024C04
-_0801B3F8: .4byte gUnknown_02024C0B
-_0801B3FC: .4byte 0x02000000
-_0801B400: .4byte 0x00016003
-_0801B404: .4byte gUnknown_02024C10
-_0801B408: .4byte gUnknown_081D9AA7
- thumb_func_end sub_801A02C
-
- thumb_func_start unref_sub_801B40C
-unref_sub_801B40C: @ 801B40C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
- ldr r0, _0801B464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801B42A
- b _0801B56E
-_0801B42A:
- movs r1, 0x1
- mov r9, r1
-_0801B42E:
- movs r5, 0
- ldr r4, _0801B468 @ =gUnknown_081FC1D0
- ldr r2, [sp]
- adds r2, 0x1
- str r2, [sp, 0x4]
-_0801B438:
- ldr r0, _0801B46C @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r3, _0801B470 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r3
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _0801B45A
- adds r0, r5, 0x2
- lsls r1, r0, 2
- adds r1, r3
- ldr r1, [r1]
- ands r2, r1
- adds r7, r0, 0
- cmp r2, 0
- beq _0801B474
-_0801B45A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- b _0801B556
- .align 2, 0
-_0801B464: .4byte gUnknown_020239F8
-_0801B468: .4byte gUnknown_081FC1D0
-_0801B46C: .4byte gUnknown_02024C0C
-_0801B470: .4byte gBitTable
-_0801B474:
- ldr r0, _0801B580 @ =gUnknown_081FC1D0
- ldr r2, [sp]
- lsls r1, r2, 3
- adds r6, r1, r0
- ldr r4, _0801B584 @ =gUnknown_02024C60
- lsls r0, r5, 1
- adds r3, r0, r4
- ldrh r2, [r6]
- mov r8, r1
- mov r10, r0
- ldrh r3, [r3]
- cmp r2, r3
- bne _0801B4E4
- lsls r0, r7, 1
- adds r0, r4
- ldrh r1, [r6, 0x2]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0801B4E4
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r2, r9
- ands r2, r0
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r0, _0801B588 @ =gUnknown_02024C80
- adds r1, r0
- lsls r0, r7, 4
- orrs r0, r5
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0801B588 @ =gUnknown_02024C80
- adds r0, r1
- ldrh r1, [r6, 0x4]
- strh r1, [r0, 0x4]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r1, 1
- ldr r2, _0801B58C @ =gUnknown_02024C7A
- adds r1, r2
- ldrh r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strh r0, [r1]
-_0801B4E4:
- ldr r0, _0801B580 @ =gUnknown_081FC1D0
- mov r1, r8
- adds r4, r1, r0
- ldr r2, _0801B584 @ =gUnknown_02024C60
- lsls r0, r7, 1
- adds r0, r2
- ldrh r1, [r4]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0801B54E
- mov r0, r10
- adds r1, r0, r2
- ldrh r0, [r4, 0x2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _0801B54E
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r2, r9
- ands r2, r0
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r2, _0801B588 @ =gUnknown_02024C80
- adds r1, r2
- lsls r0, r5, 4
- orrs r0, r7
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0801B588 @ =gUnknown_02024C80
- adds r0, r1
- ldrh r1, [r4, 0x4]
- strh r1, [r0, 0x4]
- adds r0, r5, 0
- bl battle_get_per_side_status
- mov r1, r9
- ands r1, r0
- lsls r1, 1
- ldr r2, _0801B58C @ =gUnknown_02024C7A
- adds r1, r2
- ldrh r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strh r0, [r1]
-_0801B54E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0801B580 @ =gUnknown_081FC1D0
-_0801B556:
- cmp r5, 0x1
- bhi _0801B55C
- b _0801B438
-_0801B55C:
- ldr r0, [sp, 0x4]
- str r0, [sp]
- lsls r0, 3
- adds r0, r4
- ldrh r1, [r0]
- ldr r0, _0801B590 @ =0x0000ffff
- cmp r1, r0
- beq _0801B56E
- b _0801B42E
-_0801B56E:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801B580: .4byte gUnknown_081FC1D0
-_0801B584: .4byte gUnknown_02024C60
-_0801B588: .4byte gUnknown_02024C80
-_0801B58C: .4byte gUnknown_02024C7A
-_0801B590: .4byte 0x0000ffff
- thumb_func_end unref_sub_801B40C
-
- thumb_func_start sub_801B594
-sub_801B594: @ 801B594
- push {lr}
- ldr r0, _0801B5B4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801B5B0
- ldr r1, _0801B5B8 @ =gUnknown_081FA73C
- ldr r0, _0801B5BC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
-_0801B5B0:
- pop {r0}
- bx r0
- .align 2, 0
-_0801B5B4: .4byte gUnknown_02024A64
-_0801B5B8: .4byte gUnknown_081FA73C
-_0801B5BC: .4byte gUnknown_02024C10
- thumb_func_end sub_801B594
-
- thumb_func_start sub_801B5C0
-sub_801B5C0: @ 801B5C0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 16
- lsrs r7, r0, 16
- lsls r1, 24
- lsrs r0, r1, 24
- movs r5, 0
- cmp r0, 0
- beq _0801B5DE
- subs r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- b _0801B5EA
-_0801B5DE:
- ldr r1, _0801B5FC @ =gBattleMoves
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x6]
-_0801B5EA:
- cmp r6, 0x40
- bls _0801B5F0
- b _0801B900
-_0801B5F0:
- lsls r0, r6, 2
- ldr r1, _0801B600 @ =_0801B604
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801B5FC: .4byte gBattleMoves
-_0801B600: .4byte _0801B604
- .align 2, 0
-_0801B604:
- .4byte _0801B708
- .4byte _0801B808
- .4byte _0801B8FC
- .4byte _0801B900
- .4byte _0801B820
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B8FC
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B900
- .4byte _0801B808
-_0801B708:
- ldr r0, _0801B7E8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801B7EC @ =gUnknown_02024C80
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0801B73A
- ldr r1, _0801B7F0 @ =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B73A
- b _0801B850
-_0801B73A:
- ldr r0, _0801B7E8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r7, 1
- mov r8, r0
-_0801B74A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0801B7F4 @ =gUnknown_02024A68
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0801B7E8 @ =gUnknown_02024C07
- ldrb r2, [r6]
- cmp r5, r2
- beq _0801B74A
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- beq _0801B74A
- ldr r0, _0801B7F8 @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r1, _0801B7FC @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _0801B74A
- ldr r0, _0801B800 @ =gBattleMoves
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xD
- beq _0801B798
- b _0801B900
-_0801B798:
- ldrb r1, [r6]
- str r2, [sp]
- movs r0, 0x10
- movs r2, 0x1F
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801B7AE
- b _0801B900
-_0801B7AE:
- ldr r2, _0801B7F0 @ =gBattleMons
- movs r1, 0x58
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1F
- bne _0801B7C2
- b _0801B900
-_0801B7C2:
- movs r4, 0x2
- eors r5, r4
- adds r0, r5, 0
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_81074C4
- ldr r1, _0801B804 @ =gUnknown_02024D68
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0]
- orrs r1, r4
- strb r1, [r0]
- b _0801B900
- .align 2, 0
-_0801B7E8: .4byte gUnknown_02024C07
-_0801B7EC: .4byte gUnknown_02024C80
-_0801B7F0: .4byte gBattleMons
-_0801B7F4: .4byte gUnknown_02024A68
-_0801B7F8: .4byte gUnknown_02024C0C
-_0801B7FC: .4byte gBitTable
-_0801B800: .4byte gBattleMoves
-_0801B804: .4byte gUnknown_02024D68
-_0801B808:
- ldr r0, _0801B81C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- b _0801B8B2
- .align 2, 0
-_0801B81C: .4byte gUnknown_02024C07
-_0801B820:
- ldr r0, _0801B854 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801B858 @ =gUnknown_02024C80
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r0, r1
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0801B860
- ldr r1, _0801B85C @ =gBattleMons
- ldrb r4, [r2, 0x9]
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801B860
-_0801B850:
- adds r5, r4, 0
- b _0801B900
- .align 2, 0
-_0801B854: .4byte gUnknown_02024C07
-_0801B858: .4byte gUnknown_02024C80
-_0801B85C: .4byte gBattleMons
-_0801B860:
- ldr r0, _0801B894 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0801B8DC
- movs r0, 0x4
- ands r6, r0
- cmp r6, 0
- beq _0801B8DC
- ldr r0, _0801B898 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801B8A0
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _0801B89C
- movs r0, 0x1
- b _0801B8B2
- .align 2, 0
-_0801B894: .4byte gUnknown_020239F8
-_0801B898: .4byte gUnknown_02024C07
-_0801B89C:
- movs r0, 0x3
- b _0801B8B2
-_0801B8A0:
- bl Random
- adds r1, r4, 0
- ands r1, r0
- cmp r1, 0
- beq _0801B8B0
- movs r0, 0
- b _0801B8B2
-_0801B8B0:
- movs r0, 0x2
-_0801B8B2:
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0801B8D4 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0801B8D8 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801B900
- movs r0, 0x2
- eors r5, r0
- b _0801B900
- .align 2, 0
-_0801B8D4: .4byte gUnknown_02024C0C
-_0801B8D8: .4byte gBitTable
-_0801B8DC:
- ldr r0, _0801B8F8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- b _0801B900
- .align 2, 0
-_0801B8F8: .4byte gUnknown_02024C07
-_0801B8FC:
- ldr r0, _0801B91C @ =gUnknown_02024C07
- ldrb r5, [r0]
-_0801B900:
- ldr r1, _0801B920 @ =0x02000000
- ldr r0, _0801B91C @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _0801B924 @ =0x00016010
- adds r0, r2
- adds r0, r1
- strb r5, [r0]
- adds r0, r5, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801B91C: .4byte gUnknown_02024C07
-_0801B920: .4byte 0x02000000
-_0801B924: .4byte 0x00016010
- thumb_func_end sub_801B5C0
-
- thumb_func_start sub_801B928
-sub_801B928: @ 801B928
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r0, _0801B9E0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0801B9DA
- ldr r7, _0801B9E4 @ =gUnknown_02024C07
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0801B9DA
- ldr r5, _0801B9E8 @ =gBattleMons
- ldrb r0, [r7]
- movs r1, 0x58
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r5, 0
- adds r0, 0x54
- adds r0, r1, r0
- ldr r0, [r0]
- adds r2, r5, 0
- adds r2, 0x3C
- adds r1, r2
- bl sub_8040AD0
- lsls r0, 24
- cmp r0, 0
- beq _0801B9DA
- ldr r0, _0801B9EC @ =0x0000080e
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0801B9DA
- movs r6, 0xA
- ldr r0, _0801B9F0 @ =0x00000808
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B98E
- movs r6, 0x1E
-_0801B98E:
- ldr r0, _0801B9F4 @ =0x0000080a
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B99C
- movs r6, 0x32
-_0801B99C:
- ldr r0, _0801B9F8 @ =0x0000080c
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0801B9AA
- movs r6, 0x46
-_0801B9AA:
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, r6
- bls _0801B9DA
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, r5
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r0, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _0801B9FC
-_0801B9DA:
- movs r0, 0
- b _0801BC24
- .align 2, 0
-_0801B9E0: .4byte gUnknown_020239F8
-_0801B9E4: .4byte gUnknown_02024C07
-_0801B9E8: .4byte gBattleMons
-_0801B9EC: .4byte 0x0000080e
-_0801B9F0: .4byte 0x00000808
-_0801B9F4: .4byte 0x0000080a
-_0801B9F8: .4byte 0x0000080c
-_0801B9FC:
- ldr r3, _0801BA3C @ =gUnknown_02024BE6
- ldrh r0, [r3]
- cmp r0, 0x63
- bne _0801BA12
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r2, _0801BA40 @ =0xff7fffff
- ands r1, r2
- str r1, [r0]
-_0801BA12:
- ldrb r0, [r7]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r1, r5, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801BA4C
- ldrh r0, [r3]
- cmp r0, 0xAD
- beq _0801BA34
- cmp r0, 0xD6
- bne _0801BA4C
-_0801BA34:
- ldr r1, _0801BA44 @ =gUnknown_02024C10
- ldr r0, _0801BA48 @ =gUnknown_081D995F
- b _0801BBCE
- .align 2, 0
-_0801BA3C: .4byte gUnknown_02024BE6
-_0801BA40: .4byte 0xff7fffff
-_0801BA44: .4byte gUnknown_02024C10
-_0801BA48: .4byte gUnknown_081D995F
-_0801BA4C:
- bl Random
- movs r5, 0xFF
- adds r1, r5, 0
- ands r1, r0
- ldr r7, _0801BB04 @ =gBattleMons
- ldr r2, _0801BB08 @ =gUnknown_02024C07
- mov r9, r2
- ldrb r3, [r2]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r3
- adds r0, r7
- adds r0, 0x2A
- ldrb r2, [r0]
- adds r0, r2, r6
- muls r0, r1
- asrs r4, r0, 8
- cmp r4, r6
- bge _0801BB3C
- ldr r7, _0801BB0C @ =gBitTable
- ldr r5, _0801BB10 @ =gUnknown_02024BE4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0]
- adds r0, r3, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bne _0801BA94
- b _0801BBBE
-_0801BA94:
- adds r6, r5, 0
- ldr r1, _0801BB14 @ =gUnknown_02024BE5
- mov r9, r1
- movs r2, 0x3
- mov r8, r2
-_0801BA9E:
- bl Random
- mov r1, r8
- ands r0, r1
- mov r2, r9
- strb r0, [r2]
- strb r0, [r6]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r7
- ldr r5, [r0]
- ands r5, r4
- cmp r5, 0
- bne _0801BA9E
- ldr r4, _0801BB18 @ =gUnknown_02024BEA
- ldr r3, _0801BB04 @ =gBattleMons
- ldr r0, _0801BB10 @ =gUnknown_02024BE4
- ldrb r0, [r0]
- lsls r0, 1
- ldr r1, _0801BB08 @ =gUnknown_02024C07
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r0, r1
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strh r0, [r4]
- ldr r0, _0801BB1C @ =gUnknown_02024D1E
- strb r5, [r0, 0x3]
- ldr r0, _0801BB20 @ =gUnknown_02024DEC
- movs r1, 0
- strh r5, [r0]
- ldr r0, _0801BB24 @ =0x02000000
- ldr r2, _0801BB28 @ =0x0001601c
- adds r0, r2
- strb r1, [r0]
- ldr r1, _0801BB2C @ =gUnknown_02024C10
- ldr r0, _0801BB30 @ =gUnknown_081D996F
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0801BB34 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r2, _0801BB38 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 14
- b _0801BC1E
- .align 2, 0
-_0801BB04: .4byte gBattleMons
-_0801BB08: .4byte gUnknown_02024C07
-_0801BB0C: .4byte gBitTable
-_0801BB10: .4byte gUnknown_02024BE4
-_0801BB14: .4byte gUnknown_02024BE5
-_0801BB18: .4byte gUnknown_02024BEA
-_0801BB1C: .4byte gUnknown_02024D1E
-_0801BB20: .4byte gUnknown_02024DEC
-_0801BB24: .4byte 0x02000000
-_0801BB28: .4byte 0x0001601c
-_0801BB2C: .4byte gUnknown_02024C10
-_0801BB30: .4byte gUnknown_081D996F
-_0801BB34: .4byte gUnknown_02024C08
-_0801BB38: .4byte gUnknown_02024C6C
-_0801BB3C:
- subs r0, r2, r6
- lsls r0, 24
- lsrs r6, r0, 24
- bl Random
- adds r4, r5, 0
- ands r4, r0
- cmp r4, r6
- bge _0801BBB8
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r7, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _0801BBB8
- adds r0, r1, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- beq _0801BBB8
- cmp r0, 0xF
- beq _0801BBB8
- movs r2, 0
- ldr r0, _0801BBAC @ =gUnknown_02024A68
- ldrb r3, [r0]
- mov r8, r0
- cmp r2, r3
- bge _0801BB9E
- ldr r0, [r7, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _0801BB9E
- adds r1, r7, 0
- adds r1, 0x50
- movs r5, 0x70
-_0801BB8E:
- adds r1, 0x58
- adds r2, 0x1
- cmp r2, r3
- bge _0801BB9E
- ldr r0, [r1]
- ands r0, r5
- cmp r0, 0
- beq _0801BB8E
-_0801BB9E:
- mov r0, r8
- ldrb r0, [r0]
- cmp r2, r0
- bne _0801BBB8
- ldr r1, _0801BBB0 @ =gUnknown_02024C10
- ldr r0, _0801BBB4 @ =gUnknown_081D9989
- b _0801BBCE
- .align 2, 0
-_0801BBAC: .4byte gUnknown_02024A68
-_0801BBB0: .4byte gUnknown_02024C10
-_0801BBB4: .4byte gUnknown_081D9989
-_0801BBB8:
- subs r4, r6
- cmp r4, r6
- blt _0801BBE0
-_0801BBBE:
- bl Random
- ldr r2, _0801BBD4 @ =gUnknown_02024D1E
- movs r1, 0x3
- ands r1, r0
- strb r1, [r2, 0x5]
- ldr r1, _0801BBD8 @ =gUnknown_02024C10
- ldr r0, _0801BBDC @ =gUnknown_081D9977
-_0801BBCE:
- str r0, [r1]
- movs r0, 0x1
- b _0801BC24
- .align 2, 0
-_0801BBD4: .4byte gUnknown_02024D1E
-_0801BBD8: .4byte gUnknown_02024C10
-_0801BBDC: .4byte gUnknown_081D9977
-_0801BBE0:
- ldr r4, _0801BC34 @ =gUnknown_02024C07
- ldrb r1, [r4]
- movs r0, 0x58
- muls r1, r0
- ldr r0, _0801BC38 @ =gBattleMons
- adds r1, r0
- movs r0, 0x28
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldrb r0, [r4]
- str r0, [sp, 0x8]
- ldrb r0, [r4]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- movs r2, 0x1
- movs r3, 0
- bl CalculateBaseDamage
- ldr r1, _0801BC3C @ =gUnknown_02024BEC
- str r0, [r1]
- ldr r1, _0801BC40 @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1]
- ldr r1, _0801BC44 @ =gUnknown_02024C10
- ldr r0, _0801BC48 @ =gUnknown_081D99A0
- str r0, [r1]
- ldr r2, _0801BC4C @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 12
-_0801BC1E:
- orrs r0, r1
- str r0, [r2]
- movs r0, 0x2
-_0801BC24:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801BC34: .4byte gUnknown_02024C07
-_0801BC38: .4byte gBattleMons
-_0801BC3C: .4byte gUnknown_02024BEC
-_0801BC40: .4byte gUnknown_02024C08
-_0801BC44: .4byte gUnknown_02024C10
-_0801BC48: .4byte gUnknown_081D99A0
-_0801BC4C: .4byte gUnknown_02024C6C
- thumb_func_end sub_801B928
-
- thumb_func_start atk00_attackcanceler
-atk00_attackcanceler: @ 801BC50
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r0, _0801BC6C @ =gUnknown_02024D26
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801BC74
- ldr r1, _0801BC70 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- b _0801BFF4
- .align 2, 0
-_0801BC6C: .4byte gUnknown_02024D26
-_0801BC70: .4byte gUnknown_02024A7F
-_0801BC74:
- ldr r2, _0801BCA4 @ =gBattleMons
- ldr r0, _0801BCA8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0801BCB8
- ldr r2, _0801BCAC @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801BCB8
- movs r0, 0x80
- lsls r0, 12
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801BCB0 @ =gUnknown_02024C10
- ldr r0, _0801BCB4 @ =BattleScript_1D6F62
- b _0801BFF2
- .align 2, 0
-_0801BCA4: .4byte gBattleMons
-_0801BCA8: .4byte gUnknown_02024C07
-_0801BCAC: .4byte gUnknown_02024C6C
-_0801BCB0: .4byte gUnknown_02024C10
-_0801BCB4: .4byte BattleScript_1D6F62
-_0801BCB8:
- bl sub_8017718
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BCC6
- b _0801BFF4
-_0801BCC6:
- ldr r0, _0801BD34 @ =gUnknown_02024C08
- ldrb r1, [r0]
- str r2, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _0801BCDE
- b _0801BFF4
-_0801BCDE:
- ldr r4, _0801BD38 @ =gBattleMons
- ldr r0, _0801BD3C @ =gUnknown_02024BE4
- ldrb r1, [r0]
- ldr r3, _0801BD40 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0x24
- adds r1, r0
- ldrb r0, [r1]
- ldr r5, _0801BD44 @ =gUnknown_02024C6C
- cmp r0, 0
- bne _0801BD5C
- ldr r0, _0801BD48 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801BD5C
- ldr r0, [r5]
- ldr r1, _0801BD4C @ =0x00800200
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BD5C
- ldr r1, _0801BD50 @ =gUnknown_02024C10
- ldr r0, _0801BD54 @ =gUnknown_081D936D
- str r0, [r1]
- ldr r2, _0801BD58 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- b _0801BFF4
- .align 2, 0
-_0801BD34: .4byte gUnknown_02024C08
-_0801BD38: .4byte gBattleMons
-_0801BD3C: .4byte gUnknown_02024BE4
-_0801BD40: .4byte gUnknown_02024C07
-_0801BD44: .4byte gUnknown_02024C6C
-_0801BD48: .4byte gUnknown_02024BE6
-_0801BD4C: .4byte 0x00800200
-_0801BD50: .4byte gUnknown_02024C10
-_0801BD54: .4byte gUnknown_081D936D
-_0801BD58: .4byte gUnknown_02024C68
-_0801BD5C:
- ldr r0, [r5]
- ldr r1, _0801BDA0 @ =0xff7fffff
- ands r0, r1
- str r0, [r5]
- movs r6, 0x80
- lsls r6, 18
- ands r0, r6
- cmp r0, 0
- bne _0801BDB4
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r4, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _0801BDB4
- bl sub_801B928
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0801BDB4
- cmp r2, 0x2
- bne _0801BDA4
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- b _0801BFF4
- .align 2, 0
-_0801BDA0: .4byte 0xff7fffff
-_0801BDA4:
- ldr r0, _0801BDB0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801BFF4
- .align 2, 0
-_0801BDB0: .4byte gUnknown_02024C68
-_0801BDB4:
- ldr r2, _0801BE18 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801BE1C @ =gUnknown_02024D28
- ldr r1, _0801BE20 @ =gUnknown_02024C08
- ldrb r3, [r1]
- lsls r0, r3, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 27
- mov r8, r1
- mov r9, r2
- cmp r0, 0
- bge _0801BE3C
- ldr r2, _0801BE24 @ =gBattleMoves
- ldr r0, _0801BE28 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801BE3C
- ldr r0, _0801BE2C @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _0801BE30 @ =0x00000115
- adds r1, r3, 0
- bl sub_80151D4
- mov r0, r8
- ldrb r1, [r0]
- lsls r1, 4
- add r1, r9
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BE34 @ =gUnknown_02024C10
- ldr r0, _0801BE38 @ =gUnknown_081D946F
- b _0801BFF2
- .align 2, 0
-_0801BE18: .4byte gUnknown_02024C6C
-_0801BE1C: .4byte gUnknown_02024D28
-_0801BE20: .4byte gUnknown_02024C08
-_0801BE24: .4byte gBattleMoves
-_0801BE28: .4byte gUnknown_02024BE6
-_0801BE2C: .4byte gUnknown_02024C07
-_0801BE30: .4byte 0x00000115
-_0801BE34: .4byte gUnknown_02024C10
-_0801BE38: .4byte gUnknown_081D946F
-_0801BE3C:
- movs r2, 0
- ldr r0, _0801BEB8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r2, r0
- bge _0801BE7E
- ldr r6, _0801BEBC @ =gUnknown_02024D28
- ldr r1, _0801BEC0 @ =gBattleMoves
- mov r12, r1
- adds r5, r0, 0
- ldr r7, _0801BEC4 @ =gUnknown_02024A7A
-_0801BE50:
- adds r4, r2, r7
- ldrb r3, [r4]
- lsls r0, r3, 4
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0801BE78
- ldr r0, _0801BEC8 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r1, [r0, 0x8]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801BE78
- b _0801BFA4
-_0801BE78:
- adds r2, 0x1
- cmp r2, r5
- blt _0801BE50
-_0801BE7E:
- ldr r0, _0801BECC @ =gUnknown_02024D68
- mov r1, r8
- ldrb r2, [r1]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r3, [r1]
- lsls r0, r3, 30
- cmp r0, 0
- bge _0801BEDC
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- strb r0, [r1]
- ldr r4, _0801BED0 @ =byte_2024C06
- movs r0, 0x1F
- strb r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BED4 @ =gUnknown_02024C10
- ldr r0, _0801BED8 @ =gUnknown_081D9812
- str r0, [r1]
- mov r2, r8
- ldrb r0, [r2]
- ldrb r1, [r4]
- bl sub_81074C4
- b _0801BFF4
- .align 2, 0
-_0801BEB8: .4byte gUnknown_02024A68
-_0801BEBC: .4byte gUnknown_02024D28
-_0801BEC0: .4byte gBattleMoves
-_0801BEC4: .4byte gUnknown_02024A7A
-_0801BEC8: .4byte gUnknown_02024BE6
-_0801BECC: .4byte gUnknown_02024D68
-_0801BED0: .4byte byte_2024C06
-_0801BED4: .4byte gUnknown_02024C10
-_0801BED8: .4byte gUnknown_081D9812
-_0801BEDC:
- lsls r0, r2, 4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0801BEEA
- b _0801BFEC
-_0801BEEA:
- ldr r1, _0801BF80 @ =gBattleMoves
- ldr r2, _0801BF84 @ =gUnknown_02024BE6
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- adds r4, r2, 0
- cmp r0, 0
- beq _0801BFEC
- cmp r3, 0xAE
- bne _0801BF28
- ldr r2, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0801BF28
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0801BFEC
-_0801BF28:
- ldrh r0, [r4]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0801BF4E
- ldr r1, _0801BF88 @ =gBattleMons
- ldr r0, _0801BF8C @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _0801BFEC
-_0801BF4E:
- ldr r0, _0801BF8C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl b_cancel_multi_turn_move_maybe
- ldr r2, _0801BF90 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801BF94 @ =gUnknown_02024C3C
- ldr r3, _0801BF98 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801BF9C @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801BFA0 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801BFEC
- .align 2, 0
-_0801BF80: .4byte gBattleMoves
-_0801BF84: .4byte gUnknown_02024BE6
-_0801BF88: .4byte gBattleMons
-_0801BF8C: .4byte gUnknown_02024C07
-_0801BF90: .4byte gUnknown_02024C68
-_0801BF94: .4byte gUnknown_02024C3C
-_0801BF98: .4byte gUnknown_02024C08
-_0801BF9C: .4byte gUnknown_02024C44
-_0801BFA0: .4byte gUnknown_02024D1E
-_0801BFA4:
- ldr r0, _0801BFD4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _0801BFD8 @ =0x00000121
- adds r1, r3, 0
- bl sub_80151D4
- ldrb r1, [r4]
- lsls r1, 4
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, _0801BFDC @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _0801BFE0 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801BFE4 @ =gUnknown_02024C10
- ldr r0, _0801BFE8 @ =gUnknown_081D9487
- b _0801BFF2
- .align 2, 0
-_0801BFD4: .4byte gUnknown_02024C07
-_0801BFD8: .4byte 0x00000121
-_0801BFDC: .4byte 0x02000000
-_0801BFE0: .4byte 0x00016003
-_0801BFE4: .4byte gUnknown_02024C10
-_0801BFE8: .4byte gUnknown_081D9487
-_0801BFEC:
- ldr r1, _0801C004 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
-_0801BFF2:
- str r0, [r1]
-_0801BFF4:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C004: .4byte gUnknown_02024C10
- thumb_func_end atk00_attackcanceler
-
- thumb_func_start mcmd_jump_if_move_not_executed
-mcmd_jump_if_move_not_executed: @ 801C008
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r1, _0801C054 @ =gUnknown_02024C10
- ldr r5, [r1]
- adds r4, r5, r0
- ldr r0, _0801C058 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801C068
- ldr r1, _0801C05C @ =gUnknown_02024C3C
- ldr r3, _0801C060 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801C064 @ =gUnknown_02024C44
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldrb r4, [r5, 0x1]
- ldrb r0, [r5, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r5, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r5, 0x4]
- lsls r0, 24
- orrs r4, r0
- b _0801C082
- .align 2, 0
-_0801C054: .4byte gUnknown_02024C10
-_0801C058: .4byte gUnknown_02024C68
-_0801C05C: .4byte gUnknown_02024C3C
-_0801C060: .4byte gUnknown_02024C08
-_0801C064: .4byte gUnknown_02024C44
-_0801C068:
- bl b_feature_update_destiny_bond
- ldr r0, _0801C090 @ =gUnknown_02024C08
- ldrb r1, [r0]
- str r6, [sp]
- movs r0, 0x3
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C086
-_0801C082:
- ldr r0, _0801C094 @ =gUnknown_02024C10
- str r4, [r0]
-_0801C086:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C090: .4byte gUnknown_02024C08
-_0801C094: .4byte gUnknown_02024C10
- thumb_func_end mcmd_jump_if_move_not_executed
-
- thumb_func_start atk40_801DBA0
-atk40_801DBA0: @ 801C098
- push {lr}
- ldr r1, _0801C0E0 @ =gUnknown_02024D28
- ldr r0, _0801C0E4 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0E8 @ =gBattleMoves
- ldr r0, _0801C0EC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C0F8
- ldr r2, _0801C0F0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5
- movs r1, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C0F4 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x6]
- b _0801C100
- .align 2, 0
-_0801C0E0: .4byte gUnknown_02024D28
-_0801C0E4: .4byte gUnknown_02024C08
-_0801C0E8: .4byte gBattleMoves
-_0801C0EC: .4byte gUnknown_02024BE6
-_0801C0F0: .4byte gUnknown_02024C68
-_0801C0F4: .4byte gUnknown_02024D1E
-_0801C0F8:
- ldr r1, _0801C104 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0801C100:
- pop {r0}
- bx r0
- .align 2, 0
-_0801C104: .4byte gUnknown_02024C10
- thumb_func_end atk40_801DBA0
-
- thumb_func_start sub_801C108
-sub_801C108: @ 801C108
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r4, 0
- ldr r1, _0801C15C @ =gUnknown_02024D28
- ldr r0, _0801C160 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C164 @ =gBattleMoves
- ldr r0, _0801C168 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x8]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801C154
- ldr r2, _0801C16C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x7
- adds r1, r3, 0
- bl mcmd_jump_if_move_not_executed
- ldr r1, _0801C170 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x6]
- movs r4, 0x1
-_0801C154:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801C15C: .4byte gUnknown_02024D28
-_0801C160: .4byte gUnknown_02024C08
-_0801C164: .4byte gBattleMoves
-_0801C168: .4byte gUnknown_02024BE6
-_0801C16C: .4byte gUnknown_02024C68
-_0801C170: .4byte gUnknown_02024D1E
- thumb_func_end sub_801C108
-
- thumb_func_start sub_801C174
-sub_801C174: @ 801C174
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _0801C1D4 @ =gUnknown_02024C98
- ldr r3, _0801C1D8 @ =gUnknown_02024C08
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- adds r6, r2, 0
- cmp r1, 0
- beq _0801C1A6
- ldr r1, _0801C1DC @ =gUnknown_02024CA8
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C1E0 @ =gUnknown_02024C07
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0801C290
-_0801C1A6:
- ldr r0, _0801C1E4 @ =gUnknown_02024C6C
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 9
- ands r1, r2
- adds r2, r0, 0
- cmp r1, 0
- bne _0801C1EC
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801C1EC
-_0801C1C6:
- ldr r0, _0801C1E8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _0801C290
- .align 2, 0
-_0801C1D4: .4byte gUnknown_02024C98
-_0801C1D8: .4byte gUnknown_02024C08
-_0801C1DC: .4byte gUnknown_02024CA8
-_0801C1E0: .4byte gUnknown_02024C07
-_0801C1E4: .4byte gUnknown_02024C6C
-_0801C1E8: .4byte gUnknown_02024C68
-_0801C1EC:
- ldr r0, [r2]
- ldr r1, _0801C29C @ =0xfffeffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 10
- ands r0, r1
- cmp r0, 0
- bne _0801C20E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C20E:
- ldr r0, [r2]
- ldr r1, _0801C2A0 @ =0xfffdffff
- ands r0, r1
- str r0, [r2]
- movs r1, 0x80
- lsls r1, 11
- ands r0, r1
- cmp r0, 0
- bne _0801C22E
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _0801C1C6
-_0801C22E:
- ldr r0, [r2]
- ldr r1, _0801C2A4 @ =0xfffbffff
- ands r0, r1
- str r0, [r2]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r5, 1
- cmp r0, 0
- bne _0801C27E
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C27E
- ldr r0, _0801C2A8 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801C27E
- ldr r0, _0801C2AC @ =gBattleMoves
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x98
- beq _0801C290
-_0801C27E:
- ldr r1, _0801C2AC @ =gBattleMoves
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801C290
- cmp r0, 0x4E
- bne _0801C2B0
-_0801C290:
- movs r0, 0x7
- adds r1, r5, 0
- bl mcmd_jump_if_move_not_executed
- movs r0, 0x1
- b _0801C2B2
- .align 2, 0
-_0801C29C: .4byte 0xfffeffff
-_0801C2A0: .4byte 0xfffdffff
-_0801C2A4: .4byte 0xfffbffff
-_0801C2A8: .4byte word_2024DB8
-_0801C2AC: .4byte gBattleMoves
-_0801C2B0:
- movs r0, 0
-_0801C2B2:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_801C174
-
- thumb_func_start atk01_accuracycheck
-atk01_accuracycheck: @ 801C2BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0801C314 @ =gUnknown_02024C10
- ldr r5, [r0]
- ldrb r6, [r5, 0x5]
- ldrb r1, [r5, 0x6]
- lsls r1, 8
- orrs r6, r1
- adds r1, r6, 0x2
- lsls r1, 16
- lsrs r1, 16
- adds r7, r0, 0
- cmp r1, 0x1
- bhi _0801C378
- ldr r2, _0801C318 @ =gUnknown_02024C98
- ldr r3, _0801C31C @ =gUnknown_02024C08
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x18
- ands r1, r0
- cmp r1, 0
- beq _0801C32C
- ldr r0, _0801C320 @ =0x0000ffff
- cmp r6, r0
- bne _0801C32C
- ldr r1, _0801C324 @ =gUnknown_02024CA8
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- adds r0, r1
- ldr r1, _0801C328 @ =gUnknown_02024C07
- ldrb r0, [r0, 0x15]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0801C32C
- adds r0, r5, 0x7
- str r0, [r7]
- b _0801C632
- .align 2, 0
-_0801C314: .4byte gUnknown_02024C10
-_0801C318: .4byte gUnknown_02024C98
-_0801C31C: .4byte gUnknown_02024C08
-_0801C320: .4byte 0x0000ffff
-_0801C324: .4byte gUnknown_02024CA8
-_0801C328: .4byte gUnknown_02024C07
-_0801C32C:
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ldr r1, _0801C358 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _0801C35C
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 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, [r7]
- b _0801C632
- .align 2, 0
-_0801C358: .4byte 0x000400c0
-_0801C35C:
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C36A
- b _0801C632
-_0801C36A:
- ldr r1, _0801C374 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
- b _0801C632
- .align 2, 0
-_0801C374: .4byte gUnknown_02024C10
-_0801C378:
- cmp r6, 0
- bne _0801C380
- ldr r0, _0801C398 @ =gUnknown_02024BE6
- ldrh r6, [r0]
-_0801C380:
- ldr r0, _0801C39C @ =0x02000000
- ldr r1, _0801C3A0 @ =0x0001601c
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801C3A4
- movs r2, 0x3F
- mov r10, r2
- mov r3, r10
- ands r3, r0
- mov r10, r3
- b _0801C3B2
- .align 2, 0
-_0801C398: .4byte gUnknown_02024BE6
-_0801C39C: .4byte 0x02000000
-_0801C3A0: .4byte 0x0001601c
-_0801C3A4:
- ldr r1, _0801C3F8 @ =gBattleMoves
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- mov r10, r0
-_0801C3B2:
- adds r0, r6, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _0801C3C0
- b _0801C632
-_0801C3C0:
- adds r0, r6, 0
- bl sub_801C174
- lsls r0, 24
- cmp r0, 0
- beq _0801C3CE
- b _0801C632
-_0801C3CE:
- ldr r3, _0801C3FC @ =gBattleMons
- ldr r0, _0801C400 @ =gUnknown_02024C08
- ldrb r0, [r0]
- movs r2, 0x58
- adds r4, r0, 0
- muls r4, r2
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801C408
- ldr r0, _0801C404 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r5, [r0, 0x1E]
- b _0801C41E
- .align 2, 0
-_0801C3F8: .4byte gBattleMoves
-_0801C3FC: .4byte gBattleMons
-_0801C400: .4byte gUnknown_02024C08
-_0801C404: .4byte gUnknown_02024C07
-_0801C408:
- ldr r0, _0801C56C @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- ldrb r0, [r0, 0x1E]
- adds r0, 0x6
- adds r1, r4, r3
- ldrb r1, [r1, 0x1F]
- subs r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801C41E:
- lsls r0, r5, 24
- cmp r0, 0
- bge _0801C426
- movs r5, 0
-_0801C426:
- lsls r0, r5, 24
- asrs r0, 24
- cmp r0, 0xC
- ble _0801C430
- movs r5, 0xC
-_0801C430:
- ldr r1, _0801C570 @ =gBattleMoves
- lsls r4, r6, 1
- adds r0, r4, r6
- lsls r0, 2
- adds r7, r0, r1
- ldrb r0, [r7, 0x3]
- mov r8, r0
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- str r4, [sp, 0x4]
- cmp r0, 0
- bne _0801C482
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C482
- ldr r0, _0801C574 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801C482
- ldrb r0, [r7]
- cmp r0, 0x98
- bne _0801C482
- movs r1, 0x32
- mov r8, r1
-_0801C482:
- ldr r1, _0801C578 @ =gAccuracyStageRatios
- lsls r0, r5, 24
- asrs r0, 22
- adds r0, r1
- ldrb r1, [r0]
- mov r4, r8
- muls r4, r1
- ldrb r1, [r0, 0x1]
- adds r0, r4, 0
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r7, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0xE
- bne _0801C4C0
- lsls r0, r4, 6
- adds r0, r4
- lsls r0, 1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C4C0:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801C518
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801C518
- ldr r0, _0801C580 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r5
- adds r0, r7
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _0801C518
- ldr r0, _0801C574 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0801C518
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C518:
- ldr r2, _0801C57C @ =gBattleMons
- ldr r0, _0801C56C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r9, r2
- cmp r0, 0x37
- bne _0801C544
- mov r2, r10
- cmp r2, 0x8
- bhi _0801C544
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C544:
- ldr r3, _0801C580 @ =gUnknown_02024C08
- mov r8, r3
- ldrb r2, [r3]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- mov r3, r9
- adds r1, r0, r3
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801C588
- ldr r1, _0801C584 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x7]
- ldrb r2, [r0, 0x1A]
- b _0801C5A4
- .align 2, 0
-_0801C56C: .4byte gUnknown_02024C07
-_0801C570: .4byte gBattleMoves
-_0801C574: .4byte word_2024DB8
-_0801C578: .4byte gAccuracyStageRatios
-_0801C57C: .4byte gBattleMons
-_0801C580: .4byte gUnknown_02024C08
-_0801C584: .4byte gEnigmaBerries
-_0801C588:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r2, r0, 24
-_0801C5A4:
- ldr r0, _0801C608 @ =gUnknown_02024C0B
- ldr r1, _0801C60C @ =gUnknown_02024C08
- ldrb r1, [r1]
- strb r1, [r0]
- cmp r5, 0x16
- bne _0801C5C0
- movs r0, 0x64
- subs r0, r2
- muls r0, r4
- movs r1, 0x64
- bl __divsi3
- lsls r0, 16
- lsrs r4, r0, 16
-_0801C5C0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- ble _0801C62A
- ldr r2, _0801C610 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0801C614 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801C620
- ldr r1, _0801C618 @ =gBattleMoves
- ldr r2, [sp, 0x4]
- adds r0, r2, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x8
- beq _0801C602
- cmp r0, 0x20
- bne _0801C620
-_0801C602:
- ldr r1, _0801C61C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _0801C624
- .align 2, 0
-_0801C608: .4byte gUnknown_02024C0B
-_0801C60C: .4byte gUnknown_02024C08
-_0801C610: .4byte gUnknown_02024C68
-_0801C614: .4byte gUnknown_020239F8
-_0801C618: .4byte gBattleMoves
-_0801C61C: .4byte gUnknown_02024D1E
-_0801C620:
- ldr r1, _0801C644 @ =gUnknown_02024D1E
- movs r0, 0
-_0801C624:
- strb r0, [r1, 0x6]
- bl b_wonderguard_and_levitate
-_0801C62A:
- movs r0, 0x7
- adds r1, r6, 0
- bl mcmd_jump_if_move_not_executed
-_0801C632:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C644: .4byte gUnknown_02024D1E
- thumb_func_end atk01_accuracycheck
-
- thumb_func_start atk02_attackstring
-atk02_attackstring: @ 801C648
- push {r4,r5,lr}
- ldr r0, _0801C688 @ =gUnknown_02024A64
- ldr r5, [r0]
- cmp r5, 0
- bne _0801C680
- ldr r4, _0801C68C @ =gUnknown_02024C6C
- ldr r0, [r4]
- movs r1, 0xC0
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- bne _0801C674
- ldr r0, _0801C690 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x4
- bl b_std_message
- ldr r0, [r4]
- movs r1, 0x80
- lsls r1, 3
- orrs r0, r1
- str r0, [r4]
-_0801C674:
- ldr r0, _0801C694 @ =gUnknown_02024C10
- ldr r1, [r0]
- adds r1, 0x1
- str r1, [r0]
- ldr r0, _0801C698 @ =gUnknown_02024D1E
- strb r5, [r0, 0x7]
-_0801C680:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C688: .4byte gUnknown_02024A64
-_0801C68C: .4byte gUnknown_02024C6C
-_0801C690: .4byte gUnknown_02024C07
-_0801C694: .4byte gUnknown_02024C10
-_0801C698: .4byte gUnknown_02024D1E
- thumb_func_end atk02_attackstring
-
- thumb_func_start atk03_ppreduce
-atk03_ppreduce: @ 801C69C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r6, 0x1
- ldr r0, _0801C6EC @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801C6B4
- b _0801C84E
-_0801C6B4:
- ldr r1, _0801C6F0 @ =gUnknown_02024D68
- ldr r2, _0801C6F4 @ =gUnknown_02024C07
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r4, r0, 31
- mov r9, r2
- cmp r4, 0
- bne _0801C756
- ldr r2, _0801C6F8 @ =gBattleMoves
- ldr r0, _0801C6FC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x6]
- cmp r0, 0x20
- beq _0801C706
- cmp r0, 0x20
- bgt _0801C700
- cmp r0, 0x8
- beq _0801C71C
- b _0801C736
- .align 2, 0
-_0801C6EC: .4byte gUnknown_02024A64
-_0801C6F0: .4byte gUnknown_02024D68
-_0801C6F4: .4byte gUnknown_02024C07
-_0801C6F8: .4byte gBattleMoves
-_0801C6FC: .4byte gUnknown_02024BE6
-_0801C700:
- cmp r0, 0x40
- beq _0801C71C
- b _0801C736
-_0801C706:
- str r4, [sp]
- movs r0, 0x12
- adds r1, r3, 0
- movs r2, 0x2E
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0x1
- b _0801C756
-_0801C71C:
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0x2E
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0
- b _0801C756
-_0801C736:
- ldr r1, _0801C7B8 @ =gUnknown_02024C08
- mov r2, r9
- ldrb r0, [r2]
- ldrb r7, [r1]
- cmp r0, r7
- beq _0801C756
- ldr r2, _0801C7BC @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2E
- bne _0801C756
- adds r6, 0x1
-_0801C756:
- ldr r0, _0801C7C0 @ =gUnknown_02024C6C
- ldr r4, [r0]
- movs r0, 0xA0
- lsls r0, 4
- ands r4, r0
- cmp r4, 0
- bne _0801C83C
- ldr r2, _0801C7BC @ =gBattleMons
- ldr r3, _0801C7C4 @ =gUnknown_02024BE4
- ldr r1, _0801C7C8 @ =gUnknown_02024C07
- ldrb r5, [r1]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r5
- ldrb r7, [r3]
- adds r0, r7
- movs r7, 0x24
- adds r7, r2
- mov r12, r7
- add r0, r12
- ldrb r0, [r0]
- mov r9, r1
- mov r10, r2
- adds r7, r3, 0
- cmp r0, 0
- beq _0801C83C
- ldr r0, _0801C7CC @ =gUnknown_02024D28
- lsls r1, r5, 4
- adds r1, r0
- ldrb r0, [r1, 0x2]
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x2]
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldrb r1, [r7]
- adds r0, r1
- mov r1, r12
- adds r2, r0, r1
- ldrb r0, [r2]
- cmp r0, r6
- ble _0801C7D0
- subs r0, r6
- strb r0, [r2]
- b _0801C7D2
- .align 2, 0
-_0801C7B8: .4byte gUnknown_02024C08
-_0801C7BC: .4byte gBattleMons
-_0801C7C0: .4byte gUnknown_02024C6C
-_0801C7C4: .4byte gUnknown_02024BE4
-_0801C7C8: .4byte gUnknown_02024C07
-_0801C7CC: .4byte gUnknown_02024D28
-_0801C7D0:
- strb r4, [r2]
-_0801C7D2:
- mov r2, r9
- ldrb r3, [r2]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _0801C83C
- ldr r1, _0801C860 @ =gUnknown_02024CA8
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _0801C864 @ =gBitTable
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0801C83C
- ldr r0, _0801C868 @ =gUnknown_02024A60
- strb r3, [r0]
- ldrb r1, [r7]
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- mov r2, r10
- adds r2, 0x24
- adds r0, r2
- ldrb r7, [r7]
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- mov r7, r9
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801C83C:
- ldr r2, _0801C86C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0801C870 @ =0xfffff7ff
- ands r0, r1
- str r0, [r2]
- ldr r1, _0801C874 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801C84E:
- 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
-_0801C860: .4byte gUnknown_02024CA8
-_0801C864: .4byte gBitTable
-_0801C868: .4byte gUnknown_02024A60
-_0801C86C: .4byte gUnknown_02024C6C
-_0801C870: .4byte 0xfffff7ff
-_0801C874: .4byte gUnknown_02024C10
- thumb_func_end atk03_ppreduce
-
- thumb_func_start atk04_critcalc
-atk04_critcalc: @ 801C878
- push {r4-r7,lr}
- ldr r1, _0801C89C @ =gBattleMons
- ldr r0, _0801C8A0 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- cmp r0, 0xAF
- bne _0801C8A8
- ldr r1, _0801C8A4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r6, [r0, 0x7]
- b _0801C8B0
- .align 2, 0
-_0801C89C: .4byte gBattleMons
-_0801C8A0: .4byte gUnknown_02024C07
-_0801C8A4: .4byte gEnigmaBerries
-_0801C8A8:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r6, r0, 24
-_0801C8B0:
- ldr r1, _0801C93C @ =gUnknown_02024C0B
- ldr r3, _0801C940 @ =gUnknown_02024C07
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r4, _0801C944 @ =gBattleMons
- ldrb r1, [r3]
- movs r0, 0x58
- adds r7, r1, 0
- muls r7, r0
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r7, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- negs r0, r0
- asrs r5, r0, 31
- movs r0, 0x2
- ands r5, r0
- ldr r2, _0801C948 @ =gBattleMoves
- ldr r0, _0801C94C @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- mov r12, r3
- cmp r1, 0x2B
- bne _0801C8F0
- adds r5, 0x1
-_0801C8F0:
- adds r0, r5, 0
- cmp r1, 0x4B
- bne _0801C8F8
- adds r0, 0x1
-_0801C8F8:
- cmp r1, 0xC8
- bne _0801C8FE
- adds r0, 0x1
-_0801C8FE:
- adds r2, r0, 0
- cmp r1, 0xD1
- bne _0801C906
- adds r2, 0x1
-_0801C906:
- movs r1, 0
- cmp r6, 0x3F
- bne _0801C916
- adds r0, r7, r4
- ldrh r0, [r0]
- cmp r0, 0x71
- bne _0801C916
- movs r1, 0x1
-_0801C916:
- lsls r5, r1, 1
- movs r3, 0
- cmp r6, 0x42
- bne _0801C930
- mov r0, r12
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, 0x53
- bne _0801C930
- movs r3, 0x1
-_0801C930:
- lsls r1, r3, 1
- cmp r6, 0x29
- bne _0801C950
- adds r0, r5, 0x1
- adds r0, r2, r0
- b _0801C952
- .align 2, 0
-_0801C93C: .4byte gUnknown_02024C0B
-_0801C940: .4byte gUnknown_02024C07
-_0801C944: .4byte gBattleMons
-_0801C948: .4byte gBattleMoves
-_0801C94C: .4byte gUnknown_02024BE6
-_0801C950:
- adds r0, r2, r5
-_0801C952:
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0, 0
- cmp r5, 0x4
- bls _0801C960
- movs r5, 0x4
-_0801C960:
- ldr r0, _0801C9BC @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x4
- beq _0801C9D0
- cmp r4, 0x4B
- beq _0801C9D0
- ldr r1, _0801C9C0 @ =gUnknown_02024C98
- mov r2, r12
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- ldr r0, _0801C9C4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x84
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _0801C9D0
- bl Random
- ldr r2, _0801C9C8 @ =gCriticalHitChance
- lsls r1, r5, 1
- adds r1, r2
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r1]
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0801C9D0
- ldr r1, _0801C9CC @ =gCritMultiplier
- movs r0, 0x2
- b _0801C9D4
- .align 2, 0
-_0801C9BC: .4byte gUnknown_02024C08
-_0801C9C0: .4byte gUnknown_02024C98
-_0801C9C4: .4byte gUnknown_020239F8
-_0801C9C8: .4byte gCriticalHitChance
-_0801C9CC: .4byte gCritMultiplier
-_0801C9D0:
- ldr r1, _0801C9E4 @ =gCritMultiplier
- movs r0, 0x1
-_0801C9D4:
- strb r0, [r1]
- ldr r1, _0801C9E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801C9E4: .4byte gCritMultiplier
-_0801C9E8: .4byte gUnknown_02024C10
- thumb_func_end atk04_critcalc
-
- thumb_func_start atk05_damagecalc1
-atk05_damagecalc1: @ 801C9EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r4, _0801CABC @ =gUnknown_02024C7A
- ldr r6, _0801CAC0 @ =gUnknown_02024C08
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldr r0, _0801CAC4 @ =gUnknown_02024C07
- mov r8, r0
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _0801CAC8 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r6]
- muls r1, r4
- adds r1, r2
- ldr r2, _0801CACC @ =gUnknown_02024BE6
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CAD0 @ =gUnknown_02024DEC
- ldrh r4, [r4]
- str r4, [sp]
- ldr r5, _0801CAD4 @ =0x02000000
- ldr r7, _0801CAD8 @ =0x0001601c
- adds r4, r5, r7
- ldrb r4, [r4]
- str r4, [sp, 0x4]
- mov r7, r8
- ldrb r4, [r7]
- str r4, [sp, 0x8]
- ldrb r4, [r6]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CADC @ =gUnknown_02024BEC
- ldr r1, _0801CAE0 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CAE4 @ =0x0001601f
- adds r5, r0
- ldrb r0, [r5]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CAE8 @ =gUnknown_02024C98
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CA82
- ldr r2, _0801CAEC @ =gBattleMoves
- mov r7, r9
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CA82
- lsls r0, r3, 1
- str r0, [r4]
-_0801CA82:
- ldr r1, _0801CAF0 @ =gUnknown_02024D28
- ldr r0, _0801CAC4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _0801CAA4
- ldr r4, _0801CADC @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CAA4:
- ldr r1, _0801CAF4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CABC: .4byte gUnknown_02024C7A
-_0801CAC0: .4byte gUnknown_02024C08
-_0801CAC4: .4byte gUnknown_02024C07
-_0801CAC8: .4byte gBattleMons
-_0801CACC: .4byte gUnknown_02024BE6
-_0801CAD0: .4byte gUnknown_02024DEC
-_0801CAD4: .4byte 0x02000000
-_0801CAD8: .4byte 0x0001601c
-_0801CADC: .4byte gUnknown_02024BEC
-_0801CAE0: .4byte gCritMultiplier
-_0801CAE4: .4byte 0x0001601f
-_0801CAE8: .4byte gUnknown_02024C98
-_0801CAEC: .4byte gBattleMoves
-_0801CAF0: .4byte gUnknown_02024D28
-_0801CAF4: .4byte gUnknown_02024C10
- thumb_func_end atk05_damagecalc1
-
- thumb_func_start sub_801CAF8
-sub_801CAF8: @ 801CAF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0801CBBC @ =gUnknown_02024C7A
- adds r0, r5, 0
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- movs r1, 0x58
- adds r0, r7, 0
- muls r0, r1
- ldr r2, _0801CBC0 @ =gBattleMons
- adds r0, r2
- muls r1, r5
- adds r1, r2
- ldr r2, _0801CBC4 @ =gUnknown_02024BE6
- mov r9, r2
- ldrh r2, [r2]
- ldr r4, _0801CBC8 @ =gUnknown_02024DEC
- mov r8, r4
- ldrh r4, [r4]
- str r4, [sp]
- ldr r6, _0801CBCC @ =0x02000000
- ldr r4, _0801CBD0 @ =0x0001601c
- ldrb r4, [r4, r6]
- str r4, [sp, 0x4]
- str r7, [sp, 0x8]
- str r5, [sp, 0xC]
- bl CalculateBaseDamage
- ldr r4, _0801CBD4 @ =gUnknown_02024BEC
- movs r1, 0
- mov r2, r8
- strh r1, [r2]
- ldr r1, _0801CBD8 @ =gCritMultiplier
- ldrb r1, [r1]
- muls r1, r0
- ldr r0, _0801CBDC @ =0x0001601f
- adds r6, r0
- ldrb r0, [r6]
- adds r3, r1, 0
- muls r3, r0
- str r3, [r4]
- ldr r1, _0801CBE0 @ =gUnknown_02024C98
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 2
- ands r0, r1
- cmp r0, 0
- beq _0801CB8E
- ldr r2, _0801CBE4 @ =gBattleMoves
- mov r6, r9
- ldrh r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- cmp r0, 0xD
- bne _0801CB8E
- lsls r0, r3, 1
- str r0, [r4]
-_0801CB8E:
- ldr r0, _0801CBE8 @ =gUnknown_02024D28
- lsls r1, r7, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 28
- cmp r0, 0
- bge _0801CBAC
- ldr r4, _0801CBD4 @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801CBAC:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CBBC: .4byte gUnknown_02024C7A
-_0801CBC0: .4byte gBattleMons
-_0801CBC4: .4byte gUnknown_02024BE6
-_0801CBC8: .4byte gUnknown_02024DEC
-_0801CBCC: .4byte 0x02000000
-_0801CBD0: .4byte 0x0001601c
-_0801CBD4: .4byte gUnknown_02024BEC
-_0801CBD8: .4byte gCritMultiplier
-_0801CBDC: .4byte 0x0001601f
-_0801CBE0: .4byte gUnknown_02024C98
-_0801CBE4: .4byte gBattleMoves
-_0801CBE8: .4byte gUnknown_02024D28
- thumb_func_end sub_801CAF8
-
- thumb_func_start battle_attack_damage_modulate_by_effectivity
-battle_attack_damage_modulate_by_effectivity: @ 801CBEC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _0801CC1C @ =gUnknown_02024BEC
- ldr r0, [r5]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _0801CC0C
- cmp r4, 0
- beq _0801CC0C
- movs r0, 0x1
- str r0, [r5]
-_0801CC0C:
- cmp r4, 0x5
- beq _0801CC3C
- cmp r4, 0x5
- bgt _0801CC20
- cmp r4, 0
- beq _0801CC26
- b _0801CCBE
- .align 2, 0
-_0801CC1C: .4byte gUnknown_02024BEC
-_0801CC20:
- cmp r4, 0x14
- beq _0801CC7C
- b _0801CCBE
-_0801CC26:
- ldr r2, _0801CC38 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC38: .4byte gUnknown_02024C68
-_0801CC3C:
- ldr r2, _0801CC6C @ =gBattleMoves
- ldr r0, _0801CC70 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CC74 @ =gUnknown_02024C68
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801CC78
- movs r0, 0xFD
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CC6C: .4byte gBattleMoves
-_0801CC70: .4byte gUnknown_02024BE6
-_0801CC74: .4byte gUnknown_02024C68
-_0801CC78:
- movs r0, 0x4
- b _0801CCBA
-_0801CC7C:
- ldr r2, _0801CCAC @ =gBattleMoves
- ldr r0, _0801CCB0 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CCBE
- ldr r2, _0801CCB4 @ =gUnknown_02024C68
- ldrb r1, [r2]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801CCBE
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801CCB8
- movs r0, 0xFB
- ands r0, r1
- b _0801CCBC
- .align 2, 0
-_0801CCAC: .4byte gBattleMoves
-_0801CCB0: .4byte gUnknown_02024BE6
-_0801CCB4: .4byte gUnknown_02024C68
-_0801CCB8:
- movs r0, 0x2
-_0801CCBA:
- orrs r0, r1
-_0801CCBC:
- strb r0, [r2]
-_0801CCBE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end battle_attack_damage_modulate_by_effectivity
-
- thumb_func_start atk06_damagecalc2
-atk06_damagecalc2: @ 801CCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r3, 0
- ldr r1, _0801CCF0 @ =gUnknown_02024BE6
- ldrh r0, [r1]
- cmp r0, 0xA5
- bne _0801CCD8
- b _0801CEF4
-_0801CCD8:
- ldr r0, _0801CCF4 @ =0x02000000
- ldr r2, _0801CCF8 @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CCFC
- movs r1, 0x3F
- mov r8, r1
- mov r2, r8
- ands r2, r0
- mov r8, r2
- b _0801CD0C
- .align 2, 0
-_0801CCF0: .4byte gUnknown_02024BE6
-_0801CCF4: .4byte 0x02000000
-_0801CCF8: .4byte 0x0001601c
-_0801CCFC:
- ldr r2, _0801CD94 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
-_0801CD0C:
- ldr r2, _0801CD98 @ =gBattleMons
- ldr r0, _0801CD9C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- adds r5, r2, 0
- cmp r0, r8
- beq _0801CD2E
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CD44
-_0801CD2E:
- ldr r4, _0801CDA0 @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- str r3, [sp, 0x4]
- bl __divsi3
- str r0, [r4]
- ldr r3, [sp, 0x4]
-_0801CD44:
- ldr r2, _0801CDA4 @ =gUnknown_02024C08
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- adds r4, r2, 0
- cmp r0, 0x1A
- bne _0801CDBC
- mov r1, r8
- cmp r1, 0x4
- bne _0801CDBC
- ldr r3, _0801CDA8 @ =byte_2024C06
- strb r0, [r3]
- ldr r2, _0801CDAC @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801CDB0 @ =gUnknown_02024C3C
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CDB4 @ =gUnknown_02024C44
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0801CDB8 @ =gUnknown_02024D1E
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r4]
- ldrb r1, [r3]
- bl sub_81074C4
- b _0801CE58
- .align 2, 0
-_0801CD94: .4byte gBattleMoves
-_0801CD98: .4byte gBattleMons
-_0801CD9C: .4byte gUnknown_02024C07
-_0801CDA0: .4byte gUnknown_02024BEC
-_0801CDA4: .4byte gUnknown_02024C08
-_0801CDA8: .4byte byte_2024C06
-_0801CDAC: .4byte gUnknown_02024C68
-_0801CDB0: .4byte gUnknown_02024C3C
-_0801CDB4: .4byte gUnknown_02024C44
-_0801CDB8: .4byte gUnknown_02024D1E
-_0801CDBC:
- ldr r1, _0801CDC8 @ =gTypeEffectiveness
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- b _0801CE38
- .align 2, 0
-_0801CDC8: .4byte gTypeEffectiveness
-_0801CDCC:
- adds r3, 0x3
- b _0801CE34
-_0801CDD0:
- ldr r5, _0801CF08 @ =gTypeEffectiveness
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, r8
- bne _0801CE2C
- adds r1, r3, 0x1
- adds r1, r5
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r7, _0801CF10 @ =gUnknown_02024C08
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- adds r0, r2
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801CE06
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r2, [sp]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
- ldr r2, [sp]
-_0801CE06:
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r1, [r1]
- cmp r4, r1
- bne _0801CE2C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801CE2C
- adds r0, r3, 0x2
- adds r0, r5
- ldrb r0, [r0]
- str r3, [sp, 0x4]
- bl battle_attack_damage_modulate_by_effectivity
- ldr r3, [sp, 0x4]
-_0801CE2C:
- adds r3, 0x3
- ldr r5, _0801CF0C @ =gBattleMons
- ldr r4, _0801CF10 @ =gUnknown_02024C08
- ldr r2, _0801CF08 @ =gTypeEffectiveness
-_0801CE34:
- adds r0, r3, r2
- ldrb r0, [r0]
-_0801CE38:
- cmp r0, 0xFF
- beq _0801CE58
- cmp r0, 0xFE
- bne _0801CDD0
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801CDCC
-_0801CE58:
- ldr r2, _0801CF0C @ =gBattleMons
- ldr r5, _0801CF10 @ =gUnknown_02024C08
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _0801CED6
- ldr r0, _0801CF14 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r7, _0801CF18 @ =gUnknown_02024BE6
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801CED6
- ldr r1, _0801CF1C @ =gUnknown_02024C68
- mov r8, r1
- ldrb r4, [r1]
- ands r0, r4
- cmp r0, 0
- beq _0801CE94
- movs r0, 0x6
- ands r0, r4
- cmp r0, 0x6
- bne _0801CED6
-_0801CE94:
- ldr r2, _0801CF20 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801CED6
- ldr r3, _0801CF24 @ =byte_2024C06
- strb r6, [r3]
- movs r0, 0x1
- orrs r0, r4
- mov r2, r8
- strb r0, [r2]
- ldr r1, _0801CF28 @ =gUnknown_02024C3C
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0801CF2C @ =gUnknown_02024C44
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- ldr r1, _0801CF30 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r5]
- ldrb r1, [r3]
- bl sub_81074C4
-_0801CED6:
- ldr r0, _0801CF1C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0801CEF4
- ldr r2, _0801CF34 @ =gUnknown_02024D28
- ldr r0, _0801CF14 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_0801CEF4:
- ldr r1, _0801CF38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801CF08: .4byte gTypeEffectiveness
-_0801CF0C: .4byte gBattleMons
-_0801CF10: .4byte gUnknown_02024C08
-_0801CF14: .4byte gUnknown_02024C07
-_0801CF18: .4byte gUnknown_02024BE6
-_0801CF1C: .4byte gUnknown_02024C68
-_0801CF20: .4byte gBattleMoves
-_0801CF24: .4byte byte_2024C06
-_0801CF28: .4byte gUnknown_02024C3C
-_0801CF2C: .4byte gUnknown_02024C44
-_0801CF30: .4byte gUnknown_02024D1E
-_0801CF34: .4byte gUnknown_02024D28
-_0801CF38: .4byte gUnknown_02024C10
- thumb_func_end atk06_damagecalc2
-
- thumb_func_start b_wonderguard_and_levitate
-b_wonderguard_and_levitate: @ 801CF3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _0801CF80 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0xA5
- bne _0801CF54
- b _0801D1A4
-_0801CF54:
- ldr r2, _0801CF84 @ =gBattleMoves
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0801CF66
- b _0801D1A4
-_0801CF66:
- ldr r0, _0801CF88 @ =0x02000000
- ldr r2, _0801CF8C @ =0x0001601c
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _0801CF90
- movs r1, 0x3F
- mov r12, r1
- mov r2, r12
- ands r2, r0
- mov r12, r2
- b _0801CF94
- .align 2, 0
-_0801CF80: .4byte gUnknown_02024BE6
-_0801CF84: .4byte gBattleMoves
-_0801CF88: .4byte 0x02000000
-_0801CF8C: .4byte 0x0001601c
-_0801CF90:
- ldrb r1, [r1, 0x2]
- mov r12, r1
-_0801CF94:
- ldr r2, _0801CFC8 @ =gBattleMons
- ldr r3, _0801CFCC @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r1, [r0]
- adds r7, r2, 0
- mov r8, r3
- cmp r1, 0x1A
- bne _0801CFD8
- mov r0, r12
- cmp r0, 0x4
- bne _0801CFD8
- ldr r0, _0801CFD0 @ =byte_2024C06
- strb r1, [r0]
- ldr r0, _0801CFD4 @ =gUnknown_02024D1E
- mov r1, r12
- strb r1, [r0, 0x6]
- ldrb r0, [r3]
- movs r1, 0x1A
- bl sub_81074C4
- b _0801D1A4
- .align 2, 0
-_0801CFC8: .4byte gBattleMons
-_0801CFCC: .4byte gUnknown_02024C08
-_0801CFD0: .4byte byte_2024C06
-_0801CFD4: .4byte gUnknown_02024D1E
-_0801CFD8:
- ldr r1, _0801CFE4 @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r4, r1, 0
- b _0801D12A
- .align 2, 0
-_0801CFE4: .4byte gTypeEffectiveness
-_0801CFE8:
- adds r0, r5, r4
- ldrb r0, [r0]
- cmp r0, r12
- beq _0801CFF2
- b _0801D124
-_0801CFF2:
- adds r2, r5, 0x1
- adds r3, r2, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D032
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D032
- ldr r2, _0801D1B0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gUnknown_02024D28
- ldr r0, _0801D1B8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D032:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D078
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D078
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801D078
- ldr r2, _0801D1B0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D1B4 @ =gUnknown_02024D28
- ldr r0, _0801D1B8 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r2, 4
- adds r2, r1
- ldrb r0, [r2, 0x1]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x1]
-_0801D078:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D09C
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D09C
- movs r0, 0x1
- orrs r6, r0
-_0801D09C:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D0CA
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D0CA
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801D0CA
- movs r0, 0x1
- orrs r6, r0
-_0801D0CA:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x21
- ldrb r1, [r2]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0801D0F2
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D0F2
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D0F2:
- adds r2, r3, r4
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0801D124
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0801D124
- adds r0, r5, 0x2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _0801D124
- movs r0, 0x2
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0801D124:
- adds r5, 0x3
- adds r0, r5, r4
- ldrb r0, [r0]
-_0801D12A:
- cmp r0, 0xFF
- beq _0801D14E
- cmp r0, 0xFE
- beq _0801D134
- b _0801CFE8
-_0801D134:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r1, r7, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D124
-_0801D14E:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7
- adds r0, 0x20
- ldrb r4, [r0]
- cmp r4, 0x19
- bne _0801D1A4
- ldr r0, _0801D1B8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- mov r2, r9
- ldrh r1, [r2]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0801D1A4
- movs r0, 0x3
- ands r6, r0
- cmp r6, 0x1
- beq _0801D1A4
- ldr r2, _0801D1BC @ =gBattleMoves
- mov r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0801D1A4
- ldr r0, _0801D1C0 @ =byte_2024C06
- strb r4, [r0]
- ldr r1, _0801D1C4 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x19
- bl sub_81074C4
-_0801D1A4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D1B0: .4byte gUnknown_02024C68
-_0801D1B4: .4byte gUnknown_02024D28
-_0801D1B8: .4byte gUnknown_02024C07
-_0801D1BC: .4byte gBattleMoves
-_0801D1C0: .4byte byte_2024C06
-_0801D1C4: .4byte gUnknown_02024D1E
- thumb_func_end b_wonderguard_and_levitate
-
- thumb_func_start b_attack_effectivity_adapt
-b_attack_effectivity_adapt: @ 801D1C8
- push {r4-r7,lr}
- adds r6, r2, 0
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, _0801D1FC @ =gUnknown_02024BEC
- ldr r0, [r7]
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- str r0, [r7]
- cmp r0, 0
- bne _0801D1EE
- cmp r4, 0
- beq _0801D1EE
- movs r0, 0x1
- str r0, [r7]
-_0801D1EE:
- cmp r4, 0x5
- beq _0801D216
- cmp r4, 0x5
- bgt _0801D200
- cmp r4, 0
- beq _0801D206
- b _0801D27A
- .align 2, 0
-_0801D1FC: .4byte gUnknown_02024BEC
-_0801D200:
- cmp r4, 0x14
- beq _0801D248
- b _0801D27A
-_0801D206:
- ldrb r0, [r6]
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0xFB
- ands r0, r1
- movs r1, 0xFD
- ands r0, r1
- b _0801D278
-_0801D216:
- ldr r0, _0801D240 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801D244
- movs r0, 0xFD
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D240: .4byte gBattleMoves
-_0801D244:
- movs r0, 0x4
- b _0801D276
-_0801D248:
- ldr r0, _0801D270 @ =gBattleMoves
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D27A
- ldrb r1, [r6]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801D27A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801D274
- movs r0, 0xFB
- ands r0, r1
- b _0801D278
- .align 2, 0
-_0801D270: .4byte gBattleMoves
-_0801D274:
- movs r0, 0x2
-_0801D276:
- orrs r0, r1
-_0801D278:
- strb r0, [r6]
-_0801D27A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end b_attack_effectivity_adapt
-
- thumb_func_start move_effectiveness_something
-move_effectiveness_something: @ 801D280
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- mov r0, r10
- cmp r0, 0xA5
- bne _0801D2AE
- movs r0, 0
- b _0801D43A
-_0801D2AE:
- ldr r1, _0801D31C @ =gBattleMoves
- mov r3, r10
- lsls r2, r3, 1
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x8]
- ldr r1, _0801D320 @ =gBattleMons
- movs r0, 0x58
- ldr r3, [sp, 0x4]
- muls r0, r3
- adds r3, r0, r1
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- str r2, [sp, 0xC]
- adds r5, r1, 0
- ldr r1, [sp, 0x8]
- cmp r0, r1
- beq _0801D2E2
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _0801D2F4
-_0801D2E2:
- ldr r4, _0801D324 @ =gUnknown_02024BEC
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- str r0, [r4]
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_0801D2F4:
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- bne _0801D328
- ldr r3, [sp, 0x8]
- cmp r3, 0x4
- bne _0801D328
- movs r1, 0x9
- mov r0, sp
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, sp
- strb r0, [r1]
- b _0801D3DC
- .align 2, 0
-_0801D31C: .4byte gBattleMoves
-_0801D320: .4byte gBattleMons
-_0801D324: .4byte gUnknown_02024BEC
-_0801D328:
- ldr r1, _0801D344 @ =gTypeEffectiveness
- adds r0, r7, r1
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- b _0801D3CA
- .align 2, 0
-_0801D344: .4byte gTypeEffectiveness
-_0801D348:
- adds r7, 0x3
- b _0801D3B6
-_0801D34C:
- ldr r6, _0801D44C @ =gTypeEffectiveness
- adds r0, r7, r6
- ldrb r0, [r0]
- ldr r2, [sp, 0x8]
- cmp r0, r2
- bne _0801D3B0
- adds r1, r7, 0x1
- adds r1, r6
- ldr r3, _0801D450 @ =gBattleMons
- mov r8, r3
- movs r3, 0x58
- mov r0, r9
- muls r0, r3
- mov r2, r8
- adds r5, r0, r2
- adds r0, r5, 0
- adds r0, 0x21
- ldrb r4, [r1]
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D388
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- str r3, [sp, 0x10]
- bl b_attack_effectivity_adapt
- ldr r3, [sp, 0x10]
-_0801D388:
- adds r0, r5, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r4, r0
- bne _0801D3B0
- ldr r0, _0801D454 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r3
- add r0, r8
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r4
- beq _0801D3B0
- adds r0, r7, 0x2
- adds r0, r6
- ldrb r0, [r0]
- mov r1, r10
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D3B0:
- adds r7, 0x3
- ldr r5, _0801D450 @ =gBattleMons
- ldr r2, _0801D44C @ =gTypeEffectiveness
-_0801D3B6:
- adds r0, r7, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _0801D3DC
- cmp r0, 0xFE
- bne _0801D34C
- movs r0, 0x58
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
-_0801D3CA:
- adds r1, r5, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0801D348
-_0801D3DC:
- movs r0, 0x58
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x19
- bne _0801D436
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0801D436
- ldr r0, [sp, 0x4]
- mov r1, r10
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _0801D436
- mov r0, sp
- ldrb r3, [r0]
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0801D41E
- movs r0, 0x6
- ands r0, r3
- cmp r0, 0x6
- bne _0801D436
-_0801D41E:
- ldr r0, _0801D458 @ =gBattleMoves
- ldr r1, [sp, 0xC]
- add r1, r10
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D436
- mov r0, sp
- movs r1, 0x1
- orrs r1, r3
- strb r1, [r0]
-_0801D436:
- mov r0, sp
- ldrb r0, [r0]
-_0801D43A:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D44C: .4byte gTypeEffectiveness
-_0801D450: .4byte gBattleMons
-_0801D454: .4byte gUnknown_02024C08
-_0801D458: .4byte gBattleMoves
- thumb_func_end move_effectiveness_something
-
- thumb_func_start ai_rate_move
-ai_rate_move: @ 801D45C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- movs r7, 0
- mov r0, sp
- strb r7, [r0]
- ldr r2, _0801D498 @ =gBaseStats
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- str r1, [sp, 0x8]
- ldrb r0, [r0, 0x7]
- mov r8, r0
- cmp r6, 0xA5
- bne _0801D49C
- movs r0, 0
- b _0801D554
- .align 2, 0
-_0801D498: .4byte gBaseStats
-_0801D49C:
- ldr r2, _0801D4C0 @ =gBattleMoves
- lsls r1, r6, 1
- adds r0, r1, r6
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r9, r0
- str r1, [sp, 0xC]
- ldr r3, [sp, 0x4]
- cmp r3, 0x1A
- bne _0801D4C4
- cmp r0, 0x4
- bne _0801D4C4
- movs r1, 0x9
- mov r0, sp
- strb r1, [r0]
- b _0801D51E
- .align 2, 0
-_0801D4C0: .4byte gBattleMoves
-_0801D4C4:
- ldr r0, _0801D564 @ =gTypeEffectiveness
- mov r10, r0
- adds r1, r7, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _0801D51E
- adds r4, r1, 0
-_0801D4D2:
- ldrb r0, [r4]
- cmp r0, 0xFE
- beq _0801D510
- cmp r0, r9
- bne _0801D510
- ldrb r5, [r4, 0x1]
- ldr r1, [sp, 0x8]
- cmp r5, r1
- bne _0801D4EE
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D4EE:
- cmp r5, r8
- bne _0801D510
- ldr r0, _0801D568 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- ldr r3, _0801D56C @ =gBattleMons
- adds r0, r3
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r8
- beq _0801D510
- ldrb r0, [r4, 0x2]
- adds r1, r6, 0
- mov r2, sp
- bl b_attack_effectivity_adapt
-_0801D510:
- adds r4, 0x3
- adds r7, 0x3
- mov r1, r10
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _0801D4D2
-_0801D51E:
- ldr r3, [sp, 0x4]
- cmp r3, 0x19
- bne _0801D550
- mov r0, sp
- ldrb r2, [r0]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0801D538
- movs r0, 0x6
- ands r0, r2
- cmp r0, 0x6
- bne _0801D550
-_0801D538:
- ldr r0, _0801D570 @ =gBattleMoves
- ldr r3, [sp, 0xC]
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _0801D550
- mov r0, sp
- movs r1, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801D550:
- mov r0, sp
- ldrb r0, [r0]
-_0801D554:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0801D564: .4byte gTypeEffectiveness
-_0801D568: .4byte gUnknown_02024C08
-_0801D56C: .4byte gBattleMons
-_0801D570: .4byte gBattleMoves
- thumb_func_end ai_rate_move
-
- thumb_func_start unref_sub_801D574
-unref_sub_801D574: @ 801D574
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D5AC @ =gUnknown_02024BEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5A6
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5A6
- movs r0, 0x1
- str r0, [r4]
-_0801D5A6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D5AC: .4byte gUnknown_02024BEC
- thumb_func_end unref_sub_801D574
-
- thumb_func_start atk07_damagecalc3
-atk07_damagecalc3: @ 801D5B0
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D608 @ =gUnknown_02024BEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D5E2
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D5E2
- movs r0, 0x1
- str r0, [r4]
-_0801D5E2:
- ldr r7, _0801D60C @ =gBattleMons
- ldr r6, _0801D610 @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D618
- ldr r1, _0801D614 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D632
- .align 2, 0
-_0801D608: .4byte gUnknown_02024BEC
-_0801D60C: .4byte gBattleMons
-_0801D610: .4byte gUnknown_02024C08
-_0801D614: .4byte gEnigmaBerries
-_0801D618:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D632:
- ldr r1, _0801D6F4 @ =gUnknown_02024C0B
- ldr r5, _0801D6F8 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D670
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D670
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _0801D6FC @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D670:
- ldr r2, _0801D700 @ =gBattleMons
- ldr r3, _0801D6F8 @ =gUnknown_02024C08
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _0801D740
- ldr r2, _0801D704 @ =gBattleMoves
- ldr r0, _0801D708 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _0801D6C2
- ldr r0, _0801D70C @ =gUnknown_02024D28
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _0801D6C2
- ldr r0, _0801D6FC @ =gUnknown_02024D68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
-_0801D6C2:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D710 @ =gUnknown_02024BEC
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D740
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _0801D70C @ =gUnknown_02024D28
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D718
- ldr r0, _0801D714 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D740
- .align 2, 0
-_0801D6F4: .4byte gUnknown_02024C0B
-_0801D6F8: .4byte gUnknown_02024C08
-_0801D6FC: .4byte gUnknown_02024D68
-_0801D700: .4byte gBattleMons
-_0801D704: .4byte gBattleMoves
-_0801D708: .4byte gUnknown_02024BE6
-_0801D70C: .4byte gUnknown_02024D28
-_0801D710: .4byte gUnknown_02024BEC
-_0801D714: .4byte gUnknown_02024C68
-_0801D718:
- ldr r0, _0801D750 @ =gUnknown_02024D68
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D740
- ldr r2, _0801D754 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D758 @ =gUnknown_02024C04
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D740:
- ldr r1, _0801D75C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D750: .4byte gUnknown_02024D68
-_0801D754: .4byte gUnknown_02024C68
-_0801D758: .4byte gUnknown_02024C04
-_0801D75C: .4byte gUnknown_02024C10
- thumb_func_end atk07_damagecalc3
-
- thumb_func_start atk08_cmd8
-atk08_cmd8: @ 801D760
- push {r4-r7,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0801D7B8 @ =gUnknown_02024BEC
- ldr r0, [r4]
- cmp r0, 0
- beq _0801D792
- muls r0, r1
- str r0, [r4]
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801D792
- movs r0, 0x1
- str r0, [r4]
-_0801D792:
- ldr r7, _0801D7BC @ =gBattleMons
- ldr r6, _0801D7C0 @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0801D7C8
- ldr r1, _0801D7C4 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _0801D7E2
- .align 2, 0
-_0801D7B8: .4byte gUnknown_02024BEC
-_0801D7BC: .4byte gBattleMons
-_0801D7C0: .4byte gUnknown_02024C08
-_0801D7C4: .4byte gEnigmaBerries
-_0801D7C8:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_0801D7E2:
- ldr r1, _0801D888 @ =gUnknown_02024C0B
- ldr r5, _0801D88C @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _0801D820
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _0801D820
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _0801D890 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_0801D820:
- ldr r4, _0801D894 @ =gBattleMons
- ldr r6, _0801D88C @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r4, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _0801D8CC
- ldr r5, _0801D898 @ =gUnknown_02024D28
- lsls r0, r2, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- blt _0801D85E
- ldr r0, _0801D890 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
-_0801D85E:
- adds r0, r3, r4
- ldrh r1, [r0, 0x28]
- ldr r2, _0801D89C @ =gUnknown_02024BEC
- ldr r0, [r2]
- cmp r1, r0
- bgt _0801D8CC
- subs r0, r1, 0x1
- str r0, [r2]
- ldrb r3, [r6]
- lsls r0, r3, 4
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0801D8A4
- ldr r0, _0801D8A0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _0801D8CC
- .align 2, 0
-_0801D888: .4byte gUnknown_02024C0B
-_0801D88C: .4byte gUnknown_02024C08
-_0801D890: .4byte gUnknown_02024D68
-_0801D894: .4byte gBattleMons
-_0801D898: .4byte gUnknown_02024D28
-_0801D89C: .4byte gUnknown_02024BEC
-_0801D8A0: .4byte gUnknown_02024C68
-_0801D8A4:
- ldr r0, _0801D8DC @ =gUnknown_02024D68
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _0801D8CC
- ldr r2, _0801D8E0 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0801D8E4 @ =gUnknown_02024C04
- adds r0, r3, 0
- muls r0, r7
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_0801D8CC:
- ldr r1, _0801D8E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801D8DC: .4byte gUnknown_02024D68
-_0801D8E0: .4byte gUnknown_02024C68
-_0801D8E4: .4byte gUnknown_02024C04
-_0801D8E8: .4byte gUnknown_02024C10
- thumb_func_end atk08_cmd8
-
- thumb_func_start sub_801D8EC
-sub_801D8EC: @ 801D8EC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- ldr r0, _0801D940 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801D900
- b _0801DA4A
-_0801D900:
- ldr r0, _0801D944 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- ldr r3, _0801D948 @ =gUnknown_02024BE6
- cmp r0, 0
- beq _0801D960
- ldrh r0, [r3]
- cmp r0, 0x90
- beq _0801D960
- cmp r0, 0xA4
- beq _0801D960
- ldr r4, _0801D94C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801D950 @ =gUnknown_081D8EEF
- str r0, [r4]
- ldr r1, _0801D954 @ =0x02000000
- ldr r0, _0801D958 @ =0x00016002
- adds r2, r1, r0
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldr r2, _0801D95C @ =0x000160a1
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801D940: .4byte gUnknown_02024A64
-_0801D944: .4byte gUnknown_02024C6C
-_0801D948: .4byte gUnknown_02024BE6
-_0801D94C: .4byte gUnknown_02024C10
-_0801D950: .4byte gUnknown_081D8EEF
-_0801D954: .4byte 0x02000000
-_0801D958: .4byte 0x00016002
-_0801D95C: .4byte 0x000160a1
-_0801D960:
- ldr r2, _0801DA0C @ =gBattleMoves
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0801D986
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801D992
-_0801D986:
- ldr r0, _0801DA10 @ =0x02000000
- ldr r1, _0801DA14 @ =0x000160a1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0801DA00
-_0801D992:
- ldr r0, _0801DA18 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DA3C
- ldr r1, _0801DA1C @ =gUnknown_02024A60
- ldr r2, _0801DA20 @ =gUnknown_02024C07
- mov r9, r2
- ldrb r0, [r2]
- strb r0, [r1]
- ldrh r1, [r3]
- ldr r6, _0801DA10 @ =0x02000000
- ldr r0, _0801DA24 @ =0x00016002
- adds r0, r6
- mov r8, r0
- ldrb r2, [r0]
- ldr r0, _0801DA28 @ =gBattleMovePower
- ldrh r3, [r0]
- ldr r0, _0801DA2C @ =gUnknown_02024BEC
- ldr r0, [r0]
- str r0, [sp]
- ldr r5, _0801DA30 @ =gBattleMons
- mov r0, r9
- ldrb r4, [r0]
- movs r0, 0x58
- muls r0, r4
- adds r0, r5
- adds r0, 0x2B
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- mov r0, r9
- ldrb r4, [r0]
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r4, _0801DA34 @ =gUnknown_02024CA8
- adds r0, r4
- str r0, [sp, 0x8]
- movs r0, 0
- bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _0801DA14 @ =0x000160a1
- adds r6, r2
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- mov r1, r9
- ldrb r0, [r1]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801DA00:
- ldr r1, _0801DA38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801DA4A
- .align 2, 0
-_0801DA0C: .4byte gBattleMoves
-_0801DA10: .4byte 0x02000000
-_0801DA14: .4byte 0x000160a1
-_0801DA18: .4byte gUnknown_02024C68
-_0801DA1C: .4byte gUnknown_02024A60
-_0801DA20: .4byte gUnknown_02024C07
-_0801DA24: .4byte 0x00016002
-_0801DA28: .4byte gBattleMovePower
-_0801DA2C: .4byte gUnknown_02024BEC
-_0801DA30: .4byte gBattleMons
-_0801DA34: .4byte gUnknown_02024CA8
-_0801DA38: .4byte gUnknown_02024C10
-_0801DA3C:
- ldr r4, _0801DA58 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801DA5C @ =gUnknown_081D8EEF
- str r0, [r4]
-_0801DA4A:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA58: .4byte gUnknown_02024C10
-_0801DA5C: .4byte gUnknown_081D8EEF
- thumb_func_end sub_801D8EC
-
- thumb_func_start sub_801DA60
-sub_801DA60: @ 801DA60
- push {lr}
- ldr r0, _0801DA78 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DA72
- ldr r1, _0801DA7C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DA72:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DA78: .4byte gUnknown_02024A64
-_0801DA7C: .4byte gUnknown_02024C10
- thumb_func_end sub_801DA60
-
- thumb_func_start sub_801DA80
-sub_801DA80: @ 801DA80
- push {r4,r5,lr}
- ldr r0, _0801DAE4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DB36
- ldr r0, _0801DAE8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DB2E
- ldr r0, _0801DAEC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801DAF0 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r1, _0801DAF4 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAF8 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- beq _0801DB00
- ldr r0, _0801DAFC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- bne _0801DB00
- movs r0, 0x80
- adds r1, r2, 0
- bl b_std_message
- b _0801DB2E
- .align 2, 0
-_0801DAE4: .4byte gUnknown_02024A64
-_0801DAE8: .4byte gUnknown_02024C68
-_0801DAEC: .4byte gUnknown_02024C10
-_0801DAF0: .4byte gUnknown_02024A60
-_0801DAF4: .4byte gBattleMons
-_0801DAF8: .4byte gUnknown_02024CA8
-_0801DAFC: .4byte gUnknown_02024C6C
-_0801DB00:
- ldr r5, _0801DB3C @ =gUnknown_02024BEC
- ldrh r1, [r5]
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldr r4, _0801DB40 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801DB2E
- ldr r0, [r5]
- cmp r0, 0
- ble _0801DB2E
- ldr r0, _0801DB44 @ =gUnknown_030042E0
- ldrb r1, [r0, 0x5]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x5]
-_0801DB2E:
- ldr r1, _0801DB48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DB36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DB3C: .4byte gUnknown_02024BEC
-_0801DB40: .4byte gUnknown_02024A60
-_0801DB44: .4byte gUnknown_030042E0
-_0801DB48: .4byte gUnknown_02024C10
- thumb_func_end sub_801DA80
-
- thumb_func_start atk0C_datahpupdate
-atk0C_datahpupdate: @ 801DB4C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _0801DB74 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801DB5A
- b _0801DF2E
-_0801DB5A:
- ldr r0, _0801DB78 @ =0x02000000
- ldr r1, _0801DB7C @ =0x0001601c
- adds r0, r1
- ldrb r1, [r0]
- cmp r1, 0
- beq _0801DB80
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0801DB80
- movs r6, 0x3F
- ands r6, r1
- b _0801DB90
- .align 2, 0
-_0801DB74: .4byte gUnknown_02024A64
-_0801DB78: .4byte 0x02000000
-_0801DB7C: .4byte 0x0001601c
-_0801DB80:
- ldr r2, _0801DC1C @ =gBattleMoves
- ldr r0, _0801DC20 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r6, [r0, 0x2]
-_0801DB90:
- ldr r0, _0801DC24 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0801DB9E
- b _0801DF00
-_0801DB9E:
- ldr r0, _0801DC28 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _0801DC2C @ =gUnknown_02024A60
- strb r0, [r7]
- ldr r1, _0801DC30 @ =gBattleMons
- ldrb r2, [r7]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801DCB4
- ldr r0, _0801DC34 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r4, r1, r0
- ldrb r1, [r4, 0xA]
- mov r12, r0
- cmp r1, 0
- beq _0801DCB4
- ldr r0, _0801DC38 @ =gUnknown_02024C6C
- ldr r3, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r3, r0
- cmp r3, 0
- bne _0801DCB4
- adds r5, r1, 0
- ldr r6, _0801DC3C @ =gUnknown_02024BEC
- ldr r4, [r6]
- cmp r5, r4
- blt _0801DC48
- ldr r0, _0801DC40 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC02
- str r4, [r1]
-_0801DC02:
- ldrb r0, [r7]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r12
- ldr r2, [r6]
- ldrb r0, [r1, 0xA]
- subs r0, r2
- strb r0, [r1, 0xA]
- ldr r1, _0801DC44 @ =gUnknown_02024BF0
- ldr r0, [r6]
- str r0, [r1]
- b _0801DC78
- .align 2, 0
-_0801DC1C: .4byte gBattleMoves
-_0801DC20: .4byte gUnknown_02024BE6
-_0801DC24: .4byte gUnknown_02024C68
-_0801DC28: .4byte gUnknown_02024C10
-_0801DC2C: .4byte gUnknown_02024A60
-_0801DC30: .4byte gBattleMons
-_0801DC34: .4byte gUnknown_02024CA8
-_0801DC38: .4byte gUnknown_02024C6C
-_0801DC3C: .4byte gUnknown_02024BEC
-_0801DC40: .4byte gUnknown_02024D68
-_0801DC44: .4byte gUnknown_02024BF0
-_0801DC48:
- ldr r0, _0801DCA0 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DC5C
- str r5, [r1]
-_0801DC5C:
- ldr r2, _0801DCA4 @ =gUnknown_02024BF0
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- str r0, [r2]
- ldrb r1, [r7]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- strb r3, [r0, 0xA]
-_0801DC78:
- ldr r0, _0801DCA8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0801DC8C
- b _0801DF26
-_0801DC8C:
- ldr r4, _0801DCAC @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- bl b_movescr_stack_push_cursor
- ldr r0, _0801DCB0 @ =gUnknown_081D99AB
- str r0, [r4]
- b _0801DF2E
- .align 2, 0
-_0801DCA0: .4byte gUnknown_02024D68
-_0801DCA4: .4byte gUnknown_02024BF0
-_0801DCA8: .4byte gUnknown_02024A60
-_0801DCAC: .4byte gUnknown_02024C10
-_0801DCB0: .4byte gUnknown_081D99AB
-_0801DCB4:
- ldr r0, _0801DCF4 @ =gUnknown_02024C6C
- ldr r2, [r0]
- ldr r1, _0801DCF8 @ =0xfffffeff
- ands r2, r1
- str r2, [r0]
- ldr r1, _0801DCFC @ =gUnknown_02024BEC
- ldr r5, [r1]
- mov r12, r0
- adds r7, r1, 0
- cmp r5, 0
- bge _0801DD08
- ldr r4, _0801DD00 @ =gBattleMons
- ldr r2, _0801DD04 @ =gUnknown_02024A60
- ldrb r0, [r2]
- movs r3, 0x58
- adds r1, r0, 0
- muls r1, r3
- adds r1, r4
- ldrh r0, [r1, 0x28]
- subs r0, r5
- strh r0, [r1, 0x28]
- ldrb r0, [r2]
- muls r0, r3
- adds r1, r0, r4
- ldrh r3, [r1, 0x2C]
- ldrh r0, [r1, 0x28]
- adds r5, r2, 0
- cmp r0, r3
- bhi _0801DCF0
- b _0801DEC6
-_0801DCF0:
- strh r3, [r1, 0x28]
- b _0801DEC6
- .align 2, 0
-_0801DCF4: .4byte gUnknown_02024C6C
-_0801DCF8: .4byte 0xfffffeff
-_0801DCFC: .4byte gUnknown_02024BEC
-_0801DD00: .4byte gBattleMons
-_0801DD04: .4byte gUnknown_02024A60
-_0801DD08:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _0801DD24
- movs r0, 0x21
- negs r0, r0
- ands r2, r0
- mov r0, r12
- str r2, [r0]
- ldr r5, _0801DD20 @ =gUnknown_02024A60
- b _0801DD6C
- .align 2, 0
-_0801DD20: .4byte gUnknown_02024A60
-_0801DD24:
- ldr r0, _0801DD4C @ =gUnknown_02024BF4
- ldr r2, _0801DD50 @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- adds r0, r5
- str r0, [r1]
- ldr r0, _0801DD54 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- adds r5, r2, 0
- cmp r0, 0
- bne _0801DD60
- ldr r1, _0801DD58 @ =gUnknown_02024C74
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD5C @ =gUnknown_02024C07
- b _0801DD68
- .align 2, 0
-_0801DD4C: .4byte gUnknown_02024BF4
-_0801DD50: .4byte gUnknown_02024A60
-_0801DD54: .4byte gUnknown_02024C10
-_0801DD58: .4byte gUnknown_02024C74
-_0801DD5C: .4byte gUnknown_02024C07
-_0801DD60:
- ldr r1, _0801DD8C @ =gUnknown_02024C74
- ldrb r0, [r5]
- adds r0, r1
- ldr r1, _0801DD90 @ =gUnknown_02024C08
-_0801DD68:
- ldrb r1, [r1]
- strb r1, [r0]
-_0801DD6C:
- ldr r4, _0801DD94 @ =gBattleMons
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r4
- ldrh r0, [r2, 0x28]
- ldr r1, [r7]
- cmp r0, r1
- ble _0801DD9C
- subs r0, r1
- strh r0, [r2, 0x28]
- ldr r0, _0801DD98 @ =gUnknown_02024BF0
- str r1, [r0]
- adds r7, r0, 0
- b _0801DDAC
- .align 2, 0
-_0801DD8C: .4byte gUnknown_02024C74
-_0801DD90: .4byte gUnknown_02024C08
-_0801DD94: .4byte gBattleMons
-_0801DD98: .4byte gUnknown_02024BF0
-_0801DD9C:
- ldr r2, _0801DE20 @ =gUnknown_02024BF0
- str r0, [r2]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- movs r1, 0
- strh r1, [r0, 0x28]
- adds r7, r2, 0
-_0801DDAC:
- ldr r2, _0801DE24 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0x4
- adds r3, r0, r1
- ldr r0, [r3]
- adds r4, r2, 0
- cmp r0, 0
- bne _0801DDD4
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DDD4
- ldr r0, [r7]
- str r0, [r3]
-_0801DDD4:
- cmp r6, 0x8
- bhi _0801DE5C
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DE58
- ldr r0, _0801DE28 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xDC
- beq _0801DE58
- ldr r3, _0801DE2C @ =gUnknown_02024D28
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0x4
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x8
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DE30 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DE38
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE34 @ =gUnknown_02024C07
- b _0801DE40
- .align 2, 0
-_0801DE20: .4byte gUnknown_02024BF0
-_0801DE24: .4byte gUnknown_02024D68
-_0801DE28: .4byte gUnknown_02024BE6
-_0801DE2C: .4byte gUnknown_02024D28
-_0801DE30: .4byte gUnknown_02024C10
-_0801DE34: .4byte gUnknown_02024C07
-_0801DE38:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DE54 @ =gUnknown_02024C08
-_0801DE40:
- ldrb r1, [r2]
- strb r1, [r0, 0xC]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x10]
- b _0801DEC6
- .align 2, 0
-_0801DE54: .4byte gUnknown_02024C08
-_0801DE58:
- cmp r6, 0x8
- bls _0801DEC6
-_0801DE5C:
- mov r1, r12
- ldr r0, [r1]
- movs r1, 0x80
- lsls r1, 13
- ands r0, r1
- cmp r0, 0
- bne _0801DEC6
- ldr r3, _0801DEA0 @ =gUnknown_02024D28
- ldrb r0, [r5]
- lsls r0, 4
- adds r1, r3, 0
- adds r1, 0x8
- adds r0, r1
- ldr r2, [r7]
- str r2, [r0]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0xC
- adds r0, r1
- str r2, [r0]
- ldr r0, _0801DEA4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0801DEAC
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEA8 @ =gUnknown_02024C07
- b _0801DEB4
- .align 2, 0
-_0801DEA0: .4byte gUnknown_02024D28
-_0801DEA4: .4byte gUnknown_02024C10
-_0801DEA8: .4byte gUnknown_02024C07
-_0801DEAC:
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r3
- ldr r2, _0801DEF4 @ =gUnknown_02024C08
-_0801DEB4:
- ldrb r1, [r2]
- strb r1, [r0, 0xD]
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r2]
- strb r1, [r0, 0x11]
-_0801DEC6:
- mov r1, r12
- ldr r0, [r1]
- ldr r1, _0801DEF8 @ =0xffefffff
- ands r0, r1
- mov r1, r12
- str r0, [r1]
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801DEFC @ =gUnknown_02024AA8
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801DF26
- .align 2, 0
-_0801DEF4: .4byte gUnknown_02024C08
-_0801DEF8: .4byte 0xffefffff
-_0801DEFC: .4byte gUnknown_02024AA8
-_0801DF00:
- ldr r0, _0801DF38 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0801DF3C @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r2, _0801DF40 @ =gUnknown_02024D68
- ldrb r1, [r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r1, r0, r2
- ldr r0, [r1]
- cmp r0, 0
- bne _0801DF26
- ldr r0, _0801DF44 @ =0x0000ffff
- str r0, [r1]
-_0801DF26:
- ldr r1, _0801DF38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0801DF2E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF38: .4byte gUnknown_02024C10
-_0801DF3C: .4byte gUnknown_02024A60
-_0801DF40: .4byte gUnknown_02024D68
-_0801DF44: .4byte 0x0000ffff
- thumb_func_end atk0C_datahpupdate
-
- thumb_func_start atk0D_critmessage
-atk0D_critmessage: @ 801DF48
- push {lr}
- ldr r0, _0801DF84 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801DF7E
- ldr r0, _0801DF88 @ =gCritMultiplier
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0801DF76
- ldr r0, _0801DF8C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801DF76
- ldr r0, _0801DF90 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0xD9
- bl b_std_message
- ldr r1, _0801DF94 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801DF76:
- ldr r1, _0801DF98 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801DF7E:
- pop {r0}
- bx r0
- .align 2, 0
-_0801DF84: .4byte gUnknown_02024A64
-_0801DF88: .4byte gCritMultiplier
-_0801DF8C: .4byte gUnknown_02024C68
-_0801DF90: .4byte gUnknown_02024C07
-_0801DF94: .4byte gUnknown_02024D1E
-_0801DF98: .4byte gUnknown_02024C10
- thumb_func_end atk0D_critmessage
-
- thumb_func_start atk0E_missmessage
-atk0E_missmessage: @ 801DF9C
- push {r4,lr}
- ldr r0, _0801DFD4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E05C
- ldr r4, _0801DFD8 @ =gUnknown_02024A60
- ldr r0, _0801DFDC @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0801DFE0 @ =gUnknown_02024C68
- ldrb r2, [r1]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0801E054
- movs r0, 0xFE
- ands r0, r2
- cmp r0, 0x10
- beq _0801E00E
- cmp r0, 0x10
- bgt _0801DFEA
- cmp r0, 0x4
- beq _0801DFFE
- cmp r0, 0x4
- bgt _0801DFE4
- cmp r0, 0x2
- beq _0801DFF8
- b _0801E00E
- .align 2, 0
-_0801DFD4: .4byte gUnknown_02024A64
-_0801DFD8: .4byte gUnknown_02024A60
-_0801DFDC: .4byte gUnknown_02024C08
-_0801DFE0: .4byte gUnknown_02024C68
-_0801DFE4:
- cmp r0, 0x8
- beq _0801E054
- b _0801E00E
-_0801DFEA:
- cmp r0, 0x40
- beq _0801E00E
- cmp r0, 0x40
- bgt _0801E00E
- cmp r0, 0x20
- beq _0801E054
- b _0801E00E
-_0801DFF8:
- movs r0, 0
- movs r1, 0xE
- b _0801E002
-_0801DFFE:
- movs r0, 0
- movs r1, 0xC
-_0801E002:
- bl dp01_build_cmdbuf_x2B_aa_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801E054
-_0801E00E:
- ldrb r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801E01E
- movs r0, 0
- movs r1, 0xE
- b _0801E02A
-_0801E01E:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0801E03C
- movs r0, 0
- movs r1, 0xC
-_0801E02A:
- bl dp01_build_cmdbuf_x2B_aa_0
- ldr r0, _0801E038 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0801E054
- .align 2, 0
-_0801E038: .4byte gUnknown_02024A60
-_0801E03C:
- movs r0, 0x28
- ands r0, r1
- cmp r0, 0
- bne _0801E054
- movs r0, 0
- movs r1, 0xD
- bl dp01_build_cmdbuf_x2B_aa_0
- ldr r0, _0801E064 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
-_0801E054:
- ldr r1, _0801E068 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801E05C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E064: .4byte gUnknown_02024A60
-_0801E068: .4byte gUnknown_02024C10
- thumb_func_end atk0E_missmessage
-
- thumb_func_start atk0F_resultmessage
-atk0F_resultmessage: @ 801E06C
- push {r4-r7,lr}
- movs r3, 0
- ldr r0, _0801E0A8 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E07A
- b _0801E20C
-_0801E07A:
- ldr r1, _0801E0AC @ =gUnknown_02024C68
- ldrb r2, [r1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r2
- adds r6, r1, 0
- ldr r7, _0801E0B0 @ =gUnknown_02024D1E
- cmp r0, 0
- beq _0801E0B8
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0801E09A
- ldrb r0, [r7, 0x6]
- cmp r0, 0x2
- bls _0801E0B8
-_0801E09A:
- ldr r1, _0801E0B4 @ =gUnknown_08401508
- ldrb r0, [r7, 0x6]
- lsls r0, 1
- adds r0, r1
- ldrh r3, [r0]
- strb r4, [r7, 0x7]
- b _0801E1F6
- .align 2, 0
-_0801E0A8: .4byte gUnknown_02024A64
-_0801E0AC: .4byte gUnknown_02024C68
-_0801E0B0: .4byte gUnknown_02024D1E
-_0801E0B4: .4byte gUnknown_08401508
-_0801E0B8:
- movs r0, 0x1
- strb r0, [r7, 0x7]
- ldrb r5, [r6]
- movs r0, 0xFE
- ands r0, r5
- cmp r0, 0x10
- beq _0801E0FC
- cmp r0, 0x10
- bgt _0801E0DE
- cmp r0, 0x4
- beq _0801E0F8
- cmp r0, 0x4
- bgt _0801E0D8
- cmp r0, 0x2
- beq _0801E0F4
- b _0801E144
-_0801E0D8:
- cmp r0, 0x8
- beq _0801E150
- b _0801E144
-_0801E0DE:
- cmp r0, 0x40
- beq _0801E100
- cmp r0, 0x40
- bgt _0801E0EE
- cmp r0, 0x20
- bne _0801E0EC
- b _0801E1F0
-_0801E0EC:
- b _0801E144
-_0801E0EE:
- cmp r0, 0x80
- beq _0801E104
- b _0801E144
-_0801E0F4:
- movs r3, 0xDE
- b _0801E1FA
-_0801E0F8:
- movs r3, 0xDD
- b _0801E1FA
-_0801E0FC:
- movs r3, 0xDA
- b _0801E1FA
-_0801E100:
- movs r3, 0x99
- b _0801E1FA
-_0801E104:
- ldr r4, _0801E12C @ =gUnknown_02024C04
- ldr r2, _0801E130 @ =gBattleMons
- ldr r3, _0801E134 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E138 @ =gUnknown_02024C0B
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E13C @ =gUnknown_02024C10
- ldr r0, _0801E140 @ =gUnknown_081D9AC6
- b _0801E20A
- .align 2, 0
-_0801E12C: .4byte gUnknown_02024C04
-_0801E130: .4byte gBattleMons
-_0801E134: .4byte gUnknown_02024C08
-_0801E138: .4byte gUnknown_02024C0B
-_0801E13C: .4byte gUnknown_02024C10
-_0801E140: .4byte gUnknown_081D9AC6
-_0801E144:
- adds r2, r6, 0
- ldrb r5, [r2]
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _0801E154
-_0801E150:
- movs r3, 0x1B
- b _0801E1FA
-_0801E154:
- movs r0, 0x10
- ands r0, r5
- cmp r0, 0
- beq _0801E17C
- movs r0, 0xEF
- ands r0, r5
- movs r1, 0xFD
- ands r0, r1
- movs r1, 0xFB
- ands r0, r1
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E174 @ =gUnknown_02024C10
- ldr r0, _0801E178 @ =gUnknown_081D94A9
- b _0801E20A
- .align 2, 0
-_0801E174: .4byte gUnknown_02024C10
-_0801E178: .4byte gUnknown_081D94A9
-_0801E17C:
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _0801E19C
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r2]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E194 @ =gUnknown_02024C10
- ldr r0, _0801E198 @ =gUnknown_081D94A2
- b _0801E20A
- .align 2, 0
-_0801E194: .4byte gUnknown_02024C10
-_0801E198: .4byte gUnknown_081D94A2
-_0801E19C:
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _0801E1E4
- ldr r4, _0801E1CC @ =gUnknown_02024C04
- ldr r2, _0801E1D0 @ =gBattleMons
- ldr r3, _0801E1D4 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r4]
- ldr r1, _0801E1D8 @ =gUnknown_02024C0B
- ldrb r0, [r3]
- strb r0, [r1]
- movs r0, 0x3F
- ands r0, r5
- strb r0, [r6]
- bl b_movescr_stack_push_cursor
- ldr r1, _0801E1DC @ =gUnknown_02024C10
- ldr r0, _0801E1E0 @ =gUnknown_081D9AC6
- b _0801E20A
- .align 2, 0
-_0801E1CC: .4byte gUnknown_02024C04
-_0801E1D0: .4byte gBattleMons
-_0801E1D4: .4byte gUnknown_02024C08
-_0801E1D8: .4byte gUnknown_02024C0B
-_0801E1DC: .4byte gUnknown_02024C10
-_0801E1E0: .4byte gUnknown_081D9AC6
-_0801E1E4:
- movs r0, 0x20
- ands r0, r5
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0801E1F4
-_0801E1F0:
- movs r3, 0xE5
- b _0801E1FA
-_0801E1F4:
- strb r0, [r7, 0x7]
-_0801E1F6:
- cmp r3, 0
- beq _0801E204
-_0801E1FA:
- adds r0, r3, 0
- ldr r1, _0801E214 @ =gUnknown_02024C07
- ldrb r1, [r1]
- bl b_std_message
-_0801E204:
- ldr r1, _0801E218 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
-_0801E20A:
- str r0, [r1]
-_0801E20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E214: .4byte gUnknown_02024C07
-_0801E218: .4byte gUnknown_02024C10
- thumb_func_end atk0F_resultmessage
-
- thumb_func_start atk10_printstring
-atk10_printstring: @ 801E21C
- push {r4,lr}
- ldr r0, _0801E24C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E246
- ldr r4, _0801E250 @ =gUnknown_02024C10
- ldr r1, [r4]
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1, 0x2]
- lsls r1, 8
- orrs r0, r1
- ldr r1, _0801E254 @ =gUnknown_02024C07
- ldrb r1, [r1]
- bl b_std_message
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E258 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x7]
-_0801E246:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E24C: .4byte gUnknown_02024A64
-_0801E250: .4byte gUnknown_02024C10
-_0801E254: .4byte gUnknown_02024C07
-_0801E258: .4byte gUnknown_02024D1E
- thumb_func_end atk10_printstring
-
- thumb_func_start atk11_printstring2
-atk11_printstring2: @ 801E25C
- push {r4,r5,lr}
- ldr r5, _0801E290 @ =gUnknown_02024A60
- ldr r0, _0801E294 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _0801E298 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl dp01_build_cmdbuf_x11_TODO
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- ldr r1, _0801E29C @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x7]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E290: .4byte gUnknown_02024A60
-_0801E294: .4byte gUnknown_02024C07
-_0801E298: .4byte gUnknown_02024C10
-_0801E29C: .4byte gUnknown_02024D1E
- thumb_func_end atk11_printstring2
-
- thumb_func_start atk12_waitmessage
-atk12_waitmessage: @ 801E2A0
- push {r4-r6,lr}
- ldr r0, _0801E2BC @ =gUnknown_02024A64
- ldr r4, [r0]
- cmp r4, 0
- bne _0801E2EE
- ldr r6, _0801E2C0 @ =gUnknown_02024D1E
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _0801E2C8
- ldr r1, _0801E2C4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- b _0801E2EE
- .align 2, 0
-_0801E2BC: .4byte gUnknown_02024A64
-_0801E2C0: .4byte gUnknown_02024D1E
-_0801E2C4: .4byte gUnknown_02024C10
-_0801E2C8:
- ldr r5, _0801E2F4 @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _0801E2F8 @ =gUnknown_02024D18
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _0801E2EE
- movs r1, 0
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
- strb r1, [r6, 0x7]
-_0801E2EE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E2F4: .4byte gUnknown_02024C10
-_0801E2F8: .4byte gUnknown_02024D18
- thumb_func_end atk12_waitmessage
-
- thumb_func_start atk13_printfromtable
-atk13_printfromtable: @ 801E2FC
- push {r4,r5,lr}
- ldr r0, _0801E340 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E33A
- ldr r4, _0801E344 @ =gUnknown_02024C10
- 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
- ldr r5, _0801E348 @ =gUnknown_02024D1E
- ldrb r0, [r5, 0x5]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- ldr r1, _0801E34C @ =gUnknown_02024C07
- ldrb r1, [r1]
- bl b_std_message
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- movs r0, 0x1
- strb r0, [r5, 0x7]
-_0801E33A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E340: .4byte gUnknown_02024A64
-_0801E344: .4byte gUnknown_02024C10
-_0801E348: .4byte gUnknown_02024D1E
-_0801E34C: .4byte gUnknown_02024C07
- thumb_func_end atk13_printfromtable
-
- thumb_func_start atk14_printfromtable2
-atk14_printfromtable2: @ 801E350
- push {r4-r6,lr}
- ldr r0, _0801E3A0 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801E39A
- ldr r5, _0801E3A4 @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r6, _0801E3A8 @ =gUnknown_02024D1E
- ldrb r0, [r6, 0x5]
- lsls r0, 1
- adds r1, r0
- ldr r4, _0801E3AC @ =gUnknown_02024A60
- ldr r0, _0801E3B0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldrh r1, [r1]
- movs r0, 0
- bl dp01_build_cmdbuf_x11_TODO
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
- movs r0, 0x1
- strb r0, [r6, 0x7]
-_0801E39A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801E3A0: .4byte gUnknown_02024A64
-_0801E3A4: .4byte gUnknown_02024C10
-_0801E3A8: .4byte gUnknown_02024D1E
-_0801E3AC: .4byte gUnknown_02024A60
-_0801E3B0: .4byte gUnknown_02024C07
- thumb_func_end atk14_printfromtable2
-
- thumb_func_start sub_801E3B4
-sub_801E3B4: @ 801E3B4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r0, _0801E3E4 @ =gUnknown_02024A68
- ldrb r3, [r0]
- cmp r1, r3
- bge _0801E3DA
- ldr r4, _0801E3E8 @ =gUnknown_02024A7A
- ldrb r0, [r4]
- cmp r0, r2
- beq _0801E3DA
-_0801E3CC:
- adds r1, 0x1
- cmp r1, r3
- bge _0801E3DA
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0801E3CC
-_0801E3DA:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0801E3E4: .4byte gUnknown_02024A68
-_0801E3E8: .4byte gUnknown_02024A7A
- thumb_func_end sub_801E3B4
-
- thumb_func_start sub_801E3EC
-sub_801E3EC: @ 801E3EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- movs r0, 0
- mov r10, r0
- movs r6, 0
- movs r1, 0x1
- str r1, [sp, 0x4]
- ldr r1, _0801E430 @ =gUnknown_02024D1E
- ldrb r3, [r1, 0x3]
- movs r0, 0x40
- ands r0, r3
- adds r7, r1, 0
- cmp r0, 0
- beq _0801E444
- ldr r2, _0801E434 @ =gUnknown_02024C0A
- ldr r0, _0801E438 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0xBF
- ands r0, r3
- strb r0, [r7, 0x3]
- movs r6, 0x40
- ldr r0, _0801E43C @ =0x02000000
- ldr r1, _0801E440 @ =gUnknown_02024C08
- b _0801E450
- .align 2, 0
-_0801E430: .4byte gUnknown_02024D1E
-_0801E434: .4byte gUnknown_02024C0A
-_0801E438: .4byte gUnknown_02024C07
-_0801E43C: .4byte 0x02000000
-_0801E440: .4byte gUnknown_02024C08
-_0801E444:
- ldr r2, _0801E538 @ =gUnknown_02024C0A
- ldr r0, _0801E53C @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r0, _0801E540 @ =0x02000000
- ldr r1, _0801E544 @ =gUnknown_02024C07
-_0801E450:
- ldrb r1, [r1]
- ldr r3, _0801E548 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- mov r8, r2
- ldr r2, _0801E54C @ =gBattleMons
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0801E48A
- ldr r0, _0801E550 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E48A
- cmp r4, 0
- bne _0801E48A
- ldrb r0, [r7, 0x3]
- cmp r0, 0x9
- bhi _0801E48A
- bl _0801F5DC
-_0801E48A:
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- ldr r2, _0801E554 @ =gUnknown_02024C7A
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0801E4C4
- ldr r0, _0801E550 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- bne _0801E4C4
- cmp r4, 0
- bne _0801E4C4
- ldr r0, _0801E558 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- cmp r0, 0x7
- bhi _0801E4C4
- bl _0801F5DC
-_0801E4C4:
- ldr r3, _0801E54C @ =gBattleMons
- ldr r2, _0801E538 @ =gUnknown_02024C0A
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- mov r8, r2
- mov r9, r3
- cmp r0, 0
- bne _0801E4EA
- ldr r0, _0801E558 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- cmp r0, 0xB
- beq _0801E4EA
- cmp r0, 0x1F
- beq _0801E4EA
- bl _0801F5DC
-_0801E4EA:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0801E50C
- cmp r6, 0x40
- beq _0801E50C
- bl _0801F5DC
-_0801E50C:
- ldr r0, _0801E558 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x3]
- adds r7, r0, 0
- cmp r1, 0x6
- bls _0801E518
- b _0801EB4A
-_0801E518:
- ldr r1, _0801E55C @ =gUnknown_081FAB5C
- ldrb r0, [r7, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x10
- bne _0801E528
- b _0801E714
-_0801E528:
- cmp r0, 0x10
- bhi _0801E560
- cmp r0, 0x7
- beq _0801E57A
- cmp r0, 0x8
- bne _0801E536
- b _0801E630
-_0801E536:
- b _0801EA14
- .align 2, 0
-_0801E538: .4byte gUnknown_02024C0A
-_0801E53C: .4byte gUnknown_02024C08
-_0801E540: .4byte 0x02000000
-_0801E544: .4byte gUnknown_02024C07
-_0801E548: .4byte 0x00016003
-_0801E54C: .4byte gBattleMons
-_0801E550: .4byte gUnknown_02024C6C
-_0801E554: .4byte gUnknown_02024C7A
-_0801E558: .4byte gUnknown_02024D1E
-_0801E55C: .4byte gUnknown_081FAB5C
-_0801E560:
- cmp r0, 0x40
- bne _0801E566
- b _0801E888
-_0801E566:
- cmp r0, 0x40
- bhi _0801E572
- cmp r0, 0x20
- bne _0801E570
- b _0801E7EA
-_0801E570:
- b _0801EA14
-_0801E572:
- cmp r0, 0x80
- bne _0801E578
- b _0801E8E4
-_0801E578:
- b _0801EA14
-_0801E57A:
- mov r3, r8
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- beq _0801E5DC
- ldr r0, _0801E5D4 @ =gUnknown_02024A60
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0801E5D8 @ =gUnknown_02024A68
- ldrb r3, [r1]
- adds r7, r0, 0
- mov r12, r1
- cmp r3, 0
- beq _0801E5E8
- mov r4, r9
- ldr r0, [r4, 0x50]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- bne _0801E5E8
- adds r1, r7, 0
- mov r6, r9
- adds r6, 0x50
- movs r5, 0x58
- movs r4, 0x70
-_0801E5B4:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcs _0801E5E8
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801E5B4
- b _0801E5E8
- .align 2, 0
-_0801E5D4: .4byte gUnknown_02024A60
-_0801E5D8: .4byte gUnknown_02024A68
-_0801E5DC:
- ldr r0, _0801E628 @ =gUnknown_02024A60
- ldr r2, _0801E62C @ =gUnknown_02024A68
- ldrb r1, [r2]
- strb r1, [r0]
- adds r7, r0, 0
- mov r12, r2
-_0801E5E8:
- mov r0, r8
- ldrb r2, [r0]
- movs r0, 0x58
- adds r1, r2, 0
- muls r1, r0
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E600
- b _0801EA14
-_0801E600:
- ldrb r0, [r7]
- mov r3, r12
- ldrb r3, [r3]
- cmp r0, r3
- beq _0801E60C
- b _0801EA14
-_0801E60C:
- mov r4, r9
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x48
- bne _0801E61A
- b _0801EA14
-_0801E61A:
- cmp r0, 0xF
- bne _0801E620
- b _0801EA14
-_0801E620:
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- b _0801EA04
- .align 2, 0
-_0801E628: .4byte gUnknown_02024A60
-_0801E62C: .4byte gUnknown_02024A68
-_0801E630:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E688
- cmp r4, 0x1
- beq _0801E64A
- cmp r5, 0x80
- bne _0801E688
-_0801E64A:
- ldr r0, _0801E678 @ =byte_2024C06
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x11
- bl sub_81074C4
- ldr r4, _0801E67C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E680 @ =BattleScript_1D98BD
-_0801E664:
- str r0, [r4]
- ldr r2, _0801E684 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E676
- b _0801E928
-_0801E676:
- b _0801E94C
- .align 2, 0
-_0801E678: .4byte byte_2024C06
-_0801E67C: .4byte gUnknown_02024C10
-_0801E680: .4byte BattleScript_1D98BD
-_0801E684: .4byte gUnknown_02024C6C
-_0801E688:
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E6AC
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E6AC
- cmp r1, 0x8
- beq _0801E6AC
- cmp r0, 0x8
- bne _0801E6C6
-_0801E6AC:
- ldr r0, _0801E710 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E6C6
- cmp r4, 0x1
- bne _0801E6C0
- b _0801E98C
-_0801E6C0:
- cmp r5, 0x80
- bne _0801E6C6
- b _0801E98C
-_0801E6C6:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r1, r0
- mov r4, r9
- adds r3, r1, r4
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r4, [r0]
- cmp r4, 0x3
- bne _0801E6DE
- b _0801EA14
-_0801E6DE:
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _0801E6E8
- b _0801EA14
-_0801E6E8:
- cmp r4, 0x8
- bne _0801E6EE
- b _0801EA14
-_0801E6EE:
- cmp r0, 0x8
- bne _0801E6F4
- b _0801EA14
-_0801E6F4:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E702
- b _0801EA14
-_0801E702:
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0801E70E
- b _0801EA14
-_0801E70E:
- b _0801EA04
- .align 2, 0
-_0801E710: .4byte gUnknown_02024C6C
-_0801E714:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x29
- bne _0801E758
- cmp r4, 0x1
- beq _0801E72E
- cmp r5, 0x80
- bne _0801E758
-_0801E72E:
- ldr r0, _0801E74C @ =byte_2024C06
- strb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x29
- bl sub_81074C4
- ldr r4, _0801E750 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E754 @ =BattleScript_1D98A5
- b _0801E664
- .align 2, 0
-_0801E74C: .4byte byte_2024C06
-_0801E750: .4byte gUnknown_02024C10
-_0801E754: .4byte BattleScript_1D98A5
-_0801E758:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- beq _0801E778
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7A8
-_0801E778:
- ldr r0, _0801E79C @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E7A8
- cmp r4, 0x1
- beq _0801E78E
- cmp r5, 0x80
- bne _0801E7A8
-_0801E78E:
- ldr r4, _0801E7A0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E7A4 @ =BattleScript_1D98A5
- b _0801E998
- .align 2, 0
-_0801E79C: .4byte gUnknown_02024C6C
-_0801E7A0: .4byte gUnknown_02024C10
-_0801E7A4: .4byte BattleScript_1D98A5
-_0801E7A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x58
- adds r2, r0, 0
- muls r2, r1
- mov r4, r9
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7C2
- b _0801EA14
-_0801E7C2:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xA
- bne _0801E7CE
- b _0801EA14
-_0801E7CE:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x29
- bne _0801E7DA
- b _0801EA14
-_0801E7DA:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E7E8
- b _0801EA14
-_0801E7E8:
- b _0801EA04
-_0801E7EA:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0801E826
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0801E826
- ldr r0, _0801E87C @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0801E826
- movs r1, 0
- str r1, [sp, 0x4]
-_0801E826:
- ldr r4, _0801E880 @ =gBattleMons
- ldr r0, _0801E884 @ =gUnknown_02024C0A
- ldrb r3, [r0]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r1, r2, r4
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E840
- b _0801EA14
-_0801E840:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- bne _0801E84C
- b _0801EA14
-_0801E84C:
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E85A
- b _0801EA14
-_0801E85A:
- ldr r2, [sp, 0x4]
- cmp r2, 0
- bne _0801E862
- b _0801EA14
-_0801E862:
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x28
- bne _0801E86E
- b _0801EA14
-_0801E86E:
- adds r0, r3, 0
- bl b_cancel_multi_turn_move_maybe
- movs r3, 0x1
- mov r10, r3
- b _0801EA14
- .align 2, 0
-_0801E87C: .4byte word_2024DB8
-_0801E880: .4byte gBattleMons
-_0801E884: .4byte gUnknown_02024C0A
-_0801E888:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x7
- bne _0801E8D0
- cmp r4, 0x1
- beq _0801E8A6
- cmp r5, 0x80
- beq _0801E8A6
- b _0801EA14
-_0801E8A6:
- ldr r0, _0801E8C4 @ =byte_2024C06
- strb r2, [r0]
- mov r3, r8
- ldrb r0, [r3]
- movs r1, 0x7
- bl sub_81074C4
- ldr r4, _0801E8C8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E8CC @ =BattleScript_1D98B1
- b _0801E664
- .align 2, 0
-_0801E8C4: .4byte byte_2024C06
-_0801E8C8: .4byte gUnknown_02024C10
-_0801E8CC: .4byte BattleScript_1D98B1
-_0801E8D0:
- mov r0, r9
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0801E8DE
- b _0801EA14
-_0801E8DE:
- movs r4, 0x1
- mov r10, r4
- b _0801EA14
-_0801E8E4:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x11
- bne _0801E952
- cmp r4, 0x1
- beq _0801E8FE
- cmp r5, 0x80
- bne _0801E952
-_0801E8FE:
- ldr r0, _0801E938 @ =byte_2024C06
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x11
- bl sub_81074C4
- ldr r4, _0801E93C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E940 @ =BattleScript_1D98BD
- str r0, [r4]
- ldr r2, _0801E944 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E94C
-_0801E928:
- movs r0, 0x1
- strb r0, [r7, 0x5]
- ldr r0, _0801E948 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- bl _0801F5FA
- .align 2, 0
-_0801E938: .4byte byte_2024C06
-_0801E93C: .4byte gUnknown_02024C10
-_0801E940: .4byte BattleScript_1D98BD
-_0801E944: .4byte gUnknown_02024C6C
-_0801E948: .4byte 0xffffdfff
-_0801E94C:
- strb r0, [r7, 0x5]
- bl _0801F5FA
-_0801E952:
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- add r0, r9
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0x3
- beq _0801E976
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801E976
- cmp r1, 0x8
- beq _0801E976
- cmp r0, 0x8
- bne _0801E9B4
-_0801E976:
- ldr r0, _0801E9A4 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0801E9B4
- cmp r4, 0x1
- beq _0801E98C
- cmp r5, 0x80
- bne _0801E9B4
-_0801E98C:
- ldr r4, _0801E9A8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801E9AC @ =BattleScript_1D98BD
-_0801E998:
- str r0, [r4]
- ldr r1, _0801E9B0 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- bl _0801F5FA
- .align 2, 0
-_0801E9A4: .4byte gUnknown_02024C6C
-_0801E9A8: .4byte gUnknown_02024C10
-_0801E9AC: .4byte BattleScript_1D98BD
-_0801E9B0: .4byte gUnknown_02024D1E
-_0801E9B4:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r2, r9
- adds r2, 0x4C
- adds r5, r0, r2
- ldr r4, [r5]
- cmp r4, 0
- bne _0801EA14
- mov r3, r9
- adds r1, r0, r3
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r3, [r0]
- cmp r3, 0x3
- beq _0801EA0A
- adds r0, 0x1
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0801EA0A
- cmp r3, 0x8
- beq _0801EA0A
- cmp r0, 0x8
- beq _0801EA0A
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _0801EA14
- mov r4, r8
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x9
- negs r2, r2
- ands r0, r2
- str r0, [r1]
-_0801EA04:
- movs r0, 0x1
- mov r10, r0
- b _0801EA14
-_0801EA0A:
- ldr r0, _0801EA58 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0801EA14:
- mov r1, r10
- cmp r1, 0x1
- beq _0801EA1C
- b _0801EB3C
-_0801EA1C:
- ldr r0, _0801EA5C @ =gUnknown_02024C10
- ldr r0, [r0]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EA60 @ =gUnknown_081FAB5C
- ldr r0, _0801EA64 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r3, [r0]
- cmp r3, 0x7
- bne _0801EA70
- bl Random
- ldr r2, _0801EA68 @ =gBattleMons
- ldr r1, _0801EA6C @ =gUnknown_02024C0A
- ldrb r3, [r1]
- movs r1, 0x58
- muls r3, r1
- adds r2, 0x4C
- adds r3, r2
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- b _0801EA84
- .align 2, 0
-_0801EA58: .4byte gUnknown_02024C68
-_0801EA5C: .4byte gUnknown_02024C10
-_0801EA60: .4byte gUnknown_081FAB5C
-_0801EA64: .4byte gUnknown_02024D1E
-_0801EA68: .4byte gBattleMons
-_0801EA6C: .4byte gUnknown_02024C0A
-_0801EA70:
- ldr r2, _0801EAD4 @ =gBattleMons
- ldr r0, _0801EAD8 @ =gUnknown_02024C0A
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r2, 0x4C
- adds r1, r2
- ldr r0, [r1]
- orrs r0, r3
- str r0, [r1]
-_0801EA84:
- ldr r2, _0801EADC @ =gUnknown_02024C10
- ldr r1, _0801EAE0 @ =gUnknown_081FAC4C
- ldr r5, _0801EAE4 @ =gUnknown_02024D1E
- ldrb r0, [r5, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r4, _0801EAE8 @ =gUnknown_02024A60
- ldr r1, _0801EAD8 @ =gUnknown_02024C0A
- ldrb r0, [r1]
- strb r0, [r4]
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- ldr r1, _0801EAEC @ =gUnknown_02024ACC
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r2, _0801EAF0 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _0801EAF8
- movs r0, 0x1
- strb r0, [r5, 0x5]
- ldr r0, _0801EAF4 @ =0xffffdfff
- ands r1, r0
- str r1, [r2]
- b _0801EAFA
- .align 2, 0
-_0801EAD4: .4byte gBattleMons
-_0801EAD8: .4byte gUnknown_02024C0A
-_0801EADC: .4byte gUnknown_02024C10
-_0801EAE0: .4byte gUnknown_081FAC4C
-_0801EAE4: .4byte gUnknown_02024D1E
-_0801EAE8: .4byte gUnknown_02024A60
-_0801EAEC: .4byte gUnknown_02024ACC
-_0801EAF0: .4byte gUnknown_02024C6C
-_0801EAF4: .4byte 0xffffdfff
-_0801EAF8:
- strb r0, [r5, 0x5]
-_0801EAFA:
- ldr r0, _0801EB2C @ =gUnknown_02024D1E
- ldrb r2, [r0, 0x3]
- adds r7, r0, 0
- cmp r2, 0x2
- beq _0801EB14
- cmp r2, 0x6
- beq _0801EB14
- cmp r2, 0x5
- beq _0801EB14
- cmp r2, 0x3
- beq _0801EB14
- bl _0801F5FA
-_0801EB14:
- ldr r0, _0801EB30 @ =0x02000000
- ldrb r1, [r7, 0x3]
- ldr r2, _0801EB34 @ =0x000160ca
- adds r0, r2
- strb r1, [r0]
- ldr r2, _0801EB38 @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 7
- bl _0801F4F2
- .align 2, 0
-_0801EB2C: .4byte gUnknown_02024D1E
-_0801EB30: .4byte 0x02000000
-_0801EB34: .4byte 0x000160ca
-_0801EB38: .4byte gUnknown_02024C6C
-_0801EB3C:
- mov r3, r10
- cmp r3, 0
- beq _0801EB46
- bl _0801F5FA
-_0801EB46:
- bl _0801F5DC
-_0801EB4A:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- mov r0, r9
- adds r0, 0x50
- adds r1, r0
- ldr r2, _0801EB84 @ =gUnknown_081FAB5C
- ldrb r3, [r7, 0x3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r1, [r1]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801EB6E
- bl _0801F5DC
-_0801EB6E:
- subs r0, r3, 0x7
- cmp r0, 0x34
- bls _0801EB78
- bl _0801F5FA
-_0801EB78:
- lsls r0, 2
- ldr r1, _0801EB88 @ =_0801EB8C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801EB84: .4byte gUnknown_081FAB5C
-_0801EB88: .4byte _0801EB8C
- .align 2, 0
-_0801EB8C:
- .4byte _0801EC60
- .4byte _0801ECD4
- .4byte _0801EE4C
- .4byte _0801ED60
- .4byte _0801EDDC
- .4byte _0801EE84
- .4byte _0801EECC
- .4byte _0801EFA8
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801EFEC
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F040
- .4byte _0801F13C
- .4byte _0801F184
- .4byte _0801F1A4
- .4byte _0801F364
- .4byte _0801F3A0
- .4byte _0801F3BC
- .4byte _0801F3D4
- .4byte _0801F3EC
- .4byte _0801F44C
- .4byte _0801F464
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F094
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F0E8
- .4byte _0801F4A8
- .4byte _0801F500
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5FA
- .4byte _0801F5EC
-_0801EC60:
- mov r1, r8
- ldrb r0, [r1]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- mov r2, r9
- adds r0, r1, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0801EC7A
- bl _0801F5DC
-_0801EC7A:
- mov r4, r9
- adds r4, 0x50
- adds r0, r1, r4
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0801EC8E
- bl _0801F5DC
-_0801EC8E:
- bl Random
- mov r3, r8
- ldrb r1, [r3]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 16
- adds r1, 0x2
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801ECC8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801ECCC @ =gUnknown_081FAC4C
- ldr r0, _0801ECD0 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801ECC8: .4byte gUnknown_02024C10
-_0801ECCC: .4byte gUnknown_081FAC4C
-_0801ECD0: .4byte gUnknown_02024D1E
-_0801ECD4:
- mov r0, r8
- ldrb r2, [r0]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- add r0, r9
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, 0x27
- bne _0801ED18
- cmp r4, 0x1
- beq _0801ECF4
- cmp r5, 0x80
- beq _0801ECF4
- bl _0801F5DC
-_0801ECF4:
- ldr r0, _0801ED0C @ =byte_2024C06
- strb r1, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x27
- bl sub_81074C4
- ldr r1, _0801ED10 @ =gUnknown_02024C10
- ldr r0, _0801ED14 @ =gUnknown_081D98D7
- str r0, [r1]
- bl _0801F5FA
- .align 2, 0
-_0801ED0C: .4byte byte_2024C06
-_0801ED10: .4byte gUnknown_02024C10
-_0801ED14: .4byte gUnknown_081D98D7
-_0801ED18:
- adds r0, r2, 0
- bl sub_801E3B4
- ldr r1, _0801ED54 @ =gUnknown_02024A7E
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bhi _0801ED2E
- bl _0801F5DC
-_0801ED2E:
- mov r2, r8
- ldrb r0, [r2]
- adds r2, r0, 0
- muls r2, r6
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r1, _0801ED58 @ =gUnknown_081FAB5C
- ldr r0, _0801ED5C @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2]
- bl _0801F5DC
- .align 2, 0
-_0801ED54: .4byte gUnknown_02024A7E
-_0801ED58: .4byte gUnknown_081FAB5C
-_0801ED5C: .4byte gUnknown_02024D1E
-_0801ED60:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0x70
- ands r0, r1
- cmp r0, 0
- beq _0801ED7C
- bl _0801F5DC
-_0801ED7C:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801EDC8 @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EDCC @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x2
- lsls r1, 4
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r4, _0801EDD0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EDD4 @ =gUnknown_081FAC4C
- ldr r0, _0801EDD8 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EDC8: .4byte gUnknown_02024C54
-_0801EDCC: .4byte gUnknown_02024BE6
-_0801EDD0: .4byte gUnknown_02024C10
-_0801EDD4: .4byte gUnknown_081FAC4C
-_0801EDD8: .4byte gUnknown_02024D1E
-_0801EDDC:
- ldr r5, _0801EE30 @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0801EE14
- ldr r4, _0801EE34 @ =gUnknown_02024D1A
- ldrh r3, [r4]
- ldr r2, _0801EE38 @ =gBattleMons
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r3, r0
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r3, r0
- bls _0801EE14
- ldr r3, _0801EE3C @ =0x0000ffff
- adds r0, r3, 0
- strh r0, [r4]
-_0801EE14:
- ldr r4, _0801EE40 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EE44 @ =gUnknown_081FAC4C
- ldr r0, _0801EE48 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _0801F5F8
- .align 2, 0
-_0801EE30: .4byte gUnknown_02024C07
-_0801EE34: .4byte gUnknown_02024D1A
-_0801EE38: .4byte gBattleMons
-_0801EE3C: .4byte 0x0000ffff
-_0801EE40: .4byte gUnknown_02024C10
-_0801EE44: .4byte gUnknown_081FAC4C
-_0801EE48: .4byte gUnknown_02024D1E
-_0801EE4C:
- mov r4, r8
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- beq _0801EE62
- b _0801F5DC
-_0801EE62:
- bl Random
- ldr r4, _0801EE80 @ =gUnknown_02024D1E
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- adds r0, 0x3
- strb r0, [r4, 0x3]
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F5FA
- .align 2, 0
-_0801EE80: .4byte gUnknown_02024D1E
-_0801EE84:
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _0801EEC0 @ =gUnknown_02024C54
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801EEC4 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- ldr r0, _0801EEC8 @ =gUnknown_02024D28
- ldrb r1, [r2]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1, 0x1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x1]
- b _0801F5DC
- .align 2, 0
-_0801EEC0: .4byte gUnknown_02024C54
-_0801EEC4: .4byte gUnknown_02024BE6
-_0801EEC8: .4byte gUnknown_02024D28
-_0801EECC:
- mov r3, r8
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- mov r4, r9
- adds r4, 0x50
- adds r0, r4
- ldr r5, [r0]
- movs r0, 0xE0
- lsls r0, 8
- ands r5, r0
- cmp r5, 0
- beq _0801EEE8
- b _0801F5DC
-_0801EEE8:
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r6
- adds r2, r4
- movs r1, 0x3
- ands r1, r0
- adds r1, 0x3
- lsls r1, 13
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801EF80 @ =0x02000000
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _0801EF84 @ =0x00016004
- adds r0, r4
- adds r0, r2
- ldr r6, _0801EF88 @ =gUnknown_02024BE6
- ldrh r1, [r6]
- strb r1, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- ldr r1, _0801EF8C @ =0x00016005
- adds r0, r1
- adds r0, r2
- ldrh r1, [r6]
- lsrs r1, 8
- strb r1, [r0]
- ldrb r0, [r3]
- ldr r3, _0801EF90 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldr r1, _0801EF94 @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r4, _0801EF98 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EF9C @ =gUnknown_081FAC4C
- ldr r2, _0801EFA0 @ =gUnknown_02024D1E
- ldrb r0, [r2, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r4]
- strb r5, [r2, 0x5]
- ldr r1, _0801EFA4 @ =gUnknown_0840164C
- ldrh r0, [r1]
- ldrh r4, [r6]
- cmp r0, r4
- bne _0801EF5C
- b _0801F5FA
-_0801EF5C:
- adds r3, r1, 0
- adds r1, r6, 0
-_0801EF60:
- ldrb r0, [r2, 0x5]
- adds r0, 0x1
- strb r0, [r2, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bls _0801EF70
- b _0801F5FA
-_0801EF70:
- ldrb r0, [r2, 0x5]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- ldrh r4, [r1]
- cmp r0, r4
- bne _0801EF60
- b _0801F5FA
- .align 2, 0
-_0801EF80: .4byte 0x02000000
-_0801EF84: .4byte 0x00016004
-_0801EF88: .4byte gUnknown_02024BE6
-_0801EF8C: .4byte 0x00016005
-_0801EF90: .4byte 0x00016020
-_0801EF94: .4byte gUnknown_02024C07
-_0801EF98: .4byte gUnknown_02024C10
-_0801EF9C: .4byte gUnknown_081FAC4C
-_0801EFA0: .4byte gUnknown_02024D1E
-_0801EFA4: .4byte gUnknown_0840164C
-_0801EFA8:
- ldr r1, _0801EFD8 @ =gUnknown_02024BEC
- ldr r0, _0801EFDC @ =gUnknown_02024BF0
- ldr r0, [r0]
- cmp r0, 0
- bge _0801EFB4
- adds r0, 0x3
-_0801EFB4:
- asrs r0, 2
- str r0, [r1]
- cmp r0, 0
- bne _0801EFC0
- movs r0, 0x1
- str r0, [r1]
-_0801EFC0:
- ldr r4, _0801EFE0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801EFE4 @ =gUnknown_081FAC4C
- ldr r0, _0801EFE8 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801EFD8: .4byte gUnknown_02024BEC
-_0801EFDC: .4byte gUnknown_02024BF0
-_0801EFE0: .4byte gUnknown_02024C10
-_0801EFE4: .4byte gUnknown_081FAC4C
-_0801EFE8: .4byte gUnknown_02024D1E
-_0801EFEC:
- ldrb r1, [r7, 0x3]
- adds r1, 0xF2
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x10
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F008
- b _0801F5DC
-_0801F008:
- ldr r2, _0801F02C @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F030 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F034 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F038 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F03C @ =gUnknown_081D71E5
- b _0801F5F8
- .align 2, 0
-_0801F02C: .4byte 0x02000000
-_0801F030: .4byte 0x000160a4
-_0801F034: .4byte 0x000160a5
-_0801F038: .4byte gUnknown_02024C10
-_0801F03C: .4byte gUnknown_081D71E5
-_0801F040:
- movs r0, 0x70
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xEB
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F05E
- b _0801F5DC
-_0801F05E:
- ldr r2, _0801F080 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F084 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F088 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F08C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F090 @ =gUnknown_081D7276
- b _0801F5F8
- .align 2, 0
-_0801F080: .4byte 0x02000000
-_0801F084: .4byte 0x000160a4
-_0801F088: .4byte 0x000160a5
-_0801F08C: .4byte gUnknown_02024C10
-_0801F090: .4byte gUnknown_081D7276
-_0801F094:
- ldrb r1, [r7, 0x3]
- adds r1, 0xDA
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x20
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F0B0
- b _0801F5DC
-_0801F0B0:
- ldr r2, _0801F0D4 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F0D8 @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F0DC @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F0E0 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F0E4 @ =gUnknown_081D71E5
- b _0801F5F8
- .align 2, 0
-_0801F0D4: .4byte 0x02000000
-_0801F0D8: .4byte 0x000160a4
-_0801F0DC: .4byte 0x000160a5
-_0801F0E0: .4byte gUnknown_02024C10
-_0801F0E4: .4byte gUnknown_081D71E5
-_0801F0E8:
- movs r0, 0x60
- negs r0, r0
- ldrb r1, [r7, 0x3]
- adds r1, 0xD3
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- movs r3, 0
- bl sub_8025E20
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- beq _0801F106
- b _0801F5DC
-_0801F106:
- ldr r2, _0801F128 @ =0x02000000
- ldrb r1, [r7, 0x3]
- movs r0, 0x3F
- ands r0, r1
- ldr r4, _0801F12C @ =0x000160a4
- adds r1, r2, r4
- strb r0, [r1]
- ldr r0, _0801F130 @ =0x000160a5
- adds r2, r0
- strb r3, [r2]
- ldr r4, _0801F134 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F138 @ =gUnknown_081D7276
- b _0801F5F8
- .align 2, 0
-_0801F128: .4byte 0x02000000
-_0801F12C: .4byte 0x000160a4
-_0801F130: .4byte 0x000160a5
-_0801F134: .4byte gUnknown_02024C10
-_0801F138: .4byte gUnknown_081D7276
-_0801F13C:
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F178 @ =gUnknown_02024CA8
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0, 0x19]
- ldr r1, _0801F17C @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F180 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0801F5DC
- .align 2, 0
-_0801F178: .4byte gUnknown_02024CA8
-_0801F17C: .4byte gUnknown_02024C54
-_0801F180: .4byte gUnknown_02024BE6
-_0801F184:
- ldr r0, _0801F1A0 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 16
-_0801F19A:
- orrs r0, r1
- str r0, [r2]
- b _0801F5DC
- .align 2, 0
-_0801F1A0: .4byte gUnknown_02024C07
-_0801F1A4:
- ldr r4, _0801F254 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0801F1D8
- ldr r0, _0801F258 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F1D8
- b _0801F5DC
-_0801F1D8:
- ldr r0, _0801F258 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0801F25C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0801F214
- ldr r0, _0801F260 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0801F214
- ldr r0, _0801F264 @ =gUnknown_02024DBC
- adds r0, 0x29
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r3, _0801F268 @ =gBitTable
- ldr r2, _0801F26C @ =gUnknown_02024A6A
- ldr r0, _0801F254 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F214
- b _0801F5DC
-_0801F214:
- ldr r2, _0801F270 @ =gBattleMons
- ldr r1, _0801F274 @ =gUnknown_02024C08
- ldrb r0, [r1]
- movs r3, 0x58
- muls r0, r3
- adds r4, r0, r2
- ldrh r0, [r4, 0x2E]
- adds r7, r1, 0
- mov r9, r2
- cmp r0, 0
- beq _0801F284
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0801F284
- ldr r1, _0801F278 @ =gUnknown_02024C10
- ldr r0, _0801F27C @ =gUnknown_081D9913
- str r0, [r1]
- ldr r1, _0801F280 @ =byte_2024C06
- ldrb r0, [r7]
- muls r0, r3
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl sub_81074C4
- b _0801F5FA
- .align 2, 0
-_0801F254: .4byte gUnknown_02024C07
-_0801F258: .4byte gUnknown_020239F8
-_0801F25C: .4byte 0x00000902
-_0801F260: .4byte gTrainerBattleOpponent
-_0801F264: .4byte gUnknown_02024DBC
-_0801F268: .4byte gBitTable
-_0801F26C: .4byte gUnknown_02024A6A
-_0801F270: .4byte gBattleMons
-_0801F274: .4byte gUnknown_02024C08
-_0801F278: .4byte gUnknown_02024C10
-_0801F27C: .4byte gUnknown_081D9913
-_0801F280: .4byte byte_2024C06
-_0801F284:
- ldr r4, _0801F340 @ =gUnknown_02024C07
- mov r10, r4
- ldrb r1, [r4]
- movs r0, 0x58
- mov r8, r0
- mov r0, r8
- muls r0, r1
- add r0, r9
- ldrh r3, [r0, 0x2E]
- cmp r3, 0
- beq _0801F29C
- b _0801F5DC
-_0801F29C:
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r2, [r0, 0x2E]
- adds r0, r2, 0
- cmp r0, 0xAF
- bne _0801F2B0
- b _0801F5DC
-_0801F2B0:
- cmp r0, 0
- bne _0801F2B6
- b _0801F5DC
-_0801F2B6:
- lsls r0, r1, 1
- ldr r5, _0801F344 @ =0x020160f0
- adds r0, r5
- ldr r1, _0801F348 @ =gUnknown_02024C04
- strh r2, [r0]
- strh r2, [r1]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- add r0, r9
- movs r6, 0
- strh r3, [r0, 0x2E]
- ldr r4, _0801F34C @ =gUnknown_02024A60
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r4]
- str r1, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- mov r3, r10
- ldrb r0, [r3]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r7]
- strb r0, [r4]
- ldrb r0, [r7]
- mov r4, r8
- muls r4, r0
- adds r0, r4, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r4, _0801F350 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F354 @ =gUnknown_081D96F6
- str r0, [r4]
- ldr r0, _0801F358 @ =0xfffe9f10
- adds r5, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0801F35C @ =0x000160e8
- adds r0, r1
- adds r0, r5
- strb r6, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0801F360 @ =0x000160e9
- adds r0, r2
- adds r0, r5
- strb r6, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F340: .4byte gUnknown_02024C07
-_0801F344: .4byte 0x020160f0
-_0801F348: .4byte gUnknown_02024C04
-_0801F34C: .4byte gUnknown_02024A60
-_0801F350: .4byte gUnknown_02024C10
-_0801F354: .4byte gUnknown_081D96F6
-_0801F358: .4byte 0xfffe9f10
-_0801F35C: .4byte 0x000160e8
-_0801F360: .4byte 0x000160e9
-_0801F364:
- ldr r3, _0801F394 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- orrs r0, r1
- str r0, [r2]
- ldr r2, _0801F398 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0801F39C @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0, 0x14]
- b _0801F5DC
- .align 2, 0
-_0801F394: .4byte gUnknown_02024C08
-_0801F398: .4byte gUnknown_02024CA8
-_0801F39C: .4byte gUnknown_02024C07
-_0801F3A0:
- ldr r0, _0801F3B8 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- mov r0, r9
- adds r0, 0x50
- adds r2, r0
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 20
- b _0801F19A
- .align 2, 0
-_0801F3B8: .4byte gUnknown_02024C08
-_0801F3BC:
- ldr r4, _0801F3CC @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3D0 @ =gUnknown_081D9224
- b _0801F5F8
- .align 2, 0
-_0801F3CC: .4byte gUnknown_02024C10
-_0801F3D0: .4byte gUnknown_081D9224
-_0801F3D4:
- ldr r4, _0801F3E4 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F3E8 @ =gUnknown_081D92C0
- b _0801F5F8
- .align 2, 0
-_0801F3E4: .4byte gUnknown_02024C10
-_0801F3E8: .4byte gUnknown_081D92C0
-_0801F3EC:
- ldr r6, _0801F43C @ =gUnknown_02024C08
- ldrb r0, [r6]
- movs r2, 0x58
- muls r0, r2
- mov r1, r9
- adds r1, 0x4C
- adds r5, r0, r1
- ldr r4, [r5]
- movs r0, 0x40
- ands r0, r4
- cmp r0, 0
- bne _0801F406
- b _0801F5DC
-_0801F406:
- movs r0, 0x41
- negs r0, r0
- ands r4, r0
- str r4, [r5]
- ldr r4, _0801F440 @ =gUnknown_02024A60
- ldrb r0, [r6]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r4, _0801F444 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F448 @ =gUnknown_081D9635
- b _0801F5F8
- .align 2, 0
-_0801F43C: .4byte gUnknown_02024C08
-_0801F440: .4byte gUnknown_02024A60
-_0801F444: .4byte gUnknown_02024C10
-_0801F448: .4byte gUnknown_081D9635
-_0801F44C:
- ldr r4, _0801F45C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F460 @ =gUnknown_081D93FA
- b _0801F5F8
- .align 2, 0
-_0801F45C: .4byte gUnknown_02024C10
-_0801F460: .4byte gUnknown_081D93FA
-_0801F464:
- ldr r4, _0801F494 @ =gUnknown_02024BEC
- ldr r0, _0801F498 @ =gUnknown_02024BF0
- ldr r0, [r0]
- movs r1, 0x3
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _0801F47A
- movs r0, 0x1
- str r0, [r4]
-_0801F47A:
- ldr r4, _0801F49C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r1, _0801F4A0 @ =gUnknown_081FAC4C
- ldr r0, _0801F4A4 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- b _0801F5F8
- .align 2, 0
-_0801F494: .4byte gUnknown_02024BEC
-_0801F498: .4byte gUnknown_02024BF0
-_0801F49C: .4byte gUnknown_02024C10
-_0801F4A0: .4byte gUnknown_081FAC4C
-_0801F4A4: .4byte gUnknown_02024D1E
-_0801F4A8:
- mov r3, r8
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- mov r4, r9
- adds r4, 0x50
- adds r2, r0, r4
- ldr r1, [r2]
- movs r0, 0xC0
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0801F4C4
- b _0801F5DC
-_0801F4C4:
- movs r0, 0x80
- lsls r0, 5
- orrs r1, r0
- str r1, [r2]
- ldr r1, _0801F4F8 @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _0801F4FC @ =gUnknown_02024BE6
- ldrh r1, [r1]
- strh r1, [r0]
- bl Random
- mov r2, r8
- ldrb r1, [r2]
- adds r2, r1, 0
- muls r2, r5
- adds r2, r4
- movs r1, 0x1
- ands r1, r0
- adds r1, 0x2
- lsls r1, 10
- ldr r0, [r2]
-_0801F4F2:
- orrs r0, r1
- str r0, [r2]
- b _0801F5FA
- .align 2, 0
-_0801F4F8: .4byte gUnknown_02024C54
-_0801F4FC: .4byte gUnknown_02024BE6
-_0801F500:
- mov r5, r8
- ldrb r3, [r5]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- mov r2, r9
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0x3C
- bne _0801F540
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- ldr r0, _0801F534 @ =byte_2024C06
- strb r2, [r0]
- ldr r1, _0801F538 @ =gUnknown_02024C10
- ldr r0, _0801F53C @ =gUnknown_081D9913
- str r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x3C
- bl sub_81074C4
- b _0801F5FA
- .align 2, 0
-_0801F534: .4byte byte_2024C06
-_0801F538: .4byte gUnknown_02024C10
-_0801F53C: .4byte gUnknown_081D9913
-_0801F540:
- ldrh r0, [r1, 0x2E]
- cmp r0, 0
- beq _0801F5DC
- adds r0, r3, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0801F5B8 @ =gUnknown_02024C04
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r3]
- muls r0, r4
- add r0, r9
- movs r5, 0
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldr r2, _0801F5BC @ =gUnknown_02024DBC
- adds r2, 0x29
- adds r2, r6, r2
- ldr r3, _0801F5C0 @ =gBitTable
- ldr r1, _0801F5C4 @ =gUnknown_02024A6A
- mov r4, r8
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r4, _0801F5C8 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F5CC @ =gUnknown_081D944B
- str r0, [r4]
- ldr r1, _0801F5D0 @ =0x02000000
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- ldr r3, _0801F5D4 @ =0x000160e8
- adds r0, r3
- adds r0, r1
- strb r5, [r0]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r4, _0801F5D8 @ =0x000160e9
- adds r0, r4
- adds r0, r1
- strb r5, [r0]
- b _0801F5FA
- .align 2, 0
-_0801F5B8: .4byte gUnknown_02024C04
-_0801F5BC: .4byte gUnknown_02024DBC
-_0801F5C0: .4byte gBitTable
-_0801F5C4: .4byte gUnknown_02024A6A
-_0801F5C8: .4byte gUnknown_02024C10
-_0801F5CC: .4byte gUnknown_081D944B
-_0801F5D0: .4byte 0x02000000
-_0801F5D4: .4byte 0x000160e8
-_0801F5D8: .4byte 0x000160e9
-_0801F5DC:
- ldr r1, _0801F5E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- b _0801F5FA
- .align 2, 0
-_0801F5E8: .4byte gUnknown_02024C10
-_0801F5EC:
- ldr r4, _0801F60C @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _0801F610 @ =gUnknown_081D94B0
-_0801F5F8:
- str r0, [r4]
-_0801F5FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F60C: .4byte gUnknown_02024C10
-_0801F610: .4byte gUnknown_081D94B0
- thumb_func_end sub_801E3EC
-
- thumb_func_start atk15_seteffectwithchancetarget
-atk15_seteffectwithchancetarget: @ 801F614
- push {r4,lr}
- ldr r2, _0801F640 @ =gBattleMons
- ldr r0, _0801F644 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x20
- bne _0801F650
- ldr r2, _0801F648 @ =gBattleMoves
- ldr r0, _0801F64C @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x5]
- lsls r4, r0, 1
- b _0801F660
- .align 2, 0
-_0801F640: .4byte gBattleMons
-_0801F644: .4byte gUnknown_02024C07
-_0801F648: .4byte gBattleMoves
-_0801F64C: .4byte gUnknown_02024BE6
-_0801F650:
- ldr r2, _0801F680 @ =gBattleMoves
- ldr r0, _0801F684 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x5]
-_0801F660:
- ldr r3, _0801F688 @ =gUnknown_02024D1E
- ldrb r2, [r3, 0x3]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _0801F690
- ldr r0, _0801F68C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F690
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r3, 0x3]
- b _0801F6BE
- .align 2, 0
-_0801F680: .4byte gBattleMoves
-_0801F684: .4byte gUnknown_02024BE6
-_0801F688: .4byte gUnknown_02024D1E
-_0801F68C: .4byte gUnknown_02024C68
-_0801F690:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bhi _0801F6DA
- ldr r0, _0801F6C8 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _0801F6DA
- ldr r0, _0801F6CC @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0801F6DA
- cmp r4, 0x63
- bls _0801F6D0
-_0801F6BE:
- movs r0, 0
- movs r1, 0x80
- bl sub_801E3EC
- b _0801F6E2
- .align 2, 0
-_0801F6C8: .4byte gUnknown_02024D1E
-_0801F6CC: .4byte gUnknown_02024C68
-_0801F6D0:
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- b _0801F6E2
-_0801F6DA:
- ldr r1, _0801F6F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0801F6E2:
- ldr r0, _0801F6FC @ =gUnknown_02024D1E
- movs r1, 0
- strb r1, [r0, 0x3]
- ldr r0, _0801F700 @ =0x02000000
- ldr r2, _0801F704 @ =0x00016112
- adds r0, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0801F6F8: .4byte gUnknown_02024C10
-_0801F6FC: .4byte gUnknown_02024D1E
-_0801F700: .4byte 0x02000000
-_0801F704: .4byte 0x00016112
- thumb_func_end atk15_seteffectwithchancetarget
-
- thumb_func_start sub_801F708
-sub_801F708: @ 801F708
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end sub_801F708
-
- thumb_func_start sub_801F718
-sub_801F718: @ 801F718
- push {lr}
- movs r0, 0
- movs r1, 0
- bl sub_801E3EC
- pop {r0}
- bx r0
- thumb_func_end sub_801F718
-
- thumb_func_start sub_801F728
-sub_801F728: @ 801F728
- push {lr}
- ldr r0, _0801F74C @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _0801F750 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r3, _0801F754 @ =gUnknown_02024D1E
- ldrb r0, [r3, 0x3]
- cmp r0, 0x6
- bhi _0801F75C
- ldr r1, _0801F758 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x4C
- b _0801F766
- .align 2, 0
-_0801F74C: .4byte gUnknown_02024C10
-_0801F750: .4byte gUnknown_02024A60
-_0801F754: .4byte gUnknown_02024D1E
-_0801F758: .4byte gBattleMons
-_0801F75C:
- ldr r1, _0801F794 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
-_0801F766:
- adds r2, r1
- ldr r1, _0801F798 @ =gUnknown_081FAB5C
- ldrb r0, [r3, 0x3]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r0, _0801F79C @ =gUnknown_02024D1E
- movs r2, 0
- strb r2, [r0, 0x3]
- ldr r1, _0801F7A0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- ldr r0, _0801F7A4 @ =0x02000000
- ldr r1, _0801F7A8 @ =0x00016112
- adds r0, r1
- strb r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0801F794: .4byte gBattleMons
-_0801F798: .4byte gUnknown_081FAB5C
-_0801F79C: .4byte gUnknown_02024D1E
-_0801F7A0: .4byte gUnknown_02024C10
-_0801F7A4: .4byte 0x02000000
-_0801F7A8: .4byte 0x00016112
- thumb_func_end sub_801F728
-
- thumb_func_start sub_801F7AC
-sub_801F7AC: @ 801F7AC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0801F81C @ =gUnknown_02024C10
- ldr r2, [r0]
- ldrb r1, [r2, 0x2]
- adds r6, r0, 0
- cmp r1, 0
- beq _0801F834
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- ldr r5, _0801F820 @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r2, _0801F824 @ =gUnknown_02024C6C
- ldr r1, _0801F828 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0801F7E6
- b _0801FB1C
-_0801F7E6:
- ldr r1, [r6]
- ldrb r4, [r1, 0x3]
- ldrb r0, [r1, 0x4]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x6]
- lsls r0, 24
- orrs r4, r0
- bl b_movescr_stack_pop_cursor
- str r4, [r6]
- ldrb r0, [r5]
- bl battle_side_get_owner
- ldr r1, _0801F82C @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _0801F830 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- b _0801FB22
- .align 2, 0
-_0801F81C: .4byte gUnknown_02024C10
-_0801F820: .4byte gUnknown_02024A60
-_0801F824: .4byte gUnknown_02024C6C
-_0801F828: .4byte gBitTable
-_0801F82C: .4byte gUnknown_02024C7A
-_0801F830: .4byte 0x0000fdff
-_0801F834:
- ldrb r0, [r2, 0x1]
- cmp r0, 0x1
- bne _0801F85C
- ldr r1, _0801F84C @ =gUnknown_02024A60
- ldr r0, _0801F850 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F854 @ =gUnknown_02024C08
- ldrb r7, [r0]
- ldr r4, _0801F858 @ =gUnknown_081D8C58
- b _0801F86A
- .align 2, 0
-_0801F84C: .4byte gUnknown_02024A60
-_0801F850: .4byte gUnknown_02024C07
-_0801F854: .4byte gUnknown_02024C08
-_0801F858: .4byte gUnknown_081D8C58
-_0801F85C:
- ldr r1, _0801F954 @ =gUnknown_02024A60
- ldr r0, _0801F958 @ =gUnknown_02024C08
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _0801F95C @ =gUnknown_02024C07
- ldrb r7, [r0]
- ldr r4, _0801F960 @ =gUnknown_081D8C65
-_0801F86A:
- ldr r0, _0801F964 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r0, _0801F968 @ =gBitTable
- mov r12, r0
- ldr r2, _0801F954 @ =gUnknown_02024A60
- mov r8, r2
- ldrb r2, [r2]
- lsls r0, r2, 2
- add r0, r12
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0801F886
- b _0801FB1C
-_0801F886:
- ldr r3, _0801F96C @ =gBattleMons
- mov r10, r3
- movs r5, 0x58
- mov r9, r5
- mov r0, r9
- muls r0, r2
- add r0, r10
- ldrh r3, [r0, 0x28]
- cmp r3, 0
- beq _0801F89C
- b _0801FB1C
-_0801F89C:
- ldr r2, _0801F970 @ =0x02000000
- lsls r1, r7, 1
- ldr r5, _0801F974 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F978 @ =0x000160ad
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- lsls r1, r7, 2
- adds r5, 0x54
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- adds r5, 0x1
- adds r0, r1, r5
- adds r0, r2
- strb r3, [r0]
- ldr r0, _0801F97C @ =0x00016103
- adds r1, r0
- adds r1, r2
- strb r3, [r1]
- ldr r5, _0801F980 @ =gUnknown_02024C6C
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 2
- add r0, r12
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r5]
- orrs r0, r1
- str r0, [r5]
- ldr r0, [r6]
- adds r0, 0x7
- bl b_movescr_stack_push
- str r4, [r6]
- mov r2, r8
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0801F9B0
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 15
- orrs r0, r1
- str r0, [r5]
- ldr r1, _0801F984 @ =gUnknown_030042E0
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0801F914
- adds r0, 0x1
- strb r0, [r1]
-_0801F914:
- mov r0, r9
- muls r0, r7
- add r0, r10
- adds r3, r0, 0
- adds r3, 0x2A
- mov r4, r8
- ldrb r2, [r4]
- mov r0, r9
- muls r0, r2
- add r0, r10
- adds r1, r0, 0
- adds r1, 0x2A
- ldrb r0, [r3]
- ldrb r5, [r1]
- cmp r0, r5
- bls _0801F9CC
- ldrb r1, [r1]
- subs r0, r1
- cmp r0, 0x1D
- ble _0801F990
- ldr r1, _0801F988 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F98C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x8
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F954: .4byte gUnknown_02024A60
-_0801F958: .4byte gUnknown_02024C08
-_0801F95C: .4byte gUnknown_02024C07
-_0801F960: .4byte gUnknown_081D8C65
-_0801F964: .4byte gUnknown_02024C0C
-_0801F968: .4byte gBitTable
-_0801F96C: .4byte gBattleMons
-_0801F970: .4byte 0x02000000
-_0801F974: .4byte 0x000160ac
-_0801F978: .4byte 0x000160ad
-_0801F97C: .4byte 0x00016103
-_0801F980: .4byte gUnknown_02024C6C
-_0801F984: .4byte gUnknown_030042E0
-_0801F988: .4byte gUnknown_02024A6A
-_0801F98C: .4byte gPlayerParty
-_0801F990:
- ldr r1, _0801F9A8 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0801F9AC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x6
- bl AdjustFriendship
- b _0801F9CC
- .align 2, 0
-_0801F9A8: .4byte gUnknown_02024A6A
-_0801F9AC: .4byte gPlayerParty
-_0801F9B0:
- ldr r1, _0801FAE0 @ =gUnknown_030042E0
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFE
- bhi _0801F9BC
- adds r0, 0x1
- strb r0, [r1, 0x1]
-_0801F9BC:
- ldr r2, _0801FAE4 @ =gUnknown_02024A60
- ldrb r0, [r2]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r1, 0x20]
-_0801F9CC:
- ldr r0, _0801FAE8 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0801FA02
- ldr r6, _0801FAEC @ =gBattleMons
- ldr r0, _0801FAF0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FA02
- ldr r4, _0801FAF4 @ =gUnknown_02024C10
- ldr r0, [r4]
- bl b_movescr_stack_push
- ldr r1, _0801FAF8 @ =gUnknown_02024BEC
- adds r0, r7, 0
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r0, _0801FAFC @ =gUnknown_081D9156
- str r0, [r4]
-_0801FA02:
- ldr r1, _0801FB00 @ =gUnknown_02024C98
- ldr r6, _0801FB04 @ =gUnknown_02024C08
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 7
- ands r0, r1
- cmp r0, 0
- bne _0801FA1A
- b _0801FB22
-_0801FA1A:
- ldr r0, _0801FAE8 @ =gUnknown_02024C6C
- ldr r5, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r5, r0
- cmp r5, 0
- bne _0801FB22
- ldr r4, _0801FAF0 @ =gUnknown_02024C07
- mov r8, r4
- ldrb r0, [r4]
- bl battle_side_get_owner
- adds r4, r0, 0
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0801FB22
- ldr r0, _0801FAEC @ =gBattleMons
- mov r9, r0
- mov r1, r8
- ldrb r2, [r1]
- movs r7, 0x58
- adds r3, r2, 0
- muls r3, r7
- adds r0, r3, r0
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FB22
- ldr r0, _0801FB08 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xA5
- beq _0801FB22
- ldr r1, _0801FB0C @ =0x02000000
- ldr r4, _0801FB10 @ =0x0001608c
- adds r0, r2, r4
- adds r0, r1
- ldrb r4, [r0]
- adds r0, r4, r3
- mov r6, r9
- adds r6, 0x24
- adds r0, r6
- strb r5, [r0]
- ldr r5, _0801FAF4 @ =gUnknown_02024C10
- ldr r0, [r5]
- bl b_movescr_stack_push
- ldr r0, _0801FB14 @ =gUnknown_081D9468
- str r0, [r5]
- ldr r5, _0801FAE4 @ =gUnknown_02024A60
- mov r1, r8
- ldrb r0, [r1]
- strb r0, [r5]
- adds r1, r4, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r5]
- muls r0, r7
- adds r0, r6
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0801FB18 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r4, 1
- mov r2, r8
- ldrb r0, [r2]
- muls r0, r7
- adds r0, r4, r0
- mov r2, r9
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- mov r3, r8
- ldrb r0, [r3]
- muls r0, r7
- adds r4, r0
- adds r4, r2
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- b _0801FB22
- .align 2, 0
-_0801FAE0: .4byte gUnknown_030042E0
-_0801FAE4: .4byte gUnknown_02024A60
-_0801FAE8: .4byte gUnknown_02024C6C
-_0801FAEC: .4byte gBattleMons
-_0801FAF0: .4byte gUnknown_02024C07
-_0801FAF4: .4byte gUnknown_02024C10
-_0801FAF8: .4byte gUnknown_02024BEC
-_0801FAFC: .4byte gUnknown_081D9156
-_0801FB00: .4byte gUnknown_02024C98
-_0801FB04: .4byte gUnknown_02024C08
-_0801FB08: .4byte gUnknown_02024BE6
-_0801FB0C: .4byte 0x02000000
-_0801FB10: .4byte 0x0001608c
-_0801FB14: .4byte gUnknown_081D9468
-_0801FB18: .4byte gUnknown_030041C0
-_0801FB1C:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FB22:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_801F7AC
-
- thumb_func_start sub_801FB34
-sub_801FB34: @ 801FB34
- push {r4,r5,lr}
- ldr r0, _0801FB64 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0801FB5E
- ldr r5, _0801FB68 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FB6C @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x0A_A_A_A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FB5E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FB64: .4byte gUnknown_02024A64
-_0801FB68: .4byte gUnknown_02024C10
-_0801FB6C: .4byte gUnknown_02024A60
- thumb_func_end sub_801FB34
-
- thumb_func_start atkE2_cmde2
-atkE2_cmde2: @ 801FB70
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r0, _0801FBC4 @ =gUnknown_02024A64
- ldr r6, [r0]
- cmp r6, 0
- bne _0801FBBC
- ldr r5, _0801FBC8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0801FBCC @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r1, _0801FBD0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- str r6, [r0]
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl sub_8010F48
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_0801FBBC:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FBC4: .4byte gUnknown_02024A64
-_0801FBC8: .4byte gUnknown_02024C10
-_0801FBCC: .4byte gUnknown_02024A60
-_0801FBD0: .4byte gBattleMons
- thumb_func_end atkE2_cmde2
-
- thumb_func_start atk1C_jumpifstatus
-atk1C_jumpifstatus: @ 801FBD4
- push {r4,r5,lr}
- ldr r5, _0801FC30 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FC34 @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FC38
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FC38
- str r3, [r5]
- b _0801FC40
- .align 2, 0
-_0801FC30: .4byte gUnknown_02024C10
-_0801FC34: .4byte gBattleMons
-_0801FC38:
- ldr r1, _0801FC48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FC40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FC48: .4byte gUnknown_02024C10
- thumb_func_end atk1C_jumpifstatus
-
- thumb_func_start atk1D_jumpifsecondarystatus
-atk1D_jumpifsecondarystatus: @ 801FC4C
- push {r4,r5,lr}
- ldr r5, _0801FCA8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r5]
- ldrb r4, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- lsls r1, 8
- adds r4, r1
- ldrb r1, [r2, 0x4]
- lsls r1, 16
- adds r4, r1
- ldrb r1, [r2, 0x5]
- lsls r1, 24
- adds r4, r1
- ldrb r3, [r2, 0x6]
- ldrb r1, [r2, 0x7]
- lsls r1, 8
- adds r3, r1
- ldrb r1, [r2, 0x8]
- lsls r1, 16
- adds r3, r1
- ldrb r1, [r2, 0x9]
- lsls r1, 24
- adds r3, r1
- ldr r2, _0801FCAC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r0, r2, 0
- adds r0, 0x50
- adds r0, r1, r0
- ldr r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _0801FCB0
- adds r0, r1, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0801FCB0
- str r3, [r5]
- b _0801FCB8
- .align 2, 0
-_0801FCA8: .4byte gUnknown_02024C10
-_0801FCAC: .4byte gBattleMons
-_0801FCB0:
- ldr r1, _0801FCC0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_0801FCB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FCC0: .4byte gUnknown_02024C10
- thumb_func_end atk1D_jumpifsecondarystatus
-
- thumb_func_start atk1E_jumpifability
-atk1E_jumpifability: @ 801FCC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r6, _0801FD18 @ =gUnknown_02024C10
- ldr r2, [r6]
- ldrb r5, [r2, 0x2]
- mov r8, r5
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r7, r1, r0
- ldrb r0, [r2, 0x1]
- cmp r0, 0x8
- bne _0801FD24
- ldr r0, _0801FD1C @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xD
- adds r2, r5, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD20 @ =byte_2024C06
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD18: .4byte gUnknown_02024C10
-_0801FD1C: .4byte gUnknown_02024C07
-_0801FD20: .4byte byte_2024C06
-_0801FD24:
- cmp r0, 0x9
- bne _0801FD5C
- ldr r0, _0801FD54 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xC
- adds r2, r5, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0801FDA0
- ldr r1, _0801FD58 @ =byte_2024C06
- strb r5, [r1]
- str r7, [r6]
- subs r4, 0x1
- lsls r0, r4, 24
- lsrs r0, 24
- ldrb r1, [r1]
- b _0801FD80
- .align 2, 0
-_0801FD54: .4byte gUnknown_02024C07
-_0801FD58: .4byte byte_2024C06
-_0801FD5C:
- ldrb r0, [r2, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0801FD90 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r1, [r0]
- cmp r1, r8
- bne _0801FDA0
- ldr r0, _0801FD94 @ =byte_2024C06
- strb r1, [r0]
- str r7, [r6]
- ldrb r1, [r0]
- adds r0, r4, 0
-_0801FD80:
- bl sub_81074C4
- ldr r0, _0801FD98 @ =0x02000000
- ldr r1, _0801FD9C @ =0x000160f8
- adds r0, r1
- strb r4, [r0]
- b _0801FDA6
- .align 2, 0
-_0801FD90: .4byte gBattleMons
-_0801FD94: .4byte byte_2024C06
-_0801FD98: .4byte 0x02000000
-_0801FD9C: .4byte 0x000160f8
-_0801FDA0:
- ldr r0, [r6]
- adds r0, 0x7
- str r0, [r6]
-_0801FDA6:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk1E_jumpifability
-
- thumb_func_start sub_801FDB4
-sub_801FDB4: @ 801FDB4
- push {r4-r6,lr}
- ldr r0, _0801FDCC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r4, [r0, 0x1]
- cmp r4, 0x1
- bne _0801FDD4
- ldr r0, _0801FDD0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- b _0801FDDE
- .align 2, 0
-_0801FDCC: .4byte gUnknown_02024C10
-_0801FDD0: .4byte gUnknown_02024C07
-_0801FDD4:
- ldr r0, _0801FE14 @ =gUnknown_02024C08
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r4, 0x1
-_0801FDDE:
- ands r4, r0
- ldr r6, _0801FE18 @ =gUnknown_02024C10
- ldr r3, [r6]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- adds r5, r1, r0
- ldr r1, _0801FE1C @ =gUnknown_02024C7A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _0801FE20
- str r5, [r6]
- b _0801FE26
- .align 2, 0
-_0801FE14: .4byte gUnknown_02024C08
-_0801FE18: .4byte gUnknown_02024C10
-_0801FE1C: .4byte gUnknown_02024C7A
-_0801FE20:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r6]
-_0801FE26:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_801FDB4
-
- thumb_func_start sub_801FE2C
-sub_801FE2C: @ 801FE2C
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _0801FE60 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0801FE64 @ =gBattleMons
- ldr r3, [r4]
- movs r1, 0x58
- muls r0, r1
- ldrb r1, [r3, 0x3]
- adds r0, r1
- adds r2, 0x18
- adds r0, r2
- ldrb r2, [r0]
- ldrb r0, [r3, 0x2]
- cmp r0, 0x5
- bhi _0801FEEA
- lsls r0, 2
- ldr r1, _0801FE68 @ =_0801FE6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0801FE60: .4byte gUnknown_02024C10
-_0801FE64: .4byte gBattleMons
-_0801FE68: .4byte _0801FE6C
- .align 2, 0
-_0801FE6C:
- .4byte _0801FE84
- .4byte _0801FE94
- .4byte _0801FEA4
- .4byte _0801FEB4
- .4byte _0801FEC4
- .4byte _0801FED8
-_0801FE84:
- ldr r0, _0801FE90 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bne _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FE90: .4byte gUnknown_02024C10
-_0801FE94:
- ldr r0, _0801FEA0 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEA0: .4byte gUnknown_02024C10
-_0801FEA4:
- ldr r0, _0801FEB0 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bls _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEB0: .4byte gUnknown_02024C10
-_0801FEB4:
- ldr r0, _0801FEC0 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bcs _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FEC0: .4byte gUnknown_02024C10
-_0801FEC4:
- ldr r0, _0801FED4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- beq _0801FEEA
- b _0801FEE4
- .align 2, 0
-_0801FED4: .4byte gUnknown_02024C10
-_0801FED8:
- ldr r0, _0801FF0C @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x4]
- ands r2, r0
- cmp r2, 0
- bne _0801FEEA
-_0801FEE4:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0801FEEA:
- cmp r5, 0
- beq _0801FF10
- ldr r3, _0801FF0C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- b _0801FF18
- .align 2, 0
-_0801FF0C: .4byte gUnknown_02024C10
-_0801FF10:
- ldr r1, _0801FF20 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
-_0801FF18:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0801FF20: .4byte gUnknown_02024C10
- thumb_func_end sub_801FE2C
-
- thumb_func_start atk21_jumpifspecialstatusflag
-atk21_jumpifspecialstatusflag: @ 801FF24
- push {r4-r6,lr}
- ldr r4, _0801FF78 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0801FF7C @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r6, r1, r0
- ldrb r1, [r2, 0x7]
- ldrb r0, [r2, 0x8]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0xA]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _0801FF84
- ldr r0, _0801FF80 @ =gUnknown_02024C98
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- bne _0801FF9C
- b _0801FF94
- .align 2, 0
-_0801FF78: .4byte gUnknown_02024C10
-_0801FF7C: .4byte gUnknown_02024A60
-_0801FF80: .4byte gUnknown_02024C98
-_0801FF84:
- ldr r0, _0801FF98 @ =gUnknown_02024C98
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- ands r0, r6
- cmp r0, 0
- beq _0801FF9C
-_0801FF94:
- str r3, [r4]
- b _0801FFA2
- .align 2, 0
-_0801FF98: .4byte gUnknown_02024C98
-_0801FF9C:
- adds r0, r2, 0
- adds r0, 0xB
- str r0, [r4]
-_0801FFA2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk21_jumpifspecialstatusflag
-
- thumb_func_start sub_801FFA8
-sub_801FFA8: @ 801FFA8
- push {r4-r6,lr}
- ldr r4, _0801FFF0 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldrb r5, [r3, 0x2]
- ldrb r2, [r3, 0x3]
- ldrb r1, [r3, 0x4]
- lsls r1, 8
- adds r2, r1
- ldrb r1, [r3, 0x5]
- lsls r1, 16
- adds r2, r1
- ldrb r1, [r3, 0x6]
- lsls r1, 24
- adds r6, r2, r1
- ldr r2, _0801FFF4 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r5
- beq _0801FFEC
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r5
- bne _0801FFF8
-_0801FFEC:
- str r6, [r4]
- b _0801FFFC
- .align 2, 0
-_0801FFF0: .4byte gUnknown_02024C10
-_0801FFF4: .4byte gBattleMons
-_0801FFF8:
- adds r0, r3, 0x7
- str r0, [r4]
-_0801FFFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_801FFA8
-
- thumb_func_start sub_8020004
-sub_8020004: @ 8020004
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r0, _0802004C @ =0x0201605c
- mov r10, r0
- ldr r0, _08020050 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08020054 @ =gUnknown_02024C09
- strb r0, [r1]
- ldr r2, _08020058 @ =gUnknown_02024DEA
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 25
- adds r1, r2
- ldrb r1, [r1]
- mov r8, r1
- mov r0, r10
- subs r0, 0x4D
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08020040
- bl _08020996
-_08020040:
- lsls r0, 2
- ldr r1, _0802005C @ =_08020060
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802004C: .4byte 0x0201605c
-_08020050: .4byte gUnknown_02024C10
-_08020054: .4byte gUnknown_02024C09
-_08020058: .4byte gUnknown_02024DEA
-_0802005C: .4byte _08020060
- .align 2, 0
-_08020060:
- .4byte _0802007C
- .4byte _080200FC
- .4byte _08020216
- .4byte _0802055C
- .4byte _08020648
- .4byte _08020910
- .4byte _0802096C
-_0802007C:
- ldr r4, _080200A8 @ =gUnknown_02024C09
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08020098
- ldr r0, _080200AC @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _080200B0 @ =0x00000982
- ands r0, r1
- cmp r0, 0
- beq _080200BC
-_08020098:
- ldr r0, _080200B4 @ =0x02000000
- ldr r1, _080200B8 @ =0x0001600f
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- bl _08020996
- .align 2, 0
-_080200A8: .4byte gUnknown_02024C09
-_080200AC: .4byte gUnknown_020239F8
-_080200B0: .4byte 0x00000982
-_080200B4: .4byte 0x02000000
-_080200B8: .4byte 0x0001600f
-_080200BC:
- ldr r2, _080200E8 @ =0x02000000
- ldr r3, _080200EC @ =0x0001600f
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _080200F0 @ =0x00016113
- adds r2, r0
- ldr r3, _080200F4 @ =gBitTable
- ldr r1, _080200F8 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- bl _08020996
- .align 2, 0
-_080200E8: .4byte 0x02000000
-_080200EC: .4byte 0x0001600f
-_080200F0: .4byte 0x00016113
-_080200F4: .4byte gBitTable
-_080200F8: .4byte gUnknown_02024A6A
-_080200FC:
- movs r5, 0
- movs r7, 0
- ldr r1, _08020150 @ =gSaveBlock1 + 0x3688
- mov r9, r1
-_08020104:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08020154 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802016A
- ldr r0, _08020158 @ =gBitTable
- lsls r1, r7, 2
- adds r1, r0
- ldr r0, [r1]
- mov r2, r8
- ands r0, r2
- cmp r0, 0
- beq _08020138
- adds r5, 0x1
-_08020138:
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802015C
- mov r3, r9
- ldrb r4, [r3]
- b _08020164
- .align 2, 0
-_08020150: .4byte gSaveBlock1 + 0x3688
-_08020154: .4byte gPlayerParty
-_08020158: .4byte gBitTable
-_0802015C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020164:
- cmp r4, 0x19
- bne _0802016A
- adds r6, 0x1
-_0802016A:
- adds r7, 0x1
- cmp r7, 0x5
- ble _08020104
- ldr r3, _080201D0 @ =gBaseStats
- ldr r2, _080201D4 @ =gBattleMons
- ldr r0, _080201D8 @ =gUnknown_02024C09
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x9]
- adds r1, 0x2A
- ldrb r0, [r1]
- muls r0, r2
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r6, 0
- beq _080201E0
- lsrs r4, r0, 17
- adds r0, r4, 0
- adds r1, r5, 0
- bl __divsi3
- mov r1, r10
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- bne _080201B6
- movs r0, 0x1
- strh r0, [r1]
-_080201B6:
- ldr r5, _080201DC @ =gUnknown_02024DEE
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- strh r0, [r5]
- lsls r0, 16
- cmp r0, 0
- bne _080201FA
- movs r0, 0x1
- strh r0, [r5]
- b _080201FA
- .align 2, 0
-_080201D0: .4byte gBaseStats
-_080201D4: .4byte gBattleMons
-_080201D8: .4byte gUnknown_02024C09
-_080201DC: .4byte gUnknown_02024DEE
-_080201E0:
- adds r0, r1, 0
- adds r1, r5, 0
- bl __divsi3
- mov r2, r10
- strh r0, [r2]
- lsls r0, 16
- cmp r0, 0
- bne _080201F6
- movs r0, 0x1
- strh r0, [r2]
-_080201F6:
- ldr r0, _08020248 @ =gUnknown_02024DEE
- strh r6, [r0]
-_080201FA:
- ldr r1, _0802024C @ =0x02000000
- ldr r3, _08020250 @ =0x0001600f
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- movs r3, 0
- strb r0, [r2]
- ldr r2, _08020254 @ =0x00016018
- adds r0, r1, r2
- strb r3, [r0]
- ldr r3, _08020258 @ =0x0001605f
- adds r1, r3
- mov r0, r8
- strb r0, [r1]
-_08020216:
- ldr r0, _0802025C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08020220
- b _08020996
-_08020220:
- ldr r0, _0802024C @ =0x02000000
- ldr r1, _08020254 @ =0x00016018
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020260 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0802026C
- ldr r0, _08020264 @ =gSaveBlock1
- ldr r2, _08020268 @ =0x00003688
- adds r0, r2
- ldrb r4, [r0]
- b _08020274
- .align 2, 0
-_08020248: .4byte gUnknown_02024DEE
-_0802024C: .4byte 0x02000000
-_08020250: .4byte 0x0001600f
-_08020254: .4byte 0x00016018
-_08020258: .4byte 0x0001605f
-_0802025C: .4byte gUnknown_02024A64
-_08020260: .4byte gPlayerParty
-_08020264: .4byte gSaveBlock1
-_08020268: .4byte 0x00003688
-_0802026C:
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
-_08020274:
- ldr r5, _08020294 @ =0x02000000
- cmp r4, 0x19
- beq _080202A0
- ldr r3, _08020298 @ =0x0001605f
- adds r1, r5, r3
- ldrb r0, [r1]
- movs r2, 0x1
- ands r2, r0
- cmp r2, 0
- bne _080202A0
- lsrs r0, 1
- strb r0, [r1]
- ldr r0, _0802029C @ =0x0001600f
- adds r1, r5, r0
- b _080202C8
- .align 2, 0
-_08020294: .4byte 0x02000000
-_08020298: .4byte 0x0001605f
-_0802029C: .4byte 0x0001600f
-_080202A0:
- ldr r1, _080202D4 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080202D8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- bne _080202E8
- ldr r2, _080202DC @ =0x0001605f
- adds r1, r5, r2
- ldrb r0, [r1]
- lsrs r0, 1
- movs r2, 0
- strb r0, [r1]
- ldr r3, _080202E0 @ =0x0001600f
- adds r1, r5, r3
-_080202C8:
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, _080202E4 @ =gUnknown_02024BEC
- str r2, [r0]
- b _08020996
- .align 2, 0
-_080202D4: .4byte 0x00016018
-_080202D8: .4byte gPlayerParty
-_080202DC: .4byte 0x0001605f
-_080202E0: .4byte 0x0001600f
-_080202E4: .4byte gUnknown_02024BEC
-_080202E8:
- ldr r0, _0802034C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08020316
- ldr r0, _08020350 @ =gBattleMons
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08020316
- ldr r0, _08020354 @ =0x0001601b
- adds r5, r0
- ldrb r0, [r5]
- cmp r0, 0
- bne _08020316
- bl sub_80325B8
- ldr r0, _08020358 @ =0x00000161
- bl PlayBGM
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_08020316:
- ldr r5, _0802035C @ =0x02000000
- ldr r1, _08020360 @ =0x00016018
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020364 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _08020332
- b _0802051E
-_08020332:
- ldr r2, _08020368 @ =0x0001605f
- adds r0, r5, r2
- ldrb r0, [r0]
- movs r3, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08020370
- ldr r1, _0802036C @ =gUnknown_02024BEC
- mov r3, r10
- ldrh r0, [r3]
- str r0, [r1]
- mov r8, r1
- b _08020376
- .align 2, 0
-_0802034C: .4byte gUnknown_020239F8
-_08020350: .4byte gBattleMons
-_08020354: .4byte 0x0001601b
-_08020358: .4byte 0x00000161
-_0802035C: .4byte 0x02000000
-_08020360: .4byte 0x00016018
-_08020364: .4byte gPlayerParty
-_08020368: .4byte 0x0001605f
-_0802036C: .4byte gUnknown_02024BEC
-_08020370:
- ldr r0, _080203EC @ =gUnknown_02024BEC
- str r3, [r0]
- mov r8, r0
-_08020376:
- cmp r4, 0x19
- bne _08020386
- ldr r0, _080203F0 @ =gUnknown_02024DEE
- ldrh r1, [r0]
- mov r2, r8
- ldr r0, [r2]
- adds r0, r1
- str r0, [r2]
-_08020386:
- cmp r4, 0x28
- bne _0802039C
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_0802039C:
- ldr r0, _080203F4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080203B8
- ldr r4, _080203EC @ =gUnknown_02024BEC
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
-_080203B8:
- ldr r0, _080203F8 @ =0x02000000
- ldr r2, _080203FC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020400 @ =gPlayerParty
- adds r0, r1
- bl sub_8040AA4
- lsls r0, 24
- cmp r0, 0
- beq _08020404
- ldr r4, _080203EC @ =gUnknown_02024BEC
- ldr r1, [r4]
- movs r0, 0x96
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- movs r7, 0xA5
- lsls r7, 1
- mov r8, r4
- b _0802040A
- .align 2, 0
-_080203EC: .4byte gUnknown_02024BEC
-_080203F0: .4byte gUnknown_02024DEE
-_080203F4: .4byte gUnknown_020239F8
-_080203F8: .4byte 0x02000000
-_080203FC: .4byte 0x00016018
-_08020400: .4byte gPlayerParty
-_08020404:
- ldr r7, _0802043C @ =0x00000149
- ldr r3, _08020440 @ =gUnknown_02024BEC
- mov r8, r3
-_0802040A:
- ldr r0, _08020444 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08020488
- ldr r1, _08020448 @ =gUnknown_02024A6A
- ldr r0, _0802044C @ =0x02000000
- ldr r3, _08020450 @ =0x00016018
- adds r2, r0, r3
- ldrh r1, [r1, 0x4]
- adds r5, r0, 0
- ldr r4, _08020454 @ =gBitTable
- ldr r3, _08020458 @ =gUnknown_02024C0C
- ldrb r2, [r2]
- cmp r1, r2
- bne _08020460
- ldrb r1, [r3]
- ldr r0, [r4, 0x8]
- ands r1, r0
- cmp r1, 0
- bne _08020460
- ldr r0, _0802045C @ =0x000160a2
- adds r1, r5, r0
- b _0802047C
- .align 2, 0
-_0802043C: .4byte 0x00000149
-_08020440: .4byte gUnknown_02024BEC
-_08020444: .4byte gUnknown_020239F8
-_08020448: .4byte gUnknown_02024A6A
-_0802044C: .4byte 0x02000000
-_08020450: .4byte 0x00016018
-_08020454: .4byte gBitTable
-_08020458: .4byte gUnknown_02024C0C
-_0802045C: .4byte 0x000160a2
-_08020460:
- ldrb r2, [r3]
- ldr r0, [r4]
- ands r2, r0
- cmp r2, 0
- bne _08020478
- ldr r1, _08020474 @ =0x000160a2
- adds r0, r5, r1
- strb r2, [r0]
- b _08020490
- .align 2, 0
-_08020474: .4byte 0x000160a2
-_08020478:
- ldr r2, _08020484 @ =0x000160a2
- adds r1, r5, r2
-_0802047C:
- movs r0, 0x2
- strb r0, [r1]
- b _08020490
- .align 2, 0
-_08020484: .4byte 0x000160a2
-_08020488:
- ldr r0, _08020530 @ =0x02000000
- ldr r3, _08020534 @ =0x000160a2
- adds r0, r3
- strb r1, [r0]
-_08020490:
- ldr r1, _08020538 @ =gUnknown_030041C0
- movs r3, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r5, 0x4
- strb r5, [r1, 0x1]
- ldr r4, _08020530 @ =0x02000000
- ldr r0, _08020534 @ =0x000160a2
- adds r6, r4, r0
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- ldr r0, _0802053C @ =0x00016018
- adds r4, r0
- ldrb r0, [r4]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08020540 @ =gUnknown_03004290
- strb r2, [r1]
- strb r3, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0xFF
- lsls r3, 8
- ands r7, r3
- asrs r0, r7, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- ldr r1, _08020544 @ =gUnknown_030042B0
- strb r2, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- mov r0, r8
- ldr r2, [r0]
- strb r2, [r1, 0x4]
- adds r0, r2, 0
- ands r0, r3
- asrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r2, 24
- strb r2, [r1, 0x7]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x8]
- ldrb r1, [r6]
- movs r0, 0xD
- bl b_std_message
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08020548 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802054C @ =gBattleMons
- ldr r1, _08020550 @ =gUnknown_02024C09
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r1, [r1]
- bl MonGainEVs
-_0802051E:
- ldr r1, _08020530 @ =0x02000000
- ldr r3, _08020554 @ =0x0001605f
- adds r2, r1, r3
- ldrb r0, [r2]
- lsrs r0, 1
- strb r0, [r2]
- ldr r0, _08020558 @ =0x0001600f
- adds r1, r0
- b _08020618
- .align 2, 0
-_08020530: .4byte 0x02000000
-_08020534: .4byte 0x000160a2
-_08020538: .4byte gUnknown_030041C0
-_0802053C: .4byte 0x00016018
-_08020540: .4byte gUnknown_03004290
-_08020544: .4byte gUnknown_030042B0
-_08020548: .4byte gPlayerParty
-_0802054C: .4byte gBattleMons
-_08020550: .4byte gUnknown_02024C09
-_08020554: .4byte 0x0001605f
-_08020558: .4byte 0x0001600f
-_0802055C:
- ldr r0, _08020620 @ =gUnknown_02024A64
- ldr r2, [r0]
- cmp r2, 0
- beq _08020566
- b _08020996
-_08020566:
- ldr r1, _08020624 @ =gUnknown_02024260
- ldr r4, _08020628 @ =0x02000000
- ldr r3, _0802062C @ =0x000160a2
- adds r3, r4
- mov r8, r3
- ldrb r0, [r3]
- lsls r0, 9
- adds r0, r1
- strb r2, [r0]
- ldr r0, _08020630 @ =0x00016018
- adds r7, r4, r0
- ldrb r0, [r7]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08020634 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x64
- beq _08020612
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3A
- bl GetMonData
- ldr r1, _08020638 @ =0x00017180
- adds r4, r1
- strh r0, [r4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r7]
- muls r0, r6
- adds r0, r5
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
- ldr r4, _0802063C @ =gUnknown_02024A60
- mov r2, r8
- ldrb r0, [r2]
- strb r0, [r4]
- ldrb r1, [r7]
- ldr r0, _08020640 @ =gUnknown_02024BEC
- ldrh r2, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x19_a_bb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08020612:
- ldr r1, _08020628 @ =0x02000000
- ldr r3, _08020644 @ =0x0001600f
- adds r1, r3
-_08020618:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020620: .4byte gUnknown_02024A64
-_08020624: .4byte gUnknown_02024260
-_08020628: .4byte 0x02000000
-_0802062C: .4byte 0x000160a2
-_08020630: .4byte 0x00016018
-_08020634: .4byte gPlayerParty
-_08020638: .4byte 0x00017180
-_0802063C: .4byte gUnknown_02024A60
-_08020640: .4byte gUnknown_02024BEC
-_08020644: .4byte 0x0001600f
-_08020648:
- ldr r0, _080208AC @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _08020652
- b _08020996
-_08020652:
- ldr r1, _080208B0 @ =gUnknown_02024A60
- ldr r4, _080208B4 @ =0x02000000
- ldr r2, _080208B8 @ =0x000160a2
- adds r0, r4, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r2, _080208BC @ =gUnknown_02024260
- ldrb r3, [r1]
- lsls r1, r3, 9
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x21
- beq _0802066E
- b _080208F0
-_0802066E:
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802067A
- b _080208F0
-_0802067A:
- ldr r0, _080208C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080206A8
- ldr r1, _080208C4 @ =gUnknown_02024A6A
- lsls r0, r3, 1
- adds r2, r0, r1
- ldr r0, _080208C8 @ =0x00016018
- adds r1, r4, r0
- ldrh r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080206A8
- adds r1, r0, 0
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080208CC @ =gPlayerParty
- adds r0, r1
- adds r1, r3, 0
- bl sub_80324F8
-_080206A8:
- ldr r1, _080208D0 @ =gUnknown_030041C0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r5, _080208B0 @ =gUnknown_02024A60
- ldrb r0, [r5]
- strb r0, [r1, 0x2]
- ldr r0, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r6, r0, r3
- ldrb r0, [r6]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _080208D4 @ =gUnknown_03004290
- strb r2, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- movs r0, 0x3
- strb r0, [r4, 0x3]
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _080208CC @ =gPlayerParty
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- strb r0, [r4, 0x4]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r4, 0x5]
- bl b_movescr_stack_push_cursor
- ldr r2, _080208D8 @ =gUnknown_03004324
- ldr r1, _080208DC @ =gBitTable
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080208E0 @ =gUnknown_02024C10
- ldr r0, _080208E4 @ =gUnknown_081D8EF3
- str r0, [r1]
- ldr r4, _080208E8 @ =gUnknown_02024BEC
- ldr r2, _080208BC @ =gUnknown_02024260
- ldrb r1, [r5]
- lsls r1, 9
- adds r0, r2, 0x2
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r2, 0x3
- adds r1, r2
- ldrb r0, [r1]
- lsls r0, 8
- orrs r3, r0
- str r3, [r4]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0
- bl AdjustFriendship
- ldr r0, _080208C4 @ =gUnknown_02024A6A
- ldrb r1, [r6]
- ldrh r0, [r0]
- cmp r0, r1
- bne _080207EC
- ldr r4, _080208EC @ =gBattleMons
- ldrh r0, [r4, 0x28]
- cmp r0, 0
- beq _080207EC
- mov r0, r8
- muls r0, r1
- adds r0, r7
- movs r1, 0x38
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x2A
- strb r0, [r1]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x28]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0x2C]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3B
- bl GetMonData
- strh r0, [r4, 0x2]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3C
- bl GetMonData
- strh r0, [r4, 0x4]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7
- movs r1, 0x3D
- bl GetMonData
- strh r0, [r4, 0x6]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0x3E
- bl GetMonData
- strh r0, [r4, 0x8]
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0x3F
- bl GetMonData
- strh r0, [r4, 0xA]
-_080207EC:
- ldr r0, _080208C4 @ =gUnknown_02024A6A
- ldr r1, _080208B4 @ =0x02000000
- ldr r3, _080208C8 @ =0x00016018
- adds r7, r1, r3
- ldrb r2, [r7]
- ldrh r0, [r0, 0x4]
- cmp r0, r2
- bne _080208F6
- ldr r6, _080208EC @ =gBattleMons
- movs r0, 0xD8
- adds r0, r6
- mov r8, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _080208F6
- ldr r0, _080208C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080208F6
- movs r5, 0x64
- adds r0, r2, 0
- muls r0, r5
- ldr r4, _080208CC @ =gPlayerParty
- adds r0, r4
- movs r1, 0x38
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDA
- strb r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xDC
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3B
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB2
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3C
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB4
- strh r0, [r1]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- movs r2, 0xB6
- adds r2, r6
- mov r8, r2
- strh r0, [r2]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3D
- bl GetMonData
- mov r3, r8
- strh r0, [r3]
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r4
- movs r1, 0x3E
- bl GetMonData
- adds r1, r6, 0
- adds r1, 0xB8
- strh r0, [r1]
- b _080208F6
- .align 2, 0
-_080208AC: .4byte gUnknown_02024A64
-_080208B0: .4byte gUnknown_02024A60
-_080208B4: .4byte 0x02000000
-_080208B8: .4byte 0x000160a2
-_080208BC: .4byte gUnknown_02024260
-_080208C0: .4byte gUnknown_020239F8
-_080208C4: .4byte gUnknown_02024A6A
-_080208C8: .4byte 0x00016018
-_080208CC: .4byte gPlayerParty
-_080208D0: .4byte gUnknown_030041C0
-_080208D4: .4byte gUnknown_03004290
-_080208D8: .4byte gUnknown_03004324
-_080208DC: .4byte gBitTable
-_080208E0: .4byte gUnknown_02024C10
-_080208E4: .4byte gUnknown_081D8EF3
-_080208E8: .4byte gUnknown_02024BEC
-_080208EC: .4byte gBattleMons
-_080208F0:
- ldr r1, _08020904 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
-_080208F6:
- ldr r0, _08020908 @ =0x02000000
- ldr r1, _0802090C @ =0x0001600f
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020904: .4byte gUnknown_02024BEC
-_08020908: .4byte 0x02000000
-_0802090C: .4byte 0x0001600f
-_08020910:
- ldr r0, _08020924 @ =gUnknown_02024BEC
- ldr r0, [r0]
- cmp r0, 0
- beq _08020930
- ldr r0, _08020928 @ =0x02000000
- ldr r2, _0802092C @ =0x0001600f
- adds r0, r2
- movs r1, 0x3
- strb r1, [r0]
- b _08020996
- .align 2, 0
-_08020924: .4byte gUnknown_02024BEC
-_08020928: .4byte 0x02000000
-_0802092C: .4byte 0x0001600f
-_08020930:
- ldr r2, _08020950 @ =0x02000000
- ldr r3, _08020954 @ =0x00016018
- adds r1, r2, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _0802095C
- ldr r0, _08020958 @ =0x0001600f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020950: .4byte 0x02000000
-_08020954: .4byte 0x00016018
-_08020958: .4byte 0x0001600f
-_0802095C:
- ldr r3, _08020968 @ =0x0001600f
- adds r1, r2, r3
- movs r0, 0x6
- strb r0, [r1]
- b _08020996
- .align 2, 0
-_08020968: .4byte 0x0001600f
-_0802096C:
- ldr r0, _080209A4 @ =gUnknown_02024A64
- ldr r5, [r0]
- cmp r5, 0
- bne _08020996
- ldr r4, _080209A8 @ =gBattleMons
- ldr r2, _080209AC @ =gUnknown_02024C09
- ldrb r0, [r2]
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- movs r3, 0
- strh r5, [r0, 0x2E]
- ldrb r0, [r2]
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- strb r3, [r0]
- ldr r1, _080209B0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08020996:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080209A4: .4byte gUnknown_02024A64
-_080209A8: .4byte gBattleMons
-_080209AC: .4byte gUnknown_02024C09
-_080209B0: .4byte gUnknown_02024C10
- thumb_func_end sub_8020004
-
- thumb_func_start sub_80209B4
-sub_80209B4: @ 80209B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _08020AF0 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _080209C6
- b _08020B46
-_080209C6:
- movs r5, 0
-_080209C8:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AF4 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080209F8
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080209F8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_080209F8:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080209C8
- cmp r6, 0
- bne _08020A0C
- ldr r0, _08020AF8 @ =gUnknown_02024D26
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_08020A0C:
- movs r6, 0
- movs r5, 0
-_08020A10:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08020AFC @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08020A40
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08020A40
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- adds r0, r6, r0
- lsls r0, 16
- lsrs r6, r0, 16
-_08020A40:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08020A10
- ldr r2, _08020AF8 @ =gUnknown_02024D26
- cmp r6, 0
- bne _08020A54
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08020A54:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08020B3E
- ldr r2, _08020B00 @ =gUnknown_020239F8
- ldrh r1, [r2]
- movs r0, 0x2
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _08020B3E
- movs r2, 0
- movs r5, 0
- ldr r0, _08020B04 @ =gUnknown_02024A68
- ldrb r3, [r0]
- mov r12, r0
- ldr r7, _08020B08 @ =gUnknown_02024C10
- cmp r2, r3
- bge _08020AA0
- ldr r0, _08020B0C @ =gUnknown_02024C6C
- movs r1, 0x80
- lsls r1, 21
- ldr r6, [r0]
- adds r4, r3, 0
- ldr r3, _08020B10 @ =gUnknown_02024D68
-_08020A84:
- adds r0, r1, 0
- lsls r0, r5
- ands r0, r6
- cmp r0, 0
- beq _08020A98
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020A98
- adds r2, 0x1
-_08020A98:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r4
- blt _08020A84
-_08020AA0:
- movs r4, 0
- movs r5, 0x1
- mov r0, r12
- ldrb r3, [r0]
- cmp r5, r3
- bge _08020ADA
- ldr r0, _08020B0C @ =gUnknown_02024C6C
- movs r1, 0x80
- lsls r1, 21
- mov r12, r1
- ldr r1, [r0]
- ldr r0, _08020B10 @ =gUnknown_02024D68
- adds r6, r3, 0
- adds r3, r0, 0
- adds r3, 0x14
-_08020ABE:
- mov r0, r12
- lsls r0, r5
- ands r0, r1
- cmp r0, 0
- beq _08020AD2
- ldrb r0, [r3]
- lsls r0, 25
- cmp r0, 0
- blt _08020AD2
- adds r4, 0x1
-_08020AD2:
- adds r3, 0x28
- adds r5, 0x2
- cmp r5, r6
- blt _08020ABE
-_08020ADA:
- mov r0, r8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08020B14
- adds r0, r4, r2
- cmp r0, 0x1
- bgt _08020B1C
- b _08020B36
- .align 2, 0
-_08020AF0: .4byte gUnknown_02024A64
-_08020AF4: .4byte gPlayerParty
-_08020AF8: .4byte gUnknown_02024D26
-_08020AFC: .4byte gEnemyParty
-_08020B00: .4byte gUnknown_020239F8
-_08020B04: .4byte gUnknown_02024A68
-_08020B08: .4byte gUnknown_02024C10
-_08020B0C: .4byte gUnknown_02024C6C
-_08020B10: .4byte gUnknown_02024D68
-_08020B14:
- cmp r4, 0
- beq _08020B36
- cmp r2, 0
- beq _08020B36
-_08020B1C:
- ldr r2, [r7]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r7]
- b _08020B46
-_08020B36:
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08020B46
-_08020B3E:
- ldr r1, _08020B50 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08020B46:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08020B50: .4byte gUnknown_02024C10
- thumb_func_end sub_80209B4
-
- thumb_func_start sub_8020B54
-sub_8020B54: @ 8020B54
- ldr r1, _08020B80 @ =gUnknown_02024C68
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08020B84 @ =0x02000000
- ldr r1, _08020B88 @ =0x0001601f
- adds r0, r1
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08020B8C @ =gCritMultiplier
- strb r1, [r0]
- ldr r0, _08020B90 @ =gUnknown_02024D1E
- strb r2, [r0, 0x3]
- strb r2, [r0, 0x6]
- ldr r2, _08020B94 @ =gUnknown_02024C6C
- ldr r0, [r2]
- subs r1, 0x42
- ands r0, r1
- ldr r1, _08020B98 @ =0xffffbfff
- ands r0, r1
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020B80: .4byte gUnknown_02024C68
-_08020B84: .4byte 0x02000000
-_08020B88: .4byte 0x0001601f
-_08020B8C: .4byte gCritMultiplier
-_08020B90: .4byte gUnknown_02024D1E
-_08020B94: .4byte gUnknown_02024C6C
-_08020B98: .4byte 0xffffbfff
- thumb_func_end sub_8020B54
-
- thumb_func_start atk25_resetflags
-atk25_resetflags: @ 8020B9C
- push {lr}
- bl sub_8020B54
- ldr r1, _08020BB0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08020BB0: .4byte gUnknown_02024C10
- thumb_func_end atk25_resetflags
-
- thumb_func_start sub_8020BB4
-sub_8020BB4: @ 8020BB4
- ldr r3, _08020BC4 @ =gUnknown_02024C0E
- ldr r2, _08020BC8 @ =gUnknown_02024C10
- ldr r0, [r2]
- ldrb r1, [r0, 0x1]
- strb r1, [r3]
- adds r0, 0x2
- str r0, [r2]
- bx lr
- .align 2, 0
-_08020BC4: .4byte gUnknown_02024C0E
-_08020BC8: .4byte gUnknown_02024C10
- thumb_func_end sub_8020BB4
-
- thumb_func_start atk27_cmd27
-atk27_cmd27: @ 8020BCC
- push {lr}
- ldr r1, _08020BE8 @ =gUnknown_02024C0E
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08020BF0
- ldr r1, _08020BEC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08020C0A
- .align 2, 0
-_08020BE8: .4byte gUnknown_02024C0E
-_08020BEC: .4byte gUnknown_02024C10
-_08020BF0:
- ldr r3, _08020C10 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
-_08020C0A:
- pop {r0}
- bx r0
- .align 2, 0
-_08020C10: .4byte gUnknown_02024C10
- thumb_func_end atk27_cmd27
-
- thumb_func_start sub_8020C14
-sub_8020C14: @ 8020C14
- ldr r3, _08020C30 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08020C30: .4byte gUnknown_02024C10
- thumb_func_end sub_8020C14
-
- thumb_func_start atk29_jumpifbyte
-atk29_jumpifbyte: @ 8020C34
- push {r4-r6,lr}
- ldr r3, _08020C78 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r2, [r1, 0x7]
- ldrb r0, [r1, 0x8]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xB
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020CCC
- lsls r0, r6, 2
- ldr r1, _08020C7C @ =_08020C80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020C78: .4byte gUnknown_02024C10
-_08020C7C: .4byte _08020C80
- .align 2, 0
-_08020C80:
- .4byte _08020C98
- .4byte _08020CA0
- .4byte _08020CA8
- .4byte _08020CB0
- .4byte _08020CB8
- .4byte _08020CC2
-_08020C98:
- ldrb r0, [r5]
- cmp r0, r4
- bne _08020CCC
- b _08020CCA
-_08020CA0:
- ldrb r0, [r5]
- cmp r0, r4
- beq _08020CCC
- b _08020CCA
-_08020CA8:
- ldrb r0, [r5]
- cmp r0, r4
- bls _08020CCC
- b _08020CCA
-_08020CB0:
- ldrb r0, [r5]
- cmp r0, r4
- bcs _08020CCC
- b _08020CCA
-_08020CB8:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020CCC
- b _08020CCA
-_08020CC2:
- ldrb r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020CCC
-_08020CCA:
- str r2, [r3]
-_08020CCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk29_jumpifbyte
-
- thumb_func_start sub_8020CD4
-sub_8020CD4: @ 8020CD4
- push {r4-r6,lr}
- ldr r3, _08020D20 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r2, [r1, 0x8]
- ldrb r0, [r1, 0x9]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xA]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xC
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020D74
- lsls r0, r6, 2
- ldr r1, _08020D24 @ =_08020D28
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020D20: .4byte gUnknown_02024C10
-_08020D24: .4byte _08020D28
- .align 2, 0
-_08020D28:
- .4byte _08020D40
- .4byte _08020D48
- .4byte _08020D50
- .4byte _08020D58
- .4byte _08020D60
- .4byte _08020D6A
-_08020D40:
- ldrh r0, [r5]
- cmp r0, r4
- bne _08020D74
- b _08020D72
-_08020D48:
- ldrh r0, [r5]
- cmp r0, r4
- beq _08020D74
- b _08020D72
-_08020D50:
- ldrh r0, [r5]
- cmp r0, r4
- bls _08020D74
- b _08020D72
-_08020D58:
- ldrh r0, [r5]
- cmp r0, r4
- bcs _08020D74
- b _08020D72
-_08020D60:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- beq _08020D74
- b _08020D72
-_08020D6A:
- ldrh r0, [r5]
- ands r4, r0
- cmp r4, 0
- bne _08020D74
-_08020D72:
- str r2, [r3]
-_08020D74:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8020CD4
-
- thumb_func_start sub_8020D7C
-sub_8020D7C: @ 8020D7C
- push {r4-r6,lr}
- ldr r3, _08020DD4 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r6, [r1, 0x1]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x6]
- ldrb r0, [r1, 0x7]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x9]
- lsls r0, 24
- orrs r4, r0
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- adds r1, 0xE
- str r1, [r3]
- cmp r6, 0x5
- bhi _08020E28
- lsls r0, r6, 2
- ldr r1, _08020DD8 @ =_08020DDC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08020DD4: .4byte gUnknown_02024C10
-_08020DD8: .4byte _08020DDC
- .align 2, 0
-_08020DDC:
- .4byte _08020DF4
- .4byte _08020DFC
- .4byte _08020E04
- .4byte _08020E0C
- .4byte _08020E14
- .4byte _08020E1E
-_08020DF4:
- ldr r0, [r5]
- cmp r0, r4
- bne _08020E28
- b _08020E26
-_08020DFC:
- ldr r0, [r5]
- cmp r0, r4
- beq _08020E28
- b _08020E26
-_08020E04:
- ldr r0, [r5]
- cmp r0, r4
- bls _08020E28
- b _08020E26
-_08020E0C:
- ldr r0, [r5]
- cmp r0, r4
- bcs _08020E28
- b _08020E26
-_08020E14:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- beq _08020E28
- b _08020E26
-_08020E1E:
- ldr r0, [r5]
- ands r0, r4
- cmp r0, 0
- bne _08020E28
-_08020E26:
- str r2, [r3]
-_08020E28:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8020D7C
-
- thumb_func_start sub_8020E30
-sub_8020E30: @ 8020E30
- push {r4-r7,lr}
- ldr r2, _08020E88 @ =gUnknown_02024C10
- ldr r3, [r2]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r5, r1, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r6, [r3, 0x9]
- ldrb r1, [r3, 0xA]
- ldrb r0, [r3, 0xB]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0xC]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0xD]
- lsls r0, 24
- adds r1, r0
- mov r12, r1
- movs r1, 0
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r7, [r4]
- cmp r0, r7
- beq _08020E8C
- adds r0, r3, 0
- b _08020EA4
- .align 2, 0
-_08020E88: .4byte gUnknown_02024C10
-_08020E8C:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcs _08020EA8
- ldrb r0, [r5]
- ldrb r3, [r4]
- cmp r0, r3
- beq _08020E8C
- ldr r0, [r2]
-_08020EA4:
- adds r0, 0xE
- str r0, [r2]
-_08020EA8:
- cmp r1, r6
- bne _08020EB0
- mov r7, r12
- str r7, [r2]
-_08020EB0:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8020E30
-
- thumb_func_start sub_8020EB8
-sub_8020EB8: @ 8020EB8
- push {r4-r7,lr}
- movs r7, 0
- ldr r3, _08020F2C @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r4, r2, r0
- ldrb r6, [r1, 0x9]
- ldrb r2, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- adds r2, r0
- mov r12, r2
- movs r1, 0
- cmp r7, r6
- bcs _08020F22
-_08020F06:
- ldrb r0, [r5]
- ldrb r2, [r4]
- cmp r0, r2
- bne _08020F14
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_08020F14:
- adds r5, 0x1
- adds r4, 0x1
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, r6
- bcc _08020F06
-_08020F22:
- cmp r7, r6
- beq _08020F30
- mov r0, r12
- b _08020F34
- .align 2, 0
-_08020F2C: .4byte gUnknown_02024C10
-_08020F30:
- ldr r0, [r3]
- adds r0, 0xE
-_08020F34:
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8020EB8
-
- thumb_func_start sub_8020F3C
-sub_8020F3C: @ 8020F3C
- ldr r3, _08020F60 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F60: .4byte gUnknown_02024C10
- thumb_func_end sub_8020F3C
-
- thumb_func_start sub_8020F64
-sub_8020F64: @ 8020F64
- ldr r3, _08020F8C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r2, 0x5]
- ldrb r2, [r1]
- adds r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020F8C: .4byte gUnknown_02024C10
- thumb_func_end sub_8020F64
-
- thumb_func_start sub_8020F90
-sub_8020F90: @ 8020F90
- ldr r3, _08020FB8 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- subs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_08020FB8: .4byte gUnknown_02024C10
- thumb_func_end sub_8020F90
-
- thumb_func_start atk31_copyarray
-atk31_copyarray: @ 8020FBC
- push {r4-r6,lr}
- ldr r3, _0802100C @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0x9]
- movs r2, 0
- cmp r2, r4
- bge _08021000
-_08020FF2:
- adds r0, r6, r2
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _08020FF2
-_08021000:
- ldr r0, [r3]
- adds r0, 0xA
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802100C: .4byte gUnknown_02024C10
- thumb_func_end atk31_copyarray
-
- thumb_func_start atk32_memcpy_with_offset
-atk32_memcpy_with_offset: @ 8021010
- push {r4-r7,lr}
- ldr r3, _08021078 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- adds r7, r2, r0
- ldrb r2, [r1, 0x5]
- ldrb r0, [r1, 0x6]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0x7]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0x8]
- lsls r0, 24
- adds r6, r2, r0
- ldrb r2, [r1, 0x9]
- ldrb r0, [r1, 0xA]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 24
- adds r5, r2, r0
- ldrb r4, [r1, 0xD]
- movs r2, 0
- cmp r2, r4
- bge _0802106C
-_0802105A:
- adds r0, r7, r2
- ldrb r1, [r5]
- adds r1, r2, r1
- adds r1, r6, r1
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, r4
- blt _0802105A
-_0802106C:
- ldr r0, [r3]
- adds r0, 0xE
- str r0, [r3]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08021078: .4byte gUnknown_02024C10
- thumb_func_end atk32_memcpy_with_offset
-
- thumb_func_start sub_802107C
-sub_802107C: @ 802107C
- ldr r3, _080210A4 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r0, [r1]
- ldrb r2, [r2, 0x5]
- orrs r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_080210A4: .4byte gUnknown_02024C10
- thumb_func_end sub_802107C
-
- thumb_func_start atk34_orhalfword
-atk34_orhalfword: @ 80210A8
- push {r4,lr}
- ldr r4, _080210DC @ =gUnknown_02024C10
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r2, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r2, r0
- ldrb r1, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- orrs r1, r0
- strh r1, [r2]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080210DC: .4byte gUnknown_02024C10
- thumb_func_end atk34_orhalfword
-
- thumb_func_start atk35_orword
-atk35_orword: @ 80210E0
- push {r4,lr}
- ldr r4, _08021120 @ =gUnknown_02024C10
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- orrs r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021120: .4byte gUnknown_02024C10
- thumb_func_end atk35_orword
-
- thumb_func_start sub_8021124
-sub_8021124: @ 8021124
- ldr r3, _0802114C @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r2, 0x5]
- ldrb r0, [r1]
- bics r0, r2
- strb r0, [r1]
- ldr r0, [r3]
- adds r0, 0x6
- str r0, [r3]
- bx lr
- .align 2, 0
-_0802114C: .4byte gUnknown_02024C10
- thumb_func_end sub_8021124
-
- thumb_func_start atk37_bichalfword
-atk37_bichalfword: @ 8021150
- push {r4,lr}
- ldr r4, _08021184 @ =gUnknown_02024C10
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- ldrb r0, [r3, 0x2]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r3, 0x3]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 24
- adds r1, r0
- ldrb r2, [r3, 0x5]
- ldrb r0, [r3, 0x6]
- lsls r0, 8
- orrs r2, r0
- ldrh r0, [r1]
- bics r0, r2
- strh r0, [r1]
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08021184: .4byte gUnknown_02024C10
- thumb_func_end atk37_bichalfword
-
- thumb_func_start atk38_bicword
-atk38_bicword: @ 8021188
- push {r4,lr}
- ldr r4, _080211C8 @ =gUnknown_02024C10
- ldr r2, [r4]
- ldrb r3, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- adds r3, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- adds r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- adds r3, r0
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- adds r1, r0
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- ldr r0, [r4]
- adds r0, 0x9
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080211C8: .4byte gUnknown_02024C10
- thumb_func_end atk38_bicword
-
- thumb_func_start atk39_pause
-atk39_pause: @ 80211CC
- push {r4,r5,lr}
- ldr r0, _08021200 @ =gUnknown_02024A64
- ldr r4, [r0]
- cmp r4, 0
- bne _080211F8
- ldr r5, _08021204 @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r3, _08021208 @ =gUnknown_02024D18
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r1
- bcc _080211F8
- strh r4, [r3]
- adds r0, r2, 0x3
- str r0, [r5]
-_080211F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08021200: .4byte gUnknown_02024A64
-_08021204: .4byte gUnknown_02024C10
-_08021208: .4byte gUnknown_02024D18
- thumb_func_end atk39_pause
-
- thumb_func_start sub_802120C
-sub_802120C: @ 802120C
- push {lr}
- ldr r0, _08021224 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0802121E
- ldr r1, _08021228 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802121E:
- pop {r0}
- bx r0
- .align 2, 0
-_08021224: .4byte gUnknown_02024A64
-_08021228: .4byte gUnknown_02024C10
- thumb_func_end sub_802120C
-
- thumb_func_start atk3B_8022C68
-atk3B_8022C68: @ 802122C
- push {lr}
- ldr r0, _08021240 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _0802124C
- ldr r0, _08021244 @ =gUnknown_02024A60
- ldr r1, _08021248 @ =gUnknown_02024C08
- b _08021250
- .align 2, 0
-_08021240: .4byte gUnknown_02024C10
-_08021244: .4byte gUnknown_02024A60
-_08021248: .4byte gUnknown_02024C08
-_0802124C:
- ldr r0, _08021274 @ =gUnknown_02024A60
- ldr r1, _08021278 @ =gUnknown_02024C07
-_08021250:
- ldrb r1, [r1]
- strb r1, [r0]
- ldr r0, _0802127C @ =gUnknown_02024BEC
- ldrh r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldr r0, _08021274 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08021280 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08021274: .4byte gUnknown_02024A60
-_08021278: .4byte gUnknown_02024C07
-_0802127C: .4byte gUnknown_02024BEC
-_08021280: .4byte gUnknown_02024C10
- thumb_func_end atk3B_8022C68
-
- thumb_func_start atk3C_return
-atk3C_return: @ 8021284
- push {lr}
- bl b_movescr_stack_pop_cursor
- pop {r0}
- bx r0
- thumb_func_end atk3C_return
-
- thumb_func_start sub_8021290
-sub_8021290: @ 8021290
- ldr r0, _080212A4 @ =gUnknown_02024C68
- movs r1, 0
- strb r1, [r0]
- ldr r0, _080212A8 @ =gUnknown_02024A60
- strb r1, [r0]
- ldr r1, _080212AC @ =gUnknown_02024A7F
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212A4: .4byte gUnknown_02024C68
-_080212A8: .4byte gUnknown_02024A60
-_080212AC: .4byte gUnknown_02024A7F
- thumb_func_end sub_8021290
-
- thumb_func_start sub_80212B0
-sub_80212B0: @ 80212B0
- ldr r1, _080212C0 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r1, _080212C4 @ =gUnknown_02024A7F
- movs r0, 0xB
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080212C0: .4byte gUnknown_02024A60
-_080212C4: .4byte gUnknown_02024A7F
- thumb_func_end sub_80212B0
-
- thumb_func_start atk3F_end3
-atk3F_end3: @ 80212C8
- push {lr}
- bl b_movescr_stack_pop_cursor
- ldr r2, _080212F0 @ =0x02017140
- adds r1, r2, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0
- beq _080212DE
- subs r0, 0x1
- strb r0, [r1]
-_080212DE:
- ldr r0, _080212F4 @ =gUnknown_030042D4
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_080212F0: .4byte 0x02017140
-_080212F4: .4byte gUnknown_030042D4
- thumb_func_end atk3F_end3
-
- thumb_func_start atk41_call
-atk41_call: @ 80212F8
- push {r4,lr}
- ldr r4, _08021324 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x5
- bl b_movescr_stack_push
- 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
-_08021324: .4byte gUnknown_02024C10
- thumb_func_end atk41_call
-
- thumb_func_start atk42_jumpiftype2
-atk42_jumpiftype2: @ 8021328
- push {r4,lr}
- ldr r4, _08021370 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldr r2, _08021374 @ =gBattleMons
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r2, [r3, 0x2]
- ldrb r1, [r1]
- cmp r2, r1
- beq _08021356
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08021378
-_08021356:
- 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 _0802137C
- .align 2, 0
-_08021370: .4byte gUnknown_02024C10
-_08021374: .4byte gBattleMons
-_08021378:
- adds r0, r3, 0x7
- str r0, [r4]
-_0802137C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk42_jumpiftype2
-
- thumb_func_start sub_8021384
-sub_8021384: @ 8021384
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _080213BC @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r2, [r0, 0x1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080213C0
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _080213C6
- .align 2, 0
-_080213BC: .4byte gUnknown_02024C10
-_080213C0:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_080213C6:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8021384
-
- thumb_func_start sub_80213D0
-sub_80213D0: @ 80213D0
- ldr r1, _080213E4 @ =0x02000000
- ldr r0, _080213E8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r2, _080213EC @ =0x00016060
- adds r0, r2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080213E4: .4byte 0x02000000
-_080213E8: .4byte gUnknown_02024C07
-_080213EC: .4byte 0x00016060
- thumb_func_end sub_80213D0
-
- thumb_func_start atk46_cmd46
-atk46_cmd46: @ 80213F0
- push {r4-r6,lr}
- ldr r5, _08021444 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _08021448 @ =gUnknown_02024A60
- strb r0, [r6]
- ldr r2, [r5]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r4, [r2, 0x2]
- adds r0, r4, 0
- cmp r0, 0x1
- beq _08021426
- cmp r0, 0x11
- beq _08021426
- cmp r0, 0x2
- bne _0802144C
-_08021426:
- ldr r4, _08021444 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldr r0, _08021448 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- b _080214AE
- .align 2, 0
-_08021444: .4byte gUnknown_02024C10
-_08021448: .4byte gUnknown_02024A60
-_0802144C:
- ldr r0, _08021464 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802146C
- adds r0, r2, 0x7
- bl b_movescr_stack_push
- ldr r0, _08021468 @ =gUnknown_081D8EEF
- b _080214AC
- .align 2, 0
-_08021464: .4byte gUnknown_02024C6C
-_08021468: .4byte gUnknown_081D8EEF
-_0802146C:
- adds r0, r4, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021498
- ldr r1, _08021490 @ =gUnknown_02024C98
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021494 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021498
- adds r0, r2, 0x7
- b _080214AC
- .align 2, 0
-_08021490: .4byte gUnknown_02024C98
-_08021494: .4byte 0x000400c0
-_08021498:
- ldrb r1, [r2, 0x2]
- ldrh r2, [r3]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x7
-_080214AC:
- str r0, [r5]
-_080214AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end atk46_cmd46
-
- thumb_func_start sub_80214B4
-sub_80214B4: @ 80214B4
- push {r4-r7,lr}
- ldr r6, _0802151C @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08021520 @ =gUnknown_02024A60
- strb r0, [r7]
- ldr r2, [r6]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- adds r3, r1, r0
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- adds r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- adds r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- adds r4, r1, r0
- ldrb r5, [r3]
- adds r0, r5, 0
- cmp r0, 0x1
- beq _080214FE
- cmp r0, 0x11
- beq _080214FE
- cmp r0, 0x2
- bne _08021524
-_080214FE:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldr r0, _08021520 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802151C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _0802157A
- .align 2, 0
-_0802151C: .4byte gUnknown_02024C10
-_08021520: .4byte gUnknown_02024A60
-_08021524:
- ldr r0, _08021534 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08021538
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_08021534: .4byte gUnknown_02024C6C
-_08021538:
- adds r0, r5, 0
- subs r0, 0xA
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08021564
- ldr r1, _0802155C @ =gUnknown_02024C98
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021560 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021564
- adds r0, r2, 0
- b _08021576
- .align 2, 0
-_0802155C: .4byte gUnknown_02024C98
-_08021560: .4byte 0x000400c0
-_08021564:
- ldrb r1, [r3]
- ldrh r2, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r6]
-_08021576:
- adds r0, 0xA
- str r0, [r6]
-_0802157A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80214B4
-
- thumb_func_start atk47
-atk47: @ 8021580
- push {r4,lr}
- movs r3, 0
- ldr r0, _080215A0 @ =0x02000000
- ldr r2, _080215A4 @ =0x0001601e
- adds r1, r0, r2
- ldrb r1, [r1]
- movs r2, 0xF0
- ands r2, r1
- adds r4, r0, 0
- cmp r2, 0x20
- beq _080215B6
- cmp r2, 0x20
- bgt _080215A8
- cmp r2, 0x10
- beq _080215B2
- b _080215C0
- .align 2, 0
-_080215A0: .4byte 0x02000000
-_080215A4: .4byte 0x0001601e
-_080215A8:
- cmp r2, 0x90
- beq _080215BA
- cmp r2, 0xA0
- beq _080215BE
- b _080215C0
-_080215B2:
- movs r3, 0xF
- b _080215C0
-_080215B6:
- movs r3, 0x27
- b _080215C0
-_080215BA:
- movs r3, 0x16
- b _080215C0
-_080215BE:
- movs r3, 0x2E
-_080215C0:
- ldr r1, _080215EC @ =0x0001601e
- adds r0, r4, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- adds r0, r3, r0
- subs r0, 0x1
- ldr r2, _080215F0 @ =0x000160a4
- adds r1, r4, r2
- movs r2, 0
- strb r0, [r1]
- ldr r1, _080215F4 @ =0x000160a5
- adds r0, r4, r1
- strb r2, [r0]
- ldr r1, _080215F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080215EC: .4byte 0x0001601e
-_080215F0: .4byte 0x000160a4
-_080215F4: .4byte 0x000160a5
-_080215F8: .4byte gUnknown_02024C10
- thumb_func_end atk47
-
- thumb_func_start atk48_playstatchangeanimation
-atk48_playstatchangeanimation: @ 80215FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r8, r0
- movs r3, 0
- ldr r5, _08021670 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- str r3, [sp]
- bl sub_8015150
- ldr r2, _08021674 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r0, [r5]
- ldrb r4, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- movs r0, 0x1
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _08021710
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x15
- cmp r0, 0
- beq _0802163C
- movs r1, 0x2D
-_0802163C:
- cmp r4, 0
- beq _080216E4
- movs r0, 0x1
- mov r10, r0
- ldr r0, _08021678 @ =gUnknown_02024A98
- mov r9, r0
- lsls r5, r1, 16
-_0802164A:
- adds r0, r4, 0
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _080216D6
- ldr r0, _08021670 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802167C
- ldr r0, _08021674 @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- b _080216C4
- .align 2, 0
-_08021670: .4byte gUnknown_02024C10
-_08021674: .4byte gUnknown_02024A60
-_08021678: .4byte gUnknown_02024A98
-_0802167C:
- ldr r6, _08021700 @ =gUnknown_02024A60
- ldrb r0, [r6]
- str r3, [sp]
- bl battle_get_per_side_status
- mov r1, r10
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08021704 @ =gUnknown_02024C80
- adds r0, r1
- ldrb r0, [r0, 0x2]
- ldr r3, [sp]
- cmp r0, 0
- bne _080216D6
- ldr r0, _08021708 @ =gBattleMons
- ldrb r2, [r6]
- movs r1, 0x58
- muls r2, r1
- adds r0, r2, r0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1D
- beq _080216D6
- cmp r0, 0x49
- beq _080216D6
- cmp r0, 0x33
- bne _080216BA
- cmp r7, 0x6
- beq _080216D6
-_080216BA:
- cmp r0, 0x34
- bne _080216C2
- cmp r7, 0x1
- beq _080216D6
-_080216C2:
- adds r0, r7, r2
-_080216C4:
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- ble _080216D6
- lsrs r0, r5, 16
- mov r8, r0
- adds r3, 0x1
-_080216D6:
- lsrs r4, 1
- movs r1, 0x80
- lsls r1, 9
- adds r5, r1
- adds r7, 0x1
- cmp r4, 0
- bne _0802164A
-_080216E4:
- ldr r0, _0802170C @ =gUnknown_02024C10
- mov r9, r0
- cmp r3, 0x1
- ble _08021772
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x39
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x3A
- b _08021770
- .align 2, 0
-_08021700: .4byte gUnknown_02024A60
-_08021704: .4byte gUnknown_02024C80
-_08021708: .4byte gBattleMons
-_0802170C: .4byte gUnknown_02024C10
-_08021710:
- movs r0, 0x2
- ands r0, r1
- movs r1, 0xE
- cmp r0, 0
- beq _0802171C
- movs r1, 0x26
-_0802171C:
- mov r9, r5
- cmp r4, 0
- beq _08021758
- ldr r6, _0802178C @ =gUnknown_02024A98
- adds r5, r2, 0
- lsls r2, r1, 16
-_08021728:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802174A
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r0, r7, r0
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xB
- bgt _0802174A
- lsrs r1, r2, 16
- mov r8, r1
- adds r3, 0x1
-_0802174A:
- lsrs r4, 1
- movs r0, 0x80
- lsls r0, 9
- adds r2, r0
- adds r7, 0x1
- cmp r4, 0
- bne _08021728
-_08021758:
- cmp r3, 0x1
- ble _08021772
- mov r1, r9
- ldr r0, [r1]
- ldrb r1, [r0, 0x3]
- movs r0, 0x2
- ands r0, r1
- movs r1, 0x37
- mov r8, r1
- cmp r0, 0
- beq _08021772
- movs r0, 0x38
-_08021770:
- mov r8, r0
-_08021772:
- mov r1, r9
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08021790
- cmp r3, 0x1
- bgt _08021790
- adds r0, r2, 0x4
- mov r1, r9
- b _080217E6
- .align 2, 0
-_0802178C: .4byte gUnknown_02024A98
-_08021790:
- cmp r3, 0
- beq _080217E0
- ldr r0, _080217D0 @ =0x02000000
- ldr r1, _080217D4 @ =0x000160dc
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _080217E0
- movs r0, 0
- movs r1, 0x1
- mov r2, r8
- str r3, [sp]
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldr r0, _080217D8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _080217DC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x4
- ands r0, r1
- ldr r3, [sp]
- cmp r0, 0
- beq _080217CC
- cmp r3, 0x1
- ble _080217CC
- movs r0, 0x1
- strb r0, [r4]
-_080217CC:
- ldr r1, _080217DC @ =gUnknown_02024C10
- b _080217E2
- .align 2, 0
-_080217D0: .4byte 0x02000000
-_080217D4: .4byte 0x000160dc
-_080217D8: .4byte gUnknown_02024A60
-_080217DC: .4byte gUnknown_02024C10
-_080217E0:
- mov r1, r9
-_080217E2:
- ldr r0, [r1]
- adds r0, 0x4
-_080217E6:
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk48_playstatchangeanimation
-
- thumb_func_start sub_80217F8
-sub_80217F8: @ 80217F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r10, r0
- ldr r0, _08021834 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- str r1, [sp, 0x10]
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x14]
- ldr r1, _08021838 @ =gBattleMons
- ldr r0, _0802183C @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0, r1
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08021844
- ldr r1, _08021840 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x7]
- b _0802184E
- .align 2, 0
-_08021834: .4byte gUnknown_02024C10
-_08021838: .4byte gBattleMons
-_0802183C: .4byte gUnknown_02024C07
-_08021840: .4byte gEnigmaBerries
-_08021844:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r0, 24
-_0802184E:
- str r0, [sp, 0x8]
- ldr r0, _0802186C @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, _08021870 @ =0x020160e8
- adds r1, r0
- str r1, [sp, 0xC]
- subs r0, 0xCC
- ldrb r0, [r0]
- cmp r0, 0
- beq _080218C0
- movs r2, 0x3F
- ands r2, r0
- str r2, [sp, 0x4]
- b _080218D2
- .align 2, 0
-_0802186C: .4byte gUnknown_02024C07
-_08021870: .4byte 0x020160e8
-_08021874:
- strb r2, [r7]
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r0, _080218AC @ =0x02000000
- ldr r3, _080218B0 @ =0x0001600c
- adds r0, r3
- strb r4, [r0]
- bl sub_8020B54
- ldr r2, _080218B4 @ =gUnknown_081D6BBC
- mov r4, r8
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _080218B8 @ =gUnknown_02024C10
- ldr r0, _080218BC @ =gUnknown_081D9B2D
- bl _0802229C
- .align 2, 0
-_080218AC: .4byte 0x02000000
-_080218B0: .4byte 0x0001600c
-_080218B4: .4byte gUnknown_081D6BBC
-_080218B8: .4byte gUnknown_02024C10
-_080218BC: .4byte gUnknown_081D9B2D
-_080218C0:
- ldr r2, _080218D8 @ =gBattleMoves
- ldr r0, _080218DC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [sp, 0x4]
-_080218D2:
- ldr r5, _080218E0 @ =0x02000000
- mov r12, r5
- b _080218EE
- .align 2, 0
-_080218D8: .4byte gBattleMoves
-_080218DC: .4byte gUnknown_02024BE6
-_080218E0: .4byte 0x02000000
-_080218E4:
- mov r0, r10
- cmp r0, 0
- beq _080218EE
- bl _08022286
-_080218EE:
- ldr r0, _08021908 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bls _080218FC
- bl _0802224E
-_080218FC:
- lsls r0, 2
- ldr r1, _0802190C @ =_08021910
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08021908: .4byte 0x0001600c
-_0802190C: .4byte _08021910
- .align 2, 0
-_08021910:
- .4byte _08021958
- .4byte _08021A34
- .4byte _08021AF0
- .4byte _08021B20
- .4byte _08021B44
- .4byte _08021B78
- .4byte _08021B9C
- .4byte _08021C40
- .4byte _08021C78
- .4byte _08021CA8
- .4byte _08021CCC
- .4byte _08021D18
- .4byte _08021DAC
- .4byte _08021E30
- .4byte _08021E70
- .4byte _08022068
- .4byte _080221C0
- .4byte _0802224E
-_08021958:
- ldr r5, _08021A08 @ =gBattleMons
- ldr r2, _08021A0C @ =gUnknown_02024C08
- ldrb r4, [r2]
- movs r6, 0x58
- adds r3, r4, 0
- muls r3, r6
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 16
- ands r1, r0
- cmp r1, 0
- beq _080219FE
- adds r0, r3, r5
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080219FE
- ldr r0, _08021A10 @ =gUnknown_02024C07
- ldrb r1, [r0]
- cmp r1, r4
- beq _080219FE
- adds r0, r1, 0
- bl battle_side_get_owner
- adds r4, r0, 0
- ldr r1, _08021A0C @ =gUnknown_02024C08
- ldrb r0, [r1]
- bl battle_side_get_owner
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080219FE
- ldr r0, _08021A14 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _080219FE
- ldr r2, _08021A18 @ =gUnknown_02024D28
- ldr r4, _08021A0C @ =gUnknown_02024C08
- ldrb r3, [r4]
- lsls r1, r3, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _080219C8
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _080219FE
-_080219C8:
- ldr r2, _08021A1C @ =gBattleMoves
- ldr r0, _08021A20 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080219FE
- adds r0, r3, 0
- muls r0, r6
- adds r1, r0, r5
- ldrb r2, [r1, 0x19]
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- cmp r0, 0xB
- bgt _080219FE
- adds r0, r2, 0x1
- strb r0, [r1, 0x19]
- bl b_movescr_stack_push_cursor
- ldr r1, _08021A24 @ =gUnknown_02024C10
- ldr r0, _08021A28 @ =gUnknown_081D9132
- str r0, [r1]
- movs r5, 0x1
- mov r10, r5
-_080219FE:
- ldr r2, _08021A2C @ =0x02000000
- ldr r0, _08021A30 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021A08: .4byte gBattleMons
-_08021A0C: .4byte gUnknown_02024C08
-_08021A10: .4byte gUnknown_02024C07
-_08021A14: .4byte gUnknown_02024C68
-_08021A18: .4byte gUnknown_02024D28
-_08021A1C: .4byte gBattleMoves
-_08021A20: .4byte gUnknown_02024BE6
-_08021A24: .4byte gUnknown_02024C10
-_08021A28: .4byte gUnknown_081D9132
-_08021A2C: .4byte 0x02000000
-_08021A30: .4byte 0x0001600c
-_08021A34:
- ldr r2, _08021AD0 @ =gBattleMons
- ldr r1, _08021AD4 @ =gUnknown_02024C08
- ldrb r4, [r1]
- movs r3, 0x58
- mov r12, r3
- mov r3, r12
- muls r3, r4
- adds r7, r2, 0
- adds r7, 0x4C
- adds r6, r3, r7
- ldr r5, [r6]
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- bne _08021A54
- b _08021DFA
-_08021A54:
- adds r0, r3, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08021A5E
- b _08021DFA
-_08021A5E:
- ldr r0, _08021AD8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- cmp r0, r4
- bne _08021A68
- b _08021DFA
-_08021A68:
- ldr r0, _08021ADC @ =gUnknown_02024D68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r0, 0xC
- adds r1, r0
- ldr r0, [r1]
- cmp r0, 0
- bne _08021A7C
- b _08021DFA
-_08021A7C:
- ldr r0, _08021AE0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021A8A
- b _08021DFA
-_08021A8A:
- ldr r4, [sp, 0x4]
- cmp r4, 0xA
- beq _08021A92
- b _08021DFA
-_08021A92:
- movs r0, 0x21
- negs r0, r0
- ands r5, r0
- str r5, [r6]
- ldr r4, _08021AE4 @ =gUnknown_02024A60
- ldr r5, _08021AD4 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r4]
- ldrb r0, [r5]
- mov r1, r12
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- bl b_movescr_stack_push_cursor
- ldr r1, _08021AE8 @ =gUnknown_02024C10
- ldr r0, _08021AEC @ =gUnknown_081D955D
- str r0, [r1]
- movs r2, 0x1
- mov r10, r2
- b _08021DFA
- .align 2, 0
-_08021AD0: .4byte gBattleMons
-_08021AD4: .4byte gUnknown_02024C08
-_08021AD8: .4byte gUnknown_02024C07
-_08021ADC: .4byte gUnknown_02024D68
-_08021AE0: .4byte gUnknown_02024C68
-_08021AE4: .4byte gUnknown_02024A60
-_08021AE8: .4byte gUnknown_02024C10
-_08021AEC: .4byte gUnknown_081D955D
-_08021AF0:
- ldr r0, _08021B14 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08021B0C
- movs r4, 0x1
- mov r10, r4
-_08021B0C:
- ldr r2, _08021B18 @ =0x02000000
- ldr r5, _08021B1C @ =0x0001600c
- adds r1, r2, r5
- b _08021E00
- .align 2, 0
-_08021B14: .4byte gUnknown_02024C08
-_08021B18: .4byte 0x02000000
-_08021B1C: .4byte 0x0001600c
-_08021B20:
- ldr r0, _08021B40 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x4
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _08021B3A
- b _08021DFA
-_08021B3A:
- movs r0, 0x1
- mov r10, r0
- b _08021DFA
- .align 2, 0
-_08021B40: .4byte gUnknown_02024C08
-_08021B44:
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08021B68
- movs r4, 0x1
- mov r10, r4
- ldr r5, _08021B64 @ =0x02000000
- mov r12, r5
- b _0802224E
- .align 2, 0
-_08021B64: .4byte 0x02000000
-_08021B68:
- ldr r2, _08021B70 @ =0x02000000
- ldr r0, _08021B74 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021B70: .4byte 0x02000000
-_08021B74: .4byte 0x0001600c
-_08021B78:
- ldr r0, _08021B98 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x8
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _08021B92
- b _08021DFA
-_08021B92:
- movs r1, 0x1
- mov r10, r1
- b _08021DFA
- .align 2, 0
-_08021B98: .4byte gUnknown_02024C07
-_08021B9C:
- ldr r0, _08021C28 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021BE0
- ldr r4, [sp, 0x8]
- cmp r4, 0x1D
- bne _08021BE0
- ldr r0, _08021C2C @ =gUnknown_02024BE8
- ldrh r2, [r0]
- adds r7, r0, 0
- cmp r2, 0xA5
- beq _08021BE0
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- cmp r1, 0
- beq _08021BC8
- ldr r0, _08021C30 @ =0x0000ffff
- cmp r1, r0
- bne _08021BE0
-_08021BC8:
- cmp r2, 0xE2
- bne _08021BDA
- ldr r0, _08021C34 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08021BDA
- b _08022244
-_08021BDA:
- ldrh r0, [r7]
- ldr r1, [sp, 0xC]
- strh r0, [r1]
-_08021BE0:
- movs r4, 0
- ldr r2, _08021C38 @ =gBattleMons
- ldr r3, _08021C3C @ =gUnknown_02024C07
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldr r5, [sp, 0xC]
- ldrh r1, [r5]
- mov r9, r3
- cmp r0, r1
- beq _08021C18
- mov r6, r9
- movs r3, 0x58
- adds r5, r1, 0
-_08021C02:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08021C18
- lsls r0, r4, 1
- ldrb r1, [r6]
- muls r1, r3
- adds r0, r1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r5
- bne _08021C02
-_08021C18:
- cmp r4, 0x4
- beq _08021C1E
- b _08022244
-_08021C1E:
- movs r0, 0
- ldr r1, [sp, 0xC]
-_08021C22:
- strh r0, [r1]
- b _08022244
- .align 2, 0
-_08021C28: .4byte gUnknown_02024C6C
-_08021C2C: .4byte gUnknown_02024BE8
-_08021C30: .4byte 0x0000ffff
-_08021C34: .4byte gUnknown_02024C68
-_08021C38: .4byte gBattleMons
-_08021C3C: .4byte gUnknown_02024C07
-_08021C40:
- movs r4, 0
- ldr r0, _08021C6C @ =gUnknown_02024A68
- ldrb r2, [r0]
- cmp r4, r2
- blt _08021C4C
- b _08022244
-_08021C4C:
- movs r5, 0
- ldr r2, _08021C70 @ =0x020160f0
- ldr r3, _08021C74 @ =gBattleMons
-_08021C52:
- ldrh r1, [r2]
- cmp r1, 0
- beq _08021C5C
- strh r1, [r3, 0x2E]
- strh r5, [r2]
-_08021C5C:
- adds r2, 0x2
- adds r3, 0x58
- adds r4, 0x1
- ldrb r1, [r0]
- cmp r4, r1
- blt _08021C52
- b _08022244
- .align 2, 0
-_08021C6C: .4byte gUnknown_02024A68
-_08021C70: .4byte 0x020160f0
-_08021C74: .4byte gBattleMons
-_08021C78:
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021C98
- movs r2, 0x1
- mov r10, r2
- ldr r3, _08021C94 @ =0x02000000
- mov r12, r3
- b _0802224E
- .align 2, 0
-_08021C94: .4byte 0x02000000
-_08021C98:
- ldr r2, _08021CA0 @ =0x02000000
- ldr r4, _08021CA4 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021CA0: .4byte 0x02000000
-_08021CA4: .4byte 0x0001600c
-_08021CA8:
- movs r0, 0x4
- movs r1, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- beq _08021CBC
- movs r5, 0x1
- mov r10, r5
-_08021CBC:
- ldr r2, _08021CC4 @ =0x02000000
- ldr r0, _08021CC8 @ =0x0001600c
- adds r1, r2, r0
- b _08021E00
- .align 2, 0
-_08021CC4: .4byte 0x02000000
-_08021CC8: .4byte 0x0001600c
-_08021CCC:
- ldr r1, _08021D04 @ =gUnknown_02024C98
- ldr r0, _08021D08 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D0C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021CE2
- b _08021DFA
-_08021CE2:
- ldr r0, _08021D10 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08021CF0
- b _08021DFA
-_08021CF0:
- ldr r4, _08021D14 @ =gUnknown_02024A60
- strb r2, [r4]
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08021DFA
- .align 2, 0
-_08021D04: .4byte gUnknown_02024C98
-_08021D08: .4byte gUnknown_02024C07
-_08021D0C: .4byte 0x000400c0
-_08021D10: .4byte gUnknown_02024C6C
-_08021D14: .4byte gUnknown_02024A60
-_08021D18:
- ldr r0, _08021D88 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08021D44
- ldr r1, _08021D8C @ =gUnknown_02024C98
- ldr r0, _08021D90 @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08021D94 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08021D44
- adds r0, r2, 0
- bl sub_8015660
- lsls r0, 24
- cmp r0, 0
- beq _08021D7E
-_08021D44:
- ldr r4, _08021D98 @ =gUnknown_02024A60
- ldr r5, _08021D90 @ =gUnknown_02024C07
- ldrb r0, [r5]
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _08021D8C @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r2, 2
- adds r2, r0
- ldr r0, [r2]
- ldr r1, _08021D9C @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
- ldr r2, _08021DA0 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08021D7E:
- ldr r2, _08021DA4 @ =0x02000000
- ldr r4, _08021DA8 @ =0x0001600c
- adds r1, r2, r4
- b _08021E00
- .align 2, 0
-_08021D88: .4byte gUnknown_02024C68
-_08021D8C: .4byte gUnknown_02024C98
-_08021D90: .4byte gUnknown_02024C07
-_08021D94: .4byte 0x000400c0
-_08021D98: .4byte gUnknown_02024A60
-_08021D9C: .4byte 0xfffbff3f
-_08021DA0: .4byte gUnknown_02024D68
-_08021DA4: .4byte 0x02000000
-_08021DA8: .4byte 0x0001600c
-_08021DAC:
- ldr r2, _08021E0C @ =gUnknown_02024D68
- ldr r1, _08021E10 @ =gUnknown_02024C08
- ldrb r3, [r1]
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08021DFA
- ldr r0, _08021E14 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r3, r0
- bcs _08021DFA
- ldr r5, _08021E18 @ =gUnknown_02024C98
- adds r0, r4, r5
- ldr r0, [r0]
- ldr r1, _08021E1C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08021DFA
- ldr r4, _08021E20 @ =gUnknown_02024A60
- strb r3, [r4]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _08021E10 @ =gUnknown_02024C08
- ldrb r2, [r0]
- lsls r2, 2
- adds r2, r5
- ldr r0, [r2]
- ldr r1, _08021E24 @ =0xfffbff3f
- ands r0, r1
- str r0, [r2]
-_08021DFA:
- ldr r2, _08021E28 @ =0x02000000
- ldr r3, _08021E2C @ =0x0001600c
- adds r1, r2, r3
-_08021E00:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- mov r12, r2
- b _0802224E
- .align 2, 0
-_08021E0C: .4byte gUnknown_02024D68
-_08021E10: .4byte gUnknown_02024C08
-_08021E14: .4byte gUnknown_02024A68
-_08021E18: .4byte gUnknown_02024C98
-_08021E1C: .4byte 0x000400c0
-_08021E20: .4byte gUnknown_02024A60
-_08021E24: .4byte 0xfffbff3f
-_08021E28: .4byte 0x02000000
-_08021E2C: .4byte 0x0001600c
-_08021E30:
- movs r4, 0
- ldr r0, _08021E60 @ =gUnknown_02024A68
- ldrb r5, [r0]
- cmp r4, r5
- blt _08021E3C
- b _08022244
-_08021E3C:
- ldr r2, _08021E64 @ =gUnknown_02024CA8
- ldr r5, _08021E68 @ =0xfeffffff
- adds r3, r0, 0
- ldr r1, _08021E6C @ =gUnknown_02024AD0
-_08021E44:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _08021E50
- ldr r0, [r1]
- ands r0, r5
- str r0, [r1]
-_08021E50:
- adds r2, 0x1C
- adds r1, 0x58
- adds r4, 0x1
- ldrb r0, [r3]
- cmp r4, r0
- blt _08021E44
- b _08022244
- .align 2, 0
-_08021E60: .4byte gUnknown_02024A68
-_08021E64: .4byte gUnknown_02024CA8
-_08021E68: .4byte 0xfeffffff
-_08021E6C: .4byte gUnknown_02024AD0
-_08021E70:
- ldr r1, _08021F2C @ =gUnknown_02024C6C
- ldr r3, [r1]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r3
- ldr r2, _08021F30 @ =gUnknown_02024C07
- mov r9, r2
- adds r5, r1, 0
- cmp r0, 0
- beq _08021E9A
- ldr r0, _08021F34 @ =gUnknown_02024A60
- ldrb r2, [r2]
- strb r2, [r0]
- ldr r1, _08021F38 @ =gUnknown_02024C08
- ldrb r0, [r1]
- mov r4, r9
- strb r0, [r4]
- strb r2, [r1]
- ldr r0, _08021F3C @ =0xffffefff
- ands r3, r0
- str r3, [r5]
-_08021E9A:
- ldr r1, _08021F40 @ =gBattleMoves
- ldr r2, _08021F44 @ =gUnknown_02024BE8
- ldrh r3, [r2]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- mov r8, r1
- adds r7, r2, 0
- cmp r0, 0x7F
- bne _08021EBE
- ldr r0, _08021F48 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08021ECA
-_08021EBE:
- ldr r1, _08021F4C @ =gUnknown_02024C2C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r3, [r0]
-_08021ECA:
- ldr r0, _08021F50 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08021F54 @ =gBitTable
- mov r3, r9
- ldrb r4, [r3]
- lsls r0, r4, 2
- adds r0, r2
- ldr r3, [r0]
- ands r1, r3
- adds r6, r2, 0
- cmp r1, 0
- beq _08021EE4
- b _08022244
-_08021EE4:
- ldr r0, _08021F58 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- beq _08021EF2
- b _08022244
-_08021EF2:
- ldrh r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08021F04
- b _08022244
-_08021F04:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08021F68
- ldr r1, _08021F5C @ =gUnknown_02024C34
- lsls r0, r4, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _08021F60 @ =gUnknown_02024C4C
- mov r4, r9
- ldrb r1, [r4]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08021F64 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- strh r0, [r1]
- b _08021F82
- .align 2, 0
-_08021F2C: .4byte gUnknown_02024C6C
-_08021F30: .4byte gUnknown_02024C07
-_08021F34: .4byte gUnknown_02024A60
-_08021F38: .4byte gUnknown_02024C08
-_08021F3C: .4byte 0xffffefff
-_08021F40: .4byte gBattleMoves
-_08021F44: .4byte gUnknown_02024BE8
-_08021F48: .4byte gUnknown_02024C68
-_08021F4C: .4byte gUnknown_02024C2C
-_08021F50: .4byte gUnknown_02024C0C
-_08021F54: .4byte gBitTable
-_08021F58: .4byte 0x000160a6
-_08021F5C: .4byte gUnknown_02024C34
-_08021F60: .4byte gUnknown_02024C4C
-_08021F64: .4byte gUnknown_02024BE6
-_08021F68:
- ldr r1, _08021FD0 @ =gUnknown_02024C34
- lsls r0, r4, 1
- adds r0, r1
- ldr r1, _08021FD4 @ =0x0000ffff
- strh r1, [r0]
- ldr r1, _08021FD8 @ =gUnknown_02024C4C
- mov r2, r9
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0]
-_08021F82:
- ldr r2, _08021FDC @ =gUnknown_02024C08
- ldrb r3, [r2]
- lsls r0, r3, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ldr r1, [r5]
- ands r1, r0
- cmp r1, 0
- bne _08021FA0
- ldr r0, _08021FE0 @ =gUnknown_02024C5C
- adds r0, r3, r0
- mov r3, r9
- ldrb r1, [r3]
- strb r1, [r0]
-_08021FA0:
- ldr r0, [r5]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _0802204C
- ldr r0, _08021FE4 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802204C
- ldrh r2, [r7]
- ldr r0, _08021FD4 @ =0x0000ffff
- cmp r2, r0
- bne _08021FEC
- ldr r1, _08021FE8 @ =gUnknown_02024C3C
- ldr r4, _08021FDC @ =gUnknown_02024C08
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- strh r2, [r0]
- b _08022244
- .align 2, 0
-_08021FD0: .4byte gUnknown_02024C34
-_08021FD4: .4byte 0x0000ffff
-_08021FD8: .4byte gUnknown_02024C4C
-_08021FDC: .4byte gUnknown_02024C08
-_08021FE0: .4byte gUnknown_02024C5C
-_08021FE4: .4byte gUnknown_02024C68
-_08021FE8: .4byte gUnknown_02024C3C
-_08021FEC:
- ldr r0, _08022014 @ =gUnknown_02024C3C
- ldr r5, _08022018 @ =gUnknown_02024C08
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- ldr r4, _0802201C @ =gUnknown_02024BE6
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r0, _08022020 @ =0x0001601c
- add r0, r12
- ldrb r3, [r0]
- cmp r3, 0
- beq _08022028
- ldr r0, _08022024 @ =gUnknown_02024C44
- ldrb r1, [r5]
- lsls r1, 1
- adds r1, r0
- movs r0, 0x3F
- ands r0, r3
- b _08021C22
- .align 2, 0
-_08022014: .4byte gUnknown_02024C3C
-_08022018: .4byte gUnknown_02024C08
-_0802201C: .4byte gUnknown_02024BE6
-_08022020: .4byte 0x0001601c
-_08022024: .4byte gUnknown_02024C44
-_08022028:
- ldr r0, _08022044 @ =gUnknown_02024C44
- ldr r1, _08022048 @ =gUnknown_02024C08
- ldrb r2, [r1]
- lsls r2, 1
- adds r2, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x2]
- strh r0, [r2]
- b _08022244
- .align 2, 0
-_08022044: .4byte gUnknown_02024C44
-_08022048: .4byte gUnknown_02024C08
-_0802204C:
- ldr r0, _0802205C @ =gUnknown_02024C3C
- ldr r2, _08022060 @ =gUnknown_02024C08
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldr r0, _08022064 @ =0x0000ffff
- b _08021C22
- .align 2, 0
-_0802205C: .4byte gUnknown_02024C3C
-_08022060: .4byte gUnknown_02024C08
-_08022064: .4byte 0x0000ffff
-_08022068:
- ldr r0, _0802212C @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r6, _08022130 @ =gBitTable
- ldr r2, _08022134 @ =gUnknown_02024C07
- ldrb r5, [r2]
- lsls r0, r5, 2
- adds r0, r6
- ldr r4, [r0]
- ands r1, r4
- mov r9, r2
- cmp r1, 0
- beq _08022082
- b _08022244
-_08022082:
- ldr r0, _08022138 @ =0x000160a6
- add r0, r12
- ldrb r0, [r0]
- ands r0, r4
- cmp r0, 0
- beq _08022090
- b _08022244
-_08022090:
- ldr r1, _0802213C @ =gBattleMoves
- ldr r4, _08022140 @ =gUnknown_02024BE8
- ldrh r3, [r4]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x8]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r0, _08022144 @ =gUnknown_02024C6C
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 18
- ands r0, r1
- cmp r0, 0
- beq _0802215C
- ldr r2, _08022148 @ =gUnknown_02024C08
- ldrb r0, [r2]
- cmp r5, r0
- bne _080220C0
- b _08022244
-_080220C0:
- adds r2, r0, 0
- lsls r0, r2, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r0, 28
- ands r1, r0
- cmp r1, 0
- bne _0802215C
- ldr r0, _0802214C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _0802215C
- lsls r0, r2, 1
- ldr r5, _08022150 @ =0x000160ac
- adds r0, r5
- add r0, r12
- strb r3, [r0]
- ldr r0, _08022148 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r1, 1
- ldr r2, _08022154 @ =0x000160ad
- adds r1, r2
- add r1, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r1]
- ldr r3, _08022148 @ =gUnknown_02024C08
- ldrb r2, [r3]
- lsls r2, 2
- mov r5, r9
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- ldr r1, _08022158 @ =0x00016100
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- strb r0, [r2]
- ldrb r2, [r3]
- lsls r2, 2
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- ldrh r0, [r4]
- lsrs r0, 8
- strb r0, [r2]
- b _08022244
- .align 2, 0
-_0802212C: .4byte gUnknown_02024C0C
-_08022130: .4byte gBitTable
-_08022134: .4byte gUnknown_02024C07
-_08022138: .4byte 0x000160a6
-_0802213C: .4byte gBattleMoves
-_08022140: .4byte gUnknown_02024BE8
-_08022144: .4byte gUnknown_02024C6C
-_08022148: .4byte gUnknown_02024C08
-_0802214C: .4byte gUnknown_02024C68
-_08022150: .4byte 0x000160ac
-_08022154: .4byte 0x000160ad
-_08022158: .4byte 0x00016100
-_0802215C:
- mov r1, r9
- ldrb r0, [r1]
- ldr r2, _080221B4 @ =gUnknown_02024C08
- ldrb r2, [r2]
- cmp r0, r2
- beq _08022244
- ldr r3, _080221B4 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- ldr r4, _080221B8 @ =0x000160ac
- adds r0, r4
- add r0, r12
- movs r3, 0
- strb r3, [r0]
- ldr r5, _080221B4 @ =gUnknown_02024C08
- ldrb r0, [r5]
- lsls r0, 1
- ldr r1, _080221BC @ =0x000160ad
- adds r0, r1
- add r0, r12
- strb r3, [r0]
- ldrb r2, [r5]
- lsls r2, 2
- mov r4, r9
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x53
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- ldrb r2, [r5]
- lsls r2, 2
- ldrb r0, [r4]
- lsrs r0, 1
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- adds r2, r0
- add r2, r12
- strb r3, [r2]
- b _08022244
- .align 2, 0
-_080221B4: .4byte gUnknown_02024C08
-_080221B8: .4byte 0x000160ac
-_080221BC: .4byte 0x000160ad
-_080221C0:
- ldr r5, _080222B0 @ =gUnknown_02024C6C
- ldr r2, [r5]
- movs r0, 0x80
- lsls r0, 12
- ands r0, r2
- cmp r0, 0
- bne _08022244
- ldr r0, _080222B4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08022244
- ldr r1, _080222B8 @ =gUnknown_02024D28
- ldr r0, _080222BC @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- cmp r0, 0
- blt _08022244
- ldr r0, _080222C0 @ =gBattleMoves
- mov r9, r0
- ldr r1, _080222C4 @ =gUnknown_02024BE6
- mov r8, r1
- ldrh r0, [r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r0, [r1, 0x6]
- cmp r0, 0x8
- bne _08022244
- movs r6, 0x80
- lsls r6, 2
- adds r4, r6, 0
- ands r4, r2
- cmp r4, 0
- bne _08022244
- ldr r7, _080222C8 @ =gUnknown_02024C08
- ldrb r0, [r7]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _080222CC @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _0802223A
- bl _08021874
-_0802223A:
- ldr r0, [r5]
- orrs r0, r6
- str r0, [r5]
- ldr r2, _080222D0 @ =0x02000000
- mov r12, r2
-_08022244:
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0802224E:
- ldr r3, [sp, 0x10]
- cmp r3, 0x1
- bne _08022262
- mov r4, r10
- cmp r4, 0
- bne _08022262
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- movs r0, 0x11
- strb r0, [r1]
-_08022262:
- ldr r5, [sp, 0x10]
- cmp r5, 0x2
- bne _08022278
- ldr r1, _080222D4 @ =0x0001600c
- add r1, r12
- ldr r0, [sp, 0x14]
- ldrb r2, [r1]
- cmp r0, r2
- bne _08022278
- movs r0, 0x11
- strb r0, [r1]
-_08022278:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- beq _08022286
- bl _080218E4
-_08022286:
- ldr r0, _080222D4 @ =0x0001600c
- add r0, r12
- ldrb r0, [r0]
- cmp r0, 0x11
- bne _0802229E
- mov r3, r10
- cmp r3, 0
- bne _0802229E
- ldr r1, _080222D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
-_0802229C:
- str r0, [r1]
-_0802229E:
- 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
-_080222B0: .4byte gUnknown_02024C6C
-_080222B4: .4byte gUnknown_020239F8
-_080222B8: .4byte gUnknown_02024D28
-_080222BC: .4byte gUnknown_02024C07
-_080222C0: .4byte gBattleMoves
-_080222C4: .4byte gUnknown_02024BE6
-_080222C8: .4byte gUnknown_02024C08
-_080222CC: .4byte gBattleMons
-_080222D0: .4byte 0x02000000
-_080222D4: .4byte 0x0001600c
-_080222D8: .4byte gUnknown_02024C10
- thumb_func_end sub_80217F8
-
- thumb_func_start atk4A_damageflags
-atk4A_damageflags: @ 80222DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- movs r5, 0
- ldr r2, _08022340 @ =gBattleMoves
- ldr r0, _08022344 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- mov r8, r0
- ldr r2, _08022348 @ =gBattleMons
- ldr r3, _0802234C @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r12, r2
- adds r7, r3, 0
- cmp r0, 0x1A
- bne _08022370
- mov r1, r8
- cmp r1, 0x4
- bne _08022370
- ldr r3, _08022350 @ =byte_2024C06
- strb r0, [r3]
- ldr r2, _08022354 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x9
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08022358 @ =gUnknown_02024C3C
- ldrb r0, [r7]
- lsls r0, 1
- adds r0, r1
- strh r4, [r0]
- ldr r0, _0802235C @ =gUnknown_02024D1E
- mov r2, r8
- strb r2, [r0, 0x6]
- ldrb r0, [r7]
- ldrb r1, [r3]
- bl sub_81074C4
- b _08022452
- .align 2, 0
-_08022340: .4byte gBattleMoves
-_08022344: .4byte gUnknown_02024BE6
-_08022348: .4byte gBattleMons
-_0802234C: .4byte gUnknown_02024C08
-_08022350: .4byte byte_2024C06
-_08022354: .4byte gUnknown_02024C68
-_08022358: .4byte gUnknown_02024C3C
-_0802235C: .4byte gUnknown_02024D1E
-_08022360:
- ldr r0, _0802236C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
- b _08022452
- .align 2, 0
-_0802236C: .4byte gUnknown_02024C68
-_08022370:
- ldr r1, _0802237C @ =gTypeEffectiveness
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r6, r1, 0
- b _08022432
- .align 2, 0
-_0802237C: .4byte gTypeEffectiveness
-_08022380:
- adds r0, r5, r6
- ldrb r0, [r0]
- cmp r0, r8
- bne _0802242C
- adds r2, r5, 0x1
- adds r3, r2, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x21
- ldrb r1, [r3]
- adds r3, r2, 0
- ldrb r0, [r0]
- cmp r1, r0
- bne _080223BE
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08022360
- cmp r1, 0x5
- bne _080223B2
- movs r0, 0x4
- orrs r4, r0
-_080223B2:
- cmp r1, 0x14
- bne _080223BE
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223BE:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r1, [r0]
- cmp r1, r2
- beq _080223E6
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _08022360
-_080223E6:
- cmp r1, r2
- beq _080223FC
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bne _080223FC
- movs r0, 0x4
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_080223FC:
- adds r2, r3, r6
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x22
- ldrb r2, [r2]
- ldrb r1, [r1]
- cmp r2, r1
- bne _0802242C
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, r2
- beq _0802242C
- adds r0, r5, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x14
- bne _0802242C
- movs r0, 0x2
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r4, r0, 24
-_0802242C:
- adds r5, 0x3
- adds r0, r5, r6
- ldrb r0, [r0]
-_08022432:
- cmp r0, 0xFF
- beq _08022452
- cmp r0, 0xFE
- bne _08022380
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 22
- ands r0, r1
- cmp r0, 0
- beq _0802242C
-_08022452:
- ldr r2, _08022500 @ =gBattleMons
- ldr r0, _08022504 @ =gUnknown_02024C08
- mov r8, r0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r6, [r0]
- cmp r6, 0x19
- bne _080224CE
- movs r5, 0x29
- ands r5, r4
- cmp r5, 0
- bne _080224CE
- ldr r0, _08022508 @ =gUnknown_02024C07
- ldrb r0, [r0]
- ldr r7, _0802250C @ =gUnknown_02024BE6
- ldrh r1, [r7]
- bl move_weather_interaction
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080224CE
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08022494
- movs r0, 0x6
- ands r4, r0
- cmp r4, 0x6
- bne _080224CE
-_08022494:
- ldr r2, _08022510 @ =gBattleMoves
- ldrh r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _080224CE
- ldr r3, _08022514 @ =byte_2024C06
- strb r6, [r3]
- ldr r2, _08022518 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802251C @ =gUnknown_02024C3C
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- strh r5, [r0]
- ldr r1, _08022520 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x6]
- ldrb r0, [r2]
- ldrb r1, [r3]
- bl sub_81074C4
-_080224CE:
- ldr r0, _08022518 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080224EC
- ldr r2, _08022524 @ =gUnknown_02024D28
- ldr r0, _08022508 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 4
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1, 0x1]
-_080224EC:
- ldr r1, _08022528 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022500: .4byte gBattleMons
-_08022504: .4byte gUnknown_02024C08
-_08022508: .4byte gUnknown_02024C07
-_0802250C: .4byte gUnknown_02024BE6
-_08022510: .4byte gBattleMoves
-_08022514: .4byte byte_2024C06
-_08022518: .4byte gUnknown_02024C68
-_0802251C: .4byte gUnknown_02024C3C
-_08022520: .4byte gUnknown_02024D1E
-_08022524: .4byte gUnknown_02024D28
-_08022528: .4byte gUnknown_02024C10
- thumb_func_end atk4A_damageflags
-
- thumb_func_start atk4B_cmd4b
-atk4B_cmd4b: @ 802252C
- push {r4,lr}
- ldr r4, _08022568 @ =gUnknown_02024A60
- ldr r0, _0802256C @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08022570 @ =gUnknown_02024C6C
- ldr r1, _08022574 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _0802255A
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802255A:
- ldr r1, _08022578 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08022568: .4byte gUnknown_02024A60
-_0802256C: .4byte gUnknown_02024C07
-_08022570: .4byte gUnknown_02024C6C
-_08022574: .4byte gBitTable
-_08022578: .4byte gUnknown_02024C10
- thumb_func_end atk4B_cmd4b
-
- thumb_func_start atk4C_switch1
-atk4C_switch1: @ 802257C
- push {r4-r6,lr}
- ldr r0, _080225D4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080225CC
- ldr r5, _080225D8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080225DC @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r3, _080225E0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r3
- ldr r2, _080225E4 @ =0x02000000
- ldr r6, _080225E8 @ =0x00016068
- adds r0, r6
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _080225EC @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080225CC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080225D4: .4byte gUnknown_02024A64
-_080225D8: .4byte gUnknown_02024C10
-_080225DC: .4byte gUnknown_02024A60
-_080225E0: .4byte gUnknown_02024A6A
-_080225E4: .4byte 0x02000000
-_080225E8: .4byte 0x00016068
-_080225EC: .4byte gBitTable
- thumb_func_end atk4C_switch1
-
- thumb_func_start sub_80225F0
-sub_80225F0: @ 80225F0
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r0, _0802274C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _080225FE
- b _08022744
-_080225FE:
- ldr r0, _08022750 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022754 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r6, _08022758 @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- mov r0, sp
- movs r2, 0x58
- bl memcpy
- ldrb r0, [r4]
- muls r0, r5
- adds r3, r0, r6
- movs r2, 0
- ldr r5, _0802275C @ =gUnknown_02024260
- adds r7, r4, 0
-_0802262C:
- adds r0, r3, r2
- ldrb r1, [r4]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r5
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x57
- bls _0802262C
- ldr r4, _08022758 @ =gBattleMons
- ldrb r0, [r7]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r3, _08022760 @ =gBaseStats
- ldrh r1, [r2]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x6]
- adds r2, 0x21
- strb r0, [r2]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r2, [r1]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x7]
- adds r1, 0x22
- strb r0, [r1]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r4
- ldrh r0, [r1]
- ldrb r1, [r1, 0x17]
- lsrs r1, 7
- bl GetAbilityBySpecies
- ldrb r1, [r7]
- muls r1, r6
- adds r1, r4
- adds r1, 0x20
- strb r0, [r1]
- ldrb r0, [r7]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08022764 @ =gUnknown_02024DBC
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _08022768 @ =gBitTable
- ldr r2, _0802276C @ =gUnknown_02024A6A
- ldrb r5, [r7]
- lsls r0, r5, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- mov r12, r4
- cmp r1, 0
- beq _080226CA
- adds r0, r5, 0
- muls r0, r6
- add r0, r12
- movs r1, 0
- strh r1, [r0, 0x2E]
-_080226CA:
- ldr r2, _08022770 @ =gBattleMoves
- ldr r0, _08022774 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x7F
- bne _08022710
- movs r2, 0
- adds r4, r7, 0
- movs r6, 0x58
- mov r5, r12
- adds r5, 0x18
- add r3, sp, 0x18
-_080226EA:
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r2, r1
- adds r1, r5
- adds r0, r3, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080226EA
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- mov r1, r12
- adds r1, 0x50
- adds r0, r1
- ldr r1, [sp, 0x50]
- str r1, [r0]
-_08022710:
- bl sub_8010B88
- ldr r0, _08022778 @ =0x02000000
- ldr r3, _08022754 @ =gUnknown_02024A60
- ldrb r2, [r3]
- ldr r1, _0802277C @ =0x00016003
- adds r0, r1
- strb r2, [r0]
- ldr r1, _08022780 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- ldr r2, _0802276C @ =gUnknown_02024A6A
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08022750 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08022744:
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802274C: .4byte gUnknown_02024A64
-_08022750: .4byte gUnknown_02024C10
-_08022754: .4byte gUnknown_02024A60
-_08022758: .4byte gBattleMons
-_0802275C: .4byte gUnknown_02024260
-_08022760: .4byte gBaseStats
-_08022764: .4byte gUnknown_02024DBC
-_08022768: .4byte gBitTable
-_0802276C: .4byte gUnknown_02024A6A
-_08022770: .4byte gBattleMoves
-_08022774: .4byte gUnknown_02024BE6
-_08022778: .4byte 0x02000000
-_0802277C: .4byte 0x00016003
-_08022780: .4byte gUnknown_030041C0
- thumb_func_end sub_80225F0
-
- thumb_func_start sub_8022784
-sub_8022784: @ 8022784
- push {r4,r5,lr}
- ldr r0, _0802280C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08022806
- ldr r0, _08022810 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08022814 @ =gUnknown_02024A60
- strb r0, [r4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080227D0
- ldr r0, _08022818 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0802281C @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _080227D0
- ldr r2, _08022820 @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
-_080227D0:
- ldr r2, _08022824 @ =gUnknown_02024C0C
- ldr r1, _08022828 @ =gBitTable
- ldr r5, _08022814 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- ldr r1, _0802282C @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrb r1, [r0]
- ldr r4, _08022810 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r2, [r0, 0x2]
- movs r0, 0
- bl sub_800C704
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
-_08022806:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802280C: .4byte gUnknown_02024A64
-_08022810: .4byte gUnknown_02024C10
-_08022814: .4byte gUnknown_02024A60
-_08022818: .4byte gUnknown_020239F8
-_0802281C: .4byte 0x00000902
-_08022820: .4byte gBattleMons
-_08022824: .4byte gUnknown_02024C0C
-_08022828: .4byte gBitTable
-_0802282C: .4byte gUnknown_02024A6A
- thumb_func_end sub_8022784
-
- thumb_func_start sub_8022830
-sub_8022830: @ 8022830
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08022894 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- movs r0, 0x7F
- ands r0, r1
- bl sub_8015150
- ldr r3, _08022898 @ =gUnknown_02024A60
- strb r0, [r3]
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080228A8
- ldr r1, _0802289C @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080228A0 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- bne _0802287C
- ldr r1, _080228A4 @ =gUnknown_02024C98
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 3
- ands r0, r1
- cmp r0, 0
- beq _080228A8
-_0802287C:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08022A2C
- .align 2, 0
-_08022894: .4byte gUnknown_02024C10
-_08022898: .4byte gUnknown_02024A60
-_0802289C: .4byte gBattleMons
-_080228A0: .4byte 0x0400e000
-_080228A4: .4byte gUnknown_02024C98
-_080228A8:
- ldr r5, _08022934 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08022948
- ldr r4, _08022938 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802293C @ =gPlayerParty
- mov r8, r1
- cmp r0, 0x1
- bne _080228CC
- ldr r0, _08022940 @ =gEnemyParty
- mov r8, r0
-_080228CC:
- movs r5, 0
- ldrb r0, [r4]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080228E6
- movs r5, 0x3
-_080228E6:
- adds r6, r5, 0x3
- cmp r5, r6
- bge _0802292E
- ldr r7, _08022944 @ =gUnknown_02024A6A
-_080228EE:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08022928
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08022928
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08022928
- ldr r0, _08022938 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r5
- bne _0802292E
-_08022928:
- adds r5, 0x1
- cmp r5, r6
- blt _080228EE
-_0802292E:
- cmp r5, r6
- beq _080229FC
- b _08022A24
- .align 2, 0
-_08022934: .4byte gUnknown_020239F8
-_08022938: .4byte gUnknown_02024A60
-_0802293C: .4byte gPlayerParty
-_08022940: .4byte gEnemyParty
-_08022944: .4byte gUnknown_02024A6A
-_08022948:
- ldr r0, _08022978 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08022988
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0802297C
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- b _0802297E
- .align 2, 0
-_08022978: .4byte gUnknown_02024A60
-_0802297C:
- adds r6, r7, 0
-_0802297E:
- ldr r0, _08022984 @ =gEnemyParty
- mov r8, r0
- b _080229AE
- .align 2, 0
-_08022984: .4byte gEnemyParty
-_08022988:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080229A8
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- b _080229AA
-_080229A8:
- adds r6, r7, 0
-_080229AA:
- ldr r1, _08022A18 @ =gPlayerParty
- mov r8, r1
-_080229AE:
- movs r5, 0
-_080229B0:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080229F2
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _080229F2
- ldr r1, _08022A1C @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _080229F2
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- bne _080229F8
-_080229F2:
- adds r5, 0x1
- cmp r5, 0x5
- ble _080229B0
-_080229F8:
- cmp r5, 0x6
- bne _08022A24
-_080229FC:
- ldr r3, _08022A20 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08022A2C
- .align 2, 0
-_08022A18: .4byte gPlayerParty
-_08022A1C: .4byte gUnknown_02024A6A
-_08022A20: .4byte gUnknown_02024C10
-_08022A24:
- ldr r1, _08022A38 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08022A2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A38: .4byte gUnknown_02024C10
- thumb_func_end sub_8022830
-
- thumb_func_start sub_8022A3C
-sub_8022A3C: @ 8022A3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r4, _08022A84 @ =0x02000000
- ldr r5, _08022A88 @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r3, _08022A8C @ =0x00016064
- adds r1, r0, r3
- adds r1, r4
- ldr r3, _08022A90 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _08022A94 @ =0x0001606c
- adds r4, r1
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08022A84: .4byte 0x02000000
-_08022A88: .4byte gUnknown_02024A60
-_08022A8C: .4byte 0x00016064
-_08022A90: .4byte gUnknown_02024A6A
-_08022A94: .4byte 0x0001606c
- thumb_func_end sub_8022A3C
-
- thumb_func_start atk50_openpartyscreen
-atk50_openpartyscreen: @ 8022A98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r7, 0
- movs r0, 0
- mov r9, r0
- ldr r6, _08022B44 @ =gUnknown_02024C10
- ldr r1, [r6]
- ldrb r2, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r2, r0
- mov r8, r2
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- mov r12, r6
- cmp r0, 0x5
- beq _08022ACE
- b _08022F74
-_08022ACE:
- ldr r0, _08022B48 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r1, 0x41
- ands r1, r0
- cmp r1, 0x1
- beq _08022BBC
- ldr r1, _08022B4C @ =gUnknown_02024A60
- strb r7, [r1]
- ldr r0, _08022B50 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r7, r0
- bcc _08022AE8
- b _08022F62
-_08022AE8:
- ldr r7, _08022B54 @ =gUnknown_02024C6C
- ldr r6, _08022B58 @ =gBitTable
- adds r4, r1, 0
- ldr r0, _08022B5C @ =gUnknown_02024C0C
- mov r8, r0
-_08022AF2:
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- ands r0, r1
- cmp r0, 0
- beq _08022B94
- adds r0, r2, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022B60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022BA2
- .align 2, 0
-_08022B44: .4byte gUnknown_02024C10
-_08022B48: .4byte gUnknown_020239F8
-_08022B4C: .4byte gUnknown_02024A60
-_08022B50: .4byte gUnknown_02024A68
-_08022B54: .4byte gUnknown_02024C6C
-_08022B58: .4byte gBitTable
-_08022B5C: .4byte gUnknown_02024C0C
-_08022B60:
- ldr r5, _08022B90 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022BA2
- movs r0, 0x6
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022BA2
- .align 2, 0
-_08022B90: .4byte gUnknown_02024D68
-_08022B94:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022BA2:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08022BB8 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08022AF2
- b _08022F62
- .align 2, 0
-_08022BB8: .4byte gUnknown_02024A68
-_08022BBC:
- ands r1, r0
- cmp r1, 0
- bne _08022BC4
- b _08022F62
-_08022BC4:
- ldr r0, _08022C1C @ =gUnknown_02024C6C
- mov r8, r0
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r6, _08022C20 @ =gBitTable
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- beq _08022C7E
- ldr r4, _08022C24 @ =gUnknown_02024A60
- strb r7, [r4]
- movs r0, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022C2C
- ldr r2, _08022C28 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- mov r2, r8
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022C7E
- .align 2, 0
-_08022C1C: .4byte gUnknown_02024C6C
-_08022C20: .4byte gBitTable
-_08022C24: .4byte gUnknown_02024A60
-_08022C28: .4byte gUnknown_02024C0C
-_08022C2C:
- ldr r6, _08022C60 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022C6C
- ldr r0, _08022C64 @ =0x02000000
- ldr r1, _08022C68 @ =0x0001606a
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022C7E
- .align 2, 0
-_08022C60: .4byte gUnknown_02024D68
-_08022C64: .4byte 0x02000000
-_08022C68: .4byte 0x0001606a
-_08022C6C:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r2, 0x1
- mov r9, r2
-_08022C7E:
- ldr r6, _08022CD8 @ =gBitTable
- ldr r0, [r6, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _08022D40
- ldr r0, [r6]
- ands r0, r5
- cmp r0, 0
- bne _08022D40
- ldr r4, _08022CDC @ =gUnknown_02024A60
- movs r0, 0x2
- strb r0, [r4]
- movs r0, 0x2
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022CE8
- ldr r2, _08022CE0 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022CE4 @ =gUnknown_02024C6C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022D40
- .align 2, 0
-_08022CD8: .4byte gBitTable
-_08022CDC: .4byte gUnknown_02024A60
-_08022CE0: .4byte gUnknown_02024C0C
-_08022CE4: .4byte gUnknown_02024C6C
-_08022CE8:
- ldr r6, _08022D1C @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022D28
- ldr r0, _08022D20 @ =0x02000000
- ldr r1, _08022D24 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022D40
- .align 2, 0
-_08022D1C: .4byte gUnknown_02024D68
-_08022D20: .4byte 0x02000000
-_08022D24: .4byte 0x00016068
-_08022D28:
- movs r0, 0x1
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- bne _08022D40
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022D40:
- ldr r6, _08022D90 @ =gBitTable
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- beq _08022DF6
- ldr r4, _08022D94 @ =gUnknown_02024A60
- movs r0, 0x1
- strb r0, [r4]
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022DA0
- ldr r2, _08022D98 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022D9C @ =gUnknown_02024C6C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022DF6
- .align 2, 0
-_08022D90: .4byte gBitTable
-_08022D94: .4byte gUnknown_02024A60
-_08022D98: .4byte gUnknown_02024C0C
-_08022D9C: .4byte gUnknown_02024C6C
-_08022DA0:
- ldr r6, _08022DD4 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022DE0
- ldr r0, _08022DD8 @ =0x02000000
- ldr r1, _08022DDC @ =0x0001606b
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022DF6
- .align 2, 0
-_08022DD4: .4byte gUnknown_02024D68
-_08022DD8: .4byte 0x02000000
-_08022DDC: .4byte 0x0001606b
-_08022DE0:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- movs r0, 0x2
- mov r2, r9
- orrs r2, r0
- mov r9, r2
-_08022DF6:
- ldr r6, _08022E50 @ =gBitTable
- ldr r0, [r6, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _08022EB8
- ldr r0, [r6, 0x4]
- ands r0, r5
- cmp r0, 0
- bne _08022EB8
- ldr r4, _08022E54 @ =gUnknown_02024A60
- movs r0, 0x3
- strb r0, [r4]
- movs r0, 0x3
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08022E60
- ldr r2, _08022E58 @ =gUnknown_02024C0C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _08022E5C @ =gUnknown_02024C6C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _08022EB8
- .align 2, 0
-_08022E50: .4byte gBitTable
-_08022E54: .4byte gUnknown_02024A60
-_08022E58: .4byte gUnknown_02024C0C
-_08022E5C: .4byte gUnknown_02024C6C
-_08022E60:
- ldr r6, _08022E94 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022EA0
- ldr r0, _08022E98 @ =0x02000000
- ldr r1, _08022E9C @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08022EB8
- .align 2, 0
-_08022E94: .4byte gUnknown_02024D68
-_08022E98: .4byte 0x02000000
-_08022E9C: .4byte 0x00016069
-_08022EA0:
- movs r0, 0x2
- mov r2, r9
- ands r2, r0
- cmp r2, 0
- bne _08022EB8
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022EB8:
- ldr r1, _08022EE8 @ =gUnknown_02024D68
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- adds r0, r1, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F0C
- cmp r5, 0
- beq _08022F0C
- ldr r0, _08022EEC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r0, _08022EF0 @ =gBitTable
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08022EF8
- ldr r1, _08022EF4 @ =gUnknown_02024A60
- movs r0, 0x2
- strb r0, [r1]
- b _08022EFC
- .align 2, 0
-_08022EE8: .4byte gUnknown_02024D68
-_08022EEC: .4byte gUnknown_02024C0C
-_08022EF0: .4byte gBitTable
-_08022EF4: .4byte gUnknown_02024A60
-_08022EF8:
- ldr r0, _08022F3C @ =gUnknown_02024A60
- strb r1, [r0]
-_08022EFC:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldr r0, _08022F3C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022F0C:
- ldr r1, _08022F40 @ =gUnknown_02024D68
- ldrb r0, [r1, 0x14]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- adds r0, r1, 0
- adds r0, 0x3C
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- blt _08022F62
- cmp r5, 0
- beq _08022F62
- ldr r0, _08022F44 @ =gUnknown_02024C0C
- ldrb r0, [r0]
- ldr r1, _08022F48 @ =gBitTable
- ldr r1, [r1, 0x4]
- ands r0, r1
- cmp r0, 0
- beq _08022F4C
- ldr r1, _08022F3C @ =gUnknown_02024A60
- movs r0, 0x3
- b _08022F50
- .align 2, 0
-_08022F3C: .4byte gUnknown_02024A60
-_08022F40: .4byte gUnknown_02024D68
-_08022F44: .4byte gUnknown_02024C0C
-_08022F48: .4byte gBitTable
-_08022F4C:
- ldr r1, _08022F6C @ =gUnknown_02024A60
- movs r0, 0x1
-_08022F50:
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldr r0, _08022F6C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
-_08022F62:
- ldr r1, _08022F70 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- b _08023302
- .align 2, 0
-_08022F6C: .4byte gUnknown_02024A60
-_08022F70: .4byte gUnknown_02024C10
-_08022F74:
- cmp r0, 0x6
- beq _08022F7A
- b _08023170
-_08022F7A:
- ldr r0, _08022FF0 @ =gUnknown_020239F8
- ldrh r2, [r0]
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08022F88
- b _0802310C
-_08022F88:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _08022F92
- b _0802310C
-_08022F92:
- ldr r7, _08022FF4 @ =gUnknown_02024C6C
- ldr r0, [r7]
- lsrs r5, r0, 28
- ldr r4, _08022FF8 @ =gBitTable
- ldr r0, [r4, 0x8]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r0, [r4]
- ands r0, r5
- cmp r0, 0
- beq _0802303A
- ldr r6, _08022FFC @ =gUnknown_02024A60
- movs r0, 0x2
- strb r0, [r6]
- ldr r0, _08023000 @ =gUnknown_02024260
- ldrb r1, [r0, 0x1]
- movs r0, 0x2
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _08023008
- ldr r2, _08023004 @ =gUnknown_02024C0C
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r7]
- bics r0, r1
- str r0, [r7]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0802303A
- .align 2, 0
-_08022FF0: .4byte gUnknown_020239F8
-_08022FF4: .4byte gUnknown_02024C6C
-_08022FF8: .4byte gBitTable
-_08022FFC: .4byte gUnknown_02024A60
-_08023000: .4byte gUnknown_02024260
-_08023004: .4byte gUnknown_02024C0C
-_08023008:
- ldr r4, _08023098 @ =gUnknown_02024D68
- ldrb r0, [r6]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _0802303A
- ldr r0, _0802309C @ =0x02000000
- ldr r1, _080230A0 @ =0x00016068
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_0802303A:
- ldr r4, _080230A4 @ =gBitTable
- ldr r0, [r4, 0xC]
- ands r0, r5
- cmp r0, 0
- beq _080230EE
- ldr r0, [r4, 0x4]
- ands r5, r0
- cmp r5, 0
- beq _080230EE
- ldr r5, _080230A8 @ =gUnknown_02024A60
- movs r0, 0x3
- strb r0, [r5]
- ldr r0, _080230AC @ =gUnknown_02024260
- ldr r2, _080230B0 @ =0x00000201
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x3
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080230BC
- ldr r2, _080230B4 @ =gUnknown_02024C0C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- ldr r2, _080230B8 @ =gUnknown_02024C6C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x2A_2A_2A_2A
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- b _080230EE
- .align 2, 0
-_08023098: .4byte gUnknown_02024D68
-_0802309C: .4byte 0x02000000
-_080230A0: .4byte 0x00016068
-_080230A4: .4byte gBitTable
-_080230A8: .4byte gUnknown_02024A60
-_080230AC: .4byte gUnknown_02024260
-_080230B0: .4byte 0x00000201
-_080230B4: .4byte gUnknown_02024C0C
-_080230B8: .4byte gUnknown_02024C6C
-_080230BC:
- ldr r4, _080230FC @ =gUnknown_02024D68
- ldrb r0, [r5]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 25
- cmp r0, 0
- blt _080230EE
- ldr r0, _08023100 @ =0x02000000
- ldr r1, _08023104 @ =0x00016069
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8022A3C
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
-_080230EE:
- ldr r1, _08023108 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
- mov r12, r1
- b _08023110
- .align 2, 0
-_080230FC: .4byte gUnknown_02024D68
-_08023100: .4byte 0x02000000
-_08023104: .4byte 0x00016069
-_08023108: .4byte gUnknown_02024C10
-_0802310C:
- adds r0, r1, 0x6
- str r0, [r6]
-_08023110:
- ldr r0, _08023160 @ =gUnknown_02024C6C
- ldr r0, [r0]
- lsrs r5, r0, 28
- ldr r1, _08023164 @ =gUnknown_02024C09
- movs r0, 0
- strb r0, [r1]
- ldr r4, _08023168 @ =gBitTable
- ldr r2, [r4]
- ands r2, r5
- ldr r6, _0802316C @ =gUnknown_02024A68
- cmp r2, 0
- bne _0802314C
- adds r7, r6, 0
- ldrb r0, [r6]
- cmp r2, r0
- bcs _0802314C
- adds r3, r1, 0
-_08023132:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r2, [r3]
- lsls r0, r2, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _0802314C
- ldrb r0, [r7]
- cmp r2, r0
- bcc _08023132
-_0802314C:
- ldrb r0, [r1]
- ldrb r6, [r6]
- cmp r0, r6
- beq _08023156
- b _08023302
-_08023156:
- mov r1, r8
- mov r2, r12
- str r1, [r2]
- b _08023302
- .align 2, 0
-_08023160: .4byte gUnknown_02024C6C
-_08023164: .4byte gUnknown_02024C09
-_08023168: .4byte gBitTable
-_0802316C: .4byte gUnknown_02024A68
-_08023170:
- movs r0, 0x80
- ands r0, r2
- movs r5, 0x1
- cmp r0, 0
- beq _0802317C
- movs r5, 0
-_0802317C:
- movs r0, 0x7F
- ands r0, r2
- bl sub_8015150
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _080231A4 @ =gUnknown_02024D68
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 25
- cmp r0, 0
- bge _080231A8
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231A4: .4byte gUnknown_02024D68
-_080231A8:
- adds r0, r7, 0
- movs r1, 0x6
- movs r2, 0x6
- bl sub_8018018
- lsls r0, 24
- cmp r0, 0
- beq _080231F8
- ldr r2, _080231E8 @ =gUnknown_02024A60
- strb r7, [r2]
- ldr r3, _080231EC @ =gUnknown_02024C0C
- ldr r4, _080231F0 @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- ldrb r1, [r3]
- orrs r0, r1
- strb r0, [r3]
- ldr r3, _080231F4 @ =gUnknown_02024C6C
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r4
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- mov r0, r8
- str r0, [r6]
- b _08023302
- .align 2, 0
-_080231E8: .4byte gUnknown_02024A60
-_080231EC: .4byte gUnknown_02024C0C
-_080231F0: .4byte gBitTable
-_080231F4: .4byte gUnknown_02024C6C
-_080231F8:
- ldr r4, _080232A0 @ =gUnknown_02024A60
- strb r7, [r4]
- ldr r3, _080232A4 @ =0x02000000
- ldrb r0, [r4]
- ldr r2, _080232A8 @ =0x00016064
- adds r1, r0, r2
- adds r1, r3
- ldr r2, _080232AC @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- ldr r1, _080232B0 @ =0x00016068
- adds r0, r1
- adds r0, r3
- ldrb r2, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- ldr r1, _080232B4 @ =0x0001606c
- adds r3, r1
- adds r0, r3
- str r0, [sp]
- movs r0, 0
- adds r1, r5, 0
- movs r3, 0
- bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r6]
- adds r0, 0x6
- str r0, [r6]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- cmp r0, 0
- bne _0802325A
- ldr r1, _080232B8 @ =gUnknown_030042E0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xFE
- bhi _0802325A
- adds r0, 0x1
- strb r0, [r1, 0x2]
-_0802325A:
- ldr r0, _080232BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080232C4
- ldr r1, _080232A0 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080232C0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r0, 0
- beq _08023302
- adds r4, r1, 0
-_08023276:
- ldrb r0, [r4]
- cmp r0, r7
- beq _0802328A
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802328A:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _080232C0 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08023276
- b _08023302
- .align 2, 0
-_080232A0: .4byte gUnknown_02024A60
-_080232A4: .4byte 0x02000000
-_080232A8: .4byte 0x00016064
-_080232AC: .4byte gUnknown_02024A6A
-_080232B0: .4byte 0x00016068
-_080232B4: .4byte 0x0001606c
-_080232B8: .4byte gUnknown_030042E0
-_080232BC: .4byte gUnknown_020239F8
-_080232C0: .4byte gUnknown_02024A68
-_080232C4:
- adds r0, r7, 0
- bl battle_get_per_side_status
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r4, _08023310 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _08023314 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08023318 @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080232F4
- movs r0, 0x2
- eors r3, r0
- strb r3, [r4]
-_080232F4:
- movs r0, 0
- movs r1, 0x2
- bl sub_800D1D8
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08023302:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023310: .4byte gUnknown_02024A60
-_08023314: .4byte gUnknown_02024C0C
-_08023318: .4byte gBitTable
- thumb_func_end atk50_openpartyscreen
-
- thumb_func_start sub_802331C
-sub_802331C: @ 802331C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802334C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0802332C
- b _080234FE
-_0802332C:
- ldr r4, _08023350 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r7, _08023354 @ =gUnknown_02024A60
- strb r0, [r7]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x1
- beq _080233A0
- cmp r0, 0x1
- bgt _08023358
- cmp r0, 0
- beq _0802335E
- b _080234F6
- .align 2, 0
-_0802334C: .4byte gUnknown_02024A64
-_08023350: .4byte gUnknown_02024C10
-_08023354: .4byte gUnknown_02024A60
-_08023358:
- cmp r0, 0x2
- beq _080233BC
- b _080234F6
-_0802335E:
- movs r3, 0
- ldr r2, _08023390 @ =gUnknown_02024A68
- ldrb r0, [r2]
- cmp r3, r0
- blt _0802336A
- b _080234F6
-_0802336A:
- ldr r0, _08023394 @ =0x02000000
- ldr r1, _08023398 @ =gUnknown_02024260
- movs r5, 0x80
- lsls r5, 2
- adds r4, r2, 0
- ldr r6, _0802339C @ =0x00016068
- adds r2, r0, r6
-_08023378:
- ldrb r0, [r1]
- cmp r0, 0x22
- bne _08023382
- ldrb r0, [r1, 0x1]
- strb r0, [r2]
-_08023382:
- adds r1, r5
- adds r2, 0x1
- adds r3, 0x1
- ldrb r0, [r4]
- cmp r3, r0
- blt _08023378
- b _080234F6
- .align 2, 0
-_08023390: .4byte gUnknown_02024A68
-_08023394: .4byte 0x02000000
-_08023398: .4byte gUnknown_02024260
-_0802339C: .4byte 0x00016068
-_080233A0:
- ldr r0, _080233B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080233AE
- b _080234F6
-_080233AE:
- ldrb r0, [r7]
- bl sub_8012258
- b _080234F6
- .align 2, 0
-_080233B8: .4byte gUnknown_020239F8
-_080233BC:
- ldr r1, _08023484 @ =gUnknown_02024D1E
- ldr r4, _08023488 @ =gUnknown_02024260
- ldrb r0, [r7]
- lsls r0, 9
- adds r2, r4, 0x1
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r6, _0802348C @ =0x02000000
- ldrb r0, [r7]
- ldr r3, _08023490 @ =0x00016068
- adds r1, r0, r3
- adds r1, r6
- lsls r0, 9
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08023494 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080234A4
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r5, _08023498 @ =0x0001606c
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- lsls r0, 9
- adds r2, r4, 0x2
- mov r12, r2
- add r0, r12
- ldrb r2, [r0]
- movs r3, 0xF0
- adds r0, r3, 0
- ands r0, r2
- ldrb r2, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- ldr r2, _0802349C @ =0x0001606d
- adds r1, r2
- adds r1, r6
- lsls r0, 9
- adds r4, 0x3
- mov r8, r4
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r4, 0x2
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r7]
- eors r0, r4
- lsls r1, r0, 1
- adds r1, r0
- adds r1, r5
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r12
- ldrb r0, [r0]
- ands r3, r0
- lsrs r3, 4
- ldrb r0, [r1]
- orrs r3, r0
- strb r3, [r1]
- ldrb r0, [r7]
- eors r4, r0
- lsls r1, r4, 1
- adds r1, r4
- ldr r3, _080234A0 @ =0x0001606e
- adds r1, r3
- adds r1, r6
- ldrb r0, [r7]
- lsls r0, 9
- add r0, r8
- ldrb r0, [r0]
- strb r0, [r1]
- b _080234AA
- .align 2, 0
-_08023484: .4byte gUnknown_02024D1E
-_08023488: .4byte gUnknown_02024260
-_0802348C: .4byte 0x02000000
-_08023490: .4byte 0x00016068
-_08023494: .4byte gUnknown_020239F8
-_08023498: .4byte 0x0001606c
-_0802349C: .4byte 0x0001606d
-_080234A0: .4byte 0x0001606e
-_080234A4:
- ldrb r0, [r7]
- bl sub_8012258
-_080234AA:
- ldr r1, _08023508 @ =gUnknown_030041C0
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- ldr r4, _0802350C @ =gBattleMons
- ldr r3, _08023510 @ =gUnknown_02024C07
- ldrb r0, [r3]
- movs r2, 0x58
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r2, _08023514 @ =gUnknown_03004290
- strb r5, [r2]
- movs r0, 0x7
- strb r0, [r2, 0x1]
- ldr r3, _08023518 @ =gUnknown_02024A60
- ldrb r0, [r3]
- strb r0, [r2, 0x2]
- ldr r1, _0802351C @ =gUnknown_02024260
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r2, 0x4]
-_080234F6:
- ldr r1, _08023520 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
-_080234FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023508: .4byte gUnknown_030041C0
-_0802350C: .4byte gBattleMons
-_08023510: .4byte gUnknown_02024C07
-_08023514: .4byte gUnknown_03004290
-_08023518: .4byte gUnknown_02024A60
-_0802351C: .4byte gUnknown_02024260
-_08023520: .4byte gUnknown_02024C10
- thumb_func_end sub_802331C
-
- thumb_func_start sub_8023524
-sub_8023524: @ 8023524
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _08023630 @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08023634 @ =gUnknown_02024A60
- strb r0, [r4]
- ldrb r0, [r4]
- bl sub_80157C4
- ldr r2, _08023638 @ =gUnknown_02024C6C
- ldr r1, _0802363C @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 28
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- ldr r2, _08023640 @ =gUnknown_02024D68
- ldrb r0, [r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- bl battle_side_get_owner
- ldr r5, _08023644 @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- bne _0802367C
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802367C
- ldr r1, _08023648 @ =gBattleMons
- mov r9, r1
- ldrb r2, [r4]
- movs r7, 0x58
- adds r0, r2, 0
- muls r0, r7
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0802367C
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1A
- beq _0802367C
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- mov r1, r8
- orrs r1, r2
- strh r1, [r0]
- ldrb r0, [r4]
- bl battle_side_get_owner
- ldr r2, _0802364C @ =gUnknown_02024C80
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x6]
- movs r1, 0x5
- subs r1, r0
- lsls r1, 25
- lsrs r1, 24
- ldr r5, _08023650 @ =gUnknown_02024BEC
- ldrb r0, [r4]
- muls r0, r7
- add r0, r9
- ldrh r0, [r0, 0x2C]
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08023614
- movs r0, 0x1
- str r0, [r5]
-_08023614:
- ldr r0, _08023654 @ =0x02000000
- ldrb r1, [r4]
- ldr r2, _08023658 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- bl b_movescr_stack_push_cursor
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08023660
- ldr r0, _0802365C @ =gUnknown_081D919F
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023630: .4byte gUnknown_02024C10
-_08023634: .4byte gUnknown_02024A60
-_08023638: .4byte gUnknown_02024C6C
-_0802363C: .4byte gBitTable
-_08023640: .4byte gUnknown_02024D68
-_08023644: .4byte gUnknown_02024C7A
-_08023648: .4byte gBattleMons
-_0802364C: .4byte gUnknown_02024C80
-_08023650: .4byte gUnknown_02024BEC
-_08023654: .4byte 0x02000000
-_08023658: .4byte 0x00016003
-_0802365C: .4byte gUnknown_081D919F
-_08023660:
- cmp r0, 0x1
- bne _08023670
- ldr r0, _0802366C @ =gUnknown_081D9171
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_0802366C: .4byte gUnknown_081D9171
-_08023670:
- ldr r0, _08023678 @ =gUnknown_081D91CD
- str r0, [r6]
- b _080237B6
- .align 2, 0
-_08023678: .4byte gUnknown_081D91CD
-_0802367C:
- ldr r1, _08023754 @ =gBattleMons
- ldr r5, _08023758 @ =gUnknown_02024A60
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x36
- bne _080236A2
- ldr r1, _0802375C @ =gUnknown_02024CA8
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x18]
-_080236A2:
- ldrb r1, [r5]
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080236B8
- b _080237B6
-_080236B8:
- ldrb r1, [r5]
- movs r0, 0
- movs r2, 0
- bl sub_801A02C
- lsls r0, 24
- cmp r0, 0
- bne _080237B6
- ldrb r0, [r5]
- bl battle_side_get_owner
- ldr r1, _08023760 @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r2, [r0]
- ldr r1, _08023764 @ =0x0000fdff
- ands r1, r2
- strh r1, [r0]
- movs r4, 0
- ldr r0, _08023768 @ =gUnknown_02024A68
- ldrb r3, [r0]
- cmp r4, r3
- bge _08023706
- ldr r6, _0802376C @ =gUnknown_02024A7A
- ldr r3, _08023770 @ =gUnknown_02024A76
- movs r2, 0xC
- adds r1, r0, 0
-_080236F0:
- adds r0, r4, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _080236FE
- adds r0, r4, r3
- strb r2, [r0]
-_080236FE:
- adds r4, 0x1
- ldrb r0, [r1]
- cmp r4, r0
- blt _080236F0
-_08023706:
- movs r4, 0
- ldr r0, _08023768 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- bge _08023736
- ldr r5, _08023754 @ =gBattleMons
-_08023712:
- lsls r0, r4, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08023774 @ =0x020160bc
- adds r0, r1
- movs r1, 0x58
- muls r1, r4
- adds r1, r5
- ldrh r1, [r1, 0x28]
- strh r1, [r0]
- adds r4, 0x1
- ldr r0, _08023768 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _08023712
-_08023736:
- ldr r0, _08023778 @ =gUnknown_02024C10
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x5
- bne _080237B0
- ldr r0, _0802377C @ =gUnknown_02024C6C
- ldr r0, [r0]
- lsrs r4, r0, 28
- ldr r1, _08023780 @ =gUnknown_02024C09
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r2, _08023784 @ =gBitTable
- b _08023796
- .align 2, 0
-_08023754: .4byte gBattleMons
-_08023758: .4byte gUnknown_02024A60
-_0802375C: .4byte gUnknown_02024CA8
-_08023760: .4byte gUnknown_02024C7A
-_08023764: .4byte 0x0000fdff
-_08023768: .4byte gUnknown_02024A68
-_0802376C: .4byte gUnknown_02024A7A
-_08023770: .4byte gUnknown_02024A76
-_08023774: .4byte 0x020160bc
-_08023778: .4byte gUnknown_02024C10
-_0802377C: .4byte gUnknown_02024C6C
-_08023780: .4byte gUnknown_02024C09
-_08023784: .4byte gBitTable
-_08023788:
- ldr r0, _080237C4 @ =gUnknown_02024A68
- ldrb r3, [r1]
- ldrb r0, [r0]
- cmp r3, r0
- bcs _080237B0
- adds r0, r3, 0x1
- strb r0, [r1]
-_08023796:
- ldrb r0, [r1]
- lsls r0, 2
- adds r0, r2
- ldr r3, [r0]
- adds r0, r4, 0
- ands r0, r3
- cmp r0, 0
- beq _08023788
- ldr r0, _080237C8 @ =gUnknown_02024C0C
- ldrb r0, [r0]
- ands r0, r3
- cmp r0, 0
- bne _08023788
-_080237B0:
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
-_080237B6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080237C4: .4byte gUnknown_02024A68
-_080237C8: .4byte gUnknown_02024C0C
- thumb_func_end sub_8023524
-
- thumb_func_start sub_80237CC
-sub_80237CC: @ 80237CC
- push {lr}
- ldr r0, _080237DC @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080237E0
- movs r0, 0
- b _080237E2
- .align 2, 0
-_080237DC: .4byte gUnknown_02024C10
-_080237E0:
- movs r0, 0x1
-_080237E2:
- bl battle_get_side_with_given_state
- ldr r1, _08023804 @ =gUnknown_02024A60
- strb r0, [r1]
- movs r0, 0
- bl dp01_build_cmdbuf_x08_8_8_8
- ldr r0, _08023804 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08023808 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08023804: .4byte gUnknown_02024A60
-_08023808: .4byte gUnknown_02024C10
- thumb_func_end sub_80237CC
-
- thumb_func_start atk54_802511C
-atk54_802511C: @ 802380C
- push {r4,r5,lr}
- ldr r5, _0802383C @ =gUnknown_02024A60
- ldr r0, _08023840 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023844 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl dp01_build_cmdbuf_x2B_aa_0
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802383C: .4byte gUnknown_02024A60
-_08023840: .4byte gUnknown_02024C07
-_08023844: .4byte gUnknown_02024C10
- thumb_func_end atk54_802511C
-
- thumb_func_start sub_8023848
-sub_8023848: @ 8023848
- push {r4,r5,lr}
- ldr r5, _08023878 @ =gUnknown_02024A60
- ldr r0, _0802387C @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r4, _08023880 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0
- bl sub_800D074
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r4]
- adds r0, 0x3
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023878: .4byte gUnknown_02024A60
-_0802387C: .4byte gUnknown_02024C07
-_08023880: .4byte gUnknown_02024C10
- thumb_func_end sub_8023848
-
- thumb_func_start atk56_8025194
-atk56_8025194: @ 8023884
- push {r4,r5,lr}
- ldr r5, _080238AC @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080238B0 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x2D_2D_2D_2D
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080238AC: .4byte gUnknown_02024C10
-_080238B0: .4byte gUnknown_02024A60
- thumb_func_end atk56_8025194
-
- thumb_func_start atk57_80251C4_flee
-atk57_80251C4_flee: @ 80238B4
- push {r4,lr}
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _080238E0 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _080238E4 @ =gUnknown_02024D26
- ldrb r1, [r0]
- movs r0, 0
- bl dp01_build_cmdbuf_x37_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080238E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080238E0: .4byte gUnknown_02024A60
-_080238E4: .4byte gUnknown_02024D26
-_080238E8: .4byte gUnknown_02024C10
- thumb_func_end atk57_80251C4_flee
-
- thumb_func_start atk58_cmd58
-atk58_cmd58: @ 80238EC
- push {r4,r5,lr}
- ldr r5, _08023918 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802391C @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x06_a
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023918: .4byte gUnknown_02024C10
-_0802391C: .4byte gUnknown_02024A60
- thumb_func_end atk58_cmd58
-
- thumb_func_start atk59_8025230
-atk59_8025230: @ 8023920
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0802399C @ =gUnknown_02024C10
- ldr r2, [r0]
- ldrb r6, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldrb r4, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _080239A0 @ =0x02000000
- ldr r1, _080239A4 @ =0x00016018
- adds r7, r0, r1
- ldrb r1, [r7]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r2, 0x9]
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _080239AC @ =0x0000fffe
- cmp r5, r0
- bne _08023992
- mov r9, r7
- mov r8, r5
- movs r7, 0x64
-_0802397A:
- mov r3, r9
- ldrb r0, [r3]
- muls r0, r7
- ldr r1, _080239A8 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r8
- beq _0802397A
-_08023992:
- cmp r5, 0
- bne _080239B0
- ldr r0, _0802399C @ =gUnknown_02024C10
- str r4, [r0]
- b _08023A58
- .align 2, 0
-_0802399C: .4byte gUnknown_02024C10
-_080239A0: .4byte 0x02000000
-_080239A4: .4byte 0x00016018
-_080239A8: .4byte gPlayerParty
-_080239AC: .4byte 0x0000fffe
-_080239B0:
- ldr r0, _080239C0 @ =0x0000ffff
- cmp r5, r0
- bne _080239C8
- ldr r1, _080239C4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
- b _08023A58
- .align 2, 0
-_080239C0: .4byte 0x0000ffff
-_080239C4: .4byte gUnknown_02024C10
-_080239C8:
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08023A64 @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r0, _08023A68 @ =gUnknown_02024A6A
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A08
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A08
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A08:
- ldr r0, _08023A78 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023A54
- movs r0, 0x2
- bl battle_get_side_with_given_state
- ldr r1, _08023A64 @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r0, _08023A68 @ =gUnknown_02024A6A
- ldrb r2, [r1]
- lsls r1, r2, 1
- adds r1, r0
- ldr r0, _08023A6C @ =0x02000000
- ldr r3, _08023A70 @ =0x00016018
- adds r0, r3
- ldrh r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08023A54
- ldr r3, _08023A74 @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023A54
- adds r0, r2, r3
- adds r1, r5, 0
- bl GiveMoveToBattleMon
-_08023A54:
- ldr r0, _08023A7C @ =gUnknown_02024C10
- str r6, [r0]
-_08023A58:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023A64: .4byte gUnknown_02024A60
-_08023A68: .4byte gUnknown_02024A6A
-_08023A6C: .4byte 0x02000000
-_08023A70: .4byte 0x00016018
-_08023A74: .4byte gBattleMons
-_08023A78: .4byte gUnknown_020239F8
-_08023A7C: .4byte gUnknown_02024C10
- thumb_func_end atk59_8025230
-
- thumb_func_start sub_8023A80
-sub_8023A80: @ 8023A80
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- ldr r4, _08023AC8 @ =gUnknown_03004210
- ldr r1, _08023ACC @ =gUnknown_08400D7A
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x9
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x19
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08023AD0 @ =0x0000ffff
- ldr r3, _08023AD4 @ =0x00002d9f
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08023AC8: .4byte gUnknown_03004210
-_08023ACC: .4byte gUnknown_08400D7A
-_08023AD0: .4byte 0x0000ffff
-_08023AD4: .4byte 0x00002d9f
- thumb_func_end sub_8023A80
-
- thumb_func_start sub_8023AD8
-sub_8023AD8: @ 8023AD8
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x18
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl sub_802BBD4
- bl sub_814A7FC
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8023AD8
-
- thumb_func_start sub_8023AF8
-sub_8023AF8: @ 8023AF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _08023B24 @ =gUnknown_02024A60
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08023B28 @ =0x02000000
- ldr r2, _08023B2C @ =0x0001601a
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _08023B18
- b _08023E5C
-_08023B18:
- lsls r0, 2
- ldr r1, _08023B30 @ =_08023B34
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08023B24: .4byte gUnknown_02024A60
-_08023B28: .4byte 0x02000000
-_08023B2C: .4byte 0x0001601a
-_08023B30: .4byte _08023B34
- .align 2, 0
-_08023B34:
- .4byte _08023B4C
- .4byte _08023B74
- .4byte _08023C30
- .4byte _08023C84
- .4byte _08023E38
- .4byte _08023E4C
-_08023B4C:
- bl sub_8023A80
- ldr r1, _08023B68 @ =0x02000000
- ldr r0, _08023B6C @ =0x0001601a
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08023B70 @ =gUnknown_02024D1E
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _08023E5C
- .align 2, 0
-_08023B68: .4byte 0x02000000
-_08023B6C: .4byte 0x0001601a
-_08023B70: .4byte gUnknown_02024D1E
-_08023B74:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023B9A
- ldr r4, _08023C00 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023B9A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023B9A:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023BC0
- ldr r4, _08023C00 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023BC0
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023BC0:
- ldr r0, _08023BFC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023C0C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023C00 @ =gUnknown_02024D1E
- ldrb r4, [r0, 0x1]
- cmp r4, 0
- bne _08023C1C
- bl sub_8023AD8
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08023C04 @ =0x02000000
- ldr r2, _08023C08 @ =0x0001601a
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023BFC: .4byte gMain
-_08023C00: .4byte gUnknown_02024D1E
-_08023C04: .4byte 0x02000000
-_08023C08: .4byte 0x0001601a
-_08023C0C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08023C16
- b _08023E5C
-_08023C16:
- movs r0, 0x5
- bl PlaySE
-_08023C1C:
- ldr r0, _08023C28 @ =0x02000000
- ldr r1, _08023C2C @ =0x0001601a
- adds r0, r1
- movs r1, 0x4
- strb r1, [r0]
- b _08023E5C
- .align 2, 0
-_08023C28: .4byte 0x02000000
-_08023C2C: .4byte 0x0001601a
-_08023C30:
- ldr r0, _08023C68 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C3E
- b _08023E5C
-_08023C3E:
- ldr r0, _08023C6C @ =gPlayerParty
- ldr r2, _08023C70 @ =0x00016018
- adds r1, r5, r2
- ldrb r1, [r1]
- ldr r2, _08023C74 @ =gPlayerPartyCount
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08023C78 @ =sub_807AD58
- ldr r4, _08023C7C @ =word_2024E82
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldr r0, _08023C80 @ =0x0001601a
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _08023E5A
- .align 2, 0
-_08023C68: .4byte gPaletteFade
-_08023C6C: .4byte gPlayerParty
-_08023C70: .4byte 0x00016018
-_08023C74: .4byte gPlayerPartyCount
-_08023C78: .4byte sub_807AD58
-_08023C7C: .4byte word_2024E82
-_08023C80: .4byte 0x0001601a
-_08023C84:
- ldr r0, _08023CB4 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023C92
- b _08023E5C
-_08023C92:
- ldr r0, _08023CB8 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _08023CBC @ =sub_800F808
- cmp r1, r0
- beq _08023C9E
- b _08023E5C
-_08023C9E:
- bl sub_809FA30
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bne _08023CC8
- ldr r0, _08023CC0 @ =0x02000000
- ldr r1, _08023CC4 @ =0x0001601a
- adds r0, r1
- strb r5, [r0]
- b _08023E5C
- .align 2, 0
-_08023CB4: .4byte gPaletteFade
-_08023CB8: .4byte gMain
-_08023CBC: .4byte sub_800F808
-_08023CC0: .4byte 0x02000000
-_08023CC4: .4byte 0x0001601a
-_08023CC8:
- ldr r2, _08023D08 @ =0x02000000
- mov r9, r2
- ldr r6, _08023D0C @ =0x00016018
- add r6, r9
- ldrb r0, [r6]
- movs r1, 0x64
- mov r8, r1
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- ldr r7, _08023D10 @ =gPlayerParty
- adds r0, r7
- adds r1, r5, 0
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8040A00
- cmp r0, 0
- beq _08023D20
- ldr r0, _08023D14 @ =0x0000013f
- ldr r1, _08023D18 @ =gUnknown_02024A60
- ldrb r1, [r1]
- bl b_std_message
- ldr r1, _08023D1C @ =0x0001601a
- add r1, r9
- movs r0, 0x5
- b _08023E5A
- .align 2, 0
-_08023D08: .4byte 0x02000000
-_08023D0C: .4byte 0x00016018
-_08023D10: .4byte gPlayerParty
-_08023D14: .4byte 0x0000013f
-_08023D18: .4byte gUnknown_02024A60
-_08023D1C: .4byte 0x0001601a
-_08023D20:
- ldr r3, _08023E10 @ =gUnknown_02024C10
- 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]
- ldr r1, _08023E14 @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r5, 0
- bl RemoveMonPPBonus
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- ldr r7, _08023E18 @ =word_2024E82
- ldrh r1, [r7]
- adds r2, r5, 0
- bl SetMonMoveSlot
- ldr r0, _08023E1C @ =gUnknown_02024A6A
- ldrh r0, [r0]
- ldrb r6, [r6]
- cmp r0, r6
- bne _08023DB0
- ldr r4, _08023E20 @ =gBattleMons
- ldr r0, [r4, 0x50]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023DB0
- ldr r0, _08023E24 @ =gUnknown_02024CA8
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023DB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldrh r1, [r7]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
-_08023DB0:
- ldr r0, _08023E2C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023E5C
- ldr r0, _08023E1C @ =gUnknown_02024A6A
- ldr r1, _08023E30 @ =0x02000000
- ldr r2, _08023E34 @ =0x00016018
- adds r1, r2
- ldrh r0, [r0, 0x4]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08023E5C
- ldr r4, _08023E20 @ =gBattleMons
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _08023E5C
- ldr r0, _08023E24 @ =gUnknown_02024CA8
- adds r0, 0x50
- ldrb r1, [r0]
- lsrs r1, 4
- ldr r2, _08023E28 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08023E5C
- adds r4, 0xB0
- adds r0, r4, 0
- adds r1, r5, 0
- bl RemoveBattleMonPPBonus
- ldr r0, _08023E18 @ =word_2024E82
- ldrh r1, [r0]
- adds r0, r4, 0
- adds r2, r5, 0
- bl SetBattleMonMoveSlot
- b _08023E5C
- .align 2, 0
-_08023E10: .4byte gUnknown_02024C10
-_08023E14: .4byte gUnknown_03004290
-_08023E18: .4byte word_2024E82
-_08023E1C: .4byte gUnknown_02024A6A
-_08023E20: .4byte gBattleMons
-_08023E24: .4byte gUnknown_02024CA8
-_08023E28: .4byte gBitTable
-_08023E2C: .4byte gUnknown_020239F8
-_08023E30: .4byte 0x02000000
-_08023E34: .4byte 0x00016018
-_08023E38:
- bl sub_8023AD8
- ldr r1, _08023E48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08023E5C
- .align 2, 0
-_08023E48: .4byte gUnknown_02024C10
-_08023E4C:
- ldr r0, _08023E6C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08023E5C
- ldr r2, _08023E70 @ =0x0001601a
- adds r1, r5, r2
- movs r0, 0x2
-_08023E5A:
- strb r0, [r1]
-_08023E5C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08023E6C: .4byte gUnknown_02024A64
-_08023E70: .4byte 0x0001601a
- thumb_func_end sub_8023AF8
-
- thumb_func_start atk5B_80256E0
-atk5B_80256E0: @ 8023E74
- push {r4,r5,lr}
- ldr r0, _08023E88 @ =0x02000000
- ldr r1, _08023E8C @ =0x0001601a
- adds r5, r0, r1
- ldrb r4, [r5]
- cmp r4, 0
- beq _08023E90
- cmp r4, 0x1
- beq _08023EA8
- b _08023F78
- .align 2, 0
-_08023E88: .4byte 0x02000000
-_08023E8C: .4byte 0x0001601a
-_08023E90:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- ldr r0, _08023EA4 @ =gUnknown_02024D1E
- strb r4, [r0, 0x1]
- bl sub_802BC6C
- b _08023F78
- .align 2, 0
-_08023EA4: .4byte gUnknown_02024D1E
-_08023EA8:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08023ECE
- ldr r4, _08023F30 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08023ECE
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023ECE:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08023EF4
- ldr r4, _08023F30 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08023EF4
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08023EF4:
- ldr r0, _08023F2C @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08023F4C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08023F30 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _08023F38
- ldr r3, _08023F34 @ =gUnknown_02024C10
- 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 _08023F40
- .align 2, 0
-_08023F2C: .4byte gMain
-_08023F30: .4byte gUnknown_02024D1E
-_08023F34: .4byte gUnknown_02024C10
-_08023F38:
- ldr r1, _08023F48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08023F40:
- bl sub_8023AD8
- b _08023F78
- .align 2, 0
-_08023F48: .4byte gUnknown_02024C10
-_08023F4C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08023F78
- movs r0, 0x5
- bl PlaySE
- ldr r3, _08023F80 @ =gUnknown_02024C10
- 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]
- bl sub_8023AD8
-_08023F78:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08023F80: .4byte gUnknown_02024C10
- thumb_func_end atk5B_80256E0
-
- thumb_func_start atk5C_cmd5c
-atk5C_cmd5c: @ 8023F84
- push {r4,lr}
- ldr r4, _08023FF0 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r2, _08023FF4 @ =gUnknown_02024A60
- strb r0, [r2]
- ldr r0, _08023FF8 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- bne _08024008
- ldr r0, _08023FFC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r1, _08024000 @ =gBattleMons
- ldrb r2, [r2]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _08023FD6
- ldr r0, _08024004 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024008
-_08023FD6:
- movs r0, 0
- bl dp01_build_cmdbuf_x29_29_29_29
- ldr r0, _08023FF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08023FF0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- b _0802400E
- .align 2, 0
-_08023FF0: .4byte gUnknown_02024C10
-_08023FF4: .4byte gUnknown_02024A60
-_08023FF8: .4byte gUnknown_02024C68
-_08023FFC: .4byte gUnknown_02024C6C
-_08024000: .4byte gBattleMons
-_08024004: .4byte gUnknown_02024CA8
-_08024008:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
-_0802400E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atk5C_cmd5c
-
- thumb_func_start sub_8024014
-sub_8024014: @ 8024014
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _08024048 @ =gTrainerBattleOpponent
- ldrh r2, [r0]
- movs r1, 0x80
- lsls r1, 3
- cmp r2, r1
- bne _08024058
- ldr r0, _0802404C @ =0x02017000
- adds r1, r0, 0
- adds r1, 0x94
- ldrb r2, [r1]
- ldr r1, _08024050 @ =0xfffff056
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _08024054 @ =gSaveBlock1 + 0x490
- mov r8, r0
- b _08024140
- .align 2, 0
-_08024048: .4byte gTrainerBattleOpponent
-_0802404C: .4byte 0x02017000
-_08024050: .4byte 0xfffff056
-_08024054: .4byte gSaveBlock1 + 0x490
-_08024058:
- ldr r2, _08024074 @ =gTrainers
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r3, r0, 3
- adds r4, r3, r2
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _080240AE
- cmp r1, 0x1
- bgt _08024078
- cmp r1, 0
- beq _08024082
- b _080240C4
- .align 2, 0
-_08024074: .4byte gTrainers
-_08024078:
- cmp r1, 0x2
- beq _08024098
- cmp r1, 0x3
- beq _080240AE
- b _080240C4
-_08024082:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_08024098:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r1
- subs r0, 0x8
- b _080240C2
-_080240AE:
- adds r0, r2, 0
- adds r0, 0x24
- adds r0, r3, r0
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- subs r0, 0x10
-_080240C2:
- ldrb r5, [r0, 0x2]
-_080240C4:
- ldr r0, _08024120 @ =gTrainerMoney
- lsls r1, r6, 2
- adds r3, r1, r0
- ldrb r1, [r3]
- mov r12, r0
- lsls r4, r5, 2
- ldr r5, _08024124 @ =0x02000000
- ldr r7, _08024128 @ =gUnknown_020239F8
- ldr r0, _0802412C @ =gSaveBlock1 + 0x490
- mov r8, r0
- cmp r1, 0xFF
- beq _080240FE
- ldr r2, _08024130 @ =gTrainers
- ldr r0, _08024134 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r2, [r0, 0x1]
- adds r1, r3, 0
-_080240EE:
- ldrb r0, [r1]
- cmp r0, r2
- beq _080240FE
- adds r1, 0x4
- adds r6, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _080240EE
-_080240FE:
- ldr r1, _08024138 @ =0x00016056
- adds r0, r5, r1
- ldrb r0, [r0]
- adds r3, r4, 0
- muls r3, r0
- lsls r0, r6, 2
- add r0, r12
- ldrb r2, [r0, 0x1]
- ldrh r1, [r7]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802413C
- lsls r0, r2, 1
- adds r4, r3, 0
- muls r4, r0
- b _08024140
- .align 2, 0
-_08024120: .4byte gTrainerMoney
-_08024124: .4byte 0x02000000
-_08024128: .4byte gUnknown_020239F8
-_0802412C: .4byte gSaveBlock1 + 0x490
-_08024130: .4byte gTrainers
-_08024134: .4byte gTrainerBattleOpponent
-_08024138: .4byte 0x00016056
-_0802413C:
- adds r4, r3, 0
- muls r4, r2
-_08024140:
- mov r0, r8
- adds r1, r4, 0
- bl sub_80B79B8
- ldr r1, _0802418C @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x4
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- strb r4, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r4
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r4
- lsrs r0, 16
- strb r0, [r1, 0x6]
- lsrs r0, r4, 24
- strb r0, [r1, 0x7]
- movs r0, 0xFF
- strb r0, [r1, 0x8]
- ldr r1, _08024190 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802418C: .4byte gUnknown_030041C0
-_08024190: .4byte gUnknown_02024C10
- thumb_func_end sub_8024014
-
- thumb_func_start atk5E_8025A70
-atk5E_8025A70: @ 8024194
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _080241B8 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r6, _080241BC @ =gUnknown_02024A60
- strb r0, [r6]
- ldr r5, _080241C0 @ =gUnknown_02024D1E
- ldrb r0, [r5]
- mov r8, r4
- cmp r0, 0
- beq _080241C4
- cmp r0, 0x1
- beq _080241DC
- b _08024230
- .align 2, 0
-_080241B8: .4byte gUnknown_02024C10
-_080241BC: .4byte gUnknown_02024A60
-_080241C0: .4byte gUnknown_02024D1E
-_080241C4:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x00_a_b_0
- ldrb r0, [r6]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08024230
-_080241DC:
- ldr r0, _0802423C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08024230
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _08024240 @ =gUnknown_02024264
- adds r0, r1
- mov r12, r0
- movs r2, 0
- adds r4, r6, 0
- movs r5, 0x58
- ldr r6, _08024244 @ =gUnknown_02024AA4
- adds r7, r6, 0
- subs r7, 0x18
- mov r3, r12
- adds r3, 0xC
-_080241FE:
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0
- adds r1, r7
- ldrh r0, [r3]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r2, r1
- adds r1, r6
- mov r0, r12
- adds r0, 0x24
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r3, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _080241FE
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08024230:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802423C: .4byte gUnknown_02024A64
-_08024240: .4byte gUnknown_02024264
-_08024244: .4byte gUnknown_02024AA4
- thumb_func_end atk5E_8025A70
-
- thumb_func_start atk5F_8025B24
-atk5F_8025B24: @ 8024248
- push {lr}
- ldr r0, _08024270 @ =gUnknown_02024A60
- ldr r2, _08024274 @ =gUnknown_02024C07
- ldrb r3, [r2]
- strb r3, [r0]
- ldr r1, _08024278 @ =gUnknown_02024C08
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- ldr r2, _0802427C @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 5
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _08024284
- ldr r0, _08024280 @ =0xffffefff
- ands r1, r0
- b _08024286
- .align 2, 0
-_08024270: .4byte gUnknown_02024A60
-_08024274: .4byte gUnknown_02024C07
-_08024278: .4byte gUnknown_02024C08
-_0802427C: .4byte gUnknown_02024C6C
-_08024280: .4byte 0xffffefff
-_08024284:
- orrs r1, r3
-_08024286:
- str r1, [r2]
- ldr r1, _08024294 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024294: .4byte gUnknown_02024C10
- thumb_func_end atk5F_8025B24
-
- thumb_func_start atk60_cmd60
-atk60_cmd60: @ 8024298
- push {lr}
- ldr r0, _080242C0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080242B2
- ldr r0, _080242C4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sav12_xor_increment
-_080242B2:
- ldr r1, _080242C4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080242C0: .4byte gUnknown_02024C07
-_080242C4: .4byte gUnknown_02024C10
- thumb_func_end atk60_cmd60
-
- thumb_func_start atk61_8025BA4
-atk61_8025BA4: @ 80242C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x30
- ldr r0, _0802432C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0802437C
- ldr r0, _08024330 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024334 @ =gUnknown_02024A60
- strb r0, [r1]
- ldrb r0, [r1]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _08024338 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080242FA
- ldr r0, _0802433C @ =gPlayerParty
- mov r8, r0
-_080242FA:
- movs r7, 0
- add r6, sp, 0x4
- mov r5, sp
-_08024300:
- movs r0, 0x64
- muls r0, r7
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08024324
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- bne _08024344
-_08024324:
- ldr r0, _08024340 @ =0x0000ffff
- strh r0, [r5]
- movs r0, 0
- b _08024356
- .align 2, 0
-_0802432C: .4byte gUnknown_02024A64
-_08024330: .4byte gUnknown_02024C10
-_08024334: .4byte gUnknown_02024A60
-_08024338: .4byte gEnemyParty
-_0802433C: .4byte gPlayerParty
-_08024340: .4byte 0x0000ffff
-_08024344:
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- strh r0, [r5]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
-_08024356:
- str r0, [r6]
- adds r6, 0x8
- adds r5, 0x8
- adds r7, 0x1
- cmp r7, 0x5
- ble _08024300
- movs r0, 0
- mov r1, sp
- movs r2, 0x1
- bl dp01_build_cmdbuf_x30_TODO
- ldr r0, _08024388 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802438C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802437C:
- add sp, 0x30
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024388: .4byte gUnknown_02024A60
-_0802438C: .4byte gUnknown_02024C10
- thumb_func_end atk61_8025BA4
-
- thumb_func_start atk62_08025C6C
-atk62_08025C6C: @ 8024390
- push {r4,r5,lr}
- ldr r5, _080243B8 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _080243BC @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- bl dp01_build_cmdbuf_x31_31_31_31
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080243B8: .4byte gUnknown_02024C10
-_080243BC: .4byte gUnknown_02024A60
- thumb_func_end atk62_08025C6C
-
- thumb_func_start atk63_jumptoattack
-atk63_jumptoattack: @ 80243C0
- push {r4,lr}
- ldr r0, _080243D8 @ =gUnknown_02024C10
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0
- beq _080243E4
- ldr r0, _080243DC @ =gUnknown_02024BE6
- ldr r1, _080243E0 @ =gUnknown_02024BEA
- ldrh r1, [r1]
- strh r1, [r0]
- b _080243F2
- .align 2, 0
-_080243D8: .4byte gUnknown_02024C10
-_080243DC: .4byte gUnknown_02024BE6
-_080243E0: .4byte gUnknown_02024BEA
-_080243E4:
- ldr r2, _08024410 @ =gUnknown_02024BE8
- ldr r1, _08024414 @ =gUnknown_02024BE6
- ldr r0, _08024418 @ =gUnknown_02024BEA
- ldrh r0, [r0]
- strh r0, [r1]
- strh r0, [r2]
- adds r0, r1, 0
-_080243F2:
- ldr r3, _0802441C @ =gUnknown_081D6BBC
- ldr r2, _08024420 @ =gBattleMoves
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024410: .4byte gUnknown_02024BE8
-_08024414: .4byte gUnknown_02024BE6
-_08024418: .4byte gUnknown_02024BEA
-_0802441C: .4byte gUnknown_081D6BBC
-_08024420: .4byte gBattleMoves
- thumb_func_end atk63_jumptoattack
-
- thumb_func_start atk64_statusanimation
-atk64_statusanimation: @ 8024424
- push {r4,lr}
- ldr r0, _08024494 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _0802448C
- ldr r0, _08024498 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _0802449C @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r1, _080244A0 @ =gUnknown_02024C98
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080244A4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r0, _080244A8 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _08024484
- ldr r0, _080244AC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08024484
- ldr r1, _080244B0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- ldr r2, [r0]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x1B_aaaa_b
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_08024484:
- ldr r1, _08024498 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_0802448C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024494: .4byte gUnknown_02024A64
-_08024498: .4byte gUnknown_02024C10
-_0802449C: .4byte gUnknown_02024A60
-_080244A0: .4byte gUnknown_02024C98
-_080244A4: .4byte 0x000400c0
-_080244A8: .4byte gUnknown_02024CA8
-_080244AC: .4byte gUnknown_02024C6C
-_080244B0: .4byte gBattleMons
- thumb_func_end atk64_statusanimation
-
- thumb_func_start atk65_8025D90
-atk65_8025D90: @ 80244B4
- push {r4,r5,lr}
- ldr r0, _0802453C @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08024534
- ldr r4, _08024540 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _08024544 @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r1, [r4]
- ldrb r3, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r1, _08024548 @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0802454C @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024550 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _0802452C
- ldr r0, _08024554 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802452C
- ldr r1, _08024558 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r2, [r0]
- ands r2, r3
- movs r0, 0
- movs r1, 0x1
- bl dp01_build_cmdbuf_x1B_aaaa_b
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802452C:
- ldr r1, _08024540 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x6
- str r0, [r1]
-_08024534:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802453C: .4byte gUnknown_02024A64
-_08024540: .4byte gUnknown_02024C10
-_08024544: .4byte gUnknown_02024A60
-_08024548: .4byte gUnknown_02024C98
-_0802454C: .4byte 0x000400c0
-_08024550: .4byte gUnknown_02024CA8
-_08024554: .4byte gUnknown_02024C6C
-_08024558: .4byte gBattleMons
- thumb_func_end atk65_8025D90
-
- thumb_func_start atk66_8025E38
-atk66_8025E38: @ 802455C
- push {r4,r5,lr}
- ldr r0, _080245D4 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _080245CE
- ldr r4, _080245D8 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080245DC @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r4, [r4]
- ldrb r2, [r4, 0x3]
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r4, 0x6]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _080245E0 @ =gUnknown_02024C98
- ldrb r3, [r5]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080245E4 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245E8 @ =gUnknown_02024CA8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- bne _080245C6
- ldr r0, _080245EC @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080245C6
- ldrb r1, [r4, 0x2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1B_aaaa_b
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
-_080245C6:
- ldr r1, _080245D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x7
- str r0, [r1]
-_080245CE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080245D4: .4byte gUnknown_02024A64
-_080245D8: .4byte gUnknown_02024C10
-_080245DC: .4byte gUnknown_02024A60
-_080245E0: .4byte gUnknown_02024C98
-_080245E4: .4byte 0x000400c0
-_080245E8: .4byte gUnknown_02024CA8
-_080245EC: .4byte gUnknown_02024C6C
- thumb_func_end atk66_8025E38
-
- thumb_func_start atk67_8025ECC
-atk67_8025ECC: @ 80245F0
- push {r4,r5,lr}
- ldr r5, _08024600 @ =gUnknown_02024D1E
- ldrb r4, [r5]
- cmp r4, 0
- beq _08024604
- cmp r4, 0x1
- beq _08024616
- b _08024696
- .align 2, 0
-_08024600: .4byte gUnknown_02024D1E
-_08024604:
- bl sub_8023A80
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- strb r4, [r5, 0x1]
- bl sub_802BC6C
- b _08024696
-_08024616:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802463A
- ldrb r0, [r5, 0x1]
- cmp r0, 0
- beq _0802463A
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r5, 0x1]
- bl sub_802BC6C
-_0802463A:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08024660
- ldr r4, _08024678 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08024660
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08024660:
- ldr r0, _08024674 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802467C
- ldr r1, _08024678 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x1]
- b _08024684
- .align 2, 0
-_08024674: .4byte gMain
-_08024678: .4byte gUnknown_02024D1E
-_0802467C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08024696
-_08024684:
- movs r0, 0x5
- bl PlaySE
- bl sub_8023AD8
- ldr r1, _0802469C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024696:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802469C: .4byte gUnknown_02024C10
- thumb_func_end atk67_8025ECC
-
- thumb_func_start sub_80246A0
-sub_80246A0: @ 80246A0
- push {r4,r5,lr}
- movs r1, 0
- ldr r2, _080246CC @ =gUnknown_02024A68
- ldr r5, _080246D0 @ =gUnknown_02024C10
- ldrb r0, [r2]
- cmp r1, r0
- bge _080246BE
- ldr r4, _080246D4 @ =gUnknown_02024A76
- movs r3, 0xC
-_080246B2:
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _080246B2
-_080246BE:
- ldr r0, [r5]
- adds r0, 0x1
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080246CC: .4byte gUnknown_02024A68
-_080246D0: .4byte gUnknown_02024C10
-_080246D4: .4byte gUnknown_02024A76
- thumb_func_end sub_80246A0
-
- thumb_func_start atk69_8025FE0
-atk69_8025FE0: @ 80246D8
- push {r4-r7,lr}
- ldr r7, _08024700 @ =gBattleMons
- ldr r6, _08024704 @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _0802470C
- ldr r1, _08024708 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08024726
- .align 2, 0
-_08024700: .4byte gBattleMons
-_08024704: .4byte gUnknown_02024C08
-_08024708: .4byte gEnigmaBerries
-_0802470C:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08024726:
- ldr r1, _080247E8 @ =gUnknown_02024C0B
- ldr r5, _080247EC @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08024764
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08024764
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _080247F0 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08024764:
- ldr r2, _080247F4 @ =gBattleMons
- ldr r3, _080247EC @ =gUnknown_02024C08
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, r2, 0
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 17
- ands r1, r0
- adds r5, r2, 0
- cmp r1, 0
- bne _08024834
- ldr r2, _080247F8 @ =gBattleMoves
- ldr r0, _080247FC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x65
- beq _080247B6
- ldr r0, _08024800 @ =gUnknown_02024D28
- lsls r1, r4, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- blt _080247B6
- ldr r0, _080247F0 @ =gUnknown_02024D68
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
-_080247B6:
- ldrb r0, [r3]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- ldrh r1, [r0, 0x28]
- ldr r2, _08024804 @ =gUnknown_02024BEC
- ldr r0, [r2]
- cmp r1, r0
- bgt _08024834
- subs r0, r1, 0x1
- str r0, [r2]
- ldr r1, _08024800 @ =gUnknown_02024D28
- ldrb r3, [r3]
- lsls r0, r3, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bge _0802480C
- ldr r0, _08024808 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- b _08024834
- .align 2, 0
-_080247E8: .4byte gUnknown_02024C0B
-_080247EC: .4byte gUnknown_02024C08
-_080247F0: .4byte gUnknown_02024D68
-_080247F4: .4byte gBattleMons
-_080247F8: .4byte gBattleMoves
-_080247FC: .4byte gUnknown_02024BE6
-_08024800: .4byte gUnknown_02024D28
-_08024804: .4byte gUnknown_02024BEC
-_08024808: .4byte gUnknown_02024C68
-_0802480C:
- ldr r0, _08024844 @ =gUnknown_02024D68
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08024834
- ldr r2, _08024848 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802484C @ =gUnknown_02024C04
- adds r0, r3, 0
- muls r0, r4
- adds r0, r5
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
-_08024834:
- ldr r1, _08024850 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024844: .4byte gUnknown_02024D68
-_08024848: .4byte gUnknown_02024C68
-_0802484C: .4byte gUnknown_02024C04
-_08024850: .4byte gUnknown_02024C10
- thumb_func_end atk69_8025FE0
-
- thumb_func_start atk6A_stash_item_for_side
-atk6A_stash_item_for_side: @ 8024854
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080248B0 @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _080248B4 @ =gUnknown_02024A60
- strb r0, [r5]
- ldrb r4, [r5]
- lsls r1, r4, 1
- ldr r0, _080248B8 @ =0x020160cc
- adds r1, r0
- ldr r2, _080248BC @ =gBattleMons
- movs r3, 0x58
- adds r0, r4, 0
- muls r0, r3
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- muls r0, r3
- adds r2, 0x2E
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080248B0: .4byte gUnknown_02024C10
-_080248B4: .4byte gUnknown_02024A60
-_080248B8: .4byte 0x020160cc
-_080248BC: .4byte gBattleMons
- thumb_func_end atk6A_stash_item_for_side
-
- thumb_func_start sub_80248C0
-sub_80248C0: @ 80248C0
- ldr r1, _080248EC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x7
- strb r0, [r1, 0x1]
- ldr r2, _080248F0 @ =gUnknown_02024C07
- ldrb r0, [r2]
- strb r0, [r1, 0x2]
- ldr r3, _080248F4 @ =gUnknown_02024A6A
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _080248F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_080248EC: .4byte gUnknown_030041C0
-_080248F0: .4byte gUnknown_02024C07
-_080248F4: .4byte gUnknown_02024A6A
-_080248F8: .4byte gUnknown_02024C10
- thumb_func_end sub_80248C0
-
- thumb_func_start sub_80248FC
-sub_80248FC: @ 80248FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- movs r1, 0
- movs r7, 0
- ldr r0, _08024928 @ =0x02000000
- mov r10, r0
- ldr r4, _0802492C @ =0x0001609c
- add r4, r10
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _0802491C
- b _08024AF4
-_0802491C:
- cmp r0, 0x1
- bgt _08024930
- cmp r0, 0
- beq _0802493E
- b _08024C38
- .align 2, 0
-_08024928: .4byte 0x02000000
-_0802492C: .4byte 0x0001609c
-_08024930:
- cmp r0, 0x2
- bne _08024936
- b _08024C04
-_08024936:
- cmp r0, 0x3
- bne _0802493C
- b _08024C30
-_0802493C:
- b _08024C38
-_0802493E:
- str r1, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldr r0, _0802499C @ =gStringVar4
- ldr r1, _080249A0 @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r1, 0
- mov r8, r1
-_0802495A:
- movs r2, 0
- mov r9, r2
- ldr r0, _080249A4 @ =gUnknown_0840165C
- mov r1, r8
- lsls r4, r1, 2
- adds r0, r4, r0
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- ldr r0, _080249A8 @ =0x02000000
- ldr r2, _080249AC @ =0x00016018
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080249B0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080249B4 @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- mov r0, r8
- cmp r0, 0x5
- bhi _08024A1A
- ldr r0, _080249B8 @ =_080249BC
- adds r0, r4, r0
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802499C: .4byte gStringVar4
-_080249A0: .4byte gUnknown_08400D9F
-_080249A4: .4byte gUnknown_0840165C
-_080249A8: .4byte 0x02000000
-_080249AC: .4byte 0x00016018
-_080249B0: .4byte gPlayerParty
-_080249B4: .4byte gLevelUpStatBoxStats
-_080249B8: .4byte _080249BC
- .align 2, 0
-_080249BC:
- .4byte _080249D4
- .4byte _080249E0
- .4byte _080249EC
- .4byte _080249F8
- .4byte _08024A04
- .4byte _08024A10
-_080249D4:
- ldr r0, _080249DC @ =0x02017180
- ldrh r0, [r0]
- b _08024A14
- .align 2, 0
-_080249DC: .4byte 0x02017180
-_080249E0:
- ldr r0, _080249E8 @ =0x02017180
- ldrh r0, [r0, 0x8]
- b _08024A14
- .align 2, 0
-_080249E8: .4byte 0x02017180
-_080249EC:
- ldr r0, _080249F4 @ =0x02017180
- ldrh r0, [r0, 0x2]
- b _08024A14
- .align 2, 0
-_080249F4: .4byte 0x02017180
-_080249F8:
- ldr r0, _08024A00 @ =0x02017180
- ldrh r0, [r0, 0xA]
- b _08024A14
- .align 2, 0
-_08024A00: .4byte 0x02017180
-_08024A04:
- ldr r0, _08024A0C @ =0x02017180
- ldrh r0, [r0, 0x4]
- b _08024A14
- .align 2, 0
-_08024A0C: .4byte 0x02017180
-_08024A10:
- ldr r0, _08024A54 @ =0x02017180
- ldrh r0, [r0, 0x6]
-_08024A14:
- subs r0, r1, r0
- lsls r0, 16
- lsrs r7, r0, 16
-_08024A1A:
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, 0
- bge _08024A2C
- negs r0, r0
- lsls r0, 16
- lsrs r7, r0, 16
- movs r1, 0x1
- add r9, r1
-_08024A2C:
- movs r0, 0xFC
- strb r0, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r1, 0x1
- mov r2, r8
- ands r1, r2
- lsls r0, r1, 3
- adds r0, r1
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- mov r0, r9
- cmp r0, 0
- beq _08024A5C
- ldr r1, _08024A58 @ =gUnknown_08400DAC
- b _08024A5E
- .align 2, 0
-_08024A54: .4byte 0x02017180
-_08024A58: .4byte gUnknown_08400DAC
-_08024A5C:
- ldr r1, _08024AA4 @ =gUnknown_08400DAA
-_08024A5E:
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- movs r6, 0xFC
- strb r6, [r5]
- movs r4, 0x14
- strb r4, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, r7, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r4, [r5, 0x1]
- movs r0, 0
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0x1
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08024AA8
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024AB8
- .align 2, 0
-_08024AA4: .4byte gUnknown_08400DAA
-_08024AA8:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024AB8:
- movs r2, 0x1
- add r8, r2
- mov r0, r8
- cmp r0, 0x5
- bgt _08024AC4
- b _0802495A
-_08024AC4:
- ldr r4, _08024AE4 @ =gUnknown_03004210
- ldr r1, _08024AE8 @ =gStringVar4
- adds r2, 0xFF
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024AEC @ =0x02000000
- ldr r2, _08024AF0 @ =0x0001609c
- adds r1, r2
- b _08024BEA
- .align 2, 0
-_08024AE4: .4byte gUnknown_03004210
-_08024AE8: .4byte gStringVar4
-_08024AEC: .4byte 0x02000000
-_08024AF0: .4byte 0x0001609c
-_08024AF4:
- ldr r0, _08024B94 @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _08024AFE
- b _08024C38
-_08024AFE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08024B98 @ =gStringVar4
- ldr r1, _08024B9C @ =gUnknown_08400D9F
- bl StringCopy
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0xFC
- movs r7, 0x14
- ldr r1, _08024BA0 @ =0x00016018
- add r10, r1
-_08024B1C:
- ldr r1, _08024BA4 @ =gUnknown_0840165C
- mov r2, r8
- lsls r0, r2, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringAppend
- adds r5, r0, 0
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08024BA8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _08024BAC @ =gLevelUpStatBoxStats
- add r1, r8
- ldrb r1, [r1]
- bl GetMonData
- adds r1, r0, 0
- strb r6, [r5]
- movs r0, 0x13
- strb r0, [r5, 0x1]
- movs r4, 0x1
- mov r2, r8
- ands r4, r2
- lsls r0, r4, 3
- adds r0, r4
- adds r0, 0x5
- lsls r0, 3
- adds r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- strb r6, [r5]
- strb r7, [r5, 0x1]
- movs r0, 0x6
- strb r0, [r5, 0x2]
- adds r5, 0x3
- lsls r1, 16
- asrs r1, 16
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r5, r0, 0
- strb r6, [r5]
- strb r7, [r5, 0x1]
- mov r0, r9
- strb r0, [r5, 0x2]
- adds r5, 0x3
- cmp r4, 0
- beq _08024BB0
- movs r0, 0xFE
- strb r0, [r5]
- movs r0, 0xFF
- strb r0, [r5, 0x1]
- adds r5, 0x1
- b _08024BC0
- .align 2, 0
-_08024B94: .4byte gMain
-_08024B98: .4byte gStringVar4
-_08024B9C: .4byte gUnknown_08400D9F
-_08024BA0: .4byte 0x00016018
-_08024BA4: .4byte gUnknown_0840165C
-_08024BA8: .4byte gPlayerParty
-_08024BAC: .4byte gLevelUpStatBoxStats
-_08024BB0:
- strb r6, [r5]
- movs r0, 0x11
- strb r0, [r5, 0x1]
- movs r0, 0x8
- strb r0, [r5, 0x2]
- adds r5, 0x3
- movs r0, 0xFF
- strb r0, [r5]
-_08024BC0:
- movs r1, 0x1
- add r8, r1
- mov r2, r8
- cmp r2, 0x5
- ble _08024B1C
- ldr r4, _08024BF4 @ =gUnknown_03004210
- ldr r1, _08024BF8 @ =gStringVar4
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0xC
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08024BFC @ =0x02000000
- ldr r0, _08024C00 @ =0x0001609c
- adds r1, r0
-_08024BEA:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08024C38
- .align 2, 0
-_08024BF4: .4byte gUnknown_03004210
-_08024BF8: .4byte gStringVar4
-_08024BFC: .4byte 0x02000000
-_08024C00: .4byte 0x0001609c
-_08024C04:
- ldr r0, _08024C2C @ =gMain
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _08024C38
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl sub_802BBD4
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08024C38
- .align 2, 0
-_08024C2C: .4byte gMain
-_08024C30:
- ldr r1, _08024C48 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08024C38:
- 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
-_08024C48: .4byte gUnknown_02024C10
- thumb_func_end sub_80248FC
-
- thumb_func_start sub_8024C4C
-sub_8024C4C: @ 8024C4C
- push {lr}
- bl sub_80156DC
- ldr r1, _08024C60 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C60: .4byte gUnknown_02024C10
- thumb_func_end sub_8024C4C
-
- thumb_func_start atk6E_state0_side_becomes_attacker
-atk6E_state0_side_becomes_attacker: @ 8024C64
- push {lr}
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08024C7C @ =gUnknown_02024C07
- strb r0, [r1]
- ldr r1, _08024C80 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024C7C: .4byte gUnknown_02024C07
-_08024C80: .4byte gUnknown_02024C10
- thumb_func_end atk6E_state0_side_becomes_attacker
-
- thumb_func_start atk6F_8026810
-atk6F_8026810: @ 8024C84
- push {r4,r5,lr}
- ldr r5, _08024CB0 @ =gUnknown_02024C10
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r4, _08024CB4 @ =gUnknown_02024A60
- strb r0, [r4]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x33_a_33_33
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CB0: .4byte gUnknown_02024C10
-_08024CB4: .4byte gUnknown_02024A60
- thumb_func_end atk6F_8026810
-
- thumb_func_start atk70_record_ability_usage_of_side
-atk70_record_ability_usage_of_side: @ 8024CB8
- push {r4,lr}
- ldr r4, _08024CE0 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024CE4 @ =gUnknown_02024A60
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, _08024CE8 @ =byte_2024C06
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08024CE0: .4byte gUnknown_02024C10
-_08024CE4: .4byte gUnknown_02024A60
-_08024CE8: .4byte byte_2024C06
- thumb_func_end atk70_record_ability_usage_of_side
-
- thumb_func_start sub_8024CEC
-sub_8024CEC: @ 8024CEC
- ldr r2, _08024D0C @ =gUnknown_03004290
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x2
- strb r0, [r2, 0x1]
- ldr r0, _08024D10 @ =word_2024E82
- ldrh r1, [r0]
- strb r1, [r2, 0x2]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r2, 0x3]
- movs r0, 0xFF
- strb r0, [r2, 0x4]
- bx lr
- .align 2, 0
-_08024D0C: .4byte gUnknown_03004290
-_08024D10: .4byte word_2024E82
- thumb_func_end sub_8024CEC
-
- thumb_func_start atk71_80268A0
-atk71_80268A0: @ 8024D14
- push {lr}
- bl sub_8024CEC
- ldr r1, _08024D28 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08024D28: .4byte gUnknown_02024C10
- thumb_func_end atk71_80268A0
-
- thumb_func_start atk72_flee
-atk72_flee: @ 8024D2C
- push {lr}
- ldr r0, _08024D58 @ =gUnknown_02024C09
- ldrb r0, [r0]
- bl sub_8014AB8
- lsls r0, 24
- cmp r0, 0
- beq _08024D60
- ldr r3, _08024D5C @ =gUnknown_02024C10
- 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 _08024D68
- .align 2, 0
-_08024D58: .4byte gUnknown_02024C09
-_08024D5C: .4byte gUnknown_02024C10
-_08024D60:
- ldr r1, _08024D6C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08024D68:
- pop {r0}
- bx r0
- .align 2, 0
-_08024D6C: .4byte gUnknown_02024C10
- thumb_func_end atk72_flee
-
- thumb_func_start atk73_cmd73
-atk73_cmd73: @ 8024D70
- push {r4,r5,lr}
- ldr r0, _08024DC0 @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r5, 0x1
- ands r5, r0
- cmp r5, 0
- bne _08024E12
- ldr r0, _08024DC4 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024DC8 @ =gUnknown_02024A60
- strb r0, [r1]
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024DCC @ =gBattleMons
- movs r1, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r4, [r1, 0x28]
- movs r0, 0x64
- muls r0, r4
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- cmp r0, 0
- bne _08024DAE
- movs r0, 0x1
-_08024DAE:
- cmp r0, 0x45
- bgt _08024DB6
- cmp r4, 0
- bne _08024DD8
-_08024DB6:
- ldr r0, _08024DD0 @ =0x02000000
- ldr r1, _08024DD4 @ =0x000160c1
- adds r0, r1
- strb r5, [r0]
- b _08024E12
- .align 2, 0
-_08024DC0: .4byte gUnknown_020239F8
-_08024DC4: .4byte gUnknown_02024C10
-_08024DC8: .4byte gUnknown_02024A60
-_08024DCC: .4byte gBattleMons
-_08024DD0: .4byte 0x02000000
-_08024DD4: .4byte 0x000160c1
-_08024DD8:
- cmp r0, 0x27
- ble _08024DF0
- ldr r0, _08024DE8 @ =0x02000000
- ldr r1, _08024DEC @ =0x000160c1
- adds r0, r1
- movs r1, 0x1
- b _08024E10
- .align 2, 0
-_08024DE8: .4byte 0x02000000
-_08024DEC: .4byte 0x000160c1
-_08024DF0:
- cmp r0, 0x9
- ble _08024E08
- ldr r0, _08024E00 @ =0x02000000
- ldr r1, _08024E04 @ =0x000160c1
- adds r0, r1
- movs r1, 0x2
- b _08024E10
- .align 2, 0
-_08024E00: .4byte 0x02000000
-_08024E04: .4byte 0x000160c1
-_08024E08:
- ldr r0, _08024E20 @ =0x02000000
- ldr r1, _08024E24 @ =0x000160c1
- adds r0, r1
- movs r1, 0x3
-_08024E10:
- strb r1, [r0]
-_08024E12:
- ldr r1, _08024E28 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08024E20: .4byte 0x02000000
-_08024E24: .4byte 0x000160c1
-_08024E28: .4byte gUnknown_02024C10
- thumb_func_end atk73_cmd73
-
- thumb_func_start atk74_hp_tresholds_2
-atk74_hp_tresholds_2: @ 8024E2C
- push {r4-r7,lr}
- ldr r0, _08024E8C @ =gUnknown_020239F8
- ldrh r0, [r0]
- movs r7, 0x1
- ands r7, r0
- cmp r7, 0
- bne _08024ED0
- ldr r0, _08024E90 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- adds r4, r0, 0
- ldr r0, _08024E94 @ =gUnknown_02024A60
- strb r4, [r0]
- movs r0, 0x1
- eors r4, r0
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _08024E98 @ =0x02000000
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- ldr r1, _08024E9C @ =0x000160bc
- adds r0, r1
- adds r0, r6
- ldrb r5, [r0]
- ldr r1, _08024EA0 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r4, [r0, 0x28]
- subs r1, r5, r4
- movs r0, 0x64
- muls r0, r1
- adds r1, r5, 0
- bl __divsi3
- adds r1, r0, 0
- cmp r4, r5
- bcc _08024EA8
- ldr r1, _08024EA4 @ =0x000160c1
- adds r0, r6, r1
- strb r7, [r0]
- b _08024ED0
- .align 2, 0
-_08024E8C: .4byte gUnknown_020239F8
-_08024E90: .4byte gUnknown_02024C10
-_08024E94: .4byte gUnknown_02024A60
-_08024E98: .4byte 0x02000000
-_08024E9C: .4byte 0x000160bc
-_08024EA0: .4byte gBattleMons
-_08024EA4: .4byte 0x000160c1
-_08024EA8:
- cmp r0, 0x1D
- bgt _08024EB8
- ldr r0, _08024EB4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x1
- b _08024ECE
- .align 2, 0
-_08024EB4: .4byte 0x000160c1
-_08024EB8:
- cmp r1, 0x45
- bgt _08024EC8
- ldr r0, _08024EC4 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x2
- b _08024ECE
- .align 2, 0
-_08024EC4: .4byte 0x000160c1
-_08024EC8:
- ldr r0, _08024EE0 @ =0x000160c1
- adds r1, r6, r0
- movs r0, 0x3
-_08024ECE:
- strb r0, [r1]
-_08024ED0:
- ldr r1, _08024EE4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08024EE0: .4byte 0x000160c1
-_08024EE4: .4byte gUnknown_02024C10
- thumb_func_end atk74_hp_tresholds_2
-
- thumb_func_start atk75_8026A58
-atk75_8026A58: @ 8024EE8
- push {lr}
- sub sp, 0x4
- ldr r2, _08024F28 @ =gUnknown_02024E6C
- ldr r1, _08024F2C @ =gUnknown_02024C07
- ldrb r0, [r1]
- strb r0, [r2]
- ldr r2, _08024F30 @ =gUnknown_02024A6A
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r1, _08024F34 @ =gEnemyParty
- adds r0, r1
- ldr r1, _08024F38 @ =gUnknown_02024C04
- ldrh r1, [r1]
- lsls r2, 24
- lsrs r2, 24
- movs r3, 0x1
- str r3, [sp]
- movs r3, 0
- bl sub_803E1B0
- ldr r1, _08024F3C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08024F28: .4byte gUnknown_02024E6C
-_08024F2C: .4byte gUnknown_02024C07
-_08024F30: .4byte gUnknown_02024A6A
-_08024F34: .4byte gEnemyParty
-_08024F38: .4byte gUnknown_02024C04
-_08024F3C: .4byte gUnknown_02024C10
- thumb_func_end atk75_8026A58
-
- thumb_func_start sub_8024F40
-sub_8024F40: @ 8024F40
- push {r4-r6,lr}
- ldr r4, _08024F64 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _08024F68 @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r0, [r4]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x6
- bls _08024F5A
- b _08025112
-_08024F5A:
- lsls r0, 2
- ldr r1, _08024F6C @ =_08024F70
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08024F64: .4byte gUnknown_02024C10
-_08024F68: .4byte gUnknown_02024A60
-_08024F6C: .4byte _08024F70
- .align 2, 0
-_08024F70:
- .4byte _08024F8C
- .4byte _08024F9C
- .4byte _08024FFC
- .4byte _0802500C
- .4byte _08025024
- .4byte _08025060
- .4byte _08025098
-_08024F8C:
- ldr r0, _08024F98 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl b_cancel_multi_turn_move_maybe
- b _08025112
- .align 2, 0
-_08024F98: .4byte gUnknown_02024A60
-_08024F9C:
- ldr r1, _08024FD8 @ =gUnknown_02024C07
- ldr r4, _08024FDC @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r1]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08024FE0 @ =gUnknown_02024C80
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08024FE8
- ldr r1, _08024FE4 @ =gBattleMons
- ldrb r2, [r2, 0x9]
- movs r0, 0x58
- muls r0, r2
- adds r0, r1
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08024FE8
- strb r2, [r4]
- b _08025112
- .align 2, 0
-_08024FD8: .4byte gUnknown_02024C07
-_08024FDC: .4byte gUnknown_02024C08
-_08024FE0: .4byte gUnknown_02024C80
-_08024FE4: .4byte gBattleMons
-_08024FE8:
- ldr r0, _08024FF4 @ =gUnknown_02024C08
- ldr r1, _08024FF8 @ =gUnknown_02024A60
- ldrb r1, [r1]
- strb r1, [r0]
- b _08025112
- .align 2, 0
-_08024FF4: .4byte gUnknown_02024C08
-_08024FF8: .4byte gUnknown_02024A60
-_08024FFC:
- bl sub_8012028
- ldr r1, _08025008 @ =gUnknown_02024D1E
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025008: .4byte gUnknown_02024D1E
-_0802500C:
- ldr r0, _0802501C @ =gUnknown_02024BE6
- ldrh r0, [r0]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025020 @ =gUnknown_02024C08
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_0802501C: .4byte gUnknown_02024BE6
-_08025020: .4byte gUnknown_02024C08
-_08025024:
- ldr r2, _08025044 @ =gUnknown_02024C6C
- ldr r1, _08025048 @ =gBitTable
- ldr r0, _0802504C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 28
- ldr r2, [r2]
- ands r2, r0
- cmp r2, 0
- beq _08025054
- ldr r1, _08025050 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025044: .4byte gUnknown_02024C6C
-_08025048: .4byte gBitTable
-_0802504C: .4byte gUnknown_02024A60
-_08025050: .4byte gUnknown_02024D1E
-_08025054:
- ldr r0, _0802505C @ =gUnknown_02024D1E
- strb r2, [r0]
- b _08025112
- .align 2, 0
-_0802505C: .4byte gUnknown_02024D1E
-_08025060:
- ldr r4, _08025090 @ =gUnknown_02024D68
- ldr r3, _08025094 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x9
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08025112
- .align 2, 0
-_08025090: .4byte gUnknown_02024D68
-_08025094: .4byte gUnknown_02024A60
-_08025098:
- ldr r3, _080250B8 @ =gUnknown_02024A6A
- ldr r0, _080250BC @ =0x02000000
- ldr r1, _080250C0 @ =0x00016018
- adds r0, r1
- ldrh r2, [r3]
- ldrb r1, [r0]
- cmp r2, r1
- beq _080250B2
- ldrh r0, [r3, 0x4]
- cmp r0, r1
- bne _08025112
- cmp r2, r0
- bne _080250C8
-_080250B2:
- ldr r1, _080250C4 @ =gUnknown_02024A60
- movs r0, 0
- b _080250CC
- .align 2, 0
-_080250B8: .4byte gUnknown_02024A6A
-_080250BC: .4byte 0x02000000
-_080250C0: .4byte 0x00016018
-_080250C4: .4byte gUnknown_02024A60
-_080250C8:
- ldr r1, _08025120 @ =gUnknown_02024A60
- movs r0, 0x2
-_080250CC:
- strb r0, [r1]
- adds r5, r1, 0
- ldrb r2, [r5]
- lsls r1, r2, 1
- ldr r0, _08025124 @ =0x020160e8
- adds r4, r1, r0
- movs r3, 0
- ldr r1, _08025128 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- ldrh r2, [r4]
- cmp r0, r2
- beq _0802510A
- adds r6, r5, 0
- movs r5, 0x58
- adds r2, r1, 0
-_080250F2:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0802510A
- lsls r1, r3, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- ldrh r1, [r4]
- cmp r0, r1
- bne _080250F2
-_0802510A:
- cmp r3, 0x4
- bne _08025112
- movs r0, 0
- strh r0, [r4]
-_08025112:
- ldr r1, _0802512C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08025120: .4byte gUnknown_02024A60
-_08025124: .4byte 0x020160e8
-_08025128: .4byte gBattleMons
-_0802512C: .4byte gUnknown_02024C10
- thumb_func_end sub_8024F40
-
- thumb_func_start atk77_setprotect
-atk77_setprotect: @ 8025130
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0x1
- ldr r2, _080251FC @ =gUnknown_02024C4C
- ldr r1, _08025200 @ =gUnknown_02024C07
- ldrb r3, [r1]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- mov r8, r1
- ldr r7, _08025204 @ =gUnknown_02024CA8
- cmp r0, 0xB6
- beq _08025160
- cmp r0, 0xC5
- beq _08025160
- cmp r0, 0xCB
- beq _08025160
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r7
- movs r1, 0
- strb r1, [r0, 0x8]
-_08025160:
- ldr r0, _08025208 @ =gUnknown_02024A7E
- ldrb r1, [r0]
- ldr r0, _0802520C @ =gUnknown_02024A68
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _08025170
- movs r6, 0
-_08025170:
- ldr r2, _08025210 @ =gProtectSuccessRates
- mov r5, r8
- ldrb r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r4, [r0, 0x8]
- lsls r4, 1
- adds r4, r2
- bl Random
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bls _08025224
- cmp r6, 0
- beq _08025224
- ldr r4, _08025214 @ =gBattleMoves
- ldr r3, _08025218 @ =gUnknown_02024BE6
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x6F
- bne _080251C0
- ldr r0, _0802521C @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
-_080251C0:
- ldrh r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- cmp r0, 0x74
- bne _080251E6
- ldr r0, _0802521C @ =gUnknown_02024D28
- ldrb r1, [r5]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _08025220 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
-_080251E6:
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- b _08025246
- .align 2, 0
-_080251FC: .4byte gUnknown_02024C4C
-_08025200: .4byte gUnknown_02024C07
-_08025204: .4byte gUnknown_02024CA8
-_08025208: .4byte gUnknown_02024A7E
-_0802520C: .4byte gUnknown_02024A68
-_08025210: .4byte gProtectSuccessRates
-_08025214: .4byte gBattleMoves
-_08025218: .4byte gUnknown_02024BE6
-_0802521C: .4byte gUnknown_02024D28
-_08025220: .4byte gUnknown_02024D1E
-_08025224:
- ldr r2, _08025258 @ =gUnknown_02024CA8
- ldr r0, _0802525C @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x8]
- ldr r1, _08025260 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- ldr r2, _08025264 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_08025246:
- ldr r1, _08025268 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025258: .4byte gUnknown_02024CA8
-_0802525C: .4byte gUnknown_02024C07
-_08025260: .4byte gUnknown_02024D1E
-_08025264: .4byte gUnknown_02024C68
-_08025268: .4byte gUnknown_02024C10
- thumb_func_end atk77_setprotect
-
- thumb_func_start atk78_faintifabilitynotdamp
-atk78_faintifabilitynotdamp: @ 802526C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08025328 @ =gUnknown_02024A64
- ldr r2, [r0]
- cmp r2, 0
- bne _08025370
- ldr r1, _0802532C @ =gUnknown_02024C08
- strb r2, [r1]
- ldr r0, _08025330 @ =gUnknown_02024A68
- ldrb r3, [r0]
- adds r5, r1, 0
- mov r8, r0
- ldr r6, _08025334 @ =gBattleMons
- cmp r2, r3
- bcs _080252B8
- adds r0, r6, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- beq _080252B8
- adds r2, r3, 0
- adds r4, r6, 0
- movs r3, 0x58
-_0802529C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r2
- bcs _080252B8
- ldrb r0, [r5]
- muls r0, r3
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0802529C
-_080252B8:
- ldrb r0, [r5]
- mov r1, r8
- ldrb r1, [r1]
- cmp r0, r1
- bne _08025354
- ldr r4, _08025338 @ =gUnknown_02024A60
- ldr r7, _0802533C @ =gUnknown_02024C07
- ldrb r0, [r7]
- strb r0, [r4]
- ldr r2, _08025340 @ =gUnknown_02024BEC
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08025344 @ =0x00007fff
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08025348 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- movs r0, 0
- strb r0, [r5]
- mov r2, r8
- ldrb r0, [r2]
- cmp r0, 0
- beq _08025370
- adds r3, r5, 0
- ldrb r5, [r7]
- ldr r7, _0802534C @ =gBitTable
- adds r4, r0, 0
- ldr r6, _08025350 @ =gUnknown_02024C0C
-_08025304:
- ldrb r2, [r3]
- cmp r2, r5
- beq _0802531A
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r7
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _08025370
-_0802531A:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _08025304
- b _08025370
- .align 2, 0
-_08025328: .4byte gUnknown_02024A64
-_0802532C: .4byte gUnknown_02024C08
-_08025330: .4byte gUnknown_02024A68
-_08025334: .4byte gBattleMons
-_08025338: .4byte gUnknown_02024A60
-_0802533C: .4byte gUnknown_02024C07
-_08025340: .4byte gUnknown_02024BEC
-_08025344: .4byte 0x00007fff
-_08025348: .4byte gUnknown_02024C10
-_0802534C: .4byte gBitTable
-_08025350: .4byte gUnknown_02024C0C
-_08025354:
- ldr r1, _0802537C @ =byte_2024C06
- movs r0, 0x6
- strb r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x58
- muls r1, r0
- adds r1, r6
- adds r1, 0x20
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r1, _08025380 @ =gUnknown_02024C10
- ldr r0, _08025384 @ =gUnknown_081D9834
- str r0, [r1]
-_08025370:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802537C: .4byte byte_2024C06
-_08025380: .4byte gUnknown_02024C10
-_08025384: .4byte gUnknown_081D9834
- thumb_func_end atk78_faintifabilitynotdamp
-
- thumb_func_start atk79_setuserhptozero
-atk79_setuserhptozero: @ 8025388
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080253D4 @ =gUnknown_02024A64
- ldr r3, [r0]
- cmp r3, 0
- bne _080253CC
- ldr r4, _080253D8 @ =gUnknown_02024A60
- ldr r0, _080253DC @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _080253E0 @ =gBattleMons
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r1
- strh r3, [r0, 0x28]
- ldrb r0, [r4]
- muls r0, r2
- adds r1, 0x28
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2A
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080253E4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080253CC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080253D4: .4byte gUnknown_02024A64
-_080253D8: .4byte gUnknown_02024A60
-_080253DC: .4byte gUnknown_02024C07
-_080253E0: .4byte gBattleMons
-_080253E4: .4byte gUnknown_02024C10
- thumb_func_end atk79_setuserhptozero
-
- thumb_func_start sub_80253E8
-sub_80253E8: @ 80253E8
- push {r4-r7,lr}
- ldr r3, _08025460 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r4, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r0, _08025464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r7, r3, 0
- cmp r0, 0
- beq _08025480
- ldr r0, _08025468 @ =gUnknown_02024C08
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, _0802546C @ =gUnknown_02024C07
- lsls r1, 24
- lsrs r1, 24
- adds r3, r0, 0
- ldr r6, _08025470 @ =gUnknown_02024C0C
- ldr r5, _08025474 @ =gBitTable
- ldr r0, _08025478 @ =gUnknown_02024A68
- mov r12, r0
- ldrb r0, [r2]
- cmp r1, r0
- bne _0802543E
-_0802542E:
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2]
- cmp r0, r1
- beq _0802542E
-_0802543E:
- ldrb r0, [r6]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r5
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- bne _0802542E
- ldrb r0, [r3]
- mov r2, r12
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802547C
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- b _08025484
- .align 2, 0
-_08025460: .4byte gUnknown_02024C10
-_08025464: .4byte gUnknown_020239F8
-_08025468: .4byte gUnknown_02024C08
-_0802546C: .4byte gUnknown_02024C07
-_08025470: .4byte gUnknown_02024C0C
-_08025474: .4byte gBitTable
-_08025478: .4byte gUnknown_02024A68
-_0802547C:
- str r4, [r7]
- b _08025484
-_08025480:
- adds r0, r2, 0x5
- str r0, [r3]
-_08025484:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80253E8
-
- thumb_func_start sub_802548C
-sub_802548C: @ 802548C
- push {r4-r6,lr}
- ldr r4, _080254E8 @ =gUnknown_02024C10
- ldr r1, [r4]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldrb r0, [r1, 0x5]
- ldr r3, _080254EC @ =gUnknown_02024C08
- cmp r0, 0x1
- bne _080254B4
- ldr r0, _080254F0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r3]
-_080254B4:
- ldr r1, _080254F4 @ =gUnknown_02024BEC
- ldr r6, _080254F8 @ =gBattleMons
- ldrb r0, [r3]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _080254CE
- movs r0, 0x1
- str r0, [r1]
-_080254CE:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r3]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _080254FC
- str r2, [r4]
- b _08025502
- .align 2, 0
-_080254E8: .4byte gUnknown_02024C10
-_080254EC: .4byte gUnknown_02024C08
-_080254F0: .4byte gUnknown_02024C07
-_080254F4: .4byte gUnknown_02024BEC
-_080254F8: .4byte gBattleMons
-_080254FC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08025502:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_802548C
-
- thumb_func_start sub_8025508
-sub_8025508: @ 8025508
- push {r4-r7,lr}
- ldr r3, _0802556C @ =0x02000000
- ldr r4, _08025570 @ =gUnknown_02024C07
- ldrb r2, [r4]
- lsls r1, r2, 1
- ldr r5, _08025574 @ =0x000160ac
- adds r0, r1, r5
- adds r0, r3
- ldrb r7, [r0]
- ldr r0, _08025578 @ =0x000160ad
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- lsls r0, 8
- orrs r7, r0
- lsls r2, 2
- ldr r1, _0802557C @ =0x00016100
- adds r0, r2, r1
- adds r0, r3
- ldrb r6, [r0]
- adds r5, 0x55
- adds r0, r2, r5
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 8
- orrs r6, r0
- adds r1, 0x2
- adds r0, r2, r1
- adds r0, r3
- ldrb r5, [r0]
- ldr r0, _08025580 @ =0x00016103
- adds r2, r0
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r5, r0
- cmp r7, 0
- beq _08025594
- ldr r0, _08025584 @ =0x0000ffff
- cmp r7, r0
- beq _08025594
- ldr r2, _08025588 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802558C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025590 @ =gUnknown_02024BE6
- strh r7, [r4]
- b _0802565C
- .align 2, 0
-_0802556C: .4byte 0x02000000
-_08025570: .4byte gUnknown_02024C07
-_08025574: .4byte 0x000160ac
-_08025578: .4byte 0x000160ad
-_0802557C: .4byte 0x00016100
-_08025580: .4byte 0x00016103
-_08025584: .4byte 0x0000ffff
-_08025588: .4byte gUnknown_02024C6C
-_0802558C: .4byte 0xfffffbff
-_08025590: .4byte gUnknown_02024BE6
-_08025594:
- cmp r6, 0
- beq _08025644
- cmp r5, 0
- beq _08025618
- ldr r0, _080255C4 @ =0x0000ffff
- cmp r6, r0
- beq _08025618
- cmp r5, r0
- beq _08025618
- ldr r2, _080255C8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _080255CC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080255D4
- ldr r0, _080255D0 @ =gUnknown_02024BE6
- strh r6, [r0]
- b _080255D8
- .align 2, 0
-_080255C4: .4byte 0x0000ffff
-_080255C8: .4byte gUnknown_02024C6C
-_080255CC: .4byte 0xfffffbff
-_080255D0: .4byte gUnknown_02024BE6
-_080255D4:
- ldr r0, _08025604 @ =gUnknown_02024BE6
- strh r5, [r0]
-_080255D8:
- adds r5, r0, 0
- ldrh r0, [r5]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025608 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r4, _0802560C @ =gUnknown_02024C10
- ldr r3, _08025610 @ =gUnknown_081D6BBC
- ldr r2, _08025614 @ =gBattleMoves
- ldrh r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r4]
- b _080256C0
- .align 2, 0
-_08025604: .4byte gUnknown_02024BE6
-_08025608: .4byte gUnknown_02024C08
-_0802560C: .4byte gUnknown_02024C10
-_08025610: .4byte gUnknown_081D6BBC
-_08025614: .4byte gBattleMoves
-_08025618:
- cmp r6, 0
- beq _08025644
- ldr r0, _08025634 @ =0x0000ffff
- cmp r6, r0
- beq _08025644
- ldr r2, _08025638 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802563C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025640 @ =gUnknown_02024BE6
- strh r6, [r4]
- b _0802565C
- .align 2, 0
-_08025634: .4byte 0x0000ffff
-_08025638: .4byte gUnknown_02024C6C
-_0802563C: .4byte 0xfffffbff
-_08025640: .4byte gUnknown_02024BE6
-_08025644:
- cmp r5, 0
- beq _080256A4
- ldr r0, _08025684 @ =0x0000ffff
- cmp r5, r0
- beq _080256A4
- ldr r2, _08025688 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802568C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08025690 @ =gUnknown_02024BE6
- strh r5, [r4]
-_0802565C:
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08025694 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r5, _08025698 @ =gUnknown_02024C10
- ldr r3, _0802569C @ =gUnknown_081D6BBC
- ldr r2, _080256A0 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r5]
- b _080256C0
- .align 2, 0
-_08025684: .4byte 0x0000ffff
-_08025688: .4byte gUnknown_02024C6C
-_0802568C: .4byte 0xfffffbff
-_08025690: .4byte gUnknown_02024BE6
-_08025694: .4byte gUnknown_02024C08
-_08025698: .4byte gUnknown_02024C10
-_0802569C: .4byte gUnknown_081D6BBC
-_080256A0: .4byte gBattleMoves
-_080256A4:
- ldr r2, _080256C8 @ =gUnknown_02024D68
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _080256CC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_080256C0:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080256C8: .4byte gUnknown_02024D68
-_080256CC: .4byte gUnknown_02024C10
- thumb_func_end sub_8025508
-
- thumb_func_start sub_80256D0
-sub_80256D0: @ 80256D0
- push {lr}
- ldr r2, _080256F0 @ =word_2024DB8
- ldrh r0, [r2]
- movs r1, 0x7
- ands r1, r0
- cmp r1, 0
- beq _080256FC
- ldr r2, _080256F4 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080256F8 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802570C
- .align 2, 0
-_080256F0: .4byte word_2024DB8
-_080256F4: .4byte gUnknown_02024C68
-_080256F8: .4byte gUnknown_02024D1E
-_080256FC:
- movs r0, 0x1
- strh r0, [r2]
- ldr r0, _08025718 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- ldr r0, _0802571C @ =gUnknown_02024DBC
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_0802570C:
- ldr r1, _08025720 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025718: .4byte gUnknown_02024D1E
-_0802571C: .4byte gUnknown_02024DBC
-_08025720: .4byte gUnknown_02024C10
- thumb_func_end sub_80256D0
-
- thumb_func_start atk7E_setreflect
-atk7E_setreflect: @ 8025724
- push {r4-r6,lr}
- ldr r5, _08025754 @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_get_per_side_status
- ldr r6, _08025758 @ =gUnknown_02024C7A
- movs r4, 0x1
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08025764
- ldr r2, _0802575C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025760 @ =gUnknown_02024D1E
- movs r0, 0
- b _080257C4
- .align 2, 0
-_08025754: .4byte gUnknown_02024C07
-_08025758: .4byte gUnknown_02024C7A
-_0802575C: .4byte gUnknown_02024C68
-_08025760: .4byte gUnknown_02024D1E
-_08025764:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x1
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- ldr r2, _080257B4 @ =gUnknown_02024C80
- adds r1, r4, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0]
- ldr r0, _080257B8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _080257C0
- movs r0, 0x1
- bl sub_803C348
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bne _080257C0
- ldr r0, _080257BC @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- b _080257C6
- .align 2, 0
-_080257B4: .4byte gUnknown_02024C80
-_080257B8: .4byte gUnknown_020239F8
-_080257BC: .4byte gUnknown_02024D1E
-_080257C0:
- ldr r1, _080257D4 @ =gUnknown_02024D1E
- movs r0, 0x1
-_080257C4:
- strb r0, [r1, 0x5]
-_080257C6:
- ldr r1, _080257D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080257D4: .4byte gUnknown_02024D1E
-_080257D8: .4byte gUnknown_02024C10
- thumb_func_end atk7E_setreflect
-
- thumb_func_start sub_80257DC
-sub_80257DC: @ 80257DC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _0802581C @ =gUnknown_02024C68
- ldrb r5, [r7]
- movs r0, 0x29
- ands r0, r5
- cmp r0, 0
- bne _0802580E
- ldr r0, _08025820 @ =gUnknown_02024C98
- mov r9, r0
- ldr r1, _08025824 @ =gUnknown_02024C08
- mov r8, r1
- ldrb r4, [r1]
- lsls r0, r4, 2
- mov r2, r9
- adds r6, r0, r2
- ldr r2, [r6]
- movs r0, 0x4
- mov r12, r0
- adds r3, r2, 0
- ands r3, r0
- cmp r3, 0
- beq _0802582C
-_0802580E:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _08025828 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_0802581C: .4byte gUnknown_02024C68
-_08025820: .4byte gUnknown_02024C98
-_08025824: .4byte gUnknown_02024C08
-_08025828: .4byte gUnknown_02024D1E
-_0802582C:
- ldr r1, _08025858 @ =gBattleMons
- movs r0, 0x58
- muls r0, r4
- adds r1, r0, r1
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xC
- beq _08025848
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xC
- bne _08025860
-_08025848:
- movs r0, 0x1
- orrs r0, r5
- strb r0, [r7]
- ldr r1, _0802585C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _0802587C
- .align 2, 0
-_08025858: .4byte gBattleMons
-_0802585C: .4byte gUnknown_02024D1E
-_08025860:
- ldr r0, _08025890 @ =gUnknown_02024C07
- ldrb r0, [r0]
- orrs r2, r0
- str r2, [r6]
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 2
- add r1, r9
- ldr r0, [r1]
- mov r2, r12
- orrs r0, r2
- str r0, [r1]
- ldr r0, _08025894 @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
-_0802587C:
- ldr r1, _08025898 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025890: .4byte gUnknown_02024C07
-_08025894: .4byte gUnknown_02024D1E
-_08025898: .4byte gUnknown_02024C10
- thumb_func_end sub_80257DC
-
- thumb_func_start atk80_manipulatedamage
-atk80_manipulatedamage: @ 802589C
- push {r4,lr}
- ldr r1, _080258B4 @ =gUnknown_02024C10
- ldr r0, [r1]
- ldrb r2, [r0, 0x1]
- adds r4, r1, 0
- cmp r2, 0x1
- beq _080258CC
- cmp r2, 0x1
- bgt _080258B8
- cmp r2, 0
- beq _080258BE
- b _0802590C
- .align 2, 0
-_080258B4: .4byte gUnknown_02024C10
-_080258B8:
- cmp r2, 0x2
- beq _08025904
- b _0802590C
-_080258BE:
- ldr r1, _080258C8 @ =gUnknown_02024BEC
- ldr r0, [r1]
- negs r0, r0
- b _0802590A
- .align 2, 0
-_080258C8: .4byte gUnknown_02024BEC
-_080258CC:
- ldr r3, _080258F8 @ =gUnknown_02024BEC
- ldr r0, [r3]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _080258DE
- str r2, [r3]
-_080258DE:
- ldr r2, _080258FC @ =gBattleMons
- ldr r0, _08025900 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r1, r0, 1
- ldr r0, [r3]
- cmp r1, r0
- bge _0802590C
- str r1, [r3]
- b _0802590C
- .align 2, 0
-_080258F8: .4byte gUnknown_02024BEC
-_080258FC: .4byte gBattleMons
-_08025900: .4byte gUnknown_02024C08
-_08025904:
- ldr r1, _08025918 @ =gUnknown_02024BEC
- ldr r0, [r1]
- lsls r0, 1
-_0802590A:
- str r0, [r1]
-_0802590C:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08025918: .4byte gUnknown_02024BEC
- thumb_func_end atk80_manipulatedamage
-
- thumb_func_start atk81_setrest
-atk81_setrest: @ 802591C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r0, _08025974 @ =gUnknown_02024C10
- mov r12, r0
- ldr r1, [r0]
- ldrb r6, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r6, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r6, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r6, r0
- ldr r5, _08025978 @ =gUnknown_02024A60
- ldr r2, _0802597C @ =gUnknown_02024C08
- ldr r0, _08025980 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r2]
- strb r0, [r5]
- ldr r4, _08025984 @ =gUnknown_02024BEC
- ldr r1, _08025988 @ =gBattleMons
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r0, r1
- ldrh r0, [r0, 0x2C]
- negs r0, r0
- str r0, [r4]
- ldrb r0, [r2]
- adds r4, r0, 0
- muls r4, r3
- adds r0, r4, r1
- ldrh r3, [r0, 0x28]
- adds r7, r5, 0
- adds r5, r2, 0
- adds r2, r1, 0
- ldrh r0, [r0, 0x2C]
- cmp r3, r0
- bne _0802598C
- mov r0, r12
- str r6, [r0]
- b _080259DC
- .align 2, 0
-_08025974: .4byte gUnknown_02024C10
-_08025978: .4byte gUnknown_02024A60
-_0802597C: .4byte gUnknown_02024C08
-_08025980: .4byte gUnknown_02024C07
-_08025984: .4byte gUnknown_02024BEC
-_08025988: .4byte gBattleMons
-_0802598C:
- adds r0, r2, 0
- adds r0, 0x4C
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0xF8
- ands r1, r0
- cmp r1, 0
- beq _080259A8
- ldr r1, _080259A4 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _080259AC
- .align 2, 0
-_080259A4: .4byte gUnknown_02024D1E
-_080259A8:
- ldr r0, _080259E4 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
-_080259AC:
- ldrb r0, [r5]
- movs r3, 0x58
- muls r0, r3
- adds r2, 0x4C
- adds r0, r2
- movs r1, 0x3
- str r1, [r0]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r2
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080259E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_080259DC:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080259E4: .4byte gUnknown_02024D1E
-_080259E8: .4byte gUnknown_02024C10
- thumb_func_end atk81_setrest
-
- thumb_func_start atk82_jumpifnotfirstturn
-atk82_jumpifnotfirstturn: @ 80259EC
- push {r4,r5,lr}
- ldr r5, _08025A20 @ =gUnknown_02024C10
- ldr r4, [r5]
- ldrb r3, [r4, 0x1]
- ldrb r0, [r4, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldr r2, _08025A24 @ =gUnknown_02024CA8
- ldr r0, _08025A28 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _08025A2C
- adds r0, r4, 0x5
- str r0, [r5]
- b _08025A2E
- .align 2, 0
-_08025A20: .4byte gUnknown_02024C10
-_08025A24: .4byte gUnknown_02024CA8
-_08025A28: .4byte gUnknown_02024C07
-_08025A2C:
- str r3, [r5]
-_08025A2E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atk82_jumpifnotfirstturn
-
- thumb_func_start sub_8025A34
-sub_8025A34: @ 8025A34
- ldr r1, _08025A40 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08025A40: .4byte gUnknown_02024C10
- thumb_func_end sub_8025A34
-
- thumb_func_start sub_8025A44
-sub_8025A44: @ 8025A44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r3, r0, 24
- movs r2, 0
- ldr r0, _08025A9C @ =gUnknown_02024A68
- ldrb r1, [r0]
- mov r8, r0
- cmp r2, r1
- bge _08025AB8
- ldr r0, _08025AA0 @ =gBattleMons
- mov r12, r0
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r5, r0, 0
- adds r5, 0x20
- ldr r6, _08025AA4 @ =0x02016003
- movs r3, 0
- ldr r7, _08025AA8 @ =gUnknown_02024D1E
- adds r4, r1, 0
-_08025A70:
- mov r0, r12
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x70
- ands r0, r1
- cmp r0, 0
- beq _08025AB0
- ldrb r0, [r5]
- cmp r0, 0x2B
- beq _08025AB0
- movs r3, 0
- strb r2, [r6]
- ldr r1, _08025AAC @ =gUnknown_02024C08
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08025AD0
- cmp r0, r2
- beq _08025AC4
- movs r0, 0x1
- strb r0, [r7, 0x5]
- b _08025AB8
- .align 2, 0
-_08025A9C: .4byte gUnknown_02024A68
-_08025AA0: .4byte gBattleMons
-_08025AA4: .4byte 0x02016003
-_08025AA8: .4byte gUnknown_02024D1E
-_08025AAC: .4byte gUnknown_02024C08
-_08025AB0:
- adds r3, 0x58
- adds r2, 0x1
- cmp r2, r4
- blt _08025A70
-_08025AB8:
- mov r1, r8
- ldrb r1, [r1]
- cmp r2, r1
- beq _08025AD4
- movs r0, 0x1
- b _08025AD6
-_08025AC4:
- ldr r0, _08025ACC @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
- b _08025AB8
- .align 2, 0
-_08025ACC: .4byte gUnknown_02024D1E
-_08025AD0:
- strb r2, [r1]
- b _08025AB8
-_08025AD4:
- movs r0, 0
-_08025AD6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8025A44
-
- thumb_func_start sub_8025AE0
-sub_8025AE0: @ 8025AE0
- push {r4-r6,lr}
- ldr r5, _08025B0C @ =gUnknown_02024C10
- ldr r1, [r5]
- ldrb r4, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r4, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r4, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r4, r0
- ldr r6, _08025B10 @ =gUnknown_02024C08
- ldrb r0, [r6]
- bl sub_8025A44
- lsls r0, 24
- cmp r0, 0
- beq _08025B14
- str r4, [r5]
- b _08025B56
- .align 2, 0
-_08025B0C: .4byte gUnknown_02024C10
-_08025B10: .4byte gUnknown_02024C08
-_08025B14:
- ldr r1, _08025B44 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- muls r0, r3
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
- adds r1, r0, 0
- cmp r1, 0xF
- beq _08025B2C
- cmp r1, 0x48
- bne _08025B50
-_08025B2C:
- ldr r2, _08025B48 @ =byte_2024C06
- strb r0, [r2]
- ldr r1, _08025B4C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- str r4, [r5]
- ldrb r1, [r2]
- adds r0, r3, 0
- bl sub_81074C4
- b _08025B56
- .align 2, 0
-_08025B44: .4byte gBattleMons
-_08025B48: .4byte byte_2024C06
-_08025B4C: .4byte gUnknown_02024D1E
-_08025B50:
- ldr r0, [r5]
- adds r0, 0x5
- str r0, [r5]
-_08025B56:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8025AE0
-
- thumb_func_start sub_8025B5C
-sub_8025B5C: @ 8025B5C
- push {r4,r5,lr}
- ldr r5, _08025B84 @ =gUnknown_02024CA8
- ldr r4, _08025B88 @ =gUnknown_02024C07
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x9]
- cmp r0, 0x3
- bne _08025B94
- ldr r2, _08025B8C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08025B90 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025BBE
- .align 2, 0
-_08025B84: .4byte gUnknown_02024CA8
-_08025B88: .4byte gUnknown_02024C07
-_08025B8C: .4byte gUnknown_02024C68
-_08025B90: .4byte gUnknown_02024D1E
-_08025B94:
- adds r0, 0x1
- movs r3, 0
- strb r0, [r1, 0x9]
- ldr r2, _08025BCC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x1
- strb r0, [r2, 0x1]
- strb r0, [r2, 0x2]
- strb r0, [r2, 0x3]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x9]
- strb r0, [r2, 0x4]
- movs r0, 0xFF
- strb r0, [r2, 0x5]
- ldr r0, _08025BD0 @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
-_08025BBE:
- ldr r1, _08025BD4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08025BCC: .4byte gUnknown_030041C0
-_08025BD0: .4byte gUnknown_02024D1E
-_08025BD4: .4byte gUnknown_02024C10
- thumb_func_end sub_8025B5C
-
- thumb_func_start atk86_stockpiletobasedamage
-atk86_stockpiletobasedamage: @ 8025BD8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- ldr r3, _08025C10 @ =gUnknown_02024C10
- ldr r1, [r3]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r7, _08025C14 @ =gUnknown_02024CA8
- ldr r6, _08025C18 @ =gUnknown_02024C07
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- cmp r0, 0
- bne _08025C1C
- str r2, [r3]
- b _08025CC2
- .align 2, 0
-_08025C10: .4byte gUnknown_02024C10
-_08025C14: .4byte gUnknown_02024CA8
-_08025C18: .4byte gUnknown_02024C07
-_08025C1C:
- ldr r0, _08025CD0 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08025CA8
- ldr r0, _08025CD4 @ =gUnknown_02024BEC
- mov r8, r0
- ldr r4, _08025CD8 @ =gUnknown_02024C7A
- ldr r5, _08025CDC @ =gUnknown_02024C08
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r6]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08025CE0 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r5]
- muls r1, r4
- adds r1, r2
- ldr r2, _08025CE4 @ =gUnknown_02024BE6
- ldrh r2, [r2]
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- ldrb r4, [r6]
- str r4, [sp, 0x8]
- ldrb r4, [r5]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r7
- ldrb r1, [r1, 0x9]
- adds r3, r0, 0
- muls r3, r1
- mov r1, r8
- str r3, [r1]
- ldr r2, _08025CE8 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x9]
- ldr r1, _08025CEC @ =0x00016002
- adds r2, r1
- strb r0, [r2]
- ldr r1, _08025CF0 @ =gUnknown_02024D28
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08025CA8
- lsls r0, r3, 4
- subs r0, r3
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08025CA8:
- ldr r2, _08025CF4 @ =gUnknown_02024CA8
- ldr r0, _08025CF8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x9]
- ldr r1, _08025CFC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08025CC2:
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025CD0: .4byte gUnknown_02024D1E
-_08025CD4: .4byte gUnknown_02024BEC
-_08025CD8: .4byte gUnknown_02024C7A
-_08025CDC: .4byte gUnknown_02024C08
-_08025CE0: .4byte gBattleMons
-_08025CE4: .4byte gUnknown_02024BE6
-_08025CE8: .4byte 0x02000000
-_08025CEC: .4byte 0x00016002
-_08025CF0: .4byte gUnknown_02024D28
-_08025CF4: .4byte gUnknown_02024CA8
-_08025CF8: .4byte gUnknown_02024C07
-_08025CFC: .4byte gUnknown_02024C10
- thumb_func_end atk86_stockpiletobasedamage
-
- thumb_func_start sub_8025D00
-sub_8025D00: @ 8025D00
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08025D40 @ =gUnknown_02024C10
- ldr r1, [r7]
- ldrb r2, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r2, r0
- ldr r0, _08025D44 @ =gUnknown_02024CA8
- mov r8, r0
- ldr r6, _08025D48 @ =gUnknown_02024C07
- ldrb r3, [r6]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- mov r1, r8
- adds r4, r0, r1
- ldrb r1, [r4, 0x9]
- cmp r1, 0
- bne _08025D50
- str r2, [r7]
- ldr r0, _08025D4C @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D40: .4byte gUnknown_02024C10
-_08025D44: .4byte gUnknown_02024CA8
-_08025D48: .4byte gUnknown_02024C07
-_08025D4C: .4byte gUnknown_02024D1E
-_08025D50:
- ldr r1, _08025D74 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, r0, r1
- ldrh r0, [r1, 0x2C]
- ldrh r3, [r1, 0x28]
- cmp r0, r3
- bne _08025D80
- movs r0, 0
- strb r0, [r4, 0x9]
- str r2, [r7]
- ldr r1, _08025D78 @ =gUnknown_02024C08
- ldrb r0, [r6]
- strb r0, [r1]
- ldr r1, _08025D7C @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08025DD0
- .align 2, 0
-_08025D74: .4byte gBattleMons
-_08025D78: .4byte gUnknown_02024C08
-_08025D7C: .4byte gUnknown_02024D1E
-_08025D80:
- ldr r5, _08025DDC @ =gUnknown_02024BEC
- ldrh r0, [r1, 0x2C]
- ldrb r1, [r4, 0x9]
- movs r2, 0x3
- subs r2, r1
- movs r4, 0x1
- adds r1, r4, 0
- lsls r1, r2
- bl __divsi3
- str r0, [r5]
- cmp r0, 0
- bne _08025D9C
- str r4, [r5]
-_08025D9C:
- ldr r0, [r5]
- negs r0, r0
- str r0, [r5]
- ldr r2, _08025DE0 @ =0x02000000
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x9]
- ldr r1, _08025DE4 @ =0x00016002
- adds r2, r1
- movs r3, 0
- strb r0, [r2]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- strb r3, [r0, 0x9]
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- ldr r1, _08025DE8 @ =gUnknown_02024C08
- ldrb r0, [r6]
- strb r0, [r1]
-_08025DD0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08025DDC: .4byte gUnknown_02024BEC
-_08025DE0: .4byte 0x02000000
-_08025DE4: .4byte 0x00016002
-_08025DE8: .4byte gUnknown_02024C08
- thumb_func_end sub_8025D00
-
- thumb_func_start atk88_negativedamage
-atk88_negativedamage: @ 8025DEC
- push {lr}
- ldr r2, _08025E14 @ =gUnknown_02024BEC
- ldr r0, _08025E18 @ =gUnknown_02024BF0
- ldr r0, [r0]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- negs r0, r0
- str r0, [r2]
- cmp r0, 0
- bne _08025E08
- movs r0, 0x1
- negs r0, r0
- str r0, [r2]
-_08025E08:
- ldr r1, _08025E1C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08025E14: .4byte gUnknown_02024BEC
-_08025E18: .4byte gUnknown_02024BF0
-_08025E1C: .4byte gUnknown_02024C10
- thumb_func_end atk88_negativedamage
-
- thumb_func_start sub_8025E20
-sub_8025E20: @ 8025E20
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r3
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0
- mov r9, r0
- mov r10, r0
- movs r0, 0x40
- ands r0, r5
- cmp r0, 0
- beq _08025E54
- ldr r0, _08025E4C @ =gUnknown_02024A60
- ldr r1, _08025E50 @ =gUnknown_02024C07
- b _08025E58
- .align 2, 0
-_08025E4C: .4byte gUnknown_02024A60
-_08025E50: .4byte gUnknown_02024C07
-_08025E54:
- ldr r0, _08025EF8 @ =gUnknown_02024A60
- ldr r1, _08025EFC @ =gUnknown_02024C08
-_08025E58:
- ldrb r1, [r1]
- strb r1, [r0]
- movs r0, 0xBF
- ands r5, r0
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- beq _08025E72
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_08025E72:
- movs r0, 0x7F
- ands r5, r0
- movs r0, 0x20
- ands r0, r5
- cmp r0, 0
- beq _08025E88
- mov r0, r10
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_08025E88:
- movs r0, 0xDF
- ands r5, r0
- ldr r1, _08025F00 @ =gUnknown_030041C0
- movs r4, 0
- movs r2, 0xFD
- strb r2, [r1]
- movs r0, 0x5
- strb r0, [r1, 0x1]
- strb r7, [r1, 0x2]
- movs r3, 0x1
- negs r3, r3
- mov r12, r3
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- lsls r0, r6, 24
- cmp r0, 0
- blt _08025EAC
- b _080261B0
-_08025EAC:
- ldr r4, _08025F04 @ =gUnknown_02024C80
- ldr r1, _08025EF8 @ =gUnknown_02024A60
- ldrb r0, [r1]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08025F54
- mov r2, r9
- cmp r2, 0
- bne _08025F54
- ldr r0, _08025F08 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025F0C @ =gUnknown_02024D68
- ldr r3, _08025EF8 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08025F14
- ldr r0, _08025F10 @ =gUnknown_02024C10
- mov r4, r8
- str r4, [r0]
- b _08025F74
- .align 2, 0
-_08025EF8: .4byte gUnknown_02024A60
-_08025EFC: .4byte gUnknown_02024C08
-_08025F00: .4byte gUnknown_030041C0
-_08025F04: .4byte gUnknown_02024C80
-_08025F08: .4byte gUnknown_02024BE6
-_08025F0C: .4byte gUnknown_02024D68
-_08025F10: .4byte gUnknown_02024C10
-_08025F14:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08025F40 @ =0x02000000
- ldr r6, _08025F44 @ =gUnknown_02024A60
- ldrb r1, [r6]
- ldr r2, _08025F48 @ =0x00016003
- adds r0, r2
- strb r1, [r0]
- ldr r1, _08025F4C @ =gUnknown_02024C10
- ldr r0, _08025F50 @ =gUnknown_081D9128
- str r0, [r1]
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08025F40: .4byte 0x02000000
-_08025F44: .4byte gUnknown_02024A60
-_08025F48: .4byte 0x00016003
-_08025F4C: .4byte gUnknown_02024C10
-_08025F50: .4byte gUnknown_081D9128
-_08025F54:
- ldr r0, _08025F78 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08025F84
- mov r3, r10
- cmp r3, 0x1
- beq _08025F84
- movs r0, 0
- bl sub_801C108
- lsls r0, 24
- cmp r0, 0
- beq _08025F84
- ldr r1, _08025F7C @ =gUnknown_02024C10
- ldr r0, _08025F80 @ =BattleScript_1D83D6
- str r0, [r1]
-_08025F74:
- movs r0, 0x1
- b _080262A4
- .align 2, 0
-_08025F78: .4byte gUnknown_02024BE6
-_08025F7C: .4byte gUnknown_02024C10
-_08025F80: .4byte BattleScript_1D83D6
-_08025F84:
- ldr r2, _08025FCC @ =gBattleMons
- ldr r1, _08025FD0 @ =gUnknown_02024A60
- ldrb r3, [r1]
- movs r4, 0x58
- adds r0, r3, 0
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- mov r10, r2
- cmp r0, 0x1D
- beq _08025FA0
- cmp r0, 0x49
- bne _08026040
-_08025FA0:
- mov r0, r9
- cmp r0, 0
- bne _08026040
- ldr r0, _08025FD4 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xAE
- beq _08026040
- cmp r5, 0x1
- bne _08025F74
- ldr r4, _08025FD8 @ =gUnknown_02024D68
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08025FE0
- ldr r0, _08025FDC @ =gUnknown_02024C10
- mov r1, r8
- str r1, [r0]
- b _08025F74
- .align 2, 0
-_08025FCC: .4byte gBattleMons
-_08025FD0: .4byte gUnknown_02024A60
-_08025FD4: .4byte gUnknown_02024BE6
-_08025FD8: .4byte gUnknown_02024D68
-_08025FDC: .4byte gUnknown_02024C10
-_08025FE0:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026028 @ =0x02000000
- ldr r2, _0802602C @ =gUnknown_02024A60
- ldrb r1, [r2]
- ldr r3, _08026030 @ =0x00016003
- adds r0, r3
- strb r1, [r0]
- ldr r1, _08026034 @ =gUnknown_02024C10
- ldr r0, _08026038 @ =gUnknown_081D989B
- str r0, [r1]
- ldr r1, _0802603C @ =byte_2024C06
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- ldrb r1, [r1]
- bl sub_81074C4
- ldr r0, _0802602C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08025F74
- .align 2, 0
-_08026028: .4byte 0x02000000
-_0802602C: .4byte gUnknown_02024A60
-_08026030: .4byte 0x00016003
-_08026034: .4byte gUnknown_02024C10
-_08026038: .4byte gUnknown_081D989B
-_0802603C: .4byte byte_2024C06
-_08026040:
- ldr r1, _08026090 @ =gUnknown_02024A60
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x33
- bne _080260A8
- mov r2, r9
- cmp r2, 0
- bne _080260A8
- cmp r7, 0x6
- bne _080260A8
- cmp r5, 0x1
- bne _08025F74
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026094 @ =0x02000000
- ldr r3, _08026090 @ =gUnknown_02024A60
- ldrb r1, [r3]
- ldr r6, _08026098 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _0802609C @ =gUnknown_02024C10
- ldr r0, _080260A0 @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _080260A4 @ =byte_2024C06
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl sub_81074C4
- b _08025F74
- .align 2, 0
-_08026090: .4byte gUnknown_02024A60
-_08026094: .4byte 0x02000000
-_08026098: .4byte 0x00016003
-_0802609C: .4byte gUnknown_02024C10
-_080260A0: .4byte gUnknown_081D9903
-_080260A4: .4byte byte_2024C06
-_080260A8:
- ldr r1, _080260FC @ =gUnknown_02024A60
- ldrb r0, [r1]
- movs r4, 0x58
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x34
- bne _08026114
- mov r2, r9
- cmp r2, 0
- bne _08026114
- cmp r7, 0x1
- bne _08026114
- cmp r5, 0x1
- beq _080260CA
- b _08025F74
-_080260CA:
- mov r0, r8
- bl b_movescr_stack_push
- ldr r0, _08026100 @ =0x02000000
- ldr r3, _080260FC @ =gUnknown_02024A60
- ldrb r1, [r3]
- ldr r6, _08026104 @ =0x00016003
- adds r0, r6
- strb r1, [r0]
- ldr r1, _08026108 @ =gUnknown_02024C10
- ldr r0, _0802610C @ =gUnknown_081D9903
- str r0, [r1]
- ldr r1, _08026110 @ =byte_2024C06
- ldrb r0, [r3]
- muls r0, r4
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r3]
- ldrb r1, [r1]
- bl sub_81074C4
- b _08025F74
- .align 2, 0
-_080260FC: .4byte gUnknown_02024A60
-_08026100: .4byte 0x02000000
-_08026104: .4byte 0x00016003
-_08026108: .4byte gUnknown_02024C10
-_0802610C: .4byte gUnknown_081D9903
-_08026110: .4byte byte_2024C06
-_08026114:
- ldr r0, _080261A0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x13
- bne _0802612C
- cmp r5, 0
- bne _0802612C
- b _08025F74
-_0802612C:
- lsls r0, r6, 24
- asrs r0, 28
- movs r1, 0x7
- ands r0, r1
- negs r0, r0
- lsls r0, 24
- ldr r3, _080261A4 @ =gUnknown_03004290
- movs r4, 0
- movs r1, 0xFD
- strb r1, [r3]
- movs r2, 0x1
- lsrs r6, r0, 24
- asrs r0, 24
- subs r1, 0xFF
- cmp r0, r1
- bne _08026156
- strb r4, [r3, 0x1]
- movs r0, 0xD3
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_08026156:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD4
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080261A0 @ =gUnknown_02024A60
- ldrb r2, [r1]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- mov r1, r10
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0
- beq _08026206
- movs r1, 0
- ldr r0, _080261A8 @ =gUnknown_02024C08
- ldrb r0, [r0]
- ldr r3, _080261AC @ =gUnknown_02024D1E
- mov r8, r3
- cmp r0, r2
- bne _0802619A
- movs r1, 0x1
-_0802619A:
- mov r4, r8
- strb r1, [r4, 0x5]
- b _08026234
- .align 2, 0
-_080261A0: .4byte gUnknown_02024A60
-_080261A4: .4byte gUnknown_03004290
-_080261A8: .4byte gUnknown_02024C08
-_080261AC: .4byte gUnknown_02024D1E
-_080261B0:
- asrs r6, r0, 28
- movs r0, 0x7
- ands r6, r0
- ldr r3, _08026210 @ =gUnknown_03004290
- strb r2, [r3]
- movs r2, 0x1
- cmp r6, 0x2
- bne _080261CA
- strb r4, [r3, 0x1]
- movs r0, 0xD1
- strb r0, [r3, 0x2]
- strb r4, [r3, 0x3]
- movs r2, 0x4
-_080261CA:
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- movs r0, 0xD2
- strb r0, [r1]
- adds r2, 0x1
- adds r0, r2, r3
- strb r4, [r0]
- adds r2, 0x1
- adds r1, r2, r3
- ldrb r0, [r1]
- mov r2, r12
- orrs r0, r2
- strb r0, [r1]
- ldr r2, _08026214 @ =gBattleMons
- ldr r4, _08026218 @ =gUnknown_02024A60
- ldrb r3, [r4]
- movs r0, 0x58
- muls r0, r3
- adds r0, r7, r0
- adds r1, r2, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- mov r10, r2
- cmp r0, 0xC
- bne _08026220
-_08026206:
- ldr r1, _0802621C @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- mov r8, r1
- b _08026234
- .align 2, 0
-_08026210: .4byte gUnknown_03004290
-_08026214: .4byte gBattleMons
-_08026218: .4byte gUnknown_02024A60
-_0802621C: .4byte gUnknown_02024D1E
-_08026220:
- movs r1, 0
- ldr r0, _080262B4 @ =gUnknown_02024C08
- ldrb r0, [r0]
- ldr r2, _080262B8 @ =gUnknown_02024D1E
- mov r8, r2
- cmp r0, r3
- bne _08026230
- movs r1, 0x1
-_08026230:
- mov r3, r8
- strb r1, [r3, 0x5]
-_08026234:
- ldr r2, _080262BC @ =gUnknown_02024A60
- ldrb r0, [r2]
- movs r4, 0x58
- adds r1, r0, 0
- muls r1, r4
- adds r1, r7, r1
- mov r3, r10
- adds r3, 0x18
- adds r1, r3
- lsls r0, r6, 24
- asrs r0, 24
- ldrb r6, [r1]
- adds r0, r6
- strb r0, [r1]
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08026264
- movs r0, 0
- strb r0, [r1]
-_08026264:
- ldr r1, _080262BC @ =gUnknown_02024A60
- ldrb r0, [r1]
- muls r0, r4
- adds r0, r7, r0
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0xC
- ble _0802627A
- movs r0, 0xC
- strb r0, [r1]
-_0802627A:
- mov r2, r8
- ldrb r0, [r2, 0x5]
- cmp r0, 0x2
- bne _080262A2
- movs r3, 0x1
- ands r3, r5
- cmp r3, 0
- beq _08026294
- ldr r0, _080262C0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_08026294:
- mov r4, r8
- ldrb r0, [r4, 0x5]
- cmp r0, 0x2
- bne _080262A2
- cmp r3, 0
- bne _080262A2
- b _08025F74
-_080262A2:
- movs r0, 0
-_080262A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080262B4: .4byte gUnknown_02024C08
-_080262B8: .4byte gUnknown_02024D1E
-_080262BC: .4byte gUnknown_02024A60
-_080262C0: .4byte gUnknown_02024C68
- thumb_func_end sub_8025E20
-
- thumb_func_start atk89_statbuffchange
-atk89_statbuffchange: @ 80262C4
- push {r4,r5,lr}
- ldr r5, _0802630C @ =gUnknown_02024C10
- ldr r2, [r5]
- ldrb r3, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r3, r0
- ldr r0, _08026310 @ =0x02000000
- ldr r1, _08026314 @ =0x0001601e
- adds r0, r1
- ldrb r4, [r0]
- movs r0, 0xF0
- ands r0, r4
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xF
- ands r1, r4
- ldrb r2, [r2, 0x1]
- bl sub_8025E20
- lsls r0, 24
- cmp r0, 0
- bne _08026304
- ldr r0, [r5]
- adds r0, 0x6
- str r0, [r5]
-_08026304:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802630C: .4byte gUnknown_02024C10
-_08026310: .4byte 0x02000000
-_08026314: .4byte 0x0001601e
- thumb_func_end atk89_statbuffchange
-
- thumb_func_start atk8A_normalisebuffs
-atk8A_normalisebuffs: @ 8026318
- push {r4-r7,lr}
- movs r2, 0
- ldr r0, _08026360 @ =gUnknown_02024A68
- ldrb r1, [r0]
- ldr r0, _08026364 @ =gUnknown_02024C10
- mov r12, r0
- cmp r2, r1
- bge _08026350
- ldr r0, _08026368 @ =gBattleMons
- movs r4, 0x6
- adds r5, r1, 0
- movs r7, 0x58
- adds r6, r0, 0
- adds r6, 0x18
-_08026334:
- adds r3, r2, 0x1
- movs r1, 0x7
- adds r0, r2, 0
- muls r0, r7
- adds r0, r6
- adds r0, 0x7
-_08026340:
- strb r4, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _08026340
- adds r2, r3, 0
- cmp r2, r5
- blt _08026334
-_08026350:
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026360: .4byte gUnknown_02024A68
-_08026364: .4byte gUnknown_02024C10
-_08026368: .4byte gBattleMons
- thumb_func_end atk8A_normalisebuffs
-
- thumb_func_start atk8B_setbide
-atk8B_setbide: @ 802636C
- push {r4,r5,lr}
- ldr r4, _080263C4 @ =gBattleMons
- ldr r3, _080263C8 @ =gUnknown_02024C07
- ldrb r0, [r3]
- movs r5, 0x58
- adds r2, r0, 0
- muls r2, r5
- adds r4, 0x50
- adds r2, r4
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 5
- orrs r0, r1
- str r0, [r2]
- ldr r1, _080263CC @ =gUnknown_02024C54
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- ldr r1, _080263D0 @ =gUnknown_02024BE6
- ldrh r1, [r1]
- movs r2, 0
- strh r1, [r0]
- ldr r1, _080263D4 @ =gUnknown_02024BF4
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r1, _080263D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080263C4: .4byte gBattleMons
-_080263C8: .4byte gUnknown_02024C07
-_080263CC: .4byte gUnknown_02024C54
-_080263D0: .4byte gUnknown_02024BE6
-_080263D4: .4byte gUnknown_02024BF4
-_080263D8: .4byte gUnknown_02024C10
- thumb_func_end atk8B_setbide
-
- thumb_func_start atk8C_confuseifrepeatingattackends
-atk8C_confuseifrepeatingattackends: @ 80263DC
- push {lr}
- ldr r1, _0802640C @ =gBattleMons
- ldr r0, _08026410 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xC0
- lsls r1, 4
- ands r0, r1
- cmp r0, 0
- bne _080263FE
- ldr r1, _08026414 @ =gUnknown_02024D1E
- movs r0, 0x75
- strb r0, [r1, 0x3]
-_080263FE:
- ldr r1, _08026418 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802640C: .4byte gBattleMons
-_08026410: .4byte gUnknown_02024C07
-_08026414: .4byte gUnknown_02024D1E
-_08026418: .4byte gUnknown_02024C10
- thumb_func_end atk8C_confuseifrepeatingattackends
-
- thumb_func_start atk8D_setloopcounter
-atk8D_setloopcounter: @ 802641C
- push {r4,r5,lr}
- ldr r0, _08026430 @ =gUnknown_02024C10
- ldr r0, [r0]
- ldrb r1, [r0, 0x1]
- cmp r1, 0
- beq _08026438
- ldr r0, _08026434 @ =gUnknown_02024C0E
- strb r1, [r0]
- b _08026452
- .align 2, 0
-_08026430: .4byte gUnknown_02024C10
-_08026434: .4byte gUnknown_02024C0E
-_08026438:
- ldr r4, _08026460 @ =gUnknown_02024C0E
- bl Random
- movs r5, 0x3
- ands r0, r5
- strb r0, [r4]
- cmp r0, 0x1
- bls _0802644E
- bl Random
- ands r0, r5
-_0802644E:
- adds r0, 0x2
- strb r0, [r4]
-_08026452:
- ldr r1, _08026464 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08026460: .4byte gUnknown_02024C0E
-_08026464: .4byte gUnknown_02024C10
- thumb_func_end atk8D_setloopcounter
-
- thumb_func_start sub_8026468
-sub_8026468: @ 8026468
- push {r4,lr}
- ldr r1, _080264A8 @ =0x02000000
- ldr r0, _080264AC @ =0x000160e0
- adds r2, r1, r0
- movs r3, 0
- movs r0, 0xFD
- strb r0, [r2]
- ldr r2, _080264B0 @ =0x000160e1
- adds r0, r1, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r4, _080264B4 @ =0x000160e2
- adds r0, r1, r4
- strb r2, [r0]
- adds r4, 0x1
- adds r0, r1, r4
- strb r2, [r0]
- ldr r2, _080264B8 @ =0x000160e4
- adds r0, r1, r2
- strb r3, [r0]
- adds r4, 0x2
- adds r1, r4
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _080264BC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080264A8: .4byte 0x02000000
-_080264AC: .4byte 0x000160e0
-_080264B0: .4byte 0x000160e1
-_080264B4: .4byte 0x000160e2
-_080264B8: .4byte 0x000160e4
-_080264BC: .4byte gUnknown_02024C10
- thumb_func_end sub_8026468
-
- thumb_func_start sub_80264C0
-sub_80264C0: @ 80264C0
- push {r4-r7,lr}
- ldr r6, _080264F4 @ =gBattleMons
- ldr r7, _080264F8 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r5, 0x58
- adds r1, r0, 0
- muls r1, r5
- adds r1, r6
- adds r1, 0x2A
- ldr r4, _080264FC @ =gUnknown_02024C08
- ldrb r3, [r4]
- adds r0, r3, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _0802650C
- ldr r0, _08026500 @ =0x02000000
- ldr r2, _08026504 @ =0x00016064
- adds r1, r3, r2
- adds r1, r0
- ldr r2, _08026508 @ =gUnknown_02024A6A
- lsls r0, r3, 1
- b _08026568
- .align 2, 0
-_080264F4: .4byte gBattleMons
-_080264F8: .4byte gUnknown_02024C07
-_080264FC: .4byte gUnknown_02024C08
-_08026500: .4byte 0x02000000
-_08026504: .4byte 0x00016064
-_08026508: .4byte gUnknown_02024A6A
-_0802650C:
- bl Random
- movs r3, 0xFF
- ands r3, r0
- ldrb r0, [r7]
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r2, [r0]
- ldrb r4, [r4]
- adds r0, r4, 0
- muls r0, r5
- adds r0, r6
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r2, r1
- adds r0, r3, 0
- muls r0, r2
- asrs r0, 8
- adds r0, 0x1
- lsrs r1, 2
- cmp r0, r1
- bhi _0802655C
- ldr r3, _08026558 @ =gUnknown_02024C10
- 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]
- movs r0, 0
- b _08026576
- .align 2, 0
-_08026558: .4byte gUnknown_02024C10
-_0802655C:
- ldr r0, _0802657C @ =0x02000000
- ldr r2, _08026580 @ =0x00016064
- adds r1, r4, r2
- adds r1, r0
- ldr r2, _08026584 @ =gUnknown_02024A6A
- lsls r0, r4, 1
-_08026568:
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r1, _08026588 @ =gUnknown_02024C10
- ldr r0, _0802658C @ =gUnknown_081D90FC
- str r0, [r1]
- movs r0, 0x1
-_08026576:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0802657C: .4byte 0x02000000
-_08026580: .4byte 0x00016064
-_08026584: .4byte gUnknown_02024A6A
-_08026588: .4byte gUnknown_02024C10
-_0802658C: .4byte gUnknown_081D90FC
- thumb_func_end sub_80264C0
-
- thumb_func_start sub_8026590
-sub_8026590: @ 8026590
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _08026628 @ =gUnknown_020239F8
- ldrh r1, [r4]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080265A4
- b _0802687C
-_080265A4:
- ldr r5, _0802662C @ =gUnknown_02024C08
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _08026630 @ =gEnemyParty
- mov r8, r1
- cmp r0, 0
- bne _080265BA
- ldr r2, _08026634 @ =gPlayerParty
- mov r8, r2
-_080265BA:
- ldrh r1, [r4]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026638
- movs r7, 0
- movs r6, 0
- ldrb r0, [r5]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _080265E0
- movs r6, 0x3
-_080265E0:
- adds r5, r6, 0
- adds r0, r5, 0x3
- cmp r5, r0
- bge _08026678
-_080265E8:
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802661A
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802661A
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802661A:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r6, 0x3
- cmp r5, r0
- blt _080265E8
- b _08026678
- .align 2, 0
-_08026628: .4byte gUnknown_020239F8
-_0802662C: .4byte gUnknown_02024C08
-_08026630: .4byte gEnemyParty
-_08026634: .4byte gPlayerParty
-_08026638:
- movs r7, 0
- movs r5, 0
-_0802663C:
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0802666E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802666E
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
-_0802666E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0802663C
-_08026678:
- cmp r7, 0x1
- bhi _08026688
- ldr r0, _080266BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x41
- ands r0, r1
- cmp r0, 0x1
- bne _080266A0
-_08026688:
- cmp r7, 0x2
- bhi _080266C4
- ldr r0, _080266BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080266C4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080266C4
-_080266A0:
- ldr r3, _080266C0 @ =gUnknown_02024C10
- 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 _08026880
- .align 2, 0
-_080266BC: .4byte gUnknown_020239F8
-_080266C0: .4byte gUnknown_02024C10
-_080266C4:
- bl sub_80264C0
- lsls r0, 24
- cmp r0, 0
- bne _080266D0
- b _08026880
-_080266D0:
- ldr r0, _08026710 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08026774
-_080266DC:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08026714 @ =gUnknown_02024C08
- ldrb r0, [r0]
- bl sub_803FC34
- lsls r0, 24
- lsrs r0, 24
- bl sub_803FBFC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _08026718
- adds r0, r6, 0x3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802671A
- .align 2, 0
-_08026710: .4byte gUnknown_020239F8
-_08026714: .4byte gUnknown_02024C08
-_08026718:
- adds r5, r6, 0
-_0802671A:
- ldr r4, _0802676C @ =gUnknown_02024A6A
- ldr r0, _08026770 @ =gUnknown_02024C08
- ldrb r2, [r0]
- lsls r1, r2, 1
- adds r1, r4
- lsls r0, r5, 16
- lsrs r3, r0, 16
- ldrh r1, [r1]
- cmp r3, r1
- beq _080266DC
- movs r0, 0x2
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r3, r0
- beq _080266DC
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080266DC
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080266DC
- b _08026832
- .align 2, 0
-_0802676C: .4byte gUnknown_02024A6A
-_08026770: .4byte gUnknown_02024C08
-_08026774:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080267E4
- ldr r6, _080267DC @ =gUnknown_02024A6A
-_0802677E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080267E0 @ =gUnknown_02024C08
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r6
- adds r2, r5, 0
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802677E
- movs r0, 0x64
- muls r0, r5
- mov r2, r8
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _0802677E
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0802677E
- b _08026832
- .align 2, 0
-_080267DC: .4byte gUnknown_02024A6A
-_080267E0: .4byte gUnknown_02024C08
-_080267E4:
- ldr r6, _0802686C @ =gUnknown_02024A6A
-_080267E6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08026870 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r5, r0
- beq _080267E6
- movs r0, 0x64
- muls r0, r5
- mov r1, r8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0x1
- beq _080267E6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080267E6
-_08026832:
- ldr r0, _08026874 @ =0x02000000
- ldr r4, _08026870 @ =gUnknown_02024C08
- ldrb r1, [r4]
- ldr r2, _08026878 @ =0x00016068
- adds r1, r2
- adds r1, r0
- strb r5, [r1]
- bl sub_806B528
- lsls r0, 24
- cmp r0, 0
- bne _08026850
- ldrb r0, [r4]
- bl sub_8012258
-_08026850:
- ldrb r0, [r4]
- adds r1, r5, 0
- movs r2, 0
- bl sub_8094B6C
- ldrb r1, [r4]
- movs r0, 0x2
- eors r0, r1
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_8094B6C
- b _08026880
- .align 2, 0
-_0802686C: .4byte gUnknown_02024A6A
-_08026870: .4byte gUnknown_02024C08
-_08026874: .4byte 0x02000000
-_08026878: .4byte 0x00016068
-_0802687C:
- bl sub_80264C0
-_08026880:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8026590
-
- thumb_func_start sub_802688C
-sub_802688C: @ 802688C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- ldr r2, _08026920 @ =gBattleMons
- ldr r3, _08026924 @ =gUnknown_02024C07
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r1, r2, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
- mov r8, r2
- cmp r0, 0
- beq _080268CE
- movs r5, 0x58
- adds r2, r1, 0
-_080268B4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bhi _080268CE
- lsls r1, r6, 1
- ldrb r0, [r3]
- muls r0, r5
- adds r1, r0
- adds r1, r2
- ldrh r0, [r1]
- cmp r0, 0
- bne _080268B4
-_080268CE:
- movs r3, 0
- cmp r3, r6
- bcs _08026950
- ldr r0, _08026928 @ =gBattleMoves
- mov r10, r0
- ldr r5, _08026920 @ =gBattleMons
- mov r12, r5
- ldr r7, _08026924 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r4, 0x58
- adds r5, r0, 0
- muls r5, r4
- movs r0, 0xC
- add r0, r12
- mov r9, r0
-_080268EC:
- lsls r0, r3, 1
- adds r0, r5
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrb r2, [r0, 0x2]
- cmp r2, 0x9
- bne _0802692E
- mov r0, r8
- adds r1, r5, r0
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _0802691A
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _0802692C
-_0802691A:
- movs r2, 0x7
- b _0802692E
- .align 2, 0
-_08026920: .4byte gBattleMons
-_08026924: .4byte gUnknown_02024C07
-_08026928: .4byte gBattleMoves
-_0802692C:
- movs r2, 0
-_0802692E:
- ldrb r0, [r7]
- muls r0, r4
- add r0, r12
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r2, r1
- beq _08026946
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- bne _08026950
-_08026946:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bcc _080268EC
-_08026950:
- cmp r3, r6
- bne _08026974
- ldr r3, _08026970 @ =gUnknown_02024C10
- 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 _08026A18
- .align 2, 0
-_08026970: .4byte gUnknown_02024C10
-_08026974:
- movs r7, 0x3
- ldr r5, _080269CC @ =gBattleMoves
- mov r9, r5
-_0802697A:
- bl Random
- adds r3, r0, 0
- ands r3, r7
- cmp r3, r6
- bcs _0802697A
- ldr r4, _080269D0 @ =gBattleMons
- lsls r1, r3, 1
- ldr r3, _080269D4 @ =gUnknown_02024C07
- ldrb r2, [r3]
- movs r0, 0x58
- adds r5, r2, 0
- muls r5, r0
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrb r2, [r0, 0x2]
- mov r8, r4
- adds r4, r3, 0
- cmp r2, 0x9
- bne _080269DA
- mov r0, r8
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x7
- beq _080269C8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x7
- bne _080269D8
-_080269C8:
- movs r2, 0x7
- b _080269DA
- .align 2, 0
-_080269CC: .4byte gBattleMoves
-_080269D0: .4byte gBattleMons
-_080269D4: .4byte gUnknown_02024C07
-_080269D8:
- movs r2, 0
-_080269DA:
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- add r0, r8
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r5, [r1]
- cmp r2, r5
- beq _0802697A
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r2, r0
- beq _0802697A
- strb r2, [r1]
- ldrb r0, [r4]
- muls r0, r3
- add r0, r8
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08026A28 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08026A2C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08026A18:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026A28: .4byte gUnknown_030041C0
-_08026A2C: .4byte gUnknown_02024C10
- thumb_func_end sub_802688C
-
- thumb_func_start atk91_givemoney
-atk91_givemoney: @ 8026A30
- push {r4,lr}
- ldr r0, _08026A8C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08026AAC
- ldr r4, _08026A90 @ =gUnknown_02024D1A
- ldrh r0, [r4]
- cmp r0, 0
- beq _08026AAC
- ldr r0, _08026A94 @ =gSaveBlock1 + 0x490
- ldrh r2, [r4]
- ldr r1, _08026A98 @ =0x02000000
- ldr r3, _08026A9C @ =0x00016056
- adds r1, r3
- ldrb r1, [r1]
- muls r1, r2
- bl sub_80B79B8
- ldr r1, _08026AA0 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- movs r0, 0x5
- strb r0, [r1, 0x3]
- ldrh r2, [r4]
- strb r2, [r1, 0x4]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- lsrs r0, 8
- strb r0, [r1, 0x5]
- movs r0, 0xFF
- strb r0, [r1, 0x6]
- ldr r4, _08026AA4 @ =gUnknown_02024C10
- ldr r0, [r4]
- adds r0, 0x1
- bl b_movescr_stack_push
- ldr r0, _08026AA8 @ =gUnknown_081D95DB
- str r0, [r4]
- b _08026AB4
- .align 2, 0
-_08026A8C: .4byte gUnknown_020239F8
-_08026A90: .4byte gUnknown_02024D1A
-_08026A94: .4byte gSaveBlock1 + 0x490
-_08026A98: .4byte 0x02000000
-_08026A9C: .4byte 0x00016056
-_08026AA0: .4byte gUnknown_030041C0
-_08026AA4: .4byte gUnknown_02024C10
-_08026AA8: .4byte gUnknown_081D95DB
-_08026AAC:
- ldr r1, _08026ABC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_08026AB4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08026ABC: .4byte gUnknown_02024C10
- thumb_func_end atk91_givemoney
-
- thumb_func_start atk92_setlightscreen
-atk92_setlightscreen: @ 8026AC0
- push {r4-r6,lr}
- ldr r4, _08026AF0 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r6, _08026AF4 @ =gUnknown_02024C7A
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08026B00
- ldr r2, _08026AF8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026AFC @ =gUnknown_02024D1E
- movs r0, 0
- b _08026B60
- .align 2, 0
-_08026AF0: .4byte gUnknown_02024C07
-_08026AF4: .4byte gUnknown_02024C7A
-_08026AF8: .4byte gUnknown_02024C68
-_08026AFC: .4byte gUnknown_02024D1E
-_08026B00:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _08026B50 @ =gUnknown_02024C80
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x1]
- ldr r0, _08026B54 @ =gUnknown_020239F8
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08026B5C
- movs r0, 0x1
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08026B5C
- ldr r1, _08026B58 @ =gUnknown_02024D1E
- movs r0, 0x4
- b _08026B60
- .align 2, 0
-_08026B50: .4byte gUnknown_02024C80
-_08026B54: .4byte gUnknown_020239F8
-_08026B58: .4byte gUnknown_02024D1E
-_08026B5C:
- ldr r1, _08026B70 @ =gUnknown_02024D1E
- movs r0, 0x3
-_08026B60:
- strb r0, [r1, 0x5]
- ldr r1, _08026B74 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08026B70: .4byte gUnknown_02024D1E
-_08026B74: .4byte gUnknown_02024C10
- thumb_func_end atk92_setlightscreen
-
- thumb_func_start sub_8026B78
-sub_8026B78: @ 8026B78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _08026BA8 @ =gBattleMons
- ldr r6, _08026BAC @ =gUnknown_02024C08
- ldrb r2, [r6]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r0, r7
- ldrh r0, [r1, 0x2E]
- cmp r0, 0xAF
- bne _08026BB4
- ldr r1, _08026BB0 @ =gEnigmaBerries
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r4, [r0, 0x7]
- ldrb r6, [r0, 0x1A]
- b _08026BCE
- .align 2, 0
-_08026BA8: .4byte gBattleMons
-_08026BAC: .4byte gUnknown_02024C08
-_08026BB0: .4byte gEnigmaBerries
-_08026BB4:
- ldrh r0, [r1, 0x2E]
- bl ItemId_GetHoldEffect
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7
- ldrh r0, [r0, 0x2E]
- bl ItemId_GetHoldEffectParam
- lsls r0, 24
- lsrs r6, r0, 24
-_08026BCE:
- ldr r1, _08026C4C @ =gUnknown_02024C0B
- ldr r5, _08026C50 @ =gUnknown_02024C08
- ldrb r0, [r5]
- strb r0, [r1]
- cmp r4, 0x27
- bne _08026C0C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcs _08026C0C
- ldrb r0, [r5]
- movs r1, 0x27
- bl sub_81074F8
- ldr r2, _08026C54 @ =gUnknown_02024D68
- ldrb r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08026C0C:
- ldr r0, _08026C58 @ =gBattleMons
- mov r8, r0
- ldr r1, _08026C50 @ =gUnknown_02024C08
- ldrb r2, [r1]
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- mov r3, r8
- adds r5, r0, r3
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r3, [r0]
- mov r10, r8
- cmp r3, 0x5
- bne _08026C6C
- ldr r2, _08026C5C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026C60 @ =byte_2024C06
- strb r3, [r0]
- ldr r1, _08026C64 @ =gUnknown_02024C10
- ldr r0, _08026C68 @ =gUnknown_081D9826
- str r0, [r1]
- ldr r1, _08026C50 @ =gUnknown_02024C08
- ldrb r0, [r1]
- movs r1, 0x5
- bl sub_81074C4
- b _08026E40
- .align 2, 0
-_08026C4C: .4byte gUnknown_02024C0B
-_08026C50: .4byte gUnknown_02024C08
-_08026C54: .4byte gUnknown_02024D68
-_08026C58: .4byte gBattleMons
-_08026C5C: .4byte gUnknown_02024C68
-_08026C60: .4byte byte_2024C06
-_08026C64: .4byte gUnknown_02024C10
-_08026C68: .4byte gUnknown_081D9826
-_08026C6C:
- ldr r1, _08026CE0 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x18
- ands r0, r1
- cmp r0, 0
- bne _08026CF4
- ldr r1, _08026CE4 @ =gBattleMoves
- ldr r0, _08026CE8 @ =gUnknown_02024BE6
- ldrh r0, [r0]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- ldr r7, _08026CEC @ =gUnknown_02024C07
- ldrb r0, [r7]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r1, [r1]
- subs r0, r1
- ldrb r2, [r2, 0x3]
- adds r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, 0x1
- cmp r0, r4
- bge _08026CDC
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r10
- adds r1, 0x2A
- ldr r2, _08026CF0 @ =gUnknown_02024C08
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- movs r4, 0x1
- ldrb r0, [r0]
- cmp r1, r0
- bcs _08026D20
-_08026CDC:
- mov r10, r8
- b _08026DE0
- .align 2, 0
-_08026CE0: .4byte gUnknown_02024C98
-_08026CE4: .4byte gBattleMoves
-_08026CE8: .4byte gUnknown_02024BE6
-_08026CEC: .4byte gUnknown_02024C07
-_08026CF0: .4byte gUnknown_02024C08
-_08026CF4:
- ldr r0, _08026D4C @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r2, _08026D50 @ =gUnknown_02024C07
- ldrb r0, [r1, 0x15]
- movs r4, 0
- ldrb r3, [r2]
- cmp r0, r3
- bne _08026D20
- ldrb r0, [r2]
- muls r0, r6
- add r0, r10
- adds r0, 0x2A
- adds r1, r5, 0
- adds r1, 0x2A
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08026D20
- movs r4, 0x1
-_08026D20:
- cmp r4, 0
- beq _08026DE0
- ldr r0, _08026D54 @ =gUnknown_02024D28
- ldr r1, _08026D58 @ =gUnknown_02024C08
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 30
- cmp r0, 0
- bge _08026D64
- ldr r1, _08026D5C @ =gUnknown_02024BEC
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026D60 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x40
- b _08026DC6
- .align 2, 0
-_08026D4C: .4byte gUnknown_02024CA8
-_08026D50: .4byte gUnknown_02024C07
-_08026D54: .4byte gUnknown_02024D28
-_08026D58: .4byte gUnknown_02024C08
-_08026D5C: .4byte gUnknown_02024BEC
-_08026D60: .4byte gUnknown_02024C68
-_08026D64:
- ldr r0, _08026DA0 @ =gUnknown_02024D68
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- lsrs r0, 7
- cmp r0, 0
- beq _08026DB4
- ldr r1, _08026DA4 @ =gUnknown_02024BEC
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x28]
- subs r0, 0x1
- str r0, [r1]
- ldr r2, _08026DA8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026DAC @ =gUnknown_02024C04
- ldr r2, _08026DB0 @ =gUnknown_02024C08
- ldrb r0, [r2]
- muls r0, r3
- add r0, r10
- ldrh r0, [r0, 0x2E]
- strh r0, [r1]
- b _08026DCA
- .align 2, 0
-_08026DA0: .4byte gUnknown_02024D68
-_08026DA4: .4byte gUnknown_02024BEC
-_08026DA8: .4byte gUnknown_02024C68
-_08026DAC: .4byte gUnknown_02024C04
-_08026DB0: .4byte gUnknown_02024C08
-_08026DB4:
- ldr r1, _08026DD4 @ =gUnknown_02024BEC
- movs r0, 0x58
- muls r0, r2
- add r0, r10
- ldrh r0, [r0, 0x28]
- str r0, [r1]
- ldr r2, _08026DD8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x10
-_08026DC6:
- orrs r0, r1
- strb r0, [r2]
-_08026DCA:
- ldr r1, _08026DDC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08026E40
- .align 2, 0
-_08026DD4: .4byte gUnknown_02024BEC
-_08026DD8: .4byte gUnknown_02024C68
-_08026DDC: .4byte gUnknown_02024C10
-_08026DE0:
- ldr r2, _08026E10 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08026E14 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- add r1, r10
- adds r1, 0x2A
- ldr r3, _08026E18 @ =gUnknown_02024C08
- ldrb r0, [r3]
- muls r0, r2
- add r0, r10
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _08026E20
- ldr r1, _08026E1C @ =gUnknown_02024D1E
- movs r0, 0
- b _08026E24
- .align 2, 0
-_08026E10: .4byte gUnknown_02024C68
-_08026E14: .4byte gUnknown_02024C07
-_08026E18: .4byte gUnknown_02024C08
-_08026E1C: .4byte gUnknown_02024D1E
-_08026E20:
- ldr r1, _08026E50 @ =gUnknown_02024D1E
- movs r0, 0x1
-_08026E24:
- strb r0, [r1, 0x5]
- ldr r3, _08026E54 @ =gUnknown_02024C10
- 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]
-_08026E40:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08026E50: .4byte gUnknown_02024D1E
-_08026E54: .4byte gUnknown_02024C10
- thumb_func_end sub_8026B78
-
- thumb_func_start atk94_gethalfcurrentenemyhp
-atk94_gethalfcurrentenemyhp: @ 8026E58
- push {lr}
- ldr r3, _08026E84 @ =gUnknown_02024BEC
- ldr r2, _08026E88 @ =gBattleMons
- ldr r0, _08026E8C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- lsrs r0, 1
- str r0, [r3]
- cmp r0, 0
- bne _08026E76
- movs r0, 0x1
- str r0, [r3]
-_08026E76:
- ldr r1, _08026E90 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026E84: .4byte gUnknown_02024BEC
-_08026E88: .4byte gBattleMons
-_08026E8C: .4byte gUnknown_02024C08
-_08026E90: .4byte gUnknown_02024C10
- thumb_func_end atk94_gethalfcurrentenemyhp
-
- thumb_func_start sub_8026E94
-sub_8026E94: @ 8026E94
- push {lr}
- ldr r2, _08026EB4 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08026EC0
- ldr r2, _08026EB8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08026EBC @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08026ED2
- .align 2, 0
-_08026EB4: .4byte word_2024DB8
-_08026EB8: .4byte gUnknown_02024C68
-_08026EBC: .4byte gUnknown_02024D1E
-_08026EC0:
- movs r0, 0x8
- strh r0, [r2]
- ldr r1, _08026EE0 @ =gUnknown_02024D1E
- movs r0, 0x3
- strb r0, [r1, 0x5]
- ldr r0, _08026EE4 @ =gUnknown_02024DBC
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08026ED2:
- ldr r1, _08026EE8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08026EE0: .4byte gUnknown_02024D1E
-_08026EE4: .4byte gUnknown_02024DBC
-_08026EE8: .4byte gUnknown_02024C10
- thumb_func_end sub_8026E94
-
- thumb_func_start sub_8026EEC
-sub_8026EEC: @ 8026EEC
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08026F0A
- b _0802701C
-_08026F0A:
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _08026F20
- b _0802701C
-_08026F20:
- ldr r2, _08026F94 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x18
- ands r0, r1
- adds r4, r2, 0
- ldr r5, _08026F98 @ =gUnknown_02024C07
- cmp r0, 0
- beq _08026FAE
- ldr r0, _08026F9C @ =gBattleMons
- ldrb r2, [r5]
- movs r1, 0x58
- muls r1, r2
- adds r3, r1, r0
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _08026FA8
- cmp r0, 0x8
- beq _08026FA8
- cmp r0, 0x4
- beq _08026FA8
- adds r0, r3, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x8
- beq _08026FA8
- ldr r0, _08026FA0 @ =gUnknown_02024C98
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08026FA8
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08026FA8
- ldr r1, _08026FA4 @ =gUnknown_02024BEC
- ldrh r0, [r3, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08026FAE
- movs r0, 0x1
- b _08026FAC
- .align 2, 0
-_08026F94: .4byte word_2024DB8
-_08026F98: .4byte gUnknown_02024C07
-_08026F9C: .4byte gBattleMons
-_08026FA0: .4byte gUnknown_02024C98
-_08026FA4: .4byte gUnknown_02024BEC
-_08026FA8:
- ldr r1, _08027004 @ =gUnknown_02024BEC
- movs r0, 0
-_08026FAC:
- str r0, [r1]
-_08026FAE:
- ldrh r1, [r4]
- movs r4, 0x80
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08027024
- ldr r1, _08027008 @ =gBattleMons
- ldrb r3, [r5]
- movs r0, 0x58
- muls r0, r3
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xF
- beq _08027010
- ldr r0, _0802700C @ =gUnknown_02024C98
- lsls r1, r3, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r1, 0
- ands r0, r4
- cmp r0, 0
- bne _08027010
- movs r0, 0x80
- lsls r0, 11
- ands r1, r0
- cmp r1, 0
- bne _08027010
- ldr r1, _08027004 @ =gUnknown_02024BEC
- ldrh r0, [r2, 0x2C]
- lsrs r0, 4
- str r0, [r1]
- cmp r0, 0
- bne _08027024
- movs r0, 0x1
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027004: .4byte gUnknown_02024BEC
-_08027008: .4byte gBattleMons
-_0802700C: .4byte gUnknown_02024C98
-_08027010:
- ldr r1, _08027018 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
- b _08027024
- .align 2, 0
-_08027018: .4byte gUnknown_02024BEC
-_0802701C:
- ldr r1, _08027050 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
- ldr r5, _08027054 @ =gUnknown_02024C07
-_08027024:
- ldr r0, _08027058 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802705C @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802703E
- ldr r1, _08027050 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
-_0802703E:
- ldr r1, _08027060 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08027050: .4byte gUnknown_02024BEC
-_08027054: .4byte gUnknown_02024C07
-_08027058: .4byte gUnknown_02024C0C
-_0802705C: .4byte gBitTable
-_08027060: .4byte gUnknown_02024C10
- thumb_func_end sub_8026EEC
-
- thumb_func_start sub_8027064
-sub_8027064: @ 8027064
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08027090 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0802709C
- ldr r1, _08027094 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027098 @ =gPlayerParty
- b _080270AC
- .align 2, 0
-_08027090: .4byte gUnknown_02024C07
-_08027094: .4byte gUnknown_02024A6A
-_08027098: .4byte gPlayerParty
-_0802709C:
- ldr r1, _080270D0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270D4 @ =gEnemyParty
-_080270AC:
- adds r5, r1, r0
- ldr r4, _080270D8 @ =gUnknown_02024C08
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080270E0
- ldr r1, _080270D0 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _080270DC @ =gPlayerParty
- b _080270F0
- .align 2, 0
-_080270D0: .4byte gUnknown_02024A6A
-_080270D4: .4byte gEnemyParty
-_080270D8: .4byte gUnknown_02024C08
-_080270DC: .4byte gPlayerParty
-_080270E0:
- ldr r1, _0802714C @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08027150 @ =gEnemyParty
-_080270F0:
- adds r4, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r7, r0, 0
- ldr r5, _08027154 @ =gUnknown_02024C08
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- ldr r1, _08027158 @ =gBattleMons
- adds r0, r1
- adds r0, 0x20
- ldrb r2, [r0]
- cmp r2, 0xC
- bne _08027168
- ldr r1, _0802715C @ =gUnknown_02024C10
- ldr r0, _08027160 @ =gUnknown_081D98C9
- str r0, [r1]
- ldr r0, _08027164 @ =byte_2024C06
- strb r2, [r0]
- ldrb r0, [r5]
- movs r1, 0xC
- bl sub_81074C4
- b _0802721C
- .align 2, 0
-_0802714C: .4byte gUnknown_02024A6A
-_08027150: .4byte gEnemyParty
-_08027154: .4byte gUnknown_02024C08
-_08027158: .4byte gBattleMons
-_0802715C: .4byte gUnknown_02024C10
-_08027160: .4byte gUnknown_081D98C9
-_08027164: .4byte byte_2024C06
-_08027168:
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- adds r4, r0, 0
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080271CA
- ldr r1, _080271E8 @ =gUnknown_02024C98
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080271EC @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- adds r0, r2, 0
- muls r0, r6
- ldr r4, _080271F0 @ =gBattleMons
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r1, 0xF0
- lsls r1, 12
- ands r0, r1
- cmp r0, 0
- bne _080271CA
- mov r0, r10
- mov r1, r9
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080271CA
- mov r0, r8
- adds r1, r7, 0
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080271F8
-_080271CA:
- ldr r3, _080271F4 @ =gUnknown_02024C10
- 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 _0802721C
- .align 2, 0
-_080271E8: .4byte gUnknown_02024C98
-_080271EC: .4byte 0x000400c0
-_080271F0: .4byte gBattleMons
-_080271F4: .4byte gUnknown_02024C10
-_080271F8:
- ldrb r0, [r5]
- adds r2, r0, 0
- muls r2, r6
- adds r2, r4
- ldr r1, _0802722C @ =gBitTable
- ldr r0, _08027230 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- lsls r1, 16
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08027234 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802721C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802722C: .4byte gBitTable
-_08027230: .4byte gUnknown_02024C07
-_08027234: .4byte gUnknown_02024C10
- thumb_func_end sub_8027064
-
- thumb_func_start sub_8027238
-sub_8027238: @ 8027238
- push {r4-r7,lr}
- ldr r0, _08027280 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- bne _08027324
- ldr r5, _08027284 @ =gUnknown_02024C10
- ldr r1, [r5]
- ldrb r0, [r1, 0x1]
- cmp r0, 0x4
- beq _08027290
- bl sub_8015150
- ldr r4, _08027288 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r3, _0802728C @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1A_aaaa_bbbb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- b _08027324
- .align 2, 0
-_08027280: .4byte gUnknown_02024A64
-_08027284: .4byte gUnknown_02024C10
-_08027288: .4byte gUnknown_02024A60
-_0802728C: .4byte gBattleMons
-_08027290:
- ldr r4, _0802732C @ =gUnknown_02024A60
- ldr r5, _08027330 @ =gUnknown_02024C07
- ldrb r0, [r5]
- strb r0, [r4]
- ldr r6, _08027334 @ =gUnknown_02024C0C
- ldrb r1, [r6]
- ldr r7, _08027338 @ =gBitTable
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080272CC
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1A_aaaa_bbbb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080272CC:
- ldr r0, _08027340 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802731C
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- strb r0, [r4]
- ldrb r1, [r6]
- ldrb r2, [r4]
- lsls r0, r2, 2
- adds r0, r7
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802731C
- ldr r3, _0802733C @ =gBattleMons
- movs r0, 0x58
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r1, [r0]
- adds r3, 0x50
- adds r2, r3
- ldr r2, [r2]
- movs r0, 0
- bl dp01_build_cmdbuf_x1A_aaaa_bbbb
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802731C:
- ldr r1, _08027344 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
-_08027324:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802732C: .4byte gUnknown_02024A60
-_08027330: .4byte gUnknown_02024C07
-_08027334: .4byte gUnknown_02024C0C
-_08027338: .4byte gBitTable
-_0802733C: .4byte gBattleMons
-_08027340: .4byte gUnknown_020239F8
-_08027344: .4byte gUnknown_02024C10
- thumb_func_end sub_8027238
-
- thumb_func_start sub_8027348
-sub_8027348: @ 8027348
- push {r4-r6,lr}
- ldr r6, _08027378 @ =gUnknown_02024C80
- ldr r4, _0802737C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- beq _08027388
- ldr r2, _08027380 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08027384 @ =gUnknown_02024D1E
- strb r5, [r0, 0x5]
- b _080273C0
- .align 2, 0
-_08027378: .4byte gUnknown_02024C80
-_0802737C: .4byte gUnknown_02024C07
-_08027380: .4byte gUnknown_02024C68
-_08027384: .4byte gUnknown_02024D1E
-_08027388:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5
- strb r1, [r0, 0x2]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _080273D0 @ =gUnknown_02024C7A
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- movs r3, 0
- orrs r0, r2
- strh r0, [r1]
- ldr r0, _080273D4 @ =gUnknown_02024D1E
- strb r3, [r0, 0x5]
-_080273C0:
- ldr r1, _080273D8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080273D0: .4byte gUnknown_02024C7A
-_080273D4: .4byte gUnknown_02024D1E
-_080273D8: .4byte gUnknown_02024C10
- thumb_func_end sub_8027348
-
- thumb_func_start atk9A_setincreasedcriticalchance
-atk9A_setincreasedcriticalchance: @ 80273DC
- push {lr}
- ldr r1, _0802740C @ =gBattleMons
- ldr r0, _08027410 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r3, 0x80
- lsls r3, 13
- adds r2, r1, 0
- ands r2, r3
- cmp r2, 0
- beq _0802741C
- ldr r2, _08027414 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08027418 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _08027424
- .align 2, 0
-_0802740C: .4byte gBattleMons
-_08027410: .4byte gUnknown_02024C07
-_08027414: .4byte gUnknown_02024C68
-_08027418: .4byte gUnknown_02024D1E
-_0802741C:
- orrs r1, r3
- str r1, [r0]
- ldr r0, _08027430 @ =gUnknown_02024D1E
- strb r2, [r0, 0x5]
-_08027424:
- ldr r1, _08027434 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08027430: .4byte gUnknown_02024D1E
-_08027434: .4byte gUnknown_02024C10
- thumb_func_end atk9A_setincreasedcriticalchance
-
- thumb_func_start atk9B_transformdataexecution
-atk9B_transformdataexecution: @ 8027438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _08027490 @ =gUnknown_02024BE8
- ldr r2, _08027494 @ =0x0000ffff
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08027498 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r7, _0802749C @ =gBattleMons
- ldr r0, _080274A0 @ =gUnknown_02024C08
- mov r12, r0
- ldrb r1, [r0]
- movs r6, 0x58
- adds r0, r1, 0
- muls r0, r6
- adds r5, r7, 0
- adds r5, 0x50
- adds r0, r5
- ldr r0, [r0]
- movs r4, 0x80
- lsls r4, 14
- ands r0, r4
- cmp r0, 0
- bne _0802747E
- ldr r0, _080274A4 @ =gUnknown_02024C98
- lsls r1, 2
- adds r1, r0
- ldr r2, [r1]
- ldr r0, _080274A8 @ =0x000400c0
- ands r2, r0
- cmp r2, 0
- beq _080274B4
-_0802747E:
- ldr r2, _080274AC @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080274B0 @ =gUnknown_02024D1E
- movs r0, 0x1
- b _080275C8
- .align 2, 0
-_08027490: .4byte gUnknown_02024BE8
-_08027494: .4byte 0x0000ffff
-_08027498: .4byte gUnknown_02024C10
-_0802749C: .4byte gBattleMons
-_080274A0: .4byte gUnknown_02024C08
-_080274A4: .4byte gUnknown_02024C98
-_080274A8: .4byte 0x000400c0
-_080274AC: .4byte gUnknown_02024C68
-_080274B0: .4byte gUnknown_02024D1E
-_080274B4:
- ldr r3, _08027588 @ =gUnknown_02024C07
- ldrb r0, [r3]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- ldr r0, [r1]
- orrs r0, r4
- str r0, [r1]
- ldr r4, _0802758C @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- strh r2, [r0, 0x4]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0xB]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r12
- ldrb r1, [r2]
- muls r1, r6
- adds r2, r7, 0
- adds r2, 0x48
- adds r1, r2
- ldr r1, [r1]
- str r1, [r0]
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x18]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x18]
- ldr r1, _08027590 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x6
- strb r0, [r1, 0x1]
- mov r2, r12
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r0, [r3]
- muls r0, r6
- adds r5, r0, r7
- ldrb r0, [r2]
- muls r0, r6
- adds r2, r0, r7
- movs r4, 0
- adds r6, r3, 0
- ldr r0, _08027594 @ =gUnknown_02024A60
- mov r8, r0
-_0802754C:
- adds r0, r5, r4
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x23
- bls _0802754C
- movs r4, 0
- ldr r7, _08027598 @ =gBattleMoves
- ldr r3, _0802759C @ =gUnknown_02024A8C
- adds r5, r3, 0
- adds r5, 0x18
-_08027564:
- lsls r1, r4, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r2, r0
- adds r1, r2
- adds r1, r3
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r1, [r0, 0x4]
- cmp r1, 0x4
- bhi _080275A0
- adds r0, r4, r2
- adds r0, r5
- b _080275A6
- .align 2, 0
-_08027588: .4byte gUnknown_02024C07
-_0802758C: .4byte gUnknown_02024CA8
-_08027590: .4byte gUnknown_030041C0
-_08027594: .4byte gUnknown_02024A60
-_08027598: .4byte gBattleMoves
-_0802759C: .4byte gUnknown_02024A8C
-_080275A0:
- adds r0, r4, r2
- adds r0, r5
- movs r1, 0x5
-_080275A6:
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x3
- ble _08027564
- ldrb r0, [r6]
- mov r1, r8
- strb r0, [r1]
- movs r0, 0
- movs r1, 0x2
- bl dp01_build_cmdbuf_x38_a
- mov r2, r8
- ldrb r0, [r2]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _080275D4 @ =gUnknown_02024D1E
- movs r0, 0
-_080275C8:
- strb r0, [r1, 0x5]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080275D4: .4byte gUnknown_02024D1E
- thumb_func_end atk9B_transformdataexecution
-
- thumb_func_start sub_80275D8
-sub_80275D8: @ 80275D8
- push {r4-r7,lr}
- ldr r7, _08027608 @ =gBattleMons
- ldr r6, _0802760C @ =gUnknown_02024C07
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r3, r0, r7
- ldrh r0, [r3, 0x2C]
- lsrs r1, r0, 2
- adds r2, r1, 0
- cmp r1, 0
- bne _080275F2
- movs r2, 0x1
-_080275F2:
- ldrh r0, [r3, 0x28]
- cmp r0, r2
- bhi _08027618
- ldr r1, _08027610 @ =gUnknown_02024BEC
- movs r0, 0
- str r0, [r1]
- ldr r1, _08027614 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802766C
- .align 2, 0
-_08027608: .4byte gBattleMons
-_0802760C: .4byte gUnknown_02024C07
-_08027610: .4byte gUnknown_02024BEC
-_08027614: .4byte gUnknown_02024D1E
-_08027618:
- ldr r4, _0802767C @ =gUnknown_02024BEC
- str r1, [r4]
- cmp r1, 0
- bne _08027624
- movs r0, 0x1
- str r0, [r4]
-_08027624:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r3, r7, 0
- adds r3, 0x50
- adds r2, r3
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 17
- orrs r0, r1
- str r0, [r2]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r3
- ldr r0, [r1]
- ldr r2, _08027680 @ =0xffff1fff
- ands r0, r2
- str r0, [r1]
- ldr r2, _08027684 @ =gUnknown_02024CA8
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, [r4]
- movs r2, 0
- strb r1, [r0, 0xA]
- ldr r0, _08027688 @ =gUnknown_02024D1E
- strb r2, [r0, 0x5]
- ldr r2, _0802768C @ =gUnknown_02024C6C
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- str r0, [r2]
-_0802766C:
- ldr r1, _08027690 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802767C: .4byte gUnknown_02024BEC
-_08027680: .4byte 0xffff1fff
-_08027684: .4byte gUnknown_02024CA8
-_08027688: .4byte gUnknown_02024D1E
-_0802768C: .4byte gUnknown_02024C6C
-_08027690: .4byte gUnknown_02024C10
- thumb_func_end sub_80275D8
-
- thumb_func_start sub_8027694
-sub_8027694: @ 8027694
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r3, 0
- ldr r0, _080276D4 @ =gUnknown_081FACFE
- ldrh r1, [r0]
- ldr r4, _080276D8 @ =0x0000fffe
- adds r5, r0, 0
- cmp r1, r4
- beq _080276BC
- cmp r1, r2
- beq _080276BC
- adds r1, r5, 0
-_080276AE:
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- beq _080276BC
- cmp r0, r2
- bne _080276AE
-_080276BC:
- lsls r0, r3, 1
- adds r0, r5
- ldrh r1, [r0]
- ldr r0, _080276D8 @ =0x0000fffe
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080276D4: .4byte gUnknown_081FACFE
-_080276D8: .4byte 0x0000fffe
- thumb_func_end sub_8027694
-
- thumb_func_start atk9D_copyattack
-atk9D_copyattack: @ 80276DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08027754 @ =gUnknown_02024BE8
- ldr r1, _08027758 @ =0x0000ffff
- adds r7, r1, 0
- strh r7, [r0]
- ldr r5, _0802775C @ =gUnknown_02024C34
- ldr r6, _08027760 @ =gUnknown_02024C08
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- bl sub_8027694
- lsls r0, 24
- cmp r0, 0
- bne _08027736
- ldr r3, _08027764 @ =gBattleMons
- ldr r2, _08027768 @ =gUnknown_02024C07
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r9, r2
- cmp r1, 0
- bne _08027736
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r0]
- cmp r1, 0
- beq _08027736
- cmp r1, r7
- bne _08027770
-_08027736:
- ldr r3, _0802776C @ =gUnknown_02024C10
- 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 _080278A8
- .align 2, 0
-_08027754: .4byte gUnknown_02024BE8
-_08027758: .4byte 0x0000ffff
-_0802775C: .4byte gUnknown_02024C34
-_08027760: .4byte gUnknown_02024C08
-_08027764: .4byte gBattleMons
-_08027768: .4byte gUnknown_02024C07
-_0802776C: .4byte gUnknown_02024C10
-_08027770:
- movs r2, 0
- mov r3, r12
- adds r3, 0xC
- adds r0, r4, r3
- ldrh r0, [r0]
- ldr r4, _08027800 @ =gUnknown_02024C10
- mov r10, r4
- cmp r0, r1
- beq _080277AA
- mov r8, r3
- adds r7, r5, 0
- adds r5, r6, 0
- mov r4, r9
- movs r3, 0x58
-_0802778C:
- adds r2, 0x1
- cmp r2, 0x3
- bgt _080277AA
- lsls r1, r2, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- add r1, r8
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r7
- ldrh r1, [r1]
- ldrh r0, [r0]
- cmp r1, r0
- bne _0802778C
-_080277AA:
- cmp r2, 0x4
- bne _0802788C
- ldr r5, _08027804 @ =gUnknown_02024BE4
- ldrb r1, [r5]
- lsls r1, 1
- mov r2, r9
- ldrb r0, [r2]
- movs r6, 0x58
- muls r0, r6
- adds r1, r0
- mov r0, r12
- adds r0, 0xC
- adds r1, r0
- ldr r2, _08027808 @ =gUnknown_02024C34
- ldr r3, _0802780C @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r4, _08027810 @ =gBattleMoves
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r4, [r0, 0x4]
- cmp r4, 0x4
- bhi _08027814
- mov r1, r9
- ldrb r0, [r1]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- strb r4, [r0]
- b _08027828
- .align 2, 0
-_08027800: .4byte gUnknown_02024C10
-_08027804: .4byte gUnknown_02024BE4
-_08027808: .4byte gUnknown_02024C34
-_0802780C: .4byte gUnknown_02024C08
-_08027810: .4byte gBattleMoves
-_08027814:
- mov r4, r9
- ldrb r0, [r4]
- muls r0, r6
- ldrb r1, [r5]
- adds r0, r1
- mov r1, r12
- adds r1, 0x24
- adds r0, r1
- movs r1, 0x5
- strb r1, [r0]
-_08027828:
- ldr r1, _08027880 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08027884 @ =gUnknown_02024CA8
- mov r2, r9
- ldrb r0, [r2]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- adds r2, r1
- ldrb r4, [r2, 0x18]
- lsrs r3, r4, 4
- ldr r1, _08027888 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- orrs r1, r3
- lsls r1, 4
- movs r0, 0xF
- ands r0, r4
- orrs r0, r1
- strb r0, [r2, 0x18]
- mov r4, r10
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _080278A8
- .align 2, 0
-_08027880: .4byte gUnknown_030041C0
-_08027884: .4byte gUnknown_02024CA8
-_08027888: .4byte gBitTable
-_0802788C:
- mov r0, r10
- ldr r2, [r0]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r2, r10
- str r1, [r2]
-_080278A8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atk9D_copyattack
-
- thumb_func_start sub_80278B8
-sub_80278B8: @ 80278B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _08027938 @ =gUnknown_02024BE6
- movs r6, 0xB1
- lsls r6, 1
- ldr r5, _0802793C @ =gUnknown_081FACFE
- ldr r0, _08027940 @ =gUnknown_02024C10
- mov r8, r0
-_080278CA:
- bl Random
- ldr r2, _08027944 @ =0x000001ff
- adds r1, r2, 0
- ands r0, r1
- adds r0, 0x1
- strh r0, [r7]
- cmp r0, r6
- bhi _080278CA
- movs r0, 0x3
-_080278DE:
- subs r0, 0x1
- cmp r0, 0
- bge _080278DE
- ldr r4, _08027938 @ =gUnknown_02024BE6
- ldrh r2, [r4]
- ldr r3, _08027948 @ =0x0000ffff
- subs r0, r5, 0x2
-_080278EC:
- adds r0, 0x2
- ldrh r1, [r0]
- cmp r1, r2
- beq _080278F8
- cmp r1, r3
- bne _080278EC
-_080278F8:
- ldr r0, _08027948 @ =0x0000ffff
- cmp r1, r0
- bne _080278CA
- ldr r2, _0802794C @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08027950 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r3, _08027954 @ =gUnknown_081D6BBC
- ldr r2, _08027958 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- mov r1, r8
- str r0, [r1]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802795C @ =gUnknown_02024C08
- strb r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027938: .4byte gUnknown_02024BE6
-_0802793C: .4byte gUnknown_081FACFE
-_08027940: .4byte gUnknown_02024C10
-_08027944: .4byte 0x000001ff
-_08027948: .4byte 0x0000ffff
-_0802794C: .4byte gUnknown_02024C6C
-_08027950: .4byte 0xfffffbff
-_08027954: .4byte gUnknown_081D6BBC
-_08027958: .4byte gBattleMoves
-_0802795C: .4byte gUnknown_02024C08
- thumb_func_end sub_80278B8
-
- thumb_func_start sub_8027960
-sub_8027960: @ 8027960
- ldr r3, _08027980 @ =gUnknown_02024BEC
- ldr r2, _08027984 @ =gBattleMons
- ldr r0, _08027988 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r0, [r0]
- str r0, [r3]
- ldr r1, _0802798C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08027980: .4byte gUnknown_02024BEC
-_08027984: .4byte gBattleMons
-_08027988: .4byte gUnknown_02024C07
-_0802798C: .4byte gUnknown_02024C10
- thumb_func_end sub_8027960
-
- thumb_func_start atkA0_psywavedamageeffect
-atkA0_psywavedamageeffect: @ 8027990
- push {r4,lr}
- movs r4, 0xF
-_08027994:
- bl Random
- adds r3, r4, 0
- ands r3, r0
- cmp r3, 0xA
- bgt _08027994
- lsls r0, r3, 2
- adds r0, r3
- lsls r3, r0, 1
- ldr r4, _080279D4 @ =gUnknown_02024BEC
- ldr r2, _080279D8 @ =gBattleMons
- ldr r0, _080279DC @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- adds r0, r3, 0
- adds r0, 0x32
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- ldr r1, _080279E0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080279D4: .4byte gUnknown_02024BEC
-_080279D8: .4byte gBattleMons
-_080279DC: .4byte gUnknown_02024C07
-_080279E0: .4byte gUnknown_02024C10
- thumb_func_end atkA0_psywavedamageeffect
-
- thumb_func_start atkA1_counterdamagecalculator
-atkA1_counterdamagecalculator: @ 80279E4
- push {r4-r6,lr}
- ldr r4, _08027A54 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027A58 @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xC]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0x4
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027A98
- cmp r6, r2
- beq _08027A98
- ldr r6, _08027A5C @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xC]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A98
- ldr r1, _08027A60 @ =gUnknown_02024BEC
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027A64 @ =gUnknown_02024C80
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027A6C
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027A6C
- ldr r0, _08027A68 @ =gUnknown_02024C08
- strb r1, [r0]
- b _08027A7C
- .align 2, 0
-_08027A54: .4byte gUnknown_02024C07
-_08027A58: .4byte gUnknown_02024D28
-_08027A5C: .4byte gBattleMons
-_08027A60: .4byte gUnknown_02024BEC
-_08027A64: .4byte gUnknown_02024C80
-_08027A68: .4byte gUnknown_02024C08
-_08027A6C:
- ldr r2, _08027A88 @ =gUnknown_02024C08
- ldr r1, _08027A8C @ =gUnknown_02024D28
- ldr r0, _08027A90 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xC]
- strb r0, [r2]
-_08027A7C:
- ldr r1, _08027A94 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027AC8
- .align 2, 0
-_08027A88: .4byte gUnknown_02024C08
-_08027A8C: .4byte gUnknown_02024D28
-_08027A90: .4byte gUnknown_02024C07
-_08027A94: .4byte gUnknown_02024C10
-_08027A98:
- ldr r2, _08027AD0 @ =gUnknown_02024D68
- ldr r0, _08027AD4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027AD8 @ =gUnknown_02024C10
- 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]
-_08027AC8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027AD0: .4byte gUnknown_02024D68
-_08027AD4: .4byte gUnknown_02024C07
-_08027AD8: .4byte gUnknown_02024C10
- thumb_func_end atkA1_counterdamagecalculator
-
- thumb_func_start atkA2_mirrorcoatdamagecalculator
-atkA2_mirrorcoatdamagecalculator: @ 8027ADC
- push {r4-r6,lr}
- ldr r4, _08027B4C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _08027B50 @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r5
- ldrb r0, [r0, 0xD]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r3, [r0]
- cmp r3, 0
- beq _08027B90
- cmp r6, r2
- beq _08027B90
- ldr r6, _08027B54 @ =gBattleMons
- adds r0, r1, r5
- ldrb r0, [r0, 0xD]
- movs r4, 0x58
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B90
- ldr r1, _08027B58 @ =gUnknown_02024BEC
- lsls r0, r3, 1
- str r0, [r1]
- ldr r1, _08027B5C @ =gUnknown_02024C80
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- beq _08027B64
- ldrb r1, [r1, 0x9]
- adds r0, r1, 0
- muls r0, r4
- adds r0, r6
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _08027B64
- ldr r0, _08027B60 @ =gUnknown_02024C08
- strb r1, [r0]
- b _08027B74
- .align 2, 0
-_08027B4C: .4byte gUnknown_02024C07
-_08027B50: .4byte gUnknown_02024D28
-_08027B54: .4byte gBattleMons
-_08027B58: .4byte gUnknown_02024BEC
-_08027B5C: .4byte gUnknown_02024C80
-_08027B60: .4byte gUnknown_02024C08
-_08027B64:
- ldr r2, _08027B80 @ =gUnknown_02024C08
- ldr r1, _08027B84 @ =gUnknown_02024D28
- ldr r0, _08027B88 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0, 0xD]
- strb r0, [r2]
-_08027B74:
- ldr r1, _08027B8C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027BC0
- .align 2, 0
-_08027B80: .4byte gUnknown_02024C08
-_08027B84: .4byte gUnknown_02024D28
-_08027B88: .4byte gUnknown_02024C07
-_08027B8C: .4byte gUnknown_02024C10
-_08027B90:
- ldr r2, _08027BC8 @ =gUnknown_02024D68
- ldr r0, _08027BCC @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08027BD0 @ =gUnknown_02024C10
- 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]
-_08027BC0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08027BC8: .4byte gUnknown_02024D68
-_08027BCC: .4byte gUnknown_02024C07
-_08027BD0: .4byte gUnknown_02024C10
- thumb_func_end atkA2_mirrorcoatdamagecalculator
-
- thumb_func_start atkA3_disablelastusedattack
-atkA3_disablelastusedattack: @ 8027BD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r4, 0
- ldr r2, _08027CD4 @ =gBattleMons
- ldr r3, _08027CD8 @ =gUnknown_02024C08
- ldrb r1, [r3]
- movs r0, 0x58
- muls r0, r1
- adds r7, r2, 0
- adds r7, 0xC
- adds r0, r7
- ldr r5, _08027CDC @ =gUnknown_02024C34
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r0]
- mov r9, r2
- adds r6, r3, 0
- ldr r2, _08027CE0 @ =gUnknown_02024CA8
- mov r8, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027C28
- mov r12, r6
- movs r3, 0x58
-_08027C08:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _08027C28
- lsls r2, r4, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027C08
-_08027C28:
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- ldrh r0, [r0, 0x4]
- cmp r0, 0
- bne _08027CEC
- cmp r4, 0x4
- beq _08027CEC
- movs r5, 0x58
- adds r0, r1, 0
- muls r0, r5
- adds r0, r4, r0
- mov r1, r9
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027CEC
- ldr r1, _08027CE4 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- lsls r2, r4, 1
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- mov r3, r9
- adds r3, 0xC
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r2, r0
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r8
- muls r1, r5
- adds r2, r1
- adds r2, r3
- ldrh r1, [r2]
- strh r1, [r0, 0x4]
- bl Random
- ldrb r2, [r6]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r8
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x2
- ldrb r3, [r1, 0xB]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldrb r0, [r6]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0xB]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xB]
- ldr r1, _08027CE8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027D06
- .align 2, 0
-_08027CD4: .4byte gBattleMons
-_08027CD8: .4byte gUnknown_02024C08
-_08027CDC: .4byte gUnknown_02024C34
-_08027CE0: .4byte gUnknown_02024CA8
-_08027CE4: .4byte gUnknown_030041C0
-_08027CE8: .4byte gUnknown_02024C10
-_08027CEC:
- ldr r3, _08027D14 @ =gUnknown_02024C10
- 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]
-_08027D06:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027D14: .4byte gUnknown_02024C10
- thumb_func_end atkA3_disablelastusedattack
-
- thumb_func_start atkA4_setencore
-atkA4_setencore: @ 8027D18
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- ldr r3, _08027E0C @ =gBattleMons
- ldr r4, _08027E10 @ =gUnknown_02024C08
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r6, r3, 0
- adds r6, 0xC
- adds r0, r6
- ldr r2, _08027E14 @ =gUnknown_02024C34
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r0]
- mov r10, r3
- mov r8, r2
- ldr r2, _08027E18 @ =gUnknown_02024CA8
- mov r9, r2
- ldrh r1, [r1]
- cmp r0, r1
- beq _08027D72
- mov r12, r4
- adds r7, r6, 0
- mov r6, r8
- movs r3, 0x58
-_08027D52:
- adds r5, 0x1
- cmp r5, 0x3
- bgt _08027D72
- lsls r2, r5, 1
- mov r0, r12
- ldrb r1, [r0]
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r2, r7
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08027D52
-_08027D72:
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r2, [r0]
- cmp r2, 0xA5
- beq _08027D86
- cmp r2, 0xE3
- beq _08027D86
- cmp r2, 0x77
- bne _08027D88
-_08027D86:
- movs r5, 0x4
-_08027D88:
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r2, r9
- adds r3, r0, r2
- ldrh r0, [r3, 0x6]
- cmp r0, 0
- bne _08027E20
- cmp r5, 0x4
- beq _08027E20
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r5, r2
- mov r1, r10
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08027E20
- lsls r0, r5, 1
- adds r0, r2
- subs r1, 0x18
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3, 0x6]
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r9
- strb r5, [r0, 0xC]
- bl Random
- ldrb r2, [r4]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- add r1, r9
- movs r2, 0x3
- ands r2, r0
- adds r2, 0x3
- ldrb r3, [r1, 0xE]
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldrb r0, [r4]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- add r1, r9
- ldrb r3, [r1, 0xE]
- lsls r2, r3, 28
- lsrs r2, 24
- movs r0, 0xF
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0xE]
- ldr r1, _08027E1C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027E3A
- .align 2, 0
-_08027E0C: .4byte gBattleMons
-_08027E10: .4byte gUnknown_02024C08
-_08027E14: .4byte gUnknown_02024C34
-_08027E18: .4byte gUnknown_02024CA8
-_08027E1C: .4byte gUnknown_02024C10
-_08027E20:
- ldr r3, _08027E48 @ =gUnknown_02024C10
- 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]
-_08027E3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027E48: .4byte gUnknown_02024C10
- thumb_func_end atkA4_setencore
-
- thumb_func_start sub_8027E4C
-sub_8027E4C: @ 8027E4C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r7, _08027EEC @ =gBattleMons
- ldr r0, _08027EF0 @ =gUnknown_02024C08
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x58
- adds r2, r0, 0
- muls r2, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- bne _08027F18
- ldr r1, _08027EF4 @ =gUnknown_02024C07
- mov r12, r1
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r4, [r0, 0x28]
- adds r0, r2, r7
- ldrh r2, [r0, 0x28]
- adds r4, r2
- asrs r4, 1
- ldr r5, _08027EF8 @ =gUnknown_02024BEC
- mov r9, r5
- subs r2, r4
- str r2, [r5]
- ldr r3, _08027EFC @ =0x02000000
- ldr r1, _08027F00 @ =0x00016014
- adds r0, r3, r1
- strb r2, [r0]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r2
- asrs r0, 8
- ldr r5, _08027F04 @ =0x00016015
- adds r1, r3, r5
- strb r0, [r1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r2
- asrs r0, 16
- adds r5, 0x1
- adds r1, r3, r5
- strb r0, [r1]
- lsrs r2, 24
- ldr r0, _08027F08 @ =0x00016017
- adds r3, r0
- strb r2, [r3]
- mov r1, r12
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x28]
- subs r0, r4
- mov r5, r9
- str r0, [r5]
- ldr r2, _08027F0C @ =gUnknown_02024D68
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r1, _08027F10 @ =0x0000ffff
- str r1, [r0]
- ldr r1, _08027F14 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08027F32
- .align 2, 0
-_08027EEC: .4byte gBattleMons
-_08027EF0: .4byte gUnknown_02024C08
-_08027EF4: .4byte gUnknown_02024C07
-_08027EF8: .4byte gUnknown_02024BEC
-_08027EFC: .4byte 0x02000000
-_08027F00: .4byte 0x00016014
-_08027F04: .4byte 0x00016015
-_08027F08: .4byte 0x00016017
-_08027F0C: .4byte gUnknown_02024D68
-_08027F10: .4byte 0x0000ffff
-_08027F14: .4byte gUnknown_02024C10
-_08027F18:
- ldr r3, _08027F40 @ =gUnknown_02024C10
- 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]
-_08027F32:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08027F40: .4byte gUnknown_02024C10
- thumb_func_end sub_8027E4C
-
- thumb_func_start sub_8027F44
-sub_8027F44: @ 8027F44
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08027FA8 @ =gUnknown_02024C3C
- ldr r4, _08027FAC @ =gUnknown_02024C07
- ldrb r0, [r4]
- lsls r0, 1
- adds r2, r0, r1
- ldrh r1, [r2]
- cmp r1, 0
- beq _08027F8C
- ldr r0, _08027FB0 @ =0x0000ffff
- cmp r1, r0
- beq _08027F8C
- ldrh r0, [r2]
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _08028024
- ldr r2, _08027FB4 @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _08028024
-_08027F8C:
- ldr r3, _08027FB8 @ =gUnknown_02024C10
- 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 _08028110
- .align 2, 0
-_08027FA8: .4byte gUnknown_02024C3C
-_08027FAC: .4byte gUnknown_02024C07
-_08027FB0: .4byte 0x0000ffff
-_08027FB4: .4byte gUnknown_02024D28
-_08027FB8: .4byte gUnknown_02024C10
-_08027FBC:
- mov r0, r12
- strb r5, [r0]
- mov r1, r10
- ldrb r0, [r1]
- muls r0, r2
- adds r0, r7
- adds r0, 0x22
- strb r5, [r0]
- ldr r1, _08027FE0 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r5, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _08027FE4 @ =gUnknown_02024C10
- b _08028012
- .align 2, 0
-_08027FE0: .4byte gUnknown_030041C0
-_08027FE4: .4byte gUnknown_02024C10
-_08027FE8:
- mov r0, r8
- adds r0, 0x1
- adds r0, r3
- ldrb r2, [r0]
- strb r2, [r4]
- mov r4, r10
- ldrb r0, [r4]
- muls r0, r6
- ldr r7, _0802801C @ =gBattleMons
- adds r0, r7
- adds r0, 0x22
- strb r2, [r0]
- ldr r1, _08028020 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- mov r1, r12
-_08028012:
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028110
- .align 2, 0
-_0802801C: .4byte gBattleMons
-_08028020: .4byte gUnknown_030041C0
-_08028024:
- movs r4, 0
- mov r8, r4
- movs r7, 0x7F
- mov r9, r7
-_0802802C:
- bl Random
- mov r4, r9
- ands r4, r0
- cmp r4, 0x70
- bhi _0802802C
- lsls r0, r4, 1
- adds r4, r0, r4
- ldr r6, _08028120 @ =gTypeEffectiveness
- adds r3, r4, r6
- ldr r1, _08028124 @ =gUnknown_02024C44
- ldr r2, _08028128 @ =gUnknown_02024C07
- ldrb r5, [r2]
- lsls r0, r5, 1
- adds r0, r1
- ldrb r1, [r3]
- mov r10, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08028088
- adds r0, r4, 0x2
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08028088
- ldr r7, _0802812C @ =gBattleMons
- movs r2, 0x58
- adds r0, r5, 0
- muls r0, r2
- adds r3, r0, r7
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- adds r0, r4, 0x1
- adds r0, r6
- ldrb r5, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r5, 0
- cmp r0, r1
- beq _08028088
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- bne _08027FBC
-_08028088:
- movs r7, 0x1
- add r8, r7
- ldr r0, _08028130 @ =0x000003e7
- cmp r8, r0
- ble _0802802C
- movs r0, 0
- mov r8, r0
- ldr r1, _08028134 @ =gUnknown_02024C10
- mov r12, r1
- ldr r3, _08028120 @ =gTypeEffectiveness
- adds r0, r4, 0x1
- adds r0, r3
- mov r9, r0
- adds r5, r3, 0
-_080280A4:
- ldrb r1, [r5]
- cmp r1, 0xFF
- bgt _080280AE
- cmp r1, 0xFE
- bge _080280E8
-_080280AE:
- mov r4, r10
- ldrb r2, [r4]
- lsls r0, r2, 1
- ldr r7, _08028124 @ =gUnknown_02024C44
- adds r0, r7
- ldrh r0, [r0]
- cmp r1, r0
- bne _080280E8
- ldrb r0, [r5, 0x2]
- cmp r0, 0x5
- bhi _080280E8
- movs r6, 0x58
- adds r0, r2, 0
- muls r0, r6
- ldr r1, _0802812C @ =gBattleMons
- adds r2, r0, r1
- adds r4, r2, 0
- adds r4, 0x21
- ldrb r0, [r4]
- mov r7, r9
- ldrb r1, [r7]
- cmp r0, r1
- beq _080280E8
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _080280E8
- b _08027FE8
-_080280E8:
- adds r5, 0x3
- movs r0, 0x3
- add r8, r0
- ldr r0, _08028138 @ =0x0000014f
- cmp r8, r0
- bls _080280A4
- mov r1, r12
- ldr r2, [r1]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- mov r4, r12
- str r1, [r4]
-_08028110:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028120: .4byte gTypeEffectiveness
-_08028124: .4byte gUnknown_02024C44
-_08028128: .4byte gUnknown_02024C07
-_0802812C: .4byte gBattleMons
-_08028130: .4byte 0x000003e7
-_08028134: .4byte gUnknown_02024C10
-_08028138: .4byte 0x0000014f
- thumb_func_end sub_8027F44
-
- thumb_func_start atkA7_setalwayshitflag
-atkA7_setalwayshitflag: @ 802813C
- push {r4,lr}
- ldr r4, _08028180 @ =gUnknown_02024C98
- ldr r3, _08028184 @ =gUnknown_02024C08
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x19
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- str r0, [r1]
- ldr r2, _08028188 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0802818C @ =gUnknown_02024C07
- ldrb r1, [r1]
- strb r1, [r0, 0x15]
- ldr r1, _08028190 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028180: .4byte gUnknown_02024C98
-_08028184: .4byte gUnknown_02024C08
-_08028188: .4byte gUnknown_02024CA8
-_0802818C: .4byte gUnknown_02024C07
-_08028190: .4byte gUnknown_02024C10
- thumb_func_end atkA7_setalwayshitflag
-
- thumb_func_start atkA8_copymovepermanently
-atkA8_copymovepermanently: @ 8028194
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- ldr r0, _080282F4 @ =gUnknown_02024BE8
- ldr r1, _080282F8 @ =0x0000ffff
- adds r5, r1, 0
- strh r5, [r0]
- ldr r3, _080282FC @ =gBattleMons
- ldr r2, _08028300 @ =gUnknown_02024C07
- ldrb r1, [r2]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r0, r3, 0
- adds r0, 0x50
- adds r0, r4, r0
- ldr r1, [r0]
- movs r0, 0x80
- lsls r0, 14
- ands r1, r0
- mov r12, r3
- mov r10, r2
- cmp r1, 0
- beq _080281CC
- b _08028320
-_080281CC:
- ldr r0, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gUnknown_02024C08
- ldrb r1, [r2]
- lsls r1, 1
- adds r1, r0
- ldrh r1, [r1]
- mov r9, r0
- mov r8, r2
- cmp r1, 0xA5
- bne _080281E2
- b _08028320
-_080281E2:
- cmp r1, 0
- bne _080281E8
- b _08028320
-_080281E8:
- cmp r1, r5
- bne _080281EE
- b _08028320
-_080281EE:
- cmp r1, 0xA6
- bne _080281F4
- b _08028320
-_080281F4:
- movs r7, 0
- mov r5, r9
- mov r0, r12
- adds r0, 0xC
- adds r1, r4, r0
- mov r3, r8
-_08028200:
- ldrh r2, [r1]
- cmp r2, 0xA6
- beq _08028212
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802821A
-_08028212:
- adds r1, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028200
-_0802821A:
- cmp r7, 0x4
- beq _08028220
- b _08028320
-_08028220:
- ldr r4, _0802830C @ =gUnknown_02024BE4
- ldrb r1, [r4]
- lsls r1, 1
- mov r2, r10
- ldrb r0, [r2]
- movs r3, 0x58
- muls r0, r3
- adds r1, r0
- mov r6, r12
- adds r6, 0xC
- adds r1, r6
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- mov r1, r10
- ldrb r0, [r1]
- adds r2, r0, 0
- muls r2, r3
- ldrb r4, [r4]
- adds r2, r4
- mov r5, r12
- adds r5, 0x24
- adds r2, r5
- ldr r4, _08028310 @ =gBattleMoves
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x4]
- strb r0, [r2]
- ldr r1, _08028314 @ =gUnknown_02024A60
- mov r2, r10
- ldrb r0, [r2]
- strb r0, [r1]
- movs r7, 0
- ldrb r0, [r2]
- muls r0, r3
- adds r4, r0, r5
- adds r3, r0, 0
- add r2, sp, 0x4
- add r5, sp, 0xC
-_08028282:
- adds r0, r3, r6
- ldrh r0, [r0]
- strh r0, [r2]
- adds r1, r5, r7
- ldrb r0, [r4]
- strb r0, [r1]
- adds r4, 0x1
- adds r3, 0x2
- adds r2, 0x2
- adds r7, 0x1
- cmp r7, 0x3
- ble _08028282
- add r2, sp, 0x4
- mov r0, r10
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r12
- adds r0, 0x3B
- ldrb r0, [r0]
- strb r0, [r2, 0xC]
- str r2, [sp]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x10
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r0, _08028314 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08028318 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r3, _08028304 @ =gUnknown_02024C2C
- ldr r2, _08028308 @ =gUnknown_02024C08
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802831C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802833A
- .align 2, 0
-_080282F4: .4byte gUnknown_02024BE8
-_080282F8: .4byte 0x0000ffff
-_080282FC: .4byte gBattleMons
-_08028300: .4byte gUnknown_02024C07
-_08028304: .4byte gUnknown_02024C2C
-_08028308: .4byte gUnknown_02024C08
-_0802830C: .4byte gUnknown_02024BE4
-_08028310: .4byte gBattleMoves
-_08028314: .4byte gUnknown_02024A60
-_08028318: .4byte gUnknown_030041C0
-_0802831C: .4byte gUnknown_02024C10
-_08028320:
- ldr r3, _0802834C @ =gUnknown_02024C10
- 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]
-_0802833A:
- 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
-_0802834C: .4byte gUnknown_02024C10
- thumb_func_end atkA8_copymovepermanently
-
- thumb_func_start sub_8028350
-sub_8028350: @ 8028350
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08028380 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1]
- cmp r0, 0x91
- beq _0802837A
- cmp r0, 0x27
- beq _0802837A
- cmp r0, 0x4B
- beq _0802837A
- cmp r0, 0x97
- beq _0802837A
- cmp r0, 0x9B
- beq _0802837A
- cmp r0, 0x1A
- bne _08028384
-_0802837A:
- movs r0, 0x1
- b _08028386
- .align 2, 0
-_08028380: .4byte gBattleMoves
-_08028384:
- movs r0, 0
-_08028386:
- pop {r1}
- bx r1
- thumb_func_end sub_8028350
-
- thumb_func_start sub_802838C
-sub_802838C: @ 802838C
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _080283AA
- cmp r1, 0xD6
- beq _080283AA
- movs r0, 0x89
- lsls r0, 1
- cmp r1, r0
- beq _080283AA
- cmp r1, 0x77
- beq _080283AA
- cmp r1, 0x76
- bne _080283AE
-_080283AA:
- movs r0, 0x1
- b _080283B0
-_080283AE:
- movs r0, 0
-_080283B0:
- pop {r1}
- bx r1
- thumb_func_end sub_802838C
-
- thumb_func_start move_weather_interaction
-move_weather_interaction: @ 80283B4
- push {lr}
- lsls r1, 16
- lsrs r2, r1, 16
- ldr r1, _0802840C @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x97
- bne _080283D8
- ldr r0, _08028410 @ =word_2024DB8
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _08028418
-_080283D8:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x91
- beq _080283FA
- cmp r0, 0x27
- beq _080283FA
- cmp r0, 0x4B
- beq _080283FA
- cmp r0, 0x97
- beq _080283FA
- cmp r0, 0x9B
- beq _080283FA
- cmp r0, 0x1A
- bne _08028418
-_080283FA:
- ldr r0, _08028414 @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 20
- ands r0, r1
- cmp r0, 0
- beq _08028418
- movs r0, 0x1
- b _0802841A
- .align 2, 0
-_0802840C: .4byte gBattleMoves
-_08028410: .4byte word_2024DB8
-_08028414: .4byte gUnknown_02024C6C
-_08028418:
- movs r0, 0x2
-_0802841A:
- pop {r1}
- bx r1
- thumb_func_end move_weather_interaction
-
- thumb_func_start sub_8028420
-sub_8028420: @ 8028420
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r6, 0
- movs r5, 0
- ldr r0, _080284B0 @ =gUnknown_02024C07
- mov r9, r0
- movs r1, 0x58
- mov r8, r1
- ldr r7, _080284B4 @ =gUnknown_02024A8C
- movs r0, 0x84
- lsls r0, 1
- mov r10, r0
-_0802843E:
- lsls r4, r5, 1
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r0, [r0]
- bl sub_802838C
- lsls r0, 24
- cmp r0, 0
- bne _0802847E
- mov r1, r9
- ldrb r0, [r1]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r4, r0
- adds r0, r7
- ldrh r1, [r0]
- cmp r1, r10
- beq _0802847E
- cmp r1, 0xFD
- beq _0802847E
- adds r0, r1, 0
- bl sub_8028350
- lsls r0, 24
- cmp r0, 0
- beq _0802848C
-_0802847E:
- ldr r1, _080284B8 @ =gBitTable
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- orrs r6, r0
- lsls r0, r6, 24
- lsrs r6, r0, 24
-_0802848C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _0802843E
- ldr r0, _080284B0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- adds r1, r6, 0
- movs r2, 0xFD
- bl sub_8015A98
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xF
- bne _080284C0
- ldr r1, _080284BC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08028524
- .align 2, 0
-_080284B0: .4byte gUnknown_02024C07
-_080284B4: .4byte gUnknown_02024A8C
-_080284B8: .4byte gBitTable
-_080284BC: .4byte gUnknown_02024C10
-_080284C0:
- movs r7, 0x3
- ldr r4, _08028534 @ =gBitTable
-_080284C4:
- bl Random
- adds r5, r7, 0
- ands r5, r0
- lsls r0, r5, 2
- adds r0, r4
- ldr r0, [r0]
- ands r0, r6
- cmp r0, 0
- bne _080284C4
- ldr r4, _08028538 @ =gUnknown_02024BEA
- ldr r2, _0802853C @ =gBattleMons
- lsls r1, r5, 1
- ldr r0, _08028540 @ =gUnknown_02024C07
- ldrb r3, [r0]
- movs r0, 0x58
- muls r0, r3
- adds r1, r0
- adds r2, 0xC
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r4]
- ldr r0, _08028544 @ =gUnknown_02024BE4
- strb r5, [r0]
- ldr r2, _08028548 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802854C @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08028550 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r3, _08028554 @ =gUnknown_02024C10
- 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]
-_08028524:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028534: .4byte gBitTable
-_08028538: .4byte gUnknown_02024BEA
-_0802853C: .4byte gBattleMons
-_08028540: .4byte gUnknown_02024C07
-_08028544: .4byte gUnknown_02024BE4
-_08028548: .4byte gUnknown_02024C6C
-_0802854C: .4byte 0xfffffbff
-_08028550: .4byte gUnknown_02024C08
-_08028554: .4byte gUnknown_02024C10
- thumb_func_end sub_8028420
-
- thumb_func_start sub_8028558
-sub_8028558: @ 8028558
- ldr r1, _0802857C @ =gBattleMons
- ldr r0, _08028580 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 18
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028584 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802857C: .4byte gBattleMons
-_08028580: .4byte gUnknown_02024C07
-_08028584: .4byte gUnknown_02024C10
- thumb_func_end sub_8028558
-
- thumb_func_start b_feature_update_destiny_bond
-b_feature_update_destiny_bond: @ 8028588
- push {r4,r5,lr}
- ldr r0, _080285D8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080285DC @ =gUnknown_02024C08
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _080285E0 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _080285D2
- cmp r5, r3
- beq _080285D2
- ldr r2, _080285E4 @ =gUnknown_02024C6C
- ldr r1, [r2]
- movs r0, 0x80
- lsls r0, 17
- ands r0, r1
- cmp r0, 0
- bne _080285D2
- movs r0, 0x40
- orrs r1, r0
- str r1, [r2]
-_080285D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080285D8: .4byte gUnknown_02024C07
-_080285DC: .4byte gUnknown_02024C08
-_080285E0: .4byte gBattleMons
-_080285E4: .4byte gUnknown_02024C6C
- thumb_func_end b_feature_update_destiny_bond
-
- thumb_func_start atkAB_802A458
-atkAB_802A458: @ 80285E8
- push {lr}
- bl b_feature_update_destiny_bond
- ldr r1, _080285FC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_080285FC: .4byte gUnknown_02024C10
- thumb_func_end atkAB_802A458
-
- thumb_func_start atkAC_remaininghptopower
-atkAC_remaininghptopower: @ 8028600
- push {lr}
- ldr r2, _08028654 @ =gBattleMons
- ldr r0, _08028658 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- movs r2, 0x28
- ldrsh r0, [r1, r2]
- movs r2, 0x2C
- ldrsh r1, [r1, r2]
- movs r2, 0x30
- bl sub_80461D4
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0
- ldr r0, _0802865C @ =gUnknown_081FAD26
- ldrb r2, [r0]
- cmp r1, r2
- ble _0802863A
- adds r2, r0, 0
-_0802862C:
- adds r3, 0x2
- cmp r3, 0xB
- bgt _0802863A
- adds r0, r3, r2
- ldrb r0, [r0]
- cmp r1, r0
- bgt _0802862C
-_0802863A:
- ldr r2, _08028660 @ =gUnknown_02024DEC
- ldr r1, _0802865C @ =gUnknown_081FAD26
- adds r0, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldr r1, _08028664 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08028654: .4byte gBattleMons
-_08028658: .4byte gUnknown_02024C07
-_0802865C: .4byte gUnknown_081FAD26
-_08028660: .4byte gUnknown_02024DEC
-_08028664: .4byte gUnknown_02024C10
- thumb_func_end atkAC_remaininghptopower
-
- thumb_func_start sub_8028668
-sub_8028668: @ 8028668
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r4, _080287F8 @ =gUnknown_02024C34
- ldr r1, _080287FC @ =gUnknown_02024C08
- ldrb r2, [r1]
- lsls r0, r2, 1
- adds r0, r4
- ldrh r3, [r0]
- mov r8, r1
- cmp r3, 0
- bne _08028688
- b _08028828
-_08028688:
- ldr r0, _08028800 @ =0x0000ffff
- cmp r3, r0
- bne _08028690
- b _08028828
-_08028690:
- ldr r1, _08028804 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028808 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _080286A2
- b _08028828
-_080286A2:
- movs r7, 0
- ldr r0, _0802880C @ =gBattleMons
- movs r1, 0x58
- muls r1, r2
- adds r2, r0, 0
- adds r2, 0xC
- adds r1, r2
- ldrh r1, [r1]
- cmp r3, r1
- beq _080286DA
- adds r6, r4, 0
- mov r5, r8
- adds r4, r2, 0
- movs r3, 0x58
-_080286BE:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _080286DA
- ldrb r0, [r5]
- lsls r2, r0, 1
- adds r2, r6
- lsls r1, r7, 1
- muls r0, r3
- adds r1, r0
- adds r1, r4
- ldrh r0, [r2]
- ldrh r1, [r1]
- cmp r0, r1
- bne _080286BE
-_080286DA:
- cmp r7, 0x4
- bne _080286E0
- b _08028828
-_080286E0:
- mov r4, r8
- ldrb r0, [r4]
- movs r1, 0x58
- mov r9, r1
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- ldr r1, _0802880C @ =gBattleMons
- adds r1, 0x24
- mov r10, r1
- add r0, r10
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _08028700
- b _08028828
-_08028700:
- bl Random
- movs r1, 0x3
- ands r1, r0
- adds r6, r1, 0x2
- ldrb r0, [r4]
- mov r3, r9
- muls r3, r0
- adds r0, r3, 0
- adds r0, r7, r0
- add r0, r10
- ldrb r0, [r0]
- cmp r0, r6
- bge _0802871E
- adds r6, r0, 0
-_0802871E:
- ldr r1, _08028810 @ =gUnknown_030041C0
- movs r5, 0xFD
- strb r5, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldr r2, _080287F8 @ =gUnknown_02024C34
- mov r3, r8
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r4, _08028814 @ =gUnknown_03004290
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- strb r5, [r4]
- movs r0, 0x1
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- strb r6, [r4, 0x4]
- subs r0, 0x2
- strb r0, [r4, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- mov r1, r9
- muls r1, r0
- adds r1, r7, r1
- add r1, r10
- ldrb r0, [r1]
- subs r0, r6
- strb r0, [r1]
- ldr r4, _08028818 @ =gUnknown_02024A60
- mov r3, r8
- ldrb r0, [r3]
- strb r0, [r4]
- ldr r1, _0802881C @ =gUnknown_02024CA8
- ldrb r3, [r4]
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x18]
- lsrs r1, 4
- ldr r2, _08028820 @ =gBitTable
- lsls r0, r7, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _080287D2
- mov r2, r9
- muls r2, r3
- ldr r0, _0802880C @ =gBattleMons
- adds r0, 0x50
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- bne _080287D2
- adds r1, r7, 0
- adds r1, 0x9
- lsls r1, 24
- lsrs r1, 24
- mov r3, r10
- adds r0, r2, r3
- adds r0, r7
- str r0, [sp]
- movs r0, 0
- movs r2, 0
- movs r3, 0x1
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
-_080287D2:
- ldr r1, _08028824 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802880C @ =gBattleMons
- ldr r0, _080287FC @ =gUnknown_02024C08
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r0, r7, r0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08028842
- adds r0, r2, 0
- bl b_cancel_multi_turn_move_maybe
- b _08028842
- .align 2, 0
-_080287F8: .4byte gUnknown_02024C34
-_080287FC: .4byte gUnknown_02024C08
-_08028800: .4byte 0x0000ffff
-_08028804: .4byte gUnknown_02024C98
-_08028808: .4byte 0x000400c0
-_0802880C: .4byte gBattleMons
-_08028810: .4byte gUnknown_030041C0
-_08028814: .4byte gUnknown_03004290
-_08028818: .4byte gUnknown_02024A60
-_0802881C: .4byte gUnknown_02024CA8
-_08028820: .4byte gBitTable
-_08028824: .4byte gUnknown_02024C10
-_08028828:
- ldr r3, _08028854 @ =gUnknown_02024C10
- 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]
-_08028842:
- 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
-_08028854: .4byte gUnknown_02024C10
- thumb_func_end sub_8028668
-
- thumb_func_start sub_8028858
-sub_8028858: @ 8028858
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r4, 0
- str r4, [sp, 0x4]
- movs r7, 0
- ldr r0, _080288AC @ =gUnknown_02024BE6
- ldrh r0, [r0]
- cmp r0, 0xD7
- beq _08028872
- b _08028A26
-_08028872:
- ldr r5, _080288B0 @ =gUnknown_02024D1E
- strb r7, [r5, 0x5]
- ldr r6, _080288B4 @ =gUnknown_02024C07
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _080288B8 @ =gEnemyParty
- mov r9, r1
- cmp r0, 0
- bne _0802888C
- ldr r2, _080288BC @ =gPlayerParty
- mov r9, r2
-_0802888C:
- ldr r4, _080288C0 @ =gBattleMons
- ldrb r3, [r6]
- movs r0, 0x58
- adds r2, r3, 0
- muls r2, r0
- adds r0, r2, r4
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _080288C4
- adds r0, r4, 0
- adds r0, 0x4C
- adds r0, r2, r0
- str r7, [r0]
- b _080288D4
- .align 2, 0
-_080288AC: .4byte gUnknown_02024BE6
-_080288B0: .4byte gUnknown_02024D1E
-_080288B4: .4byte gUnknown_02024C07
-_080288B8: .4byte gEnemyParty
-_080288BC: .4byte gPlayerParty
-_080288C0: .4byte gBattleMons
-_080288C4:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl sub_81074C4
- ldrb r0, [r5, 0x5]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x5]
-_080288D4:
- ldr r4, _08028934 @ =gUnknown_02024A60
- ldr r0, _08028938 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r6, 0x2
- eors r0, r6
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _0802893C @ =0x02000000
- ldr r2, _08028940 @ =0x00016003
- adds r1, r2
- strb r0, [r1]
- strb r0, [r4]
- ldr r0, _08028944 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028964
- ldr r0, _08028948 @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r1, _0802894C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028964
- ldr r5, _08028950 @ =gBattleMons
- movs r0, 0x58
- adds r4, r3, 0
- muls r4, r0
- adds r0, r4, r5
- adds r1, r0, 0
- adds r1, 0x20
- ldrb r0, [r1]
- cmp r0, 0x2B
- beq _08028954
- adds r0, r5, 0
- adds r0, 0x4C
- adds r0, r4, r0
- str r2, [r0]
- b _08028964
- .align 2, 0
-_08028934: .4byte gUnknown_02024A60
-_08028938: .4byte gUnknown_02024C07
-_0802893C: .4byte 0x02000000
-_08028940: .4byte 0x00016003
-_08028944: .4byte gUnknown_020239F8
-_08028948: .4byte gUnknown_02024C0C
-_0802894C: .4byte gBitTable
-_08028950: .4byte gBattleMons
-_08028954:
- ldrb r1, [r1]
- adds r0, r3, 0
- bl sub_81074C4
- ldr r1, _080289AC @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x5]
- orrs r0, r6
- strb r0, [r1, 0x5]
-_08028964:
- movs r6, 0
- ldr r0, _080289B0 @ =gBattleMons
- mov r8, r0
-_0802896A:
- movs r0, 0x64
- adds r4, r6, 0
- muls r4, r0
- add r4, r9
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r5, 0
- beq _08028A1E
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _08028A1E
- ldr r2, _080289B4 @ =gUnknown_02024A6A
- ldr r0, _080289B8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _080289BC
- movs r0, 0x58
- muls r0, r1
- b _080289EC
- .align 2, 0
-_080289AC: .4byte gUnknown_02024D1E
-_080289B0: .4byte gBattleMons
-_080289B4: .4byte gUnknown_02024A6A
-_080289B8: .4byte gUnknown_02024C07
-_080289BC:
- ldr r0, _080289F4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A04
- ldr r0, _080289F8 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r6
- bne _08028A04
- ldr r0, _080289FC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08028A00 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08028A04
- movs r0, 0x58
- muls r0, r3
-_080289EC:
- add r0, r8
- adds r0, 0x20
- ldrb r0, [r0]
- b _08028A10
- .align 2, 0
-_080289F4: .4byte gUnknown_020239F8
-_080289F8: .4byte gUnknown_02024A60
-_080289FC: .4byte gUnknown_02024C0C
-_08028A00: .4byte gBitTable
-_08028A04:
- adds r0, r5, 0
- adds r1, r4, 0
- bl GetAbilityBySpecies
- lsls r0, 24
- lsrs r0, 24
-_08028A10:
- cmp r0, 0x2B
- beq _08028A1E
- movs r0, 0x1
- lsls r0, r6
- orrs r7, r0
- lsls r0, r7, 24
- lsrs r7, r0, 24
-_08028A1E:
- adds r6, 0x1
- cmp r6, 0x5
- ble _0802896A
- b _08028A7E
-_08028A26:
- ldr r1, _08028AB4 @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r1, 0x5]
- movs r7, 0x3F
- ldr r2, _08028AB8 @ =gBattleMons
- ldr r1, _08028ABC @ =gUnknown_02024C07
- ldrb r0, [r1]
- movs r6, 0x58
- muls r0, r6
- adds r5, r2, 0
- adds r5, 0x4C
- adds r0, r5
- str r4, [r0]
- ldrb r0, [r1]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r3, _08028AC0 @ =gUnknown_02024A60
- strb r0, [r3]
- ldr r0, _08028AC4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08028A7E
- ldr r0, _08028AC8 @ =gUnknown_02024C0C
- ldrb r2, [r0]
- ldr r1, _08028ACC @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- bne _08028A7E
- adds r0, r3, 0
- muls r0, r6
- adds r0, r5
- str r2, [r0]
-_08028A7E:
- ldr r4, _08028AC0 @ =gUnknown_02024A60
- ldr r0, _08028ABC @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- add r1, sp, 0x4
- str r1, [sp]
- movs r0, 0
- movs r1, 0x28
- adds r2, r7, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08028AD0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028AB4: .4byte gUnknown_02024D1E
-_08028AB8: .4byte gBattleMons
-_08028ABC: .4byte gUnknown_02024C07
-_08028AC0: .4byte gUnknown_02024A60
-_08028AC4: .4byte gUnknown_020239F8
-_08028AC8: .4byte gUnknown_02024C0C
-_08028ACC: .4byte gBitTable
-_08028AD0: .4byte gUnknown_02024C10
- thumb_func_end sub_8028858
-
- thumb_func_start sub_8028AD4
-sub_8028AD4: @ 8028AD4
- push {r4-r7,lr}
- ldr r7, _08028B24 @ =gBattleMons
- ldr r0, _08028B28 @ =gUnknown_02024C08
- ldrb r3, [r0]
- movs r6, 0x58
- adds r1, r3, 0
- muls r1, r6
- adds r0, r7, 0
- adds r0, 0x50
- adds r4, r1, r0
- ldr r2, [r4]
- movs r5, 0x80
- lsls r5, 21
- adds r0, r2, 0
- ands r0, r5
- cmp r0, 0
- bne _08028B06
- ldr r1, _08028B2C @ =gUnknown_02024C98
- lsls r0, r3, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _08028B30 @ =0x000400c0
- ands r0, r1
- cmp r0, 0
- beq _08028B38
-_08028B06:
- ldr r3, _08028B34 @ =gUnknown_02024C10
- 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 _08028B5C
- .align 2, 0
-_08028B24: .4byte gBattleMons
-_08028B28: .4byte gUnknown_02024C08
-_08028B2C: .4byte gUnknown_02024C98
-_08028B30: .4byte 0x000400c0
-_08028B34: .4byte gUnknown_02024C10
-_08028B38:
- orrs r2, r5
- str r2, [r4]
- ldr r1, _08028B64 @ =gUnknown_02024BEC
- ldr r0, _08028B68 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08028B54
- movs r0, 0x1
- str r0, [r1]
-_08028B54:
- ldr r1, _08028B6C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028B5C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028B64: .4byte gUnknown_02024BEC
-_08028B68: .4byte gUnknown_02024C07
-_08028B6C: .4byte gUnknown_02024C10
- thumb_func_end sub_8028AD4
-
- thumb_func_start sub_8028B70
-sub_8028B70: @ 8028B70
- push {r4,lr}
- ldr r4, _08028BC4 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08028BC8 @ =gUnknown_02024C80
- lsls r2, r0, 1
- adds r0, r2, r0
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x6]
- cmp r0, 0x3
- bne _08028BD4
- ldr r2, _08028BCC @ =gUnknown_02024D68
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r3, _08028BD0 @ =gUnknown_02024C10
- 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 _08028BEE
- .align 2, 0
-_08028BC4: .4byte gUnknown_02024C07
-_08028BC8: .4byte gUnknown_02024C80
-_08028BCC: .4byte gUnknown_02024D68
-_08028BD0: .4byte gUnknown_02024C10
-_08028BD4:
- ldr r1, _08028BF4 @ =gUnknown_02024C7A
- adds r1, r2, r1
- ldrh r2, [r1]
- movs r0, 0x10
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r3, 0x6]
- adds r0, 0x1
- strb r0, [r3, 0x6]
- ldr r1, _08028BF8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028BEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028BF4: .4byte gUnknown_02024C7A
-_08028BF8: .4byte gUnknown_02024C10
- thumb_func_end sub_8028B70
-
- thumb_func_start sub_8028BFC
-sub_8028BFC: @ 8028BFC
- ldr r1, _08028C20 @ =gBattleMons
- ldr r0, _08028C24 @ =gUnknown_02024C08
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 22
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08028C28 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08028C20: .4byte gBattleMons
-_08028C24: .4byte gUnknown_02024C08
-_08028C28: .4byte gUnknown_02024C10
- thumb_func_end sub_8028BFC
-
- thumb_func_start atkB2_setperishsong
-atkB2_setperishsong: @ 8028C2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r3, 0
- ldr r0, _08028C70 @ =gUnknown_02024A68
- adds r7, r0, 0
- ldr r0, _08028C74 @ =gUnknown_02024C07
- mov r8, r0
- ldrb r1, [r7]
- cmp r6, r1
- bge _08028C98
- movs r5, 0x20
- ldr r0, _08028C78 @ =gBattleMons
- mov r12, r0
- ldr r0, _08028C7C @ =gUnknown_02024CA8
- adds r4, r0, 0
- adds r4, 0xF
- ldr r2, _08028C80 @ =gUnknown_02024C98
-_08028C54:
- ldr r1, [r2]
- adds r0, r1, 0
- ands r0, r5
- cmp r0, 0
- bne _08028C6C
- movs r0, 0x58
- muls r0, r3
- add r0, r12
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x2B
- bne _08028C84
-_08028C6C:
- adds r6, 0x1
- b _08028C8C
- .align 2, 0
-_08028C70: .4byte gUnknown_02024A68
-_08028C74: .4byte gUnknown_02024C07
-_08028C78: .4byte gBattleMons
-_08028C7C: .4byte gUnknown_02024CA8
-_08028C80: .4byte gUnknown_02024C98
-_08028C84:
- orrs r1, r5
- str r1, [r2]
- movs r0, 0x33
- strb r0, [r4]
-_08028C8C:
- adds r4, 0x1C
- adds r2, 0x4
- adds r3, 0x1
- ldrb r0, [r7]
- cmp r3, r0
- blt _08028C54
-_08028C98:
- mov r1, r8
- ldrb r0, [r1]
- bl sub_80153D0
- ldr r0, _08028CC4 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bne _08028CCC
- ldr r3, _08028CC8 @ =gUnknown_02024C10
- 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 _08028CD4
- .align 2, 0
-_08028CC4: .4byte gUnknown_02024A68
-_08028CC8: .4byte gUnknown_02024C10
-_08028CCC:
- ldr r1, _08028CE0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08028CD4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028CE0: .4byte gUnknown_02024C10
- thumb_func_end atkB2_setperishsong
-
- thumb_func_start atkB3_rolloutdamagecalculation
-atkB3_rolloutdamagecalculation: @ 8028CE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08028D08 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028D18
- ldr r0, _08028D0C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl b_cancel_multi_turn_move_maybe
- ldr r1, _08028D10 @ =gUnknown_02024C10
- ldr r0, _08028D14 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028E30
- .align 2, 0
-_08028D08: .4byte gUnknown_02024C68
-_08028D0C: .4byte gUnknown_02024C07
-_08028D10: .4byte gUnknown_02024C10
-_08028D14: .4byte BattleScript_1D6F74
-_08028D18:
- ldr r2, _08028E3C @ =gBattleMons
- ldr r1, _08028E40 @ =gUnknown_02024C07
- ldrb r3, [r1]
- movs r5, 0x58
- adds r0, r3, 0
- muls r0, r5
- adds r4, r2, 0
- adds r4, 0x50
- adds r0, r4
- ldr r0, [r0]
- movs r7, 0x80
- lsls r7, 5
- ands r0, r7
- adds r6, r1, 0
- mov r9, r2
- ldr r1, _08028E44 @ =gUnknown_02024CA8
- mov r12, r1
- ldr r2, _08028E48 @ =gUnknown_02024BE6
- mov r8, r2
- cmp r0, 0
- bne _08028D8A
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x5
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x11]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x50
- orrs r1, r2
- strb r1, [r0, 0x11]
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- orrs r0, r7
- str r0, [r1]
- ldr r1, _08028E4C @ =gUnknown_02024C54
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r1
- mov r2, r8
- ldrh r1, [r2]
- strh r1, [r0]
-_08028D8A:
- ldrb r0, [r6]
- lsls r2, r0, 3
- subs r2, r0
- lsls r2, 2
- add r2, r12
- ldrb r3, [r2, 0x11]
- lsls r1, r3, 28
- lsrs r1, 28
- subs r1, 0x1
- movs r0, 0xF
- ands r1, r0
- movs r0, 0x10
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x11]
- cmp r1, 0
- bne _08028DBE
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r5
- adds r1, r4
- ldr r0, [r1]
- ldr r2, _08028E50 @ =0xffffefff
- ands r0, r2
- str r0, [r1]
-_08028DBE:
- ldr r3, _08028E54 @ =gUnknown_02024DEC
- ldr r2, _08028E58 @ =gBattleMoves
- mov r0, r8
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r6]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- mov r1, r12
- adds r4, r0, r1
- ldrb r0, [r4, 0x11]
- lsls r0, 28
- lsrs r0, 28
- movs r1, 0x5
- subs r1, r0
- ldr r7, _08028E5C @ =gUnknown_02024C10
- adds r5, r3, 0
- cmp r2, r1
- bge _08028E0C
- adds r1, r5, 0
- adds r3, r4, 0
- movs r4, 0x5
-_08028DF8:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x11]
- lsls r0, 28
- lsrs r0, 28
- subs r0, r4, r0
- cmp r2, r0
- blt _08028DF8
-_08028E0C:
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- mov r1, r9
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 23
- ands r0, r1
- cmp r0, 0
- beq _08028E2A
- ldrh r0, [r5]
- lsls r0, 1
- strh r0, [r5]
-_08028E2A:
- ldr r0, [r7]
- adds r0, 0x1
- str r0, [r7]
-_08028E30:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08028E3C: .4byte gBattleMons
-_08028E40: .4byte gUnknown_02024C07
-_08028E44: .4byte gUnknown_02024CA8
-_08028E48: .4byte gUnknown_02024BE6
-_08028E4C: .4byte gUnknown_02024C54
-_08028E50: .4byte 0xffffefff
-_08028E54: .4byte gUnknown_02024DEC
-_08028E58: .4byte gBattleMoves
-_08028E5C: .4byte gUnknown_02024C10
- thumb_func_end atkB3_rolloutdamagecalculation
-
- thumb_func_start atkB4_jumpifconfusedandattackmaxed
-atkB4_jumpifconfusedandattackmaxed: @ 8028E60
- push {r4,r5,lr}
- ldr r5, _08028EB0 @ =gBattleMons
- ldr r0, _08028EB4 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- adds r3, r1, 0
- muls r3, r0
- adds r0, r5, 0
- adds r0, 0x50
- adds r0, r3, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- ldr r4, _08028EB8 @ =gUnknown_02024C10
- cmp r0, 0
- beq _08028EBC
- ldr r2, [r4]
- ldrb r0, [r2, 0x1]
- adds r0, r3
- adds r1, r5, 0
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0xC
- bne _08028EBC
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08028EC2
- .align 2, 0
-_08028EB0: .4byte gBattleMons
-_08028EB4: .4byte gUnknown_02024C08
-_08028EB8: .4byte gUnknown_02024C10
-_08028EBC:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_08028EC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end atkB4_jumpifconfusedandattackmaxed
-
- thumb_func_start sub_8028EC8
-sub_8028EC8: @ 8028EC8
- push {r4,r5,lr}
- ldr r0, _08028EF0 @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _08028F04
- ldr r2, _08028EF4 @ =gUnknown_02024CA8
- ldr r0, _08028EF8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strb r1, [r0, 0x10]
- ldr r1, _08028EFC @ =gUnknown_02024C10
- ldr r0, _08028F00 @ =BattleScript_1D6F74
- str r0, [r1]
- b _08028F5C
- .align 2, 0
-_08028EF0: .4byte gUnknown_02024C68
-_08028EF4: .4byte gUnknown_02024CA8
-_08028EF8: .4byte gUnknown_02024C07
-_08028EFC: .4byte gUnknown_02024C10
-_08028F00: .4byte BattleScript_1D6F74
-_08028F04:
- ldr r5, _08028F64 @ =gUnknown_02024CA8
- ldr r4, _08028F68 @ =gUnknown_02024C07
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x10]
- cmp r0, 0x5
- beq _08028F1C
- adds r0, 0x1
- strb r0, [r1, 0x10]
-_08028F1C:
- ldr r3, _08028F6C @ =gUnknown_02024DEC
- ldr r2, _08028F70 @ =gBattleMoves
- ldr r0, _08028F74 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- strh r0, [r3]
- movs r2, 0x1
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r4, _08028F78 @ =gUnknown_02024C10
- ldrb r1, [r0, 0x10]
- cmp r2, r1
- bge _08028F56
- adds r1, r3, 0
- adds r3, r0, 0
-_08028F48:
- ldrh r0, [r1]
- lsls r0, 1
- strh r0, [r1]
- adds r2, 0x1
- ldrb r0, [r3, 0x10]
- cmp r2, r0
- blt _08028F48
-_08028F56:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
-_08028F5C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08028F64: .4byte gUnknown_02024CA8
-_08028F68: .4byte gUnknown_02024C07
-_08028F6C: .4byte gUnknown_02024DEC
-_08028F70: .4byte gBattleMoves
-_08028F74: .4byte gUnknown_02024BE6
-_08028F78: .4byte gUnknown_02024C10
- thumb_func_end sub_8028EC8
-
- thumb_func_start atkB6_happinesstodamagecalculation
-atkB6_happinesstodamagecalculation: @ 8028F7C
- push {r4,lr}
- ldr r2, _08028FA8 @ =gBattleMoves
- ldr r0, _08028FAC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x79
- bne _08028FBC
- ldr r4, _08028FB0 @ =gUnknown_02024DEC
- ldr r2, _08028FB4 @ =gBattleMons
- ldr r0, _08028FB8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r1, [r0]
- b _08028FD2
- .align 2, 0
-_08028FA8: .4byte gBattleMoves
-_08028FAC: .4byte gUnknown_02024BE6
-_08028FB0: .4byte gUnknown_02024DEC
-_08028FB4: .4byte gBattleMons
-_08028FB8: .4byte gUnknown_02024C07
-_08028FBC:
- ldr r4, _08028FF0 @ =gUnknown_02024DEC
- ldr r2, _08028FF4 @ =gBattleMons
- ldr r0, _08028FF8 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- movs r1, 0xFF
- subs r1, r0
-_08028FD2:
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- movs r1, 0x19
- bl __divsi3
- strh r0, [r4]
- ldr r1, _08028FFC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08028FF0: .4byte gUnknown_02024DEC
-_08028FF4: .4byte gBattleMons
-_08028FF8: .4byte gUnknown_02024C07
-_08028FFC: .4byte gUnknown_02024C10
- thumb_func_end atkB6_happinesstodamagecalculation
-
- thumb_func_start atkB7_presentdamagecalculation
-atkB7_presentdamagecalculation: @ 8029000
- push {r4,lr}
- bl Random
- movs r4, 0xFF
- ands r4, r0
- cmp r4, 0x65
- bgt _0802901C
- ldr r1, _08029018 @ =gUnknown_02024DEC
- movs r0, 0x28
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029018: .4byte gUnknown_02024DEC
-_0802901C:
- cmp r4, 0xB1
- bgt _0802902C
- ldr r1, _08029028 @ =gUnknown_02024DEC
- movs r0, 0x50
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029028: .4byte gUnknown_02024DEC
-_0802902C:
- cmp r4, 0xCB
- bgt _0802903C
- ldr r1, _08029038 @ =gUnknown_02024DEC
- movs r0, 0x78
- strh r0, [r1]
- b _0802905E
- .align 2, 0
-_08029038: .4byte gUnknown_02024DEC
-_0802903C:
- ldr r3, _08029068 @ =gUnknown_02024BEC
- ldr r2, _0802906C @ =gBattleMons
- ldr r0, _08029070 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r3]
- cmp r0, 0
- bne _08029058
- movs r0, 0x1
- str r0, [r3]
-_08029058:
- ldr r0, [r3]
- negs r0, r0
- str r0, [r3]
-_0802905E:
- cmp r4, 0xCB
- bgt _0802907C
- ldr r1, _08029074 @ =gUnknown_02024C10
- ldr r0, _08029078 @ =BattleScript_1D6F44
- b _080290AC
- .align 2, 0
-_08029068: .4byte gUnknown_02024BEC
-_0802906C: .4byte gBattleMons
-_08029070: .4byte gUnknown_02024C08
-_08029074: .4byte gUnknown_02024C10
-_08029078: .4byte BattleScript_1D6F44
-_0802907C:
- ldr r2, _08029098 @ =gBattleMons
- ldr r0, _0802909C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x2C]
- ldrh r0, [r0, 0x28]
- cmp r1, r0
- bne _080290A8
- ldr r1, _080290A0 @ =gUnknown_02024C10
- ldr r0, _080290A4 @ =BattleScript_1D83B5
- b _080290AC
- .align 2, 0
-_08029098: .4byte gBattleMons
-_0802909C: .4byte gUnknown_02024C08
-_080290A0: .4byte gUnknown_02024C10
-_080290A4: .4byte BattleScript_1D83B5
-_080290A8:
- ldr r1, _080290B4 @ =gUnknown_02024C10
- ldr r0, _080290B8 @ =BattleScript_1D839B
-_080290AC:
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080290B4: .4byte gUnknown_02024C10
-_080290B8: .4byte BattleScript_1D839B
- thumb_func_end atkB7_presentdamagecalculation
-
- thumb_func_start sub_80290BC
-sub_80290BC: @ 80290BC
- push {r4-r6,lr}
- ldr r4, _080290F0 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r6, _080290F4 @ =gUnknown_02024C7A
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08029100
- ldr r2, _080290F8 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _080290FC @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- b _08029132
- .align 2, 0
-_080290F0: .4byte gUnknown_02024C07
-_080290F4: .4byte gUnknown_02024C7A
-_080290F8: .4byte gUnknown_02024C68
-_080290FC: .4byte gUnknown_02024D1E
-_08029100:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r5, 0
- ands r1, r0
- lsls r1, 1
- adds r1, r6
- ldrh r0, [r1]
- movs r2, 0x20
- orrs r0, r2
- strh r0, [r1]
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _08029140 @ =gUnknown_02024C80
- adds r1, r5, 0
- ands r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strb r1, [r0, 0x7]
- ldr r0, _08029144 @ =gUnknown_02024D1E
- strb r1, [r0, 0x5]
-_08029132:
- ldr r1, _08029148 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08029140: .4byte gUnknown_02024C80
-_08029144: .4byte gUnknown_02024D1E
-_08029148: .4byte gUnknown_02024C10
- thumb_func_end sub_80290BC
-
- thumb_func_start atkB9_magnitudedamagecalculation
-atkB9_magnitudedamagecalculation: @ 802914C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bgt _08029178
- ldr r1, _08029174 @ =gUnknown_02024DEC
- movs r0, 0xA
- strh r0, [r1]
- movs r3, 0x4
- b _080291E4
- .align 2, 0
-_08029174: .4byte gUnknown_02024DEC
-_08029178:
- cmp r3, 0xE
- bgt _0802918C
- ldr r1, _08029188 @ =gUnknown_02024DEC
- movs r0, 0x1E
- strh r0, [r1]
- movs r3, 0x5
- b _080291E4
- .align 2, 0
-_08029188: .4byte gUnknown_02024DEC
-_0802918C:
- cmp r3, 0x22
- bgt _080291A0
- ldr r1, _0802919C @ =gUnknown_02024DEC
- movs r0, 0x32
- strh r0, [r1]
- movs r3, 0x6
- b _080291E4
- .align 2, 0
-_0802919C: .4byte gUnknown_02024DEC
-_080291A0:
- cmp r3, 0x40
- bgt _080291B4
- ldr r1, _080291B0 @ =gUnknown_02024DEC
- movs r0, 0x46
- strh r0, [r1]
- movs r3, 0x7
- b _080291E4
- .align 2, 0
-_080291B0: .4byte gUnknown_02024DEC
-_080291B4:
- cmp r3, 0x54
- bgt _080291C8
- ldr r1, _080291C4 @ =gUnknown_02024DEC
- movs r0, 0x5A
- strh r0, [r1]
- movs r3, 0x8
- b _080291E4
- .align 2, 0
-_080291C4: .4byte gUnknown_02024DEC
-_080291C8:
- cmp r3, 0x5E
- bgt _080291DC
- ldr r1, _080291D8 @ =gUnknown_02024DEC
- movs r0, 0x6E
- strh r0, [r1]
- movs r3, 0x9
- b _080291E4
- .align 2, 0
-_080291D8: .4byte gUnknown_02024DEC
-_080291DC:
- ldr r1, _08029250 @ =gUnknown_02024DEC
- movs r0, 0x96
- strh r0, [r1]
- movs r3, 0xA
-_080291E4:
- ldr r1, _08029254 @ =gUnknown_030041C0
- movs r2, 0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- strb r0, [r1, 0x2]
- movs r0, 0x2
- strb r0, [r1, 0x3]
- strb r3, [r1, 0x4]
- movs r0, 0xFF
- strb r0, [r1, 0x5]
- ldr r1, _08029258 @ =gUnknown_02024C08
- strb r2, [r1]
- ldr r0, _0802925C @ =gUnknown_02024A68
- ldrb r3, [r0]
- adds r6, r1, 0
- ldr r0, _08029260 @ =gUnknown_02024C10
- mov r8, r0
- cmp r2, r3
- bcs _0802923C
- adds r4, r6, 0
- ldr r0, _08029264 @ =gUnknown_02024C07
- ldrb r5, [r0]
- ldr r1, _08029268 @ =gBitTable
- mov r12, r1
- ldr r7, _0802926C @ =gUnknown_02024C0C
-_0802921A:
- ldrb r2, [r4]
- cmp r2, r5
- beq _08029230
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _0802923C
-_08029230:
- adds r0, r2, 0x1
- strb r0, [r4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r3
- bcc _0802921A
-_0802923C:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029250: .4byte gUnknown_02024DEC
-_08029254: .4byte gUnknown_030041C0
-_08029258: .4byte gUnknown_02024C08
-_0802925C: .4byte gUnknown_02024A68
-_08029260: .4byte gUnknown_02024C10
-_08029264: .4byte gUnknown_02024C07
-_08029268: .4byte gBitTable
-_0802926C: .4byte gUnknown_02024C0C
- thumb_func_end atkB9_magnitudedamagecalculation
-
- thumb_func_start sub_8029270
-sub_8029270: @ 8029270
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08029294 @ =gUnknown_02024C0E
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080292A0
- ldr r0, _08029298 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0802929C
- movs r0, 0x1
- b _080292BA
- .align 2, 0
-_08029294: .4byte gUnknown_02024C0E
-_08029298: .4byte gUnknown_02024C07
-_0802929C:
- movs r0, 0
- b _080292BA
-_080292A0:
- ldr r0, _080292B4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080292B8
- movs r0, 0x3
- b _080292BA
- .align 2, 0
-_080292B4: .4byte gUnknown_02024C07
-_080292B8:
- movs r0, 0x2
-_080292BA:
- bl battle_get_side_with_given_state
- ldr r1, _0802937C @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r0, _08029380 @ =gUnknown_02024C18
- ldr r1, _0802937C @ =gUnknown_02024C08
- mov r9, r1
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080293BC
- ldr r5, _08029384 @ =gUnknown_02024C07
- ldr r0, _08029388 @ =0x02000000
- ldr r2, _0802938C @ =0x00016010
- adds r1, r3, r2
- adds r1, r0
- ldrb r2, [r5]
- mov r10, r0
- ldrb r1, [r1]
- cmp r2, r1
- bne _080293BC
- ldr r4, _08029390 @ =gBattleMons
- movs r2, 0x58
- adds r0, r3, 0
- muls r0, r2
- adds r1, r4, 0
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x27
- ands r0, r1
- cmp r0, 0
- bne _080293BC
- ldrb r0, [r5]
- muls r0, r2
- adds r0, r4
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- beq _080293BC
- ldr r0, _08029394 @ =gUnknown_02024CA8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- bne _080293BC
- ldr r0, _08029398 @ =gUnknown_02024C60
- lsls r1, r3, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0xE4
- bne _080293BC
- movs r1, 0
- ldr r0, _0802939C @ =gUnknown_02024A68
- ldr r7, _080293A0 @ =gUnknown_02024BE6
- mov r8, r7
- ldr r2, _080293A4 @ =gUnknown_02024C6C
- mov r12, r2
- ldrb r7, [r0]
- cmp r1, r7
- bge _0802935A
- ldr r6, _080293A8 @ =gUnknown_02024A7A
- mov r5, r9
- ldr r4, _080293AC @ =gUnknown_02024A76
- movs r3, 0xB
- adds r2, r0, 0
-_08029344:
- adds r0, r1, r6
- ldrb r0, [r0]
- ldrb r7, [r5]
- cmp r0, r7
- bne _08029352
- adds r0, r1, r4
- strb r3, [r0]
-_08029352:
- adds r1, 0x1
- ldrb r0, [r2]
- cmp r1, r0
- blt _08029344
-_0802935A:
- movs r0, 0xE4
- mov r1, r8
- strh r0, [r1]
- ldr r2, _080293B0 @ =gUnknown_02024C10
- ldr r0, [r2]
- adds r0, 0x5
- str r0, [r2]
- ldr r1, _080293B4 @ =0x00016002
- add r1, r10
- movs r0, 0x1
- strb r0, [r1]
- mov r7, r12
- ldr r0, [r7]
- ldr r1, _080293B8 @ =0xfffffbff
- ands r0, r1
- str r0, [r7]
- b _080293D6
- .align 2, 0
-_0802937C: .4byte gUnknown_02024C08
-_08029380: .4byte gUnknown_02024C18
-_08029384: .4byte gUnknown_02024C07
-_08029388: .4byte 0x02000000
-_0802938C: .4byte 0x00016010
-_08029390: .4byte gBattleMons
-_08029394: .4byte gUnknown_02024CA8
-_08029398: .4byte gUnknown_02024C60
-_0802939C: .4byte gUnknown_02024A68
-_080293A0: .4byte gUnknown_02024BE6
-_080293A4: .4byte gUnknown_02024C6C
-_080293A8: .4byte gUnknown_02024A7A
-_080293AC: .4byte gUnknown_02024A76
-_080293B0: .4byte gUnknown_02024C10
-_080293B4: .4byte 0x00016002
-_080293B8: .4byte 0xfffffbff
-_080293BC:
- ldr r3, _080293E4 @ =gUnknown_02024C10
- 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]
-_080293D6:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080293E4: .4byte gUnknown_02024C10
- thumb_func_end sub_8029270
-
- thumb_func_start sub_80293E8
-sub_80293E8: @ 80293E8
- push {lr}
- ldr r2, _08029408 @ =word_2024DB8
- ldrh r1, [r2]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029414
- ldr r2, _0802940C @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029410 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029426
- .align 2, 0
-_08029408: .4byte word_2024DB8
-_0802940C: .4byte gUnknown_02024C68
-_08029410: .4byte gUnknown_02024D1E
-_08029414:
- movs r0, 0x20
- strh r0, [r2]
- ldr r1, _08029434 @ =gUnknown_02024D1E
- movs r0, 0x4
- strb r0, [r1, 0x5]
- ldr r0, _08029438 @ =gUnknown_02024DBC
- adds r0, 0x28
- movs r1, 0x5
- strb r1, [r0]
-_08029426:
- ldr r1, _0802943C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029434: .4byte gUnknown_02024D1E
-_08029438: .4byte gUnknown_02024DBC
-_0802943C: .4byte gUnknown_02024C10
- thumb_func_end sub_80293E8
-
- thumb_func_start atkBC_maxattackhalvehp
-atkBC_maxattackhalvehp: @ 8029440
- push {r4,r5,lr}
- ldr r5, _0802948C @ =gBattleMons
- ldr r4, _08029490 @ =gUnknown_02024C07
- ldrb r0, [r4]
- movs r3, 0x58
- muls r0, r3
- adds r2, r0, r5
- ldrh r0, [r2, 0x2C]
- lsrs r1, r0, 1
- cmp r1, 0
- bne _08029458
- movs r1, 0x1
-_08029458:
- movs r0, 0x19
- ldrsb r0, [r2, r0]
- cmp r0, 0xB
- bgt _0802949C
- ldrh r0, [r2, 0x28]
- cmp r0, r1
- bls _0802949C
- movs r0, 0xC
- strb r0, [r2, 0x19]
- ldr r1, _08029494 @ =gUnknown_02024BEC
- ldrb r0, [r4]
- muls r0, r3
- adds r0, r5
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _08029480
- movs r0, 0x1
- str r0, [r1]
-_08029480:
- ldr r1, _08029498 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _080294B6
- .align 2, 0
-_0802948C: .4byte gBattleMons
-_08029490: .4byte gUnknown_02024C07
-_08029494: .4byte gUnknown_02024BEC
-_08029498: .4byte gUnknown_02024C10
-_0802949C:
- ldr r3, _080294BC @ =gUnknown_02024C10
- 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]
-_080294B6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080294BC: .4byte gUnknown_02024C10
- thumb_func_end atkBC_maxattackhalvehp
-
- thumb_func_start atkBD_copyfoestats
-atkBD_copyfoestats: @ 80294C0
- push {r4-r7,lr}
- movs r2, 0
- ldr r7, _080294F8 @ =gUnknown_02024C10
- ldr r6, _080294FC @ =gUnknown_02024C07
- movs r4, 0x58
- ldr r3, _08029500 @ =gUnknown_02024A98
- ldr r5, _08029504 @ =gUnknown_02024C08
-_080294CE:
- ldrb r0, [r6]
- adds r1, r0, 0
- muls r1, r4
- adds r1, r2, r1
- adds r1, r3
- ldrb r0, [r5]
- muls r0, r4
- adds r0, r2, r0
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0x7
- ble _080294CE
- ldr r0, [r7]
- adds r0, 0x5
- str r0, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080294F8: .4byte gUnknown_02024C10
-_080294FC: .4byte gUnknown_02024C07
-_08029500: .4byte gUnknown_02024A98
-_08029504: .4byte gUnknown_02024C08
- thumb_func_end atkBD_copyfoestats
-
- thumb_func_start atkBE_breakfree
-atkBE_breakfree: @ 8029508
- push {r4,r5,lr}
- ldr r1, _08029570 @ =gBattleMons
- ldr r5, _08029574 @ =gUnknown_02024C07
- ldrb r2, [r5]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r3, r0, r1
- ldr r1, [r3]
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08029594
- ldr r0, _08029578 @ =0xffff1fff
- ands r1, r0
- str r1, [r3]
- ldr r1, _0802957C @ =gUnknown_02024C08
- ldr r2, _08029580 @ =0x02000000
- ldrb r0, [r5]
- ldr r3, _08029584 @ =0x00016020
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _08029588 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- ldrb r0, [r5]
- lsls r0, 1
- subs r3, 0x1C
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- ldrb r0, [r5]
- lsls r0, 1
- adds r3, 0x1
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- bl b_movescr_stack_push_cursor
- ldr r1, _0802958C @ =gUnknown_02024C10
- ldr r0, _08029590 @ =gUnknown_081D92C2
- b _0802963E
- .align 2, 0
-_08029570: .4byte gBattleMons
-_08029574: .4byte gUnknown_02024C07
-_08029578: .4byte 0xffff1fff
-_0802957C: .4byte gUnknown_02024C08
-_08029580: .4byte 0x02000000
-_08029584: .4byte 0x00016020
-_08029588: .4byte gUnknown_030041C0
-_0802958C: .4byte gUnknown_02024C10
-_08029590: .4byte gUnknown_081D92C2
-_08029594:
- ldr r4, _080295C8 @ =gUnknown_02024C98
- lsls r0, r2, 2
- adds r3, r0, r4
- ldr r1, [r3]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080295D4
- movs r0, 0x5
- negs r0, r0
- ands r1, r0
- str r1, [r3]
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r4
- ldr r0, [r1]
- movs r2, 0x4
- negs r2, r2
- ands r0, r2
- str r0, [r1]
- bl b_movescr_stack_push_cursor
- ldr r1, _080295CC @ =gUnknown_02024C10
- ldr r0, _080295D0 @ =gUnknown_081D92C9
- b _0802963E
- .align 2, 0
-_080295C8: .4byte gUnknown_02024C98
-_080295CC: .4byte gUnknown_02024C10
-_080295D0: .4byte gUnknown_081D92C9
-_080295D4:
- adds r0, r2, 0
- bl battle_side_get_owner
- ldr r4, _08029624 @ =gUnknown_02024C7A
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08029638
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r2, [r0]
- ldr r1, _08029628 @ =0x0000ffef
- ands r1, r2
- movs r4, 0
- strh r1, [r0]
- ldrb r0, [r5]
- bl battle_side_get_owner
- ldr r2, _0802962C @ =gUnknown_02024C80
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strb r4, [r1, 0x6]
- bl b_movescr_stack_push_cursor
- ldr r1, _08029630 @ =gUnknown_02024C10
- ldr r0, _08029634 @ =gUnknown_081D92D0
- b _0802963E
- .align 2, 0
-_08029624: .4byte gUnknown_02024C7A
-_08029628: .4byte 0x0000ffef
-_0802962C: .4byte gUnknown_02024C80
-_08029630: .4byte gUnknown_02024C10
-_08029634: .4byte gUnknown_081D92D0
-_08029638:
- ldr r1, _08029648 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
-_0802963E:
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029648: .4byte gUnknown_02024C10
- thumb_func_end atkBE_breakfree
-
- thumb_func_start sub_802964C
-sub_802964C: @ 802964C
- ldr r1, _08029670 @ =gBattleMons
- ldr r0, _08029674 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r2, r0
- adds r1, 0x50
- adds r2, r1
- ldr r0, [r2]
- movs r1, 0x80
- lsls r1, 23
- orrs r0, r1
- str r0, [r2]
- ldr r1, _08029678 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08029670: .4byte gBattleMons
-_08029674: .4byte gUnknown_02024C07
-_08029678: .4byte gUnknown_02024C10
- thumb_func_end sub_802964C
-
- thumb_func_start atkC0_recoverbasedonsunlight
-atkC0_recoverbasedonsunlight: @ 802967C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r1, _080296E8 @ =gUnknown_02024C08
- ldr r5, _080296EC @ =gUnknown_02024C07
- ldrb r0, [r5]
- strb r0, [r1]
- ldr r7, _080296F0 @ =gBattleMons
- ldrb r0, [r5]
- movs r6, 0x58
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- beq _0802975C
- ldr r4, _080296F4 @ =word_2024DB8
- ldrh r0, [r4]
- cmp r0, 0
- beq _080296CE
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080296CE
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080296FC
-_080296CE:
- ldr r3, _080296F8 @ =gUnknown_02024BEC
- ldr r2, _080296F0 @ =gBattleMons
- ldr r0, _080296EC @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r3]
- adds r1, r3, 0
- b _08029736
- .align 2, 0
-_080296E8: .4byte gUnknown_02024C08
-_080296EC: .4byte gUnknown_02024C07
-_080296F0: .4byte gBattleMons
-_080296F4: .4byte word_2024DB8
-_080296F8: .4byte gUnknown_02024BEC
-_080296FC:
- ldrh r1, [r4]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _08029728
- ldr r4, _08029724 @ =gUnknown_02024BEC
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r1, [r0, 0x2C]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1E
- bl __divsi3
- str r0, [r4]
- adds r1, r4, 0
- b _08029736
- .align 2, 0
-_08029724: .4byte gUnknown_02024BEC
-_08029728:
- ldr r1, _08029754 @ =gUnknown_02024BEC
- ldrb r0, [r5]
- muls r0, r6
- adds r0, r7
- ldrh r0, [r0, 0x2C]
- lsrs r0, 2
- str r0, [r1]
-_08029736:
- adds r2, r1, 0
- ldr r0, [r2]
- cmp r0, 0
- bne _08029742
- movs r0, 0x1
- str r0, [r2]
-_08029742:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldr r1, _08029758 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _08029776
- .align 2, 0
-_08029754: .4byte gUnknown_02024BEC
-_08029758: .4byte gUnknown_02024C10
-_0802975C:
- ldr r3, _08029780 @ =gUnknown_02024C10
- 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]
-_08029776:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029780: .4byte gUnknown_02024C10
- thumb_func_end atkC0_recoverbasedonsunlight
-
- thumb_func_start sub_8029784
-sub_8029784: @ 8029784
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, _08029894 @ =gBattleMons
- ldr r0, _08029898 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- adds r4, r1, 0
- muls r4, r0
- adds r4, r2
- ldrb r0, [r4, 0x14]
- mov r10, r0
- mov r7, r10
- lsls r7, 27
- adds r0, r7, 0
- lsrs r0, 27
- mov r10, r0
- movs r1, 0x2
- mov r2, r10
- ands r2, r1
- asrs r2, 1
- ldrh r7, [r4, 0x14]
- mov r9, r7
- mov r0, r9
- lsls r0, 22
- mov r9, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- orrs r2, r0
- ldrb r7, [r4, 0x15]
- mov r8, r7
- mov r0, r8
- lsls r0, 25
- mov r8, r0
- lsrs r3, r0, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 1
- orrs r2, r0
- ldr r6, [r4, 0x14]
- lsls r6, 12
- lsrs r3, r6, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 2
- orrs r2, r0
- ldrh r5, [r4, 0x16]
- lsls r5, 23
- lsrs r3, r5, 27
- adds r0, r1, 0
- ands r0, r3
- lsls r0, 3
- orrs r2, r0
- ldrb r3, [r4, 0x17]
- lsls r3, 26
- lsrs r0, r3, 27
- ands r1, r0
- lsls r1, 4
- orrs r2, r1
- movs r1, 0x1
- adds r4, r1, 0
- mov r7, r10
- ands r4, r7
- mov r0, r9
- lsrs r0, 27
- mov r9, r0
- adds r0, r1, 0
- mov r7, r9
- ands r0, r7
- lsls r0, 1
- orrs r4, r0
- mov r0, r8
- lsrs r0, 27
- mov r8, r0
- adds r0, r1, 0
- mov r7, r8
- ands r0, r7
- lsls r0, 2
- orrs r4, r0
- lsrs r6, 27
- adds r0, r1, 0
- ands r0, r6
- lsls r0, 3
- orrs r4, r0
- lsrs r5, 27
- adds r0, r1, 0
- ands r0, r5
- lsls r0, 4
- orrs r4, r0
- lsrs r3, 27
- ands r1, r3
- lsls r1, 5
- orrs r4, r1
- ldr r5, _0802989C @ =gUnknown_02024DEC
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- movs r1, 0x3F
- bl __divsi3
- adds r0, 0x1E
- strh r0, [r5]
- ldr r5, _080298A0 @ =0x02000000
- lsls r0, r4, 4
- subs r0, r4
- movs r1, 0x3F
- bl __divsi3
- adds r1, r0, 0x1
- ldr r0, _080298A4 @ =0x0001601c
- adds r5, r0
- strb r1, [r5]
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x8
- bls _08029876
- adds r0, r1, 0x1
- strb r0, [r5]
-_08029876:
- ldrb r0, [r5]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r5]
- ldr r1, _080298A8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029894: .4byte gBattleMons
-_08029898: .4byte gUnknown_02024C07
-_0802989C: .4byte gUnknown_02024DEC
-_080298A0: .4byte 0x02000000
-_080298A4: .4byte 0x0001601c
-_080298A8: .4byte gUnknown_02024C10
- thumb_func_end sub_8029784
-
- thumb_func_start atkC2_selectnexttarget
-atkC2_selectnexttarget: @ 80298AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08029908 @ =gUnknown_02024C08
- movs r1, 0
- strb r1, [r0]
- ldr r1, _0802990C @ =gUnknown_02024A68
- ldrb r1, [r1]
- adds r6, r0, 0
- ldr r0, _08029910 @ =gUnknown_02024C10
- mov r8, r0
- cmp r1, 0
- beq _080298F6
- adds r3, r6, 0
- ldr r0, _08029914 @ =gUnknown_02024C07
- ldrb r5, [r0]
- ldr r0, _08029918 @ =gBitTable
- mov r12, r0
- adds r4, r1, 0
- ldr r7, _0802991C @ =gUnknown_02024C0C
-_080298D4:
- ldrb r2, [r3]
- cmp r2, r5
- beq _080298EA
- ldrb r0, [r7]
- ldrb r1, [r6]
- lsls r1, 2
- add r1, r12
- ldr r1, [r1]
- ands r0, r1
- cmp r0, 0
- beq _080298F6
-_080298EA:
- adds r0, r2, 0x1
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcc _080298D4
-_080298F6:
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029908: .4byte gUnknown_02024C08
-_0802990C: .4byte gUnknown_02024A68
-_08029910: .4byte gUnknown_02024C10
-_08029914: .4byte gUnknown_02024C07
-_08029918: .4byte gBitTable
-_0802991C: .4byte gUnknown_02024C0C
- thumb_func_end atkC2_selectnexttarget
-
- thumb_func_start atkC3_setfutureattack
-atkC3_setfutureattack: @ 8029920
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _08029958 @ =gUnknown_02024DBC
- mov r8, r0
- ldr r7, _0802995C @ =gUnknown_02024C08
- ldrb r1, [r7]
- adds r0, r1, r0
- ldrb r6, [r0]
- cmp r6, 0
- beq _08029964
- ldr r3, _08029960 @ =gUnknown_02024C10
- 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 _08029A2E
- .align 2, 0
-_08029958: .4byte gUnknown_02024DBC
-_0802995C: .4byte gUnknown_02024C08
-_08029960: .4byte gUnknown_02024C10
-_08029964:
- lsls r1, 1
- mov r0, r8
- adds r0, 0x18
- adds r1, r0
- ldr r2, _08029A04 @ =gUnknown_02024BE6
- mov r9, r2
- ldrh r0, [r2]
- strh r0, [r1]
- mov r0, r8
- adds r0, 0x4
- ldrb r4, [r7]
- adds r0, r4
- ldr r5, _08029A08 @ =gUnknown_02024C07
- ldrb r1, [r5]
- strb r1, [r0]
- ldrb r0, [r7]
- add r0, r8
- movs r1, 0x3
- strb r1, [r0]
- ldr r4, _08029A0C @ =gUnknown_02024C7A
- ldrb r0, [r7]
- bl battle_get_per_side_status
- movs r1, 0x1
- mov r10, r1
- ands r1, r0
- lsls r1, 1
- adds r1, r4
- ldrh r3, [r1]
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- ldr r2, _08029A10 @ =gBattleMons
- adds r0, r2
- ldrb r1, [r7]
- muls r1, r4
- adds r1, r2
- mov r4, r9
- ldrh r2, [r4]
- str r6, [sp]
- str r6, [sp, 0x4]
- ldrb r4, [r5]
- str r4, [sp, 0x8]
- ldrb r4, [r7]
- str r4, [sp, 0xC]
- bl CalculateBaseDamage
- ldrb r1, [r7]
- lsls r1, 2
- mov r2, r8
- adds r2, 0x8
- adds r1, r2
- str r0, [r1]
- ldr r1, _08029A14 @ =gUnknown_02024D28
- ldrb r0, [r5]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _080299F2
- ldrb r4, [r7]
- lsls r4, 2
- adds r4, r2
- ldr r1, [r4]
- lsls r0, r1, 4
- subs r0, r1
- movs r1, 0xA
- bl __divsi3
- str r0, [r4]
-_080299F2:
- mov r0, r9
- ldrh r1, [r0]
- ldr r0, _08029A18 @ =0x00000161
- cmp r1, r0
- bne _08029A20
- ldr r0, _08029A1C @ =gUnknown_02024D1E
- mov r1, r10
- strb r1, [r0, 0x5]
- b _08029A26
- .align 2, 0
-_08029A04: .4byte gUnknown_02024BE6
-_08029A08: .4byte gUnknown_02024C07
-_08029A0C: .4byte gUnknown_02024C7A
-_08029A10: .4byte gBattleMons
-_08029A14: .4byte gUnknown_02024D28
-_08029A18: .4byte 0x00000161
-_08029A1C: .4byte gUnknown_02024D1E
-_08029A20:
- ldr r1, _08029A40 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
-_08029A26:
- ldr r1, _08029A44 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029A2E:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029A40: .4byte gUnknown_02024D1E
-_08029A44: .4byte gUnknown_02024C10
- thumb_func_end atkC3_setfutureattack
-
- thumb_func_start atkC4_802B910
-atkC4_802B910: @ 8029A48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08029A8C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r7, _08029A90 @ =gEnemyParty
- cmp r0, 0
- bne _08029A62
- ldr r7, _08029A94 @ =gPlayerParty
-_08029A62:
- ldr r2, _08029A98 @ =gBattleMons
- ldr r0, _08029A9C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _08029AA4
- ldr r3, _08029AA0 @ =gUnknown_02024C10
- 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]
- b _08029C40
- .align 2, 0
-_08029A8C: .4byte gUnknown_02024C07
-_08029A90: .4byte gEnemyParty
-_08029A94: .4byte gPlayerParty
-_08029A98: .4byte gBattleMons
-_08029A9C: .4byte gUnknown_02024C08
-_08029AA0: .4byte gUnknown_02024C10
-_08029AA4:
- ldr r6, _08029BE0 @ =gUnknown_02024D1E
- ldrb r0, [r6]
- mov r8, r0
- cmp r0, 0x5
- bls _08029AB0
- b _08029C0C
-_08029AB0:
- adds r4, r6, 0
- movs r5, 0x64
-_08029AB4:
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08029AF8
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r7, r0
- movs r1, 0x37
- bl GetMonData
- cmp r0, 0
- beq _08029B08
-_08029AF8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, r4, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bls _08029AB4
-_08029B08:
- ldr r1, _08029BE0 @ =gUnknown_02024D1E
- mov r9, r1
- ldrb r2, [r1]
- cmp r2, 0x5
- bhi _08029C0C
- ldr r1, _08029BE4 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r6, _08029BE8 @ =gUnknown_02024C07
- ldrb r0, [r6]
- strb r0, [r1, 0x2]
- strb r2, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _08029BEC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- ldr r2, _08029BF0 @ =gUnknown_02024BEC
- mov r8, r2
- ldr r5, _08029BF4 @ =gBaseStats
- mov r1, r9
- ldrb r0, [r1]
- movs r4, 0x64
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0xB
- bl GetMonData
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r3, [r1, 0x1]
- mov r2, r8
- str r3, [r2]
- ldr r2, _08029BF8 @ =gBattleMoves
- ldr r0, _08029BFC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- muls r0, r3
- mov r1, r8
- str r0, [r1]
- mov r2, r9
- ldrb r0, [r2]
- muls r0, r4
- adds r0, r7, r0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- movs r1, 0x5
- bl __udivsi3
- adds r0, 0x2
- mov r2, r8
- ldr r1, [r2]
- muls r0, r1
- str r0, [r2]
- ldr r3, _08029C00 @ =gBattleMons
- ldr r1, _08029C04 @ =gUnknown_02024C08
- ldrb r2, [r1]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r2, [r1]
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r1, [r1, 0x2]
- bl __divsi3
- mov r1, r8
- str r0, [r1]
- movs r1, 0x32
- bl __divsi3
- adds r2, r0, 0x2
- mov r0, r8
- str r2, [r0]
- ldr r1, _08029C08 @ =gUnknown_02024D28
- ldrb r0, [r6]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- bge _08029BD4
- lsls r0, r2, 4
- subs r0, r2
- movs r1, 0xA
- bl __divsi3
- mov r1, r8
- str r0, [r1]
-_08029BD4:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- b _08029C46
- .align 2, 0
-_08029BE0: .4byte gUnknown_02024D1E
-_08029BE4: .4byte gUnknown_030041C0
-_08029BE8: .4byte gUnknown_02024C07
-_08029BEC: .4byte gUnknown_02024C10
-_08029BF0: .4byte gUnknown_02024BEC
-_08029BF4: .4byte gBaseStats
-_08029BF8: .4byte gBattleMoves
-_08029BFC: .4byte gUnknown_02024BE6
-_08029C00: .4byte gBattleMons
-_08029C04: .4byte gUnknown_02024C08
-_08029C08: .4byte gUnknown_02024D28
-_08029C0C:
- mov r0, r8
- cmp r0, 0
- beq _08029C2C
- ldr r3, _08029C28 @ =gUnknown_02024C10
- 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]
- b _08029C40
- .align 2, 0
-_08029C28: .4byte gUnknown_02024C10
-_08029C2C:
- ldr r3, _08029C54 @ =gUnknown_02024C10
- ldr r2, [r3]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
-_08029C40:
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
-_08029C46:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08029C54: .4byte gUnknown_02024C10
- thumb_func_end atkC4_802B910
-
- thumb_func_start atkC5_hidepreattack
-atkC5_hidepreattack: @ 8029C58
- push {lr}
- ldr r0, _08029C6C @ =gUnknown_02024BE6
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029C98
- cmp r1, 0x5B
- bgt _08029C70
- cmp r1, 0x13
- beq _08029C7C
- b _08029CC4
- .align 2, 0
-_08029C6C: .4byte gUnknown_02024BE6
-_08029C70:
- ldr r0, _08029C8C @ =0x00000123
- cmp r1, r0
- beq _08029CB0
- adds r0, 0x31
- cmp r1, r0
- bne _08029CC4
-_08029C7C:
- ldr r2, _08029C90 @ =gUnknown_02024C98
- ldr r0, _08029C94 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x40
- b _08029CC0
- .align 2, 0
-_08029C8C: .4byte 0x00000123
-_08029C90: .4byte gUnknown_02024C98
-_08029C94: .4byte gUnknown_02024C07
-_08029C98:
- ldr r2, _08029CA8 @ =gUnknown_02024C98
- ldr r0, _08029CAC @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- b _08029CC0
- .align 2, 0
-_08029CA8: .4byte gUnknown_02024C98
-_08029CAC: .4byte gUnknown_02024C07
-_08029CB0:
- ldr r2, _08029CD0 @ =gUnknown_02024C98
- ldr r0, _08029CD4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 11
-_08029CC0:
- orrs r0, r2
- str r0, [r1]
-_08029CC4:
- ldr r1, _08029CD8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029CD0: .4byte gUnknown_02024C98
-_08029CD4: .4byte gUnknown_02024C07
-_08029CD8: .4byte gUnknown_02024C10
- thumb_func_end atkC5_hidepreattack
-
- thumb_func_start atkC6_unhidepostattack
-atkC6_unhidepostattack: @ 8029CDC
- push {lr}
- ldr r0, _08029CF0 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- cmp r1, 0x5B
- beq _08029D20
- cmp r1, 0x5B
- bgt _08029CF4
- cmp r1, 0x13
- beq _08029D00
- b _08029D4E
- .align 2, 0
-_08029CF0: .4byte gUnknown_02024BE6
-_08029CF4:
- ldr r0, _08029D14 @ =0x00000123
- cmp r1, r0
- beq _08029D3C
- adds r0, 0x31
- cmp r1, r0
- bne _08029D4E
-_08029D00:
- ldr r2, _08029D18 @ =gUnknown_02024C98
- ldr r0, _08029D1C @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x41
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D14: .4byte 0x00000123
-_08029D18: .4byte gUnknown_02024C98
-_08029D1C: .4byte gUnknown_02024C07
-_08029D20:
- ldr r2, _08029D34 @ =gUnknown_02024C98
- ldr r0, _08029D38 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x81
- negs r2, r2
- b _08029D4A
- .align 2, 0
-_08029D34: .4byte gUnknown_02024C98
-_08029D38: .4byte gUnknown_02024C07
-_08029D3C:
- ldr r2, _08029D5C @ =gUnknown_02024C98
- ldr r0, _08029D60 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- ldr r2, _08029D64 @ =0xfffbffff
-_08029D4A:
- ands r0, r2
- str r0, [r1]
-_08029D4E:
- ldr r1, _08029D68 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D5C: .4byte gUnknown_02024C98
-_08029D60: .4byte gUnknown_02024C07
-_08029D64: .4byte 0xfffbffff
-_08029D68: .4byte gUnknown_02024C10
- thumb_func_end atkC6_unhidepostattack
-
- thumb_func_start atkC7_setminimize
-atkC7_setminimize: @ 8029D6C
- push {lr}
- ldr r0, _08029D9C @ =gUnknown_02024C6C
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 18
- ands r0, r1
- cmp r0, 0
- beq _08029D90
- ldr r2, _08029DA0 @ =gUnknown_02024C98
- ldr r0, _08029DA4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- lsls r1, 2
- adds r1, r2
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 1
- orrs r0, r2
- str r0, [r1]
-_08029D90:
- ldr r1, _08029DA8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029D9C: .4byte gUnknown_02024C6C
-_08029DA0: .4byte gUnknown_02024C98
-_08029DA4: .4byte gUnknown_02024C07
-_08029DA8: .4byte gUnknown_02024C10
- thumb_func_end atkC7_setminimize
-
- thumb_func_start sub_8029DAC
-sub_8029DAC: @ 8029DAC
- push {lr}
- ldr r3, _08029DD0 @ =word_2024DB8
- ldrh r1, [r3]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08029DDC
- ldr r2, _08029DD4 @ =gUnknown_02024C68
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _08029DD8 @ =gUnknown_02024D1E
- movs r0, 0x2
- strb r0, [r1, 0x5]
- b _08029DEA
- .align 2, 0
-_08029DD0: .4byte word_2024DB8
-_08029DD4: .4byte gUnknown_02024C68
-_08029DD8: .4byte gUnknown_02024D1E
-_08029DDC:
- strh r2, [r3]
- ldr r0, _08029DF8 @ =gUnknown_02024D1E
- movs r1, 0x5
- strb r1, [r0, 0x5]
- ldr r0, _08029DFC @ =gUnknown_02024DBC
- adds r0, 0x28
- strb r1, [r0]
-_08029DEA:
- ldr r1, _08029E00 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08029DF8: .4byte gUnknown_02024D1E
-_08029DFC: .4byte gUnknown_02024DBC
-_08029E00: .4byte gUnknown_02024C10
- thumb_func_end sub_8029DAC
-
- thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
-atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04
- push {r4,lr}
- ldr r2, _08029E48 @ =gBattleMons
- ldr r0, _08029E4C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- movs r0, 0x19
- ldrsb r0, [r1, r0]
- adds r3, r2, 0
- cmp r0, 0
- bne _08029E58
- movs r0, 0x1C
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bne _08029E58
- ldr r0, _08029E50 @ =gUnknown_02024D1E
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- beq _08029E58
- ldr r3, _08029E54 @ =gUnknown_02024C10
- 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 _08029E84
- .align 2, 0
-_08029E48: .4byte gBattleMons
-_08029E4C: .4byte gUnknown_02024C08
-_08029E50: .4byte gUnknown_02024D1E
-_08029E54: .4byte gUnknown_02024C10
-_08029E58:
- ldr r4, _08029E8C @ =gUnknown_02024A60
- ldr r0, _08029E90 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r2, _08029E94 @ =gUnknown_02024BEC
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- ldrh r0, [r0, 0x28]
- str r0, [r2]
- ldr r1, _08029E98 @ =0x00007fff
- movs r0, 0
- bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _08029E9C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08029E84:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029E8C: .4byte gUnknown_02024A60
-_08029E90: .4byte gUnknown_02024C07
-_08029E94: .4byte gUnknown_02024BEC
-_08029E98: .4byte 0x00007fff
-_08029E9C: .4byte gUnknown_02024C10
- thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
-
- thumb_func_start atkCA_setforcedtarget
-atkCA_setforcedtarget: @ 8029EA0
- push {r4,r5,lr}
- ldr r4, _08029EE0 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- ldr r5, _08029EE4 @ =gUnknown_02024C80
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- strb r0, [r1, 0x8]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r4]
- strb r0, [r1, 0x9]
- ldr r1, _08029EE8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08029EE0: .4byte gUnknown_02024C07
-_08029EE4: .4byte gUnknown_02024C80
-_08029EE8: .4byte gUnknown_02024C10
- thumb_func_end atkCA_setforcedtarget
-
- thumb_func_start atkCB_setcharge
-atkCB_setcharge: @ 8029EEC
- push {r4,lr}
- ldr r0, _08029F40 @ =gUnknown_02024C98
- ldr r3, _08029F44 @ =gUnknown_02024C07
- ldrb r1, [r3]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 2
- orrs r0, r2
- str r0, [r1]
- ldr r4, _08029F48 @ =gUnknown_02024CA8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0x10
- negs r1, r1
- ands r1, r2
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x12]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x12]
- ldr r1, _08029F4C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029F40: .4byte gUnknown_02024C98
-_08029F44: .4byte gUnknown_02024C07
-_08029F48: .4byte gUnknown_02024CA8
-_08029F4C: .4byte gUnknown_02024C10
- thumb_func_end atkCB_setcharge
-
- thumb_func_start atkCC_callterrainattack
-atkCC_callterrainattack: @ 8029F50
- push {r4,lr}
- ldr r2, _08029FA0 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _08029FA4 @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _08029FA8 @ =gUnknown_02024BE6
- ldr r1, _08029FAC @ =gNaturePowerMoves
- ldr r0, _08029FB0 @ =gUnknown_0300428C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _08029FB4 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r3, _08029FB8 @ =gUnknown_081D6BBC
- ldr r2, _08029FBC @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- bl b_movescr_stack_push
- ldr r1, _08029FC0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08029FA0: .4byte gUnknown_02024C6C
-_08029FA4: .4byte 0xfffffbff
-_08029FA8: .4byte gUnknown_02024BE6
-_08029FAC: .4byte gNaturePowerMoves
-_08029FB0: .4byte gUnknown_0300428C
-_08029FB4: .4byte gUnknown_02024C08
-_08029FB8: .4byte gUnknown_081D6BBC
-_08029FBC: .4byte gBattleMoves
-_08029FC0: .4byte gUnknown_02024C10
- thumb_func_end atkCC_callterrainattack
-
- thumb_func_start atkCD_cureifburnedparalysedorpoisoned
-atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r1, _0802A010 @ =gBattleMons
- ldr r3, _0802A014 @ =gUnknown_02024C07
- ldrb r0, [r3]
- movs r6, 0x58
- muls r0, r6
- adds r5, r1, 0
- adds r5, 0x4C
- adds r2, r0, r5
- ldr r0, [r2]
- movs r1, 0xD8
- ands r0, r1
- cmp r0, 0
- beq _0802A020
- movs r0, 0
- str r0, [r2]
- ldr r1, _0802A018 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r4, _0802A01C @ =gUnknown_02024A60
- ldrb r0, [r3]
- strb r0, [r4]
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r2, 0
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- b _0802A03A
- .align 2, 0
-_0802A010: .4byte gBattleMons
-_0802A014: .4byte gUnknown_02024C07
-_0802A018: .4byte gUnknown_02024C10
-_0802A01C: .4byte gUnknown_02024A60
-_0802A020:
- ldr r3, _0802A044 @ =gUnknown_02024C10
- 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]
-_0802A03A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A044: .4byte gUnknown_02024C10
- thumb_func_end atkCD_cureifburnedparalysedorpoisoned
-
- thumb_func_start atkCE_settorment
-atkCE_settorment: @ 802A048
- push {lr}
- ldr r1, _0802A080 @ =gBattleMons
- ldr r0, _0802A084 @ =gUnknown_02024C08
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r1, [r0]
- movs r2, 0x80
- lsls r2, 24
- cmp r1, 0
- bge _0802A08C
- ldr r3, _0802A088 @ =gUnknown_02024C10
- 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 _0802A098
- .align 2, 0
-_0802A080: .4byte gBattleMons
-_0802A084: .4byte gUnknown_02024C08
-_0802A088: .4byte gUnknown_02024C10
-_0802A08C:
- orrs r1, r2
- str r1, [r0]
- ldr r1, _0802A09C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A098:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A09C: .4byte gUnknown_02024C10
- thumb_func_end atkCE_settorment
-
- thumb_func_start atkCF_jumpifnodamage
-atkCF_jumpifnodamage: @ 802A0A0
- push {lr}
- ldr r2, _0802A0CC @ =gUnknown_02024D28
- ldr r0, _0802A0D0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r0, r2, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- bne _0802A0C0
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A0D8
-_0802A0C0:
- ldr r1, _0802A0D4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A0F2
- .align 2, 0
-_0802A0CC: .4byte gUnknown_02024D28
-_0802A0D0: .4byte gUnknown_02024C07
-_0802A0D4: .4byte gUnknown_02024C10
-_0802A0D8:
- ldr r3, _0802A0F8 @ =gUnknown_02024C10
- 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]
-_0802A0F2:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A0F8: .4byte gUnknown_02024C10
- thumb_func_end atkCF_jumpifnodamage
-
- thumb_func_start atkD0_settaunt
-atkD0_settaunt: @ 802A0FC
- push {r4,lr}
- ldr r4, _0802A140 @ =gUnknown_02024CA8
- ldr r3, _0802A144 @ =gUnknown_02024C08
- ldrb r0, [r3]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r2, r1, r4
- ldrb r1, [r2, 0x13]
- lsls r0, r1, 28
- cmp r0, 0
- bne _0802A14C
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0x13]
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0, 0x13]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0, 0x13]
- ldr r1, _0802A148 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A166
- .align 2, 0
-_0802A140: .4byte gUnknown_02024CA8
-_0802A144: .4byte gUnknown_02024C08
-_0802A148: .4byte gUnknown_02024C10
-_0802A14C:
- ldr r3, _0802A16C @ =gUnknown_02024C10
- 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]
-_0802A166:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A16C: .4byte gUnknown_02024C10
- thumb_func_end atkD0_settaunt
-
- thumb_func_start sub_802A170
-sub_802A170: @ 802A170
- push {r4,lr}
- ldr r4, _0802A1D8 @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r3, _0802A1DC @ =gUnknown_02024C08
- strb r0, [r3]
- ldr r0, _0802A1E0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802A1F4
- ldr r0, _0802A1E4 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802A1E8 @ =gBitTable
- ldrb r3, [r3]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A1F4
- ldr r1, _0802A1EC @ =gUnknown_02024D28
- ldrb r0, [r4]
- lsls r0, 4
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 28
- cmp r0, 0
- blt _0802A1F4
- lsls r0, r3, 4
- adds r2, r0, r1
- ldrb r1, [r2]
- lsls r0, r1, 28
- cmp r0, 0
- blt _0802A1F4
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r2]
- ldr r1, _0802A1F0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A20E
- .align 2, 0
-_0802A1D8: .4byte gUnknown_02024C07
-_0802A1DC: .4byte gUnknown_02024C08
-_0802A1E0: .4byte gUnknown_020239F8
-_0802A1E4: .4byte gUnknown_02024C0C
-_0802A1E8: .4byte gBitTable
-_0802A1EC: .4byte gUnknown_02024D28
-_0802A1F0: .4byte gUnknown_02024C10
-_0802A1F4:
- ldr r3, _0802A214 @ =gUnknown_02024C10
- 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]
-_0802A20E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A214: .4byte gUnknown_02024C10
- thumb_func_end sub_802A170
-
- thumb_func_start sub_802A218
-sub_802A218: @ 802A218
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, _0802A30C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802A24C
- ldr r0, _0802A310 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A24C
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _0802A2EE
-_0802A24C:
- ldr r4, _0802A30C @ =gUnknown_02024C07
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0802A310 @ =gUnknown_020239F8
- ldrh r1, [r0]
- ldr r0, _0802A314 @ =0x00000902
- ands r0, r1
- cmp r0, 0
- bne _0802A290
- ldr r0, _0802A318 @ =gTrainerBattleOpponent
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _0802A290
- ldr r0, _0802A31C @ =gUnknown_02024DBC
- adds r0, 0x29
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r3, _0802A320 @ =gBitTable
- ldr r2, _0802A324 @ =gUnknown_02024A6A
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802A2EE
-_0802A290:
- ldr r0, _0802A328 @ =gBattleMons
- mov r9, r0
- ldr r1, _0802A30C @ =gUnknown_02024C07
- ldrb r4, [r1]
- movs r2, 0x58
- mov r8, r2
- mov r0, r8
- muls r0, r4
- mov r3, r9
- adds r5, r0, r3
- ldrh r3, [r5, 0x2E]
- adds r1, r3, 0
- cmp r1, 0
- bne _0802A2BE
- ldr r0, _0802A32C @ =gUnknown_02024C08
- ldrb r0, [r0]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _0802A2EE
-_0802A2BE:
- cmp r1, 0xAF
- beq _0802A2EE
- ldr r7, _0802A32C @ =gUnknown_02024C08
- ldrb r0, [r7]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- mov r1, r9
- adds r2, r0, r1
- ldrh r1, [r2, 0x2E]
- cmp r1, 0xAF
- beq _0802A2EE
- adds r0, r3, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bls _0802A2EE
- adds r0, r1, 0
- subs r0, 0x79
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xB
- bhi _0802A334
-_0802A2EE:
- ldr r3, _0802A330 @ =gUnknown_02024C10
- 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 _0802A49A
- .align 2, 0
-_0802A30C: .4byte gUnknown_02024C07
-_0802A310: .4byte gUnknown_020239F8
-_0802A314: .4byte 0x00000902
-_0802A318: .4byte gTrainerBattleOpponent
-_0802A31C: .4byte gUnknown_02024DBC
-_0802A320: .4byte gBitTable
-_0802A324: .4byte gUnknown_02024A6A
-_0802A328: .4byte gBattleMons
-_0802A32C: .4byte gUnknown_02024C08
-_0802A330: .4byte gUnknown_02024C10
-_0802A334:
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x3C
- bne _0802A36C
- ldr r1, _0802A360 @ =gUnknown_02024C10
- ldr r0, _0802A364 @ =gUnknown_081D9913
- str r0, [r1]
- ldr r1, _0802A368 @ =byte_2024C06
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- ldrb r1, [r1]
- bl sub_81074C4
- b _0802A49A
- .align 2, 0
-_0802A360: .4byte gUnknown_02024C10
-_0802A364: .4byte gUnknown_081D9913
-_0802A368: .4byte byte_2024C06
-_0802A36C:
- lsls r0, r4, 1
- ldr r4, _0802A458 @ =0x020160f0
- adds r6, r0, r4
- ldrh r5, [r5, 0x2E]
- mov r10, r5
- strh r1, [r6]
- ldr r3, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r3]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- mov r3, r10
- strh r3, [r0, 0x2E]
- ldr r5, _0802A460 @ =gUnknown_02024A60
- ldr r1, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r1]
- strb r0, [r5]
- str r6, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldr r2, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r2]
- bl dp01_battle_side_mark_buffer_for_execution
- ldrb r0, [r7]
- strb r0, [r5]
- ldrb r0, [r7]
- mov r3, r8
- muls r3, r0
- adds r0, r3, 0
- mov r1, r9
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r0, _0802A464 @ =0xfffe9f10
- adds r4, r0
- ldrb r0, [r7]
- lsls r0, 1
- ldr r2, _0802A468 @ =0x000160e8
- adds r0, r2
- adds r0, r4
- movs r1, 0
- strb r1, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- ldr r1, _0802A46C @ =0x000160e9
- adds r0, r1
- adds r0, r4
- movs r3, 0
- strb r3, [r0]
- ldr r3, _0802A45C @ =gUnknown_02024C07
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r2
- adds r0, r4
- movs r2, 0
- strb r2, [r0]
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r1
- adds r0, r4
- strb r2, [r0]
- ldr r1, _0802A470 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802A474 @ =gUnknown_030041C0
- movs r3, 0xFD
- strb r3, [r1]
- movs r2, 0xA
- strb r2, [r1, 0x1]
- ldrh r0, [r6]
- strb r0, [r1, 0x2]
- ldrh r0, [r6]
- lsrs r0, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A478 @ =gUnknown_03004290
- strb r3, [r1]
- strb r2, [r1, 0x1]
- mov r3, r10
- strb r3, [r1, 0x2]
- mov r2, r10
- lsrs r0, r2, 8
- strb r0, [r1, 0x3]
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1, 0x4]
- cmp r2, 0
- beq _0802A480
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r1, _0802A47C @ =gUnknown_02024D1E
- movs r0, 0x2
- b _0802A498
- .align 2, 0
-_0802A458: .4byte 0x020160f0
-_0802A45C: .4byte gUnknown_02024C07
-_0802A460: .4byte gUnknown_02024A60
-_0802A464: .4byte 0xfffe9f10
-_0802A468: .4byte 0x000160e8
-_0802A46C: .4byte 0x000160e9
-_0802A470: .4byte gUnknown_02024C10
-_0802A474: .4byte gUnknown_030041C0
-_0802A478: .4byte gUnknown_03004290
-_0802A47C: .4byte gUnknown_02024D1E
-_0802A480:
- ldrh r0, [r6]
- cmp r0, 0
- beq _0802A494
- ldr r0, _0802A490 @ =gUnknown_02024D1E
- movs r3, 0
- strb r3, [r0, 0x5]
- b _0802A49A
- .align 2, 0
-_0802A490: .4byte gUnknown_02024D1E
-_0802A494:
- ldr r1, _0802A4AC @ =gUnknown_02024D1E
- movs r0, 0x1
-_0802A498:
- strb r0, [r1, 0x5]
-_0802A49A:
- 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
-_0802A4AC: .4byte gUnknown_02024D1E
- thumb_func_end sub_802A218
-
- thumb_func_start sub_802A4B0
-sub_802A4B0: @ 802A4B0
- push {r4,lr}
- ldr r3, _0802A4F0 @ =gBattleMons
- ldr r4, _0802A4F4 @ =gUnknown_02024C08
- ldrb r0, [r4]
- movs r2, 0x58
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r1, [r0]
- adds r0, r1, 0
- cmp r0, 0
- beq _0802A504
- cmp r0, 0x19
- beq _0802A504
- ldr r0, _0802A4F8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A4FC @ =byte_2024C06
- ldrb r0, [r4]
- muls r0, r2
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r1, _0802A500 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A51E
- .align 2, 0
-_0802A4F0: .4byte gBattleMons
-_0802A4F4: .4byte gUnknown_02024C08
-_0802A4F8: .4byte gUnknown_02024C07
-_0802A4FC: .4byte byte_2024C06
-_0802A500: .4byte gUnknown_02024C10
-_0802A504:
- ldr r3, _0802A524 @ =gUnknown_02024C10
- 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]
-_0802A51E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A524: .4byte gUnknown_02024C10
- thumb_func_end sub_802A4B0
-
- thumb_func_start atkD4_802C408
-atkD4_802C408: @ 802A528
- push {r4-r7,lr}
- ldr r7, _0802A53C @ =gUnknown_02024C10
- ldr r2, [r7]
- ldrb r3, [r2, 0x1]
- cmp r3, 0
- beq _0802A540
- cmp r3, 0x1
- beq _0802A578
- b _0802A5F4
- .align 2, 0
-_0802A53C: .4byte gUnknown_02024C10
-_0802A540:
- ldr r1, _0802A56C @ =gUnknown_02024DBC
- ldr r4, _0802A570 @ =gUnknown_02024C07
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r5, [r4]
- adds r3, r0, r5
- ldrb r0, [r3]
- cmp r0, 0
- bne _0802A5C4
- movs r0, 0x2
- strb r0, [r3]
- ldrb r0, [r4]
- adds r1, 0x24
- adds r1, r0, r1
- ldr r2, _0802A574 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x6
- b _0802A5F2
- .align 2, 0
-_0802A56C: .4byte gUnknown_02024DBC
-_0802A570: .4byte gUnknown_02024C07
-_0802A574: .4byte gUnknown_02024A6A
-_0802A578:
- ldr r1, _0802A5DC @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x1]
- ldr r4, _0802A5E0 @ =gUnknown_02024C08
- ldrb r0, [r4]
- strb r0, [r1, 0x2]
- ldr r0, _0802A5E4 @ =gUnknown_02024DBC
- adds r0, 0x24
- ldrb r5, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- ldr r1, _0802A5E8 @ =gUnknown_02024BEC
- ldr r6, _0802A5EC @ =gBattleMons
- ldrb r0, [r4]
- movs r5, 0x58
- muls r0, r5
- adds r0, r6
- ldrh r0, [r0, 0x2C]
- lsrs r0, 1
- str r0, [r1]
- cmp r0, 0
- bne _0802A5B0
- str r3, [r1]
-_0802A5B0:
- ldr r0, [r1]
- negs r0, r0
- str r0, [r1]
- ldrb r0, [r4]
- muls r0, r5
- adds r0, r6
- ldrh r1, [r0, 0x28]
- ldrh r0, [r0, 0x2C]
- cmp r1, r0
- bne _0802A5F0
-_0802A5C4:
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r7]
- b _0802A5F4
- .align 2, 0
-_0802A5DC: .4byte gUnknown_030041C0
-_0802A5E0: .4byte gUnknown_02024C08
-_0802A5E4: .4byte gUnknown_02024DBC
-_0802A5E8: .4byte gUnknown_02024BEC
-_0802A5EC: .4byte gBattleMons
-_0802A5F0:
- adds r0, r2, 0x6
-_0802A5F2:
- str r0, [r7]
-_0802A5F4:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end atkD4_802C408
-
- thumb_func_start sub_802A5FC
-sub_802A5FC: @ 802A5FC
- push {lr}
- ldr r1, _0802A634 @ =gUnknown_02024C98
- ldr r0, _0802A638 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 3
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A640
- ldr r3, _0802A63C @ =gUnknown_02024C10
- 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 _0802A64C
- .align 2, 0
-_0802A634: .4byte gUnknown_02024C98
-_0802A638: .4byte gUnknown_02024C07
-_0802A63C: .4byte gUnknown_02024C10
-_0802A640:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A650 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A64C:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A650: .4byte gUnknown_02024C10
- thumb_func_end sub_802A5FC
-
- thumb_func_start atkD6_doubledamagedealtifdamaged
-atkD6_doubledamagedealtifdamaged: @ 802A654
- push {lr}
- ldr r3, _0802A6A4 @ =gUnknown_02024D28
- ldr r0, _0802A6A8 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A674
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gUnknown_02024C08
- ldrb r0, [r0, 0xC]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802A68C
-_0802A674:
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _0802A696
- adds r0, r2, r3
- ldr r1, _0802A6AC @ =gUnknown_02024C08
- ldrb r0, [r0, 0xD]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0802A696
-_0802A68C:
- ldr r0, _0802A6B0 @ =0x02000000
- ldr r1, _0802A6B4 @ =0x0001601f
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
-_0802A696:
- ldr r1, _0802A6B8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802A6A4: .4byte gUnknown_02024D28
-_0802A6A8: .4byte gUnknown_02024C07
-_0802A6AC: .4byte gUnknown_02024C08
-_0802A6B0: .4byte 0x02000000
-_0802A6B4: .4byte 0x0001601f
-_0802A6B8: .4byte gUnknown_02024C10
- thumb_func_end atkD6_doubledamagedealtifdamaged
-
- thumb_func_start sub_802A6BC
-sub_802A6BC: @ 802A6BC
- push {r4,lr}
- ldr r1, _0802A700 @ =gUnknown_02024C98
- ldr r0, _0802A704 @ =gUnknown_02024C08
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r4, r0, r1
- ldr r2, [r4]
- movs r0, 0xC0
- lsls r0, 5
- ands r0, r2
- cmp r0, 0
- bne _0802A6E4
- ldr r1, _0802A708 @ =gBattleMons
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x4C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A710
-_0802A6E4:
- ldr r3, _0802A70C @ =gUnknown_02024C10
- 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 _0802A720
- .align 2, 0
-_0802A700: .4byte gUnknown_02024C98
-_0802A704: .4byte gUnknown_02024C08
-_0802A708: .4byte gBattleMons
-_0802A70C: .4byte gUnknown_02024C10
-_0802A710:
- movs r0, 0x80
- lsls r0, 5
- orrs r2, r0
- str r2, [r4]
- ldr r1, _0802A728 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A720:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A728: .4byte gUnknown_02024C10
- thumb_func_end sub_802A6BC
-
- thumb_func_start atkD8_setdamagetohealthdifference
-atkD8_setdamagetohealthdifference: @ 802A72C
- push {lr}
- ldr r2, _0802A768 @ =gBattleMons
- ldr r0, _0802A76C @ =gUnknown_02024C08
- ldrb r0, [r0]
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- ldr r0, _0802A770 @ =gUnknown_02024C07
- ldrb r0, [r0]
- muls r0, r1
- adds r1, r0, r2
- ldrh r0, [r3, 0x28]
- ldrh r2, [r1, 0x28]
- cmp r0, r2
- bhi _0802A778
- ldr r3, _0802A774 @ =gUnknown_02024C10
- 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 _0802A78A
- .align 2, 0
-_0802A768: .4byte gBattleMons
-_0802A76C: .4byte gUnknown_02024C08
-_0802A770: .4byte gUnknown_02024C07
-_0802A774: .4byte gUnknown_02024C10
-_0802A778:
- ldr r2, _0802A790 @ =gUnknown_02024BEC
- ldrh r0, [r3, 0x28]
- ldrh r1, [r1, 0x28]
- subs r0, r1
- str r0, [r2]
- ldr r1, _0802A794 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A78A:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A790: .4byte gUnknown_02024BEC
-_0802A794: .4byte gUnknown_02024C10
- thumb_func_end atkD8_setdamagetohealthdifference
-
- thumb_func_start atkD9_scaledamagebyhealthratio
-atkD9_scaledamagebyhealthratio: @ 802A798
- push {r4,lr}
- ldr r4, _0802A7E4 @ =gUnknown_02024DEC
- ldrh r0, [r4]
- cmp r0, 0
- bne _0802A7D4
- ldr r2, _0802A7E8 @ =gBattleMoves
- ldr r0, _0802A7EC @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r3, [r0, 0x1]
- ldr r2, _0802A7F0 @ =gBattleMons
- ldr r0, _0802A7F4 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r0, [r1, 0x28]
- muls r0, r3
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- bne _0802A7D4
- movs r0, 0x1
- strh r0, [r4]
-_0802A7D4:
- ldr r1, _0802A7F8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A7E4: .4byte gUnknown_02024DEC
-_0802A7E8: .4byte gBattleMoves
-_0802A7EC: .4byte gUnknown_02024BE6
-_0802A7F0: .4byte gBattleMons
-_0802A7F4: .4byte gUnknown_02024C07
-_0802A7F8: .4byte gUnknown_02024C10
- thumb_func_end atkD9_scaledamagebyhealthratio
-
- thumb_func_start atkDA_abilityswap
-atkDA_abilityswap: @ 802A7FC
- push {r4-r6,lr}
- ldr r5, _0802A860 @ =gBattleMons
- ldr r0, _0802A864 @ =gUnknown_02024C07
- ldrb r0, [r0]
- movs r4, 0x58
- muls r0, r4
- adds r0, r5
- adds r2, r0, 0
- adds r2, 0x20
- ldrb r1, [r2]
- cmp r1, 0
- bne _0802A824
- ldr r0, _0802A868 @ =gUnknown_02024C08
- ldrb r0, [r0]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802A844
-_0802A824:
- cmp r1, 0x19
- beq _0802A844
- ldr r6, _0802A868 @ =gUnknown_02024C08
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- ldrb r3, [r0]
- cmp r3, 0x19
- beq _0802A844
- ldr r0, _0802A86C @ =gUnknown_02024C68
- ldrb r1, [r0]
- movs r0, 0x29
- ands r0, r1
- cmp r0, 0
- beq _0802A874
-_0802A844:
- ldr r3, _0802A870 @ =gUnknown_02024C10
- 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 _0802A88A
- .align 2, 0
-_0802A860: .4byte gBattleMons
-_0802A864: .4byte gUnknown_02024C07
-_0802A868: .4byte gUnknown_02024C08
-_0802A86C: .4byte gUnknown_02024C68
-_0802A870: .4byte gUnknown_02024C10
-_0802A874:
- ldrb r1, [r2]
- strb r3, [r2]
- ldrb r0, [r6]
- muls r0, r4
- adds r0, r5
- adds r0, 0x20
- strb r1, [r0]
- ldr r1, _0802A890 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A88A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A890: .4byte gUnknown_02024C10
- thumb_func_end atkDA_abilityswap
-
- thumb_func_start atkDB_imprisoneffect
-atkDB_imprisoneffect: @ 802A894
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r0, 0
- mov r8, r0
- ldr r1, _0802A8B8 @ =gUnknown_02024C98
- ldr r0, _0802A8BC @ =gUnknown_02024C07
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 6
- ands r0, r1
- cmp r0, 0
- beq _0802A8E8
- b _0802A95E
- .align 2, 0
-_0802A8B8: .4byte gUnknown_02024C98
-_0802A8BC: .4byte gUnknown_02024C07
-_0802A8C0:
- ldr r0, _0802A8E0 @ =gUnknown_02024C98
- mov r2, r9
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r2, 0x80
- lsls r2, 6
- orrs r0, r2
- str r0, [r1]
- ldr r1, _0802A8E4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802A956
- .align 2, 0
-_0802A8E0: .4byte gUnknown_02024C98
-_0802A8E4: .4byte gUnknown_02024C10
-_0802A8E8:
- adds r0, r2, 0
- bl sub_801529C
- movs r6, 0
- b _0802A94E
-_0802A8F2:
- adds r0, r6, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r8, r0
- beq _0802A948
- movs r4, 0
- ldr r7, _0802A984 @ =gUnknown_02024C07
- mov r9, r7
- ldr r0, _0802A988 @ =gBattleMons
- mov r12, r0
- mov r1, r9
- ldrb r0, [r1]
- mov r2, r12
- adds r2, 0xC
- movs r1, 0x58
- muls r0, r1
- adds r3, r0, r2
- adds r5, r6, 0
- muls r5, r1
-_0802A91C:
- movs r2, 0
- ldrh r1, [r3]
- mov r0, r12
- adds r0, 0xC
- adds r0, r5, r0
-_0802A926:
- ldrh r7, [r0]
- cmp r1, r7
- bne _0802A930
- cmp r1, 0
- bne _0802A938
-_0802A930:
- adds r0, 0x2
- adds r2, 0x1
- cmp r2, 0x3
- ble _0802A926
-_0802A938:
- cmp r2, 0x4
- bne _0802A944
- adds r3, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802A91C
-_0802A944:
- cmp r4, 0x4
- bne _0802A8C0
-_0802A948:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0802A94E:
- ldr r0, _0802A98C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bcc _0802A8F2
-_0802A956:
- ldr r0, _0802A98C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r6, r0
- bne _0802A978
-_0802A95E:
- ldr r3, _0802A990 @ =gUnknown_02024C10
- 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]
-_0802A978:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802A984: .4byte gUnknown_02024C07
-_0802A988: .4byte gBattleMons
-_0802A98C: .4byte gUnknown_02024A68
-_0802A990: .4byte gUnknown_02024C10
- thumb_func_end atkDB_imprisoneffect
-
- thumb_func_start atkDC_setgrudge
-atkDC_setgrudge: @ 802A994
- push {lr}
- ldr r1, _0802A9CC @ =gUnknown_02024C98
- ldr r0, _0802A9D0 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 7
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- beq _0802A9D8
- ldr r3, _0802A9D4 @ =gUnknown_02024C10
- 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 _0802A9E4
- .align 2, 0
-_0802A9CC: .4byte gUnknown_02024C98
-_0802A9D0: .4byte gUnknown_02024C07
-_0802A9D4: .4byte gUnknown_02024C10
-_0802A9D8:
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802A9E8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802A9E4:
- pop {r0}
- bx r0
- .align 2, 0
-_0802A9E8: .4byte gUnknown_02024C10
- thumb_func_end atkDC_setgrudge
-
- thumb_func_start atkDD_weightdamagecalculation
-atkDD_weightdamagecalculation: @ 802A9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0802AA50 @ =gWeightDamage
- ldrh r0, [r2]
- ldr r1, _0802AA54 @ =0x0000ffff
- cmp r0, r1
- beq _0802AA64
- adds r6, r2, 0
- ldr r0, _0802AA58 @ =gBattleMons
- mov r8, r0
- adds r7, r1, 0
- adds r4, r6, 0
-_0802AA08:
- ldr r0, _0802AA5C @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- add r0, r8
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D54
- ldrh r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r1, r0
- bhi _0802AA36
- adds r4, 0x4
- adds r5, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _0802AA08
-_0802AA36:
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- ldr r0, _0802AA54 @ =0x0000ffff
- cmp r1, r0
- beq _0802AA64
- ldr r0, _0802AA60 @ =gUnknown_02024DEC
- adds r1, r5, 0x1
- lsls r1, 1
- adds r1, r6
- ldrh r1, [r1]
- strh r1, [r0]
- b _0802AA6A
- .align 2, 0
-_0802AA50: .4byte gWeightDamage
-_0802AA54: .4byte 0x0000ffff
-_0802AA58: .4byte gBattleMons
-_0802AA5C: .4byte gUnknown_02024C08
-_0802AA60: .4byte gUnknown_02024DEC
-_0802AA64:
- ldr r1, _0802AA7C @ =gUnknown_02024DEC
- movs r0, 0x78
- strh r0, [r1]
-_0802AA6A:
- ldr r1, _0802AA80 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AA7C: .4byte gUnknown_02024DEC
-_0802AA80: .4byte gUnknown_02024C10
- thumb_func_end atkDD_weightdamagecalculation
-
- thumb_func_start atkDE_asistattackselect
-atkDE_asistattackselect: @ 802AA84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r10, r0
- ldr r0, _0802AB9C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- ldr r0, _0802ABA0 @ =gPlayerParty
- str r0, [sp]
- cmp r1, 0
- beq _0802AAAC
- ldr r1, _0802ABA4 @ =gEnemyParty
- str r1, [sp]
-_0802AAAC:
- movs r2, 0
-_0802AAAE:
- ldr r1, _0802ABA8 @ =gUnknown_02024A6A
- ldr r0, _0802AB9C @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- adds r1, r2, 0x1
- str r1, [sp, 0x4]
- ldrh r0, [r0]
- cmp r2, r0
- beq _0802AB54
- movs r0, 0x64
- adds r6, r2, 0
- muls r6, r0
- ldr r0, [sp]
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _0802AB54
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0802AB54
- movs r5, 0
- ldr r1, _0802ABAC @ =0x0000ffff
- mov r8, r1
- mov r9, r6
- mov r1, r10
- lsls r0, r1, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r6, r0, r1
-_0802AAF8:
- movs r7, 0
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, [sp]
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_802838C
- lsls r0, 24
- adds r1, r5, 0x1
- cmp r0, 0
- bne _0802AB4E
- ldr r0, _0802ABB4 @ =gUnknown_081FACFE
- ldrh r2, [r0]
- adds r3, r0, 0
- cmp r2, r8
- beq _0802AB42
- cmp r4, r2
- beq _0802AB38
- ldr r5, _0802ABAC @ =0x0000ffff
- adds r2, r3, 0
-_0802AB2A:
- adds r2, 0x2
- adds r7, 0x1
- ldrh r0, [r2]
- cmp r0, r5
- beq _0802AB42
- cmp r4, r0
- bne _0802AB2A
-_0802AB38:
- lsls r0, r7, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r8
- bne _0802AB4E
-_0802AB42:
- cmp r4, 0
- beq _0802AB4E
- strh r4, [r6]
- adds r6, 0x2
- movs r0, 0x1
- add r10, r0
-_0802AB4E:
- adds r5, r1, 0
- cmp r5, 0x3
- ble _0802AAF8
-_0802AB54:
- ldr r2, [sp, 0x4]
- cmp r2, 0x5
- ble _0802AAAE
- mov r1, r10
- cmp r1, 0
- beq _0802ABCC
- ldr r2, _0802ABB8 @ =gUnknown_02024C6C
- ldr r0, [r2]
- ldr r1, _0802ABBC @ =0xfffffbff
- ands r0, r1
- str r0, [r2]
- ldr r4, _0802ABC0 @ =gUnknown_02024BEA
- bl Random
- movs r1, 0xFF
- ands r1, r0
- mov r0, r10
- muls r0, r1
- asrs r0, 8
- lsls r0, 1
- ldr r1, _0802ABB0 @ =0x02016024
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0
- bl sub_801B5C0
- ldr r1, _0802ABC4 @ =gUnknown_02024C08
- strb r0, [r1]
- ldr r1, _0802ABC8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802ABE6
- .align 2, 0
-_0802AB9C: .4byte gUnknown_02024C07
-_0802ABA0: .4byte gPlayerParty
-_0802ABA4: .4byte gEnemyParty
-_0802ABA8: .4byte gUnknown_02024A6A
-_0802ABAC: .4byte 0x0000ffff
-_0802ABB0: .4byte 0x02016024
-_0802ABB4: .4byte gUnknown_081FACFE
-_0802ABB8: .4byte gUnknown_02024C6C
-_0802ABBC: .4byte 0xfffffbff
-_0802ABC0: .4byte gUnknown_02024BEA
-_0802ABC4: .4byte gUnknown_02024C08
-_0802ABC8: .4byte gUnknown_02024C10
-_0802ABCC:
- ldr r3, _0802ABF8 @ =gUnknown_02024C10
- 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]
-_0802ABE6:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ABF8: .4byte gUnknown_02024C10
- thumb_func_end atkDE_asistattackselect
-
- thumb_func_start atkDF_setmagiccoat
-atkDF_setmagiccoat: @ 802ABFC
- push {lr}
- ldr r1, _0802AC44 @ =gUnknown_02024C08
- ldr r3, _0802AC48 @ =gUnknown_02024C07
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802AC4C @ =gUnknown_02024D68
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802AC50 @ =gUnknown_02024A7E
- ldrb r1, [r0]
- ldr r0, _0802AC54 @ =gUnknown_02024A68
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802AC5C
- ldr r3, _0802AC58 @ =gUnknown_02024C10
- 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 _0802AC74
- .align 2, 0
-_0802AC44: .4byte gUnknown_02024C08
-_0802AC48: .4byte gUnknown_02024C07
-_0802AC4C: .4byte gUnknown_02024D68
-_0802AC50: .4byte gUnknown_02024A7E
-_0802AC54: .4byte gUnknown_02024A68
-_0802AC58: .4byte gUnknown_02024C10
-_0802AC5C:
- ldr r0, _0802AC78 @ =gUnknown_02024D28
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802AC7C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802AC74:
- pop {r0}
- bx r0
- .align 2, 0
-_0802AC78: .4byte gUnknown_02024D28
-_0802AC7C: .4byte gUnknown_02024C10
- thumb_func_end atkDF_setmagiccoat
-
- thumb_func_start atkE0_setstealstatchange
-atkE0_setstealstatchange: @ 802AC80
- push {lr}
- ldr r2, _0802ACC4 @ =gUnknown_02024D68
- ldr r3, _0802ACC8 @ =gUnknown_02024C07
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0802ACCC @ =gUnknown_02024A7E
- ldrb r1, [r0]
- ldr r0, _0802ACD0 @ =gUnknown_02024A68
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bne _0802ACD8
- ldr r3, _0802ACD4 @ =gUnknown_02024C10
- 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 _0802ACEE
- .align 2, 0
-_0802ACC4: .4byte gUnknown_02024D68
-_0802ACC8: .4byte gUnknown_02024C07
-_0802ACCC: .4byte gUnknown_02024A7E
-_0802ACD0: .4byte gUnknown_02024A68
-_0802ACD4: .4byte gUnknown_02024C10
-_0802ACD8:
- ldr r0, _0802ACF4 @ =gUnknown_02024D28
- ldrb r1, [r3]
- lsls r1, 4
- adds r1, r0
- ldrb r0, [r1]
- orrs r0, r2
- strb r0, [r1]
- ldr r1, _0802ACF8 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ACEE:
- pop {r0}
- bx r0
- .align 2, 0
-_0802ACF4: .4byte gUnknown_02024D28
-_0802ACF8: .4byte gUnknown_02024C10
- thumb_func_end atkE0_setstealstatchange
-
- thumb_func_start atkE1_802CBE4
-atkE1_802CBE4: @ 802ACFC
- push {r4-r6,lr}
- ldr r4, _0802ADA0 @ =0x02000000
- ldr r1, _0802ADA4 @ =0x000160dd
- adds r0, r4, r1
- ldrb r0, [r0]
- subs r1, 0xDA
- adds r4, r1
- strb r0, [r4]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0802ADA8 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r2]
- movs r0, 0x9
- strb r0, [r2, 0x1]
- ldr r3, _0802ADAC @ =gBattleMons
- ldrb r1, [r4]
- movs r0, 0x58
- muls r0, r1
- adds r0, r3
- adds r0, 0x20
- ldrb r0, [r0]
- strb r0, [r2, 0x2]
- movs r0, 0xFF
- strb r0, [r2, 0x3]
- ldr r2, _0802ADB0 @ =gUnknown_02024C08
- ldr r1, _0802ADB4 @ =gUnknown_02024A68
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802AD84
- adds r4, r2, 0
- ldr r6, _0802ADB8 @ =gBitTable
-_0802AD44:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- beq _0802AD66
- ldr r0, _0802ADBC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- ands r1, r0
- ldr r2, _0802ADB4 @ =gUnknown_02024A68
- cmp r1, 0
- beq _0802AD7A
-_0802AD66:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _0802ADB4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bcc _0802AD44
-_0802AD7A:
- ldr r0, _0802ADB0 @ =gUnknown_02024C08
- ldrb r0, [r0]
- ldrb r2, [r2]
- cmp r0, r2
- bcc _0802ADC4
-_0802AD84:
- ldr r3, _0802ADC0 @ =gUnknown_02024C10
- 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 _0802ADCC
- .align 2, 0
-_0802ADA0: .4byte 0x02000000
-_0802ADA4: .4byte 0x000160dd
-_0802ADA8: .4byte gUnknown_030041C0
-_0802ADAC: .4byte gBattleMons
-_0802ADB0: .4byte gUnknown_02024C08
-_0802ADB4: .4byte gUnknown_02024A68
-_0802ADB8: .4byte gBitTable
-_0802ADBC: .4byte gUnknown_02024C0C
-_0802ADC0: .4byte gUnknown_02024C10
-_0802ADC4:
- ldr r1, _0802ADD4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802ADCC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ADD4: .4byte gUnknown_02024C10
- thumb_func_end atkE1_802CBE4
-
- thumb_func_start sub_802ADD8
-sub_802ADD8: @ 802ADD8
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r6, _0802AE44 @ =gUnknown_02024C10
- ldr r0, [r6]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r5, _0802AE48 @ =gUnknown_02024A60
- strb r0, [r5]
- ldr r4, _0802AE4C @ =gBattleMons
- ldrb r0, [r5]
- movs r1, 0x58
- mov r12, r1
- mov r1, r12
- muls r1, r0
- adds r0, r1, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _0802AE34
- adds r4, 0x4C
- adds r1, r4
- movs r0, 0
- str r0, [r1]
- ldr r2, _0802AE50 @ =gBitTable
- ldr r1, _0802AE54 @ =0x02000000
- ldrb r3, [r5]
- ldr r7, _0802AE58 @ =0x00016064
- adds r0, r3, r7
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- mov r0, r12
- muls r0, r3
- adds r0, r4
- str r0, [sp]
- movs r0, 0
- movs r1, 0x28
- movs r3, 0x4
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
-_0802AE34:
- ldr r0, [r6]
- adds r0, 0x2
- str r0, [r6]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802AE44: .4byte gUnknown_02024C10
-_0802AE48: .4byte gUnknown_02024A60
-_0802AE4C: .4byte gBattleMons
-_0802AE50: .4byte gBitTable
-_0802AE54: .4byte 0x02000000
-_0802AE58: .4byte 0x00016064
- thumb_func_end sub_802ADD8
-
- thumb_func_start atkE3_jumpiffainted
-atkE3_jumpiffainted: @ 802AE5C
- push {r4,lr}
- ldr r4, _0802AE98 @ =gUnknown_02024C10
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8015150
- ldr r1, _0802AE9C @ =gUnknown_02024A60
- strb r0, [r1]
- ldr r2, _0802AEA0 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0, 0x28]
- cmp r0, 0
- bne _0802AEA4
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0802AEAA
- .align 2, 0
-_0802AE98: .4byte gUnknown_02024C10
-_0802AE9C: .4byte gUnknown_02024A60
-_0802AEA0: .4byte gBattleMons
-_0802AEA4:
- ldr r0, [r4]
- adds r0, 0x6
- str r0, [r4]
-_0802AEAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end atkE3_jumpiffainted
-
- thumb_func_start sub_802AEB0
-sub_802AEB0: @ 802AEB0
- push {lr}
- ldr r0, _0802AEC4 @ =gUnknown_0300428C
- ldrb r0, [r0]
- cmp r0, 0x7
- bhi _0802AF4C
- lsls r0, 2
- ldr r1, _0802AEC8 @ =_0802AECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802AEC4: .4byte gUnknown_0300428C
-_0802AEC8: .4byte _0802AECC
- .align 2, 0
-_0802AECC:
- .4byte _0802AEEC
- .4byte _0802AEF8
- .4byte _0802AF04
- .4byte _0802AF10
- .4byte _0802AF1C
- .4byte _0802AF28
- .4byte _0802AF34
- .4byte _0802AF40
-_0802AEEC:
- ldr r1, _0802AEF4 @ =gUnknown_02024D1E
- movs r0, 0x2
- b _0802AF50
- .align 2, 0
-_0802AEF4: .4byte gUnknown_02024D1E
-_0802AEF8:
- ldr r1, _0802AF00 @ =gUnknown_02024D1E
- movs r0, 0x1
- b _0802AF50
- .align 2, 0
-_0802AF00: .4byte gUnknown_02024D1E
-_0802AF04:
- ldr r1, _0802AF0C @ =gUnknown_02024D1E
- movs r0, 0x1B
- b _0802AF50
- .align 2, 0
-_0802AF0C: .4byte gUnknown_02024D1E
-_0802AF10:
- ldr r1, _0802AF18 @ =gUnknown_02024D1E
- movs r0, 0x17
- b _0802AF50
- .align 2, 0
-_0802AF18: .4byte gUnknown_02024D1E
-_0802AF1C:
- ldr r1, _0802AF24 @ =gUnknown_02024D1E
- movs r0, 0x16
- b _0802AF50
- .align 2, 0
-_0802AF24: .4byte gUnknown_02024D1E
-_0802AF28:
- ldr r1, _0802AF30 @ =gUnknown_02024D1E
- movs r0, 0x18
- b _0802AF50
- .align 2, 0
-_0802AF30: .4byte gUnknown_02024D1E
-_0802AF34:
- ldr r1, _0802AF3C @ =gUnknown_02024D1E
- movs r0, 0x7
- b _0802AF50
- .align 2, 0
-_0802AF3C: .4byte gUnknown_02024D1E
-_0802AF40:
- ldr r1, _0802AF48 @ =gUnknown_02024D1E
- movs r0, 0x8
- b _0802AF50
- .align 2, 0
-_0802AF48: .4byte gUnknown_02024D1E
-_0802AF4C:
- ldr r1, _0802AF60 @ =gUnknown_02024D1E
- movs r0, 0x5
-_0802AF50:
- strb r0, [r1, 0x3]
- ldr r1, _0802AF64 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0802AF60: .4byte gUnknown_02024D1E
-_0802AF64: .4byte gUnknown_02024C10
- thumb_func_end sub_802AEB0
-
- thumb_func_start sub_802AF68
-sub_802AF68: @ 802AF68
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r7, 0
- ldr r0, _0802AFB4 @ =gBaseStats
- mov r9, r0
- ldr r1, _0802AFB8 @ =gPickupItems
- mov r8, r1
-_0802AF7A:
- movs r0, 0x64
- adds r4, r7, 0
- muls r4, r0
- ldr r0, _0802AFBC @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _0802AFC0
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x17]
- b _0802AFCA
- .align 2, 0
-_0802AFB4: .4byte gBaseStats
-_0802AFB8: .4byte gPickupItems
-_0802AFBC: .4byte gPlayerParty
-_0802AFC0:
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x16]
-_0802AFCA:
- adds r4, r7, 0x1
- cmp r0, 0x35
- bne _0802B032
- cmp r5, 0
- beq _0802B032
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- beq _0802B032
- cmp r6, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0802B032
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- mov r1, r8
- ldrh r0, [r1, 0x2]
- cmp r0, r3
- bgt _0802B020
- adds r1, 0x2
-_0802B012:
- adds r1, 0x4
- adds r2, 0x2
- cmp r2, 0x11
- bgt _0802B020
- ldrh r0, [r1]
- cmp r0, r3
- ble _0802B012
-_0802B020:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0802B04C @ =gPlayerParty
- adds r0, r1
- lsls r2, 1
- add r2, r8
- movs r1, 0xC
- bl SetMonData
-_0802B032:
- adds r7, r4, 0
- cmp r7, 0x5
- ble _0802AF7A
- ldr r1, _0802B050 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B04C: .4byte gPlayerParty
-_0802B050: .4byte gUnknown_02024C10
- thumb_func_end sub_802AF68
-
- thumb_func_start atkE6_castform_transform
-atkE6_castform_transform: @ 802B054
- push {r4,lr}
- ldr r4, _0802B0A8 @ =gUnknown_02024A60
- ldr r3, _0802B0AC @ =0x02000000
- ldr r1, _0802B0B0 @ =0x00016003
- adds r0, r3, r1
- ldrb r0, [r0]
- strb r0, [r4]
- ldr r1, _0802B0B4 @ =gBattleMons
- ldrb r2, [r4]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 17
- ands r0, r1
- cmp r0, 0
- beq _0802B086
- ldr r0, _0802B0B8 @ =0x0001609b
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x80
- orrs r0, r1
- strb r0, [r2]
-_0802B086:
- ldr r1, _0802B0B8 @ =0x0001609b
- adds r0, r3, r1
- ldrb r2, [r0]
- movs r0, 0
- movs r1, 0
- bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
- ldrb r0, [r4]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B0BC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0A8: .4byte gUnknown_02024A60
-_0802B0AC: .4byte 0x02000000
-_0802B0B0: .4byte 0x00016003
-_0802B0B4: .4byte gBattleMons
-_0802B0B8: .4byte 0x0001609b
-_0802B0BC: .4byte gUnknown_02024C10
- thumb_func_end atkE6_castform_transform
-
- thumb_func_start atkE7_castform_switch
-atkE7_castform_switch: @ 802B0C0
- push {r4,r5,lr}
- ldr r1, _0802B0F4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- ldr r5, _0802B0F8 @ =0x02000000
- ldr r1, _0802B0FC @ =0x00016003
- adds r0, r5, r1
- ldrb r0, [r0]
- bl castform_switch
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0802B0EC
- ldr r0, _0802B100 @ =gUnknown_081D977D
- bl b_push_move_exec
- subs r1, r4, 0x1
- ldr r2, _0802B104 @ =0x0001609b
- adds r0, r5, r2
- strb r1, [r0]
-_0802B0EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B0F4: .4byte gUnknown_02024C10
-_0802B0F8: .4byte 0x02000000
-_0802B0FC: .4byte 0x00016003
-_0802B100: .4byte gUnknown_081D977D
-_0802B104: .4byte 0x0001609b
- thumb_func_end atkE7_castform_switch
-
- thumb_func_start atkE8_settypebasedhalvers
-atkE8_settypebasedhalvers: @ 802B108
- push {r4,lr}
- movs r4, 0
- ldr r2, _0802B144 @ =gBattleMoves
- ldr r0, _0802B148 @ =gUnknown_02024BE6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xC9
- bne _0802B158
- ldr r1, _0802B14C @ =gUnknown_02024C98
- ldr r0, _0802B150 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r0, _0802B154 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- b _0802B180
- .align 2, 0
-_0802B144: .4byte gBattleMoves
-_0802B148: .4byte gUnknown_02024BE6
-_0802B14C: .4byte gUnknown_02024C98
-_0802B150: .4byte gUnknown_02024C07
-_0802B154: .4byte gUnknown_02024D1E
-_0802B158:
- ldr r1, _0802B18C @ =gUnknown_02024C98
- ldr r0, _0802B190 @ =gUnknown_02024C07
- ldrb r0, [r0]
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, [r2]
- movs r3, 0x80
- lsls r3, 10
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _0802B17C
- orrs r1, r3
- str r1, [r2]
- ldr r1, _0802B194 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- movs r4, 0x1
-_0802B17C:
- cmp r4, 0
- beq _0802B19C
-_0802B180:
- ldr r1, _0802B198 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B1B6
- .align 2, 0
-_0802B18C: .4byte gUnknown_02024C98
-_0802B190: .4byte gUnknown_02024C07
-_0802B194: .4byte gUnknown_02024D1E
-_0802B198: .4byte gUnknown_02024C10
-_0802B19C:
- ldr r3, _0802B1BC @ =gUnknown_02024C10
- 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]
-_0802B1B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B1BC: .4byte gUnknown_02024C10
- thumb_func_end atkE8_settypebasedhalvers
-
- thumb_func_start sub_802B1C0
-sub_802B1C0: @ 802B1C0
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0xD
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0802B276
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r2, 0x4D
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- bne _0802B276
- ldr r3, _0802B218 @ =word_2024DB8
- ldrb r0, [r3]
- ldr r2, _0802B21C @ =0x02000000
- cmp r0, 0
- beq _0802B202
- ldr r0, _0802B220 @ =0x0001601f
- adds r1, r2, r0
- movs r0, 0x2
- strb r0, [r1]
-_0802B202:
- ldrh r1, [r3]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0802B228
- ldr r0, _0802B224 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8B
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B218: .4byte word_2024DB8
-_0802B21C: .4byte 0x02000000
-_0802B220: .4byte 0x0001601f
-_0802B224: .4byte 0x0001601c
-_0802B228:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _0802B240
- ldr r0, _0802B23C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x85
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B23C: .4byte 0x0001601c
-_0802B240:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0802B258
- ldr r0, _0802B254 @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8A
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B254: .4byte 0x0001601c
-_0802B258:
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0802B270
- ldr r0, _0802B26C @ =0x0001601c
- adds r1, r2, r0
- movs r0, 0x8F
- strb r0, [r1]
- b _0802B276
- .align 2, 0
-_0802B26C: .4byte 0x0001601c
-_0802B270:
- ldr r1, _0802B284 @ =0x0001601c
- adds r0, r2, r1
- strb r3, [r0]
-_0802B276:
- ldr r1, _0802B288 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802B284: .4byte 0x0001601c
-_0802B288: .4byte gUnknown_02024C10
- thumb_func_end sub_802B1C0
-
- thumb_func_start atkEA_recycleitem
-atkEA_recycleitem: @ 802B28C
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802B2F0 @ =gUnknown_02024A60
- ldr r0, _0802B2F4 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r7]
- ldrb r2, [r7]
- lsls r1, r2, 1
- ldr r0, _0802B2F8 @ =0x020160cc
- adds r6, r1, r0
- ldrh r5, [r6]
- cmp r5, 0
- beq _0802B308
- ldr r4, _0802B2FC @ =gBattleMons
- movs r3, 0x58
- adds r0, r2, 0
- muls r0, r3
- adds r0, r4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- bne _0802B308
- ldr r1, _0802B300 @ =gUnknown_02024C04
- strh r5, [r1]
- strh r0, [r6]
- ldrb r0, [r7]
- muls r0, r3
- adds r0, r4
- ldrh r1, [r1]
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- muls r0, r3
- adds r1, r4, 0
- adds r1, 0x2E
- adds r0, r1
- str r0, [sp]
- movs r0, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl dp01_build_cmdbuf_x02_a_b_varargs
- ldrb r0, [r7]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B304 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B322
- .align 2, 0
-_0802B2F0: .4byte gUnknown_02024A60
-_0802B2F4: .4byte gUnknown_02024C07
-_0802B2F8: .4byte 0x020160cc
-_0802B2FC: .4byte gBattleMons
-_0802B300: .4byte gUnknown_02024C04
-_0802B304: .4byte gUnknown_02024C10
-_0802B308:
- ldr r3, _0802B32C @ =gUnknown_02024C10
- 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]
-_0802B322:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B32C: .4byte gUnknown_02024C10
- thumb_func_end atkEA_recycleitem
-
- thumb_func_start atkEB_settypetoterrain
-atkEB_settypetoterrain: @ 802B330
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802B3A0 @ =gBattleMons
- mov r8, r0
- ldr r7, _0802B3A4 @ =gUnknown_02024C07
- ldrb r0, [r7]
- movs r6, 0x58
- muls r0, r6
- mov r1, r8
- adds r3, r0, r1
- movs r0, 0x21
- adds r0, r3
- mov r12, r0
- ldr r5, _0802B3A8 @ =gTerrainToType
- ldr r4, _0802B3AC @ =gUnknown_0300428C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- adds r1, r2, 0
- cmp r0, r1
- beq _0802B3B8
- adds r0, r3, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, r1
- beq _0802B3B8
- mov r0, r12
- strb r2, [r0]
- ldrb r0, [r7]
- adds r1, r0, 0
- muls r1, r6
- add r1, r8
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- adds r1, 0x22
- strb r0, [r1]
- ldr r1, _0802B3B0 @ =gUnknown_030041C0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x3
- strb r0, [r1, 0x1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1, 0x2]
- movs r0, 0xFF
- strb r0, [r1, 0x3]
- ldr r1, _0802B3B4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802B3D2
- .align 2, 0
-_0802B3A0: .4byte gBattleMons
-_0802B3A4: .4byte gUnknown_02024C07
-_0802B3A8: .4byte gTerrainToType
-_0802B3AC: .4byte gUnknown_0300428C
-_0802B3B0: .4byte gUnknown_030041C0
-_0802B3B4: .4byte gUnknown_02024C10
-_0802B3B8:
- ldr r3, _0802B3DC @ =gUnknown_02024C10
- 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]
-_0802B3D2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B3DC: .4byte gUnknown_02024C10
- thumb_func_end atkEB_settypetoterrain
-
- thumb_func_start sub_802B3E0
-sub_802B3E0: @ 802B3E0
- push {r4,r5,lr}
- ldr r5, _0802B45C @ =gUnknown_02024C07
- ldrb r0, [r5]
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r4, _0802B460 @ =gUnknown_02024A60
- strb r0, [r4]
- ldr r0, _0802B464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802B490
- ldr r0, _0802B468 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802B46C @ =gBitTable
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802B490
- ldr r0, _0802B470 @ =gUnknown_02024C18
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802B490
- ldr r1, _0802B474 @ =gUnknown_02024C60
- lsls r0, r3, 1
- adds r0, r1
- ldrh r2, [r0]
- cmp r2, 0xE4
- bne _0802B490
- ldr r0, _0802B478 @ =gUnknown_02024A76
- adds r0, r3, r0
- movs r1, 0xB
- strb r1, [r0]
- ldr r0, _0802B47C @ =gUnknown_02024BE6
- strh r2, [r0]
- ldr r1, _0802B480 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- ldr r1, _0802B484 @ =0x02000000
- ldr r0, _0802B488 @ =0x00016002
- adds r2, r1, r0
- movs r0, 0x1
- strb r0, [r2]
- ldrb r0, [r5]
- ldr r2, _0802B48C @ =0x000160a7
- adds r1, r2
- strb r0, [r1]
- ldrb r0, [r4]
- strb r0, [r5]
- b _0802B4AA
- .align 2, 0
-_0802B45C: .4byte gUnknown_02024C07
-_0802B460: .4byte gUnknown_02024A60
-_0802B464: .4byte gUnknown_020239F8
-_0802B468: .4byte gUnknown_02024C0C
-_0802B46C: .4byte gBitTable
-_0802B470: .4byte gUnknown_02024C18
-_0802B474: .4byte gUnknown_02024C60
-_0802B478: .4byte gUnknown_02024A76
-_0802B47C: .4byte gUnknown_02024BE6
-_0802B480: .4byte gUnknown_02024C10
-_0802B484: .4byte 0x02000000
-_0802B488: .4byte 0x00016002
-_0802B48C: .4byte 0x000160a7
-_0802B490:
- ldr r3, _0802B4B0 @ =gUnknown_02024C10
- 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]
-_0802B4AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B4B0: .4byte gUnknown_02024C10
- thumb_func_end sub_802B3E0
-
- thumb_func_start sub_802B4B4
-sub_802B4B4: @ 802B4B4
- push {r4,r5,lr}
- ldr r1, _0802B4DC @ =gUnknown_02024C0A
- ldr r3, _0802B4E0 @ =gUnknown_02024C07
- ldrb r0, [r3]
- strb r0, [r1]
- ldr r2, _0802B4E4 @ =gUnknown_02024C08
- lsls r0, 24
- lsrs r0, 24
- adds r4, r1, 0
- ldrb r1, [r2]
- cmp r0, r1
- bne _0802B4F0
- ldr r0, _0802B4E8 @ =0x02000000
- ldr r5, _0802B4EC @ =0x00016003
- adds r1, r0, r5
- ldrb r1, [r1]
- strb r1, [r2]
- strb r1, [r3]
- b _0802B4FA
- .align 2, 0
-_0802B4DC: .4byte gUnknown_02024C0A
-_0802B4E0: .4byte gUnknown_02024C07
-_0802B4E4: .4byte gUnknown_02024C08
-_0802B4E8: .4byte 0x02000000
-_0802B4EC: .4byte 0x00016003
-_0802B4F0:
- ldr r0, _0802B510 @ =0x02000000
- ldr r3, _0802B514 @ =0x00016003
- adds r1, r0, r3
- ldrb r1, [r1]
- strb r1, [r2]
-_0802B4FA:
- ldrb r1, [r4]
- ldr r5, _0802B514 @ =0x00016003
- adds r0, r5
- strb r1, [r0]
- ldr r1, _0802B518 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B510: .4byte 0x02000000
-_0802B514: .4byte 0x00016003
-_0802B518: .4byte gUnknown_02024C10
- thumb_func_end sub_802B4B4
-
- thumb_func_start sub_802B51C
-sub_802B51C: @ 802B51C
- push {r4,lr}
- ldr r0, _0802B56C @ =gUnknown_02024C07
- ldrb r0, [r0]
- bl battle_side_get_owner
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802B570 @ =gUnknown_02024C80
- lsls r3, r0, 1
- adds r0, r3, r0
- lsls r0, 2
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- bne _0802B544
- ldrb r2, [r4, 0x1]
- cmp r2, 0
- beq _0802B58C
-_0802B544:
- ldr r2, _0802B574 @ =gUnknown_02024C7A
- adds r2, r3, r2
- ldrh r1, [r2]
- ldr r0, _0802B578 @ =0x0000fffe
- ands r0, r1
- movs r3, 0
- ldr r1, _0802B57C @ =0x0000fffd
- ands r0, r1
- strh r0, [r2]
- strb r3, [r4]
- strb r3, [r4, 0x1]
- ldr r0, _0802B580 @ =0x02000000
- ldr r2, _0802B584 @ =0x00016002
- adds r1, r0, r2
- movs r2, 0x1
- strb r2, [r1]
- ldr r3, _0802B588 @ =0x000160a1
- adds r0, r3
- b _0802B598
- .align 2, 0
-_0802B56C: .4byte gUnknown_02024C07
-_0802B570: .4byte gUnknown_02024C80
-_0802B574: .4byte gUnknown_02024C7A
-_0802B578: .4byte 0x0000fffe
-_0802B57C: .4byte 0x0000fffd
-_0802B580: .4byte 0x02000000
-_0802B584: .4byte 0x00016002
-_0802B588: .4byte 0x000160a1
-_0802B58C:
- ldr r0, _0802B5A8 @ =0x02000000
- ldr r3, _0802B5AC @ =0x00016002
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0802B5B0 @ =0x000160a1
- adds r0, r1
-_0802B598:
- strb r2, [r0]
- ldr r1, _0802B5B4 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B5A8: .4byte 0x02000000
-_0802B5AC: .4byte 0x00016002
-_0802B5B0: .4byte 0x000160a1
-_0802B5B4: .4byte gUnknown_02024C10
- thumb_func_end sub_802B51C
-
- thumb_func_start sub_802B5B8
-sub_802B5B8: @ 802B5B8
- push {r4-r7,lr}
- movs r4, 0
- ldr r0, _0802B5F8 @ =gUnknown_02024A64
- ldr r0, [r0]
- cmp r0, 0
- beq _0802B5C6
- b _0802B94E
-_0802B5C6:
- ldr r5, _0802B5FC @ =gUnknown_02024A60
- ldr r0, _0802B600 @ =gUnknown_02024C07
- ldrb r0, [r0]
- strb r0, [r5]
- ldr r6, _0802B604 @ =gUnknown_02024C08
- movs r1, 0x1
- eors r0, r1
- strb r0, [r6]
- ldr r0, _0802B608 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802B614
- movs r0, 0
- movs r1, 0x5
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B60C @ =gUnknown_02024C10
- ldr r0, _0802B610 @ =gUnknown_081D9F35
- b _0802B94C
- .align 2, 0
-_0802B5F8: .4byte gUnknown_02024A64
-_0802B5FC: .4byte gUnknown_02024A60
-_0802B600: .4byte gUnknown_02024C07
-_0802B604: .4byte gUnknown_02024C08
-_0802B608: .4byte gUnknown_020239F8
-_0802B60C: .4byte gUnknown_02024C10
-_0802B610: .4byte gUnknown_081D9F35
-_0802B614:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0802B63C
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldrb r0, [r5]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B634 @ =gUnknown_02024C10
- ldr r0, _0802B638 @ =gUnknown_081D9F00
- b _0802B94C
- .align 2, 0
-_0802B634: .4byte gUnknown_02024C10
-_0802B638: .4byte gUnknown_081D9F00
-_0802B63C:
- ldr r0, _0802B660 @ =gUnknown_02024C04
- ldrh r0, [r0]
- cmp r0, 0x5
- bne _0802B66C
- ldr r0, _0802B664 @ =0x02000000
- ldr r1, _0802B668 @ =0x00016089
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r0, r1, 8
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- b _0802B684
- .align 2, 0
-_0802B660: .4byte gUnknown_02024C04
-_0802B664: .4byte 0x02000000
-_0802B668: .4byte 0x00016089
-_0802B66C:
- ldr r3, _0802B6A0 @ =gBaseStats
- ldr r2, _0802B6A4 @ =gBattleMons
- ldrb r1, [r6]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r5, [r0, 0x8]
-_0802B684:
- ldr r2, _0802B6A8 @ =gUnknown_02024C04
- ldrh r0, [r2]
- cmp r0, 0x5
- bhi _0802B68E
- b _0802B784
-_0802B68E:
- subs r0, 0x6
- cmp r0, 0x6
- bls _0802B696
- b _0802B78E
-_0802B696:
- lsls r0, 2
- ldr r1, _0802B6AC @ =_0802B6B0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802B6A0: .4byte gBaseStats
-_0802B6A4: .4byte gBattleMons
-_0802B6A8: .4byte gUnknown_02024C04
-_0802B6AC: .4byte _0802B6B0
- .align 2, 0
-_0802B6B0:
- .4byte _0802B6CC
- .4byte _0802B6FC
- .4byte _0802B70E
- .4byte _0802B73C
- .4byte _0802B76C
- .4byte _0802B72E
- .4byte _0802B72E
-_0802B6CC:
- ldr r2, _0802B6F4 @ =gBattleMons
- ldr r0, _0802B6F8 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0x21
- ldrb r1, [r1]
- cmp r1, 0xB
- beq _0802B760
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0xB
- beq _0802B760
- cmp r1, 0x6
- beq _0802B760
- cmp r0, 0x6
- beq _0802B760
- b _0802B72E
- .align 2, 0
-_0802B6F4: .4byte gBattleMons
-_0802B6F8: .4byte gUnknown_02024C08
-_0802B6FC:
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0xA
- cmp r0, 0x5
- bne _0802B78E
- movs r4, 0x23
- b _0802B78E
-_0802B70E:
- ldr r2, _0802B734 @ =gBattleMons
- ldr r0, _0802B738 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x2A
- ldrb r1, [r0]
- cmp r1, 0x27
- bhi _0802B72E
- movs r0, 0x28
- subs r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bhi _0802B78E
-_0802B72E:
- movs r4, 0xA
- b _0802B78E
- .align 2, 0
-_0802B734: .4byte gBattleMons
-_0802B738: .4byte gUnknown_02024C08
-_0802B73C:
- ldr r2, _0802B764 @ =gBattleMons
- ldr r0, _0802B768 @ =gUnknown_02024C08
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- movs r4, 0xA
- cmp r0, 0
- beq _0802B78E
-_0802B760:
- movs r4, 0x1E
- b _0802B78E
- .align 2, 0
-_0802B764: .4byte gBattleMons
-_0802B768: .4byte gUnknown_02024C08
-_0802B76C:
- ldr r0, _0802B780 @ =gUnknown_030042E0
- ldrb r0, [r0, 0x13]
- adds r0, 0xA
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x28
- bls _0802B78E
- movs r4, 0x28
- b _0802B78E
- .align 2, 0
-_0802B780: .4byte gUnknown_030042E0
-_0802B784:
- ldr r1, _0802B7F4 @ =gBallCatchBonuses
- ldrh r0, [r2]
- subs r0, 0x2
- adds r0, r1
- ldrb r4, [r0]
-_0802B78E:
- adds r0, r5, 0
- muls r0, r4
- movs r1, 0xA
- bl __divsi3
- ldr r5, _0802B7F8 @ =gBattleMons
- ldr r1, _0802B7FC @ =gUnknown_02024C08
- ldrb r1, [r1]
- movs r7, 0x58
- adds r4, r1, 0
- muls r4, r7
- adds r3, r4, r5
- ldrh r2, [r3, 0x2C]
- lsls r1, r2, 1
- adds r1, r2
- ldrh r2, [r3, 0x28]
- lsls r2, 1
- subs r2, r1, r2
- muls r0, r2
- bl __divsi3
- adds r6, r0, 0
- adds r5, 0x4C
- adds r4, r5
- ldr r4, [r4]
- movs r0, 0x27
- ands r0, r4
- cmp r0, 0
- beq _0802B7CA
- lsls r6, 1
-_0802B7CA:
- ands r4, r7
- cmp r4, 0
- beq _0802B7DC
- lsls r0, r6, 4
- subs r0, r6
- movs r1, 0xA
- bl __udivsi3
- adds r6, r0, 0
-_0802B7DC:
- ldr r1, _0802B800 @ =gUnknown_02024C04
- ldrh r0, [r1]
- cmp r0, 0x5
- beq _0802B81C
- cmp r0, 0x1
- bne _0802B808
- ldr r0, _0802B804 @ =gUnknown_030042E0
- ldrb r1, [r0, 0x5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0, 0x5]
- b _0802B81C
- .align 2, 0
-_0802B7F4: .4byte gBallCatchBonuses
-_0802B7F8: .4byte gBattleMons
-_0802B7FC: .4byte gUnknown_02024C08
-_0802B800: .4byte gUnknown_02024C04
-_0802B804: .4byte gUnknown_030042E0
-_0802B808:
- ldr r0, _0802B860 @ =gUnknown_030042E0
- ldrh r1, [r1]
- adds r0, r1
- adds r1, r0, 0
- adds r1, 0x34
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _0802B81C
- adds r0, 0x1
- strb r0, [r1]
-_0802B81C:
- cmp r6, 0xFE
- bls _0802B880
- movs r0, 0
- movs r1, 0x4
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B864 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- ldr r1, _0802B868 @ =gUnknown_02024C10
- ldr r0, _0802B86C @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B870 @ =gUnknown_02024A6A
- ldr r0, _0802B874 @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B878 @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802B87C @ =gUnknown_02024C04
- movs r1, 0x26
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0802B90E
- b _0802B938
- .align 2, 0
-_0802B860: .4byte gUnknown_030042E0
-_0802B864: .4byte gUnknown_02024A60
-_0802B868: .4byte gUnknown_02024C10
-_0802B86C: .4byte gUnknown_081D9EC2
-_0802B870: .4byte gUnknown_02024A6A
-_0802B874: .4byte gUnknown_02024C08
-_0802B878: .4byte gEnemyParty
-_0802B87C: .4byte gUnknown_02024C04
-_0802B880:
- movs r0, 0xFF
- lsls r0, 16
- adds r1, r6, 0
- bl __udivsi3
- bl Sqrt
- lsls r0, 16
- lsrs r0, 16
- bl Sqrt
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _0802B8A8 @ =0x000ffff0
- adds r1, r6, 0
- bl __udivsi3
- adds r6, r0, 0
- movs r4, 0
- b _0802B8B2
- .align 2, 0
-_0802B8A8: .4byte 0x000ffff0
-_0802B8AC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0802B8B2:
- cmp r4, 0x3
- bhi _0802B8C2
- bl Random
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r6
- bcc _0802B8AC
-_0802B8C2:
- ldr r5, _0802B918 @ =gUnknown_02024C04
- ldrh r0, [r5]
- cmp r0, 0x1
- bne _0802B8CC
- movs r4, 0x4
-_0802B8CC:
- movs r0, 0
- adds r1, r4, 0
- bl dp01_build_cmdbuf_x0D_a
- ldr r0, _0802B91C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl dp01_battle_side_mark_buffer_for_execution
- cmp r4, 0x4
- bne _0802B944
- ldr r1, _0802B920 @ =gUnknown_02024C10
- ldr r0, _0802B924 @ =gUnknown_081D9EC2
- str r0, [r1]
- ldr r1, _0802B928 @ =gUnknown_02024A6A
- ldr r0, _0802B92C @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802B930 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- adds r2, r5, 0
- bl SetMonData
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802B938
-_0802B90E:
- ldr r1, _0802B934 @ =gUnknown_02024D1E
- movs r0, 0
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B918: .4byte gUnknown_02024C04
-_0802B91C: .4byte gUnknown_02024A60
-_0802B920: .4byte gUnknown_02024C10
-_0802B924: .4byte gUnknown_081D9EC2
-_0802B928: .4byte gUnknown_02024A6A
-_0802B92C: .4byte gUnknown_02024C08
-_0802B930: .4byte gEnemyParty
-_0802B934: .4byte gUnknown_02024D1E
-_0802B938:
- ldr r1, _0802B940 @ =gUnknown_02024D1E
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0802B94E
- .align 2, 0
-_0802B940: .4byte gUnknown_02024D1E
-_0802B944:
- ldr r0, _0802B954 @ =gUnknown_02024D1E
- strb r4, [r0, 0x5]
- ldr r1, _0802B958 @ =gUnknown_02024C10
- ldr r0, _0802B95C @ =gUnknown_081D9F0A
-_0802B94C:
- str r0, [r1]
-_0802B94E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B954: .4byte gUnknown_02024D1E
-_0802B958: .4byte gUnknown_02024C10
-_0802B95C: .4byte gUnknown_081D9F0A
- thumb_func_end sub_802B5B8
-
- thumb_func_start sub_802B960
-sub_802B960: @ 802B960
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _0802B9C8 @ =gUnknown_02024A6A
- mov r9, r0
- ldr r5, _0802B9CC @ =gUnknown_02024C07
- ldrb r0, [r5]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- movs r1, 0x64
- mov r8, r1
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- ldr r6, _0802B9D0 @ =gEnemyParty
- adds r0, r6
- bl GiveMonToPlayer
- ldr r2, _0802B9D4 @ =gUnknown_030042E0
- ldr r1, _0802B9D8 @ =gBattleMons
- ldrb r0, [r5]
- eors r4, r0
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x28]
- lsls r4, 1
- add r4, r9
- ldrh r0, [r4]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- adds r2, 0x2A
- movs r1, 0x2
- bl GetMonData
- ldr r1, _0802B9DC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802B9C8: .4byte gUnknown_02024A6A
-_0802B9CC: .4byte gUnknown_02024C07
-_0802B9D0: .4byte gEnemyParty
-_0802B9D4: .4byte gUnknown_030042E0
-_0802B9D8: .4byte gBattleMons
-_0802B9DC: .4byte gUnknown_02024C10
- thumb_func_end sub_802B960
-
- thumb_func_start sub_802B9E0
-sub_802B9E0: @ 802B9E0
- push {r4-r6,lr}
- ldr r4, _0802BA20 @ =gBattleMons
- ldr r6, _0802BA24 @ =gUnknown_02024C08
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0802BA2C
- ldr r3, _0802BA28 @ =gUnknown_02024C10
- 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 _0802BA82
- .align 2, 0
-_0802BA20: .4byte gBattleMons
-_0802BA24: .4byte gUnknown_02024C08
-_0802BA28: .4byte gUnknown_02024C10
-_0802BA2C:
- ldrb r0, [r6]
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl sub_8090D90
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r0, [r0]
- cmp r0, 0xC9
- bne _0802BA5C
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x1C]
-_0802BA5C:
- ldrb r0, [r6]
- adds r2, r0, 0
- muls r2, r5
- adds r0, r2, r4
- ldrh r1, [r0]
- movs r0, 0x9A
- lsls r0, 1
- cmp r1, r0
- bne _0802BA7A
- ldr r0, _0802BA88 @ =gSaveBlock2
- adds r1, r4, 0
- adds r1, 0x48
- adds r1, r2, r1
- ldr r1, [r1]
- str r1, [r0, 0x20]
-_0802BA7A:
- ldr r1, _0802BA8C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0802BA82:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BA88: .4byte gSaveBlock2
-_0802BA8C: .4byte gUnknown_02024C10
- thumb_func_end sub_802B9E0
-
- thumb_func_start sub_802BA90
-sub_802BA90: @ 802BA90
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r7, _0802BAA8 @ =gUnknown_02024D1E
- ldrb r1, [r7]
- cmp r1, 0x1
- beq _0802BAC6
- cmp r1, 0x1
- bgt _0802BAAC
- cmp r1, 0
- beq _0802BAB8
- b _0802BBC4
- .align 2, 0
-_0802BAA8: .4byte gUnknown_02024D1E
-_0802BAAC:
- cmp r1, 0x2
- beq _0802BB10
- cmp r1, 0x3
- bne _0802BAB6
- b _0802BBB0
-_0802BAB6:
- b _0802BBC4
-_0802BAB8:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- b _0802BB6E
-_0802BAC6:
- ldr r0, _0802BB04 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r4, _0802BB08 @ =gBattleMons
- ldr r6, _0802BB0C @ =gUnknown_02024C08
- ldrb r0, [r6]
- movs r5, 0x58
- muls r0, r5
- adds r0, r4
- ldrh r0, [r0]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r6]
- adds r2, r1, 0
- muls r2, r5
- adds r1, r4, 0
- adds r1, 0x54
- adds r1, r2, r1
- ldr r1, [r1]
- adds r4, 0x48
- adds r2, r4
- ldr r2, [r2]
- bl sub_809070C
- strb r0, [r7, 0x1]
- b _0802BB72
- .align 2, 0
-_0802BB04: .4byte gPaletteFade
-_0802BB08: .4byte gBattleMons
-_0802BB0C: .4byte gUnknown_02024C08
-_0802BB10:
- ldr r0, _0802BB7C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r0, _0802BB80 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BB84 @ =sub_800F808
- cmp r1, r0
- bne _0802BBC4
- ldr r2, _0802BB88 @ =gTasks
- ldrb r1, [r7, 0x1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r4, [r0, 0x4]
- cmp r4, 0
- bne _0802BBC4
- ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building
- ldr r1, _0802BB90 @ =0x06008000
- bl LZDecompressVram
- ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building
- ldr r1, _0802BB98 @ =0x0600d000
- bl LZDecompressVram
- ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r1, _0802BBA0 @ =REG_BG3CNT
- ldr r2, _0802BBA4 @ =0x00005a0b
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0802BBA8 @ =gUnknown_030041B0
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0802BBAC @ =0x0000fffc
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
-_0802BB6E:
- bl BeginNormalPaletteFade
-_0802BB72:
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _0802BBC4
- .align 2, 0
-_0802BB7C: .4byte gPaletteFade
-_0802BB80: .4byte gMain
-_0802BB84: .4byte sub_800F808
-_0802BB88: .4byte gTasks
-_0802BB8C: .4byte gBattleTerrainTiles_Building
-_0802BB90: .4byte 0x06008000
-_0802BB94: .4byte gBattleTerrainTilemap_Building
-_0802BB98: .4byte 0x0600d000
-_0802BB9C: .4byte gBattleTerrainPalette_BattleTower
-_0802BBA0: .4byte REG_BG3CNT
-_0802BBA4: .4byte 0x00005a0b
-_0802BBA8: .4byte gUnknown_030041B0
-_0802BBAC: .4byte 0x0000fffc
-_0802BBB0:
- ldr r0, _0802BBCC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BBC4
- ldr r1, _0802BBD0 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
-_0802BBC4:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BBCC: .4byte gPaletteFade
-_0802BBD0: .4byte gUnknown_02024C10
- thumb_func_end sub_802BA90
-
- thumb_func_start sub_802BBD4
-sub_802BBD4: @ 802BBD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- mov r2, r12
- cmp r2, r7
- bgt _0802BC5A
- lsls r1, r6, 1
- ldr r0, _0802BC20 @ =0x0600c000
- adds r1, r0
- mov r9, r1
-_0802BC06:
- adds r1, r6, 0
- adds r0, r2, 0x1
- mov r10, r0
- cmp r1, r5
- bgt _0802BC54
- lsls r0, r2, 6
- mov r4, r9
- adds r3, r4, r0
-_0802BC16:
- cmp r2, r12
- bne _0802BC28
- ldr r0, _0802BC24 @ =0x00001022
- b _0802BC36
- .align 2, 0
-_0802BC20: .4byte 0x0600c000
-_0802BC24: .4byte 0x00001022
-_0802BC28:
- cmp r2, r7
- bne _0802BC34
- ldr r0, _0802BC30 @ =0x00001028
- b _0802BC36
- .align 2, 0
-_0802BC30: .4byte 0x00001028
-_0802BC34:
- ldr r0, _0802BC68 @ =0x00001025
-_0802BC36:
- cmp r1, r6
- beq _0802BC42
- adds r0, 0x1
- cmp r1, r5
- bne _0802BC42
- adds r0, 0x1
-_0802BC42:
- mov r4, r8
- cmp r4, 0
- beq _0802BC4A
- movs r0, 0
-_0802BC4A:
- strh r0, [r3]
- adds r3, 0x2
- adds r1, 0x1
- cmp r1, r5
- ble _0802BC16
-_0802BC54:
- mov r2, r10
- cmp r2, r7
- ble _0802BC06
-_0802BC5A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC68: .4byte 0x00001025
- thumb_func_end sub_802BBD4
-
- thumb_func_start sub_802BC6C
-sub_802BC6C: @ 802BC6C
- push {lr}
- ldr r0, _0802BC88 @ =gUnknown_02024D1E
- ldrb r1, [r0, 0x1]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC8
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_0802BC88: .4byte gUnknown_02024D1E
- thumb_func_end sub_802BC6C
-
- thumb_func_start nullsub_6
-nullsub_6: @ 802BC8C
- bx lr
- thumb_func_end nullsub_6
-
- thumb_func_start atkF3_receive_new_pokemon_maybe
-atkF3_receive_new_pokemon_maybe: @ 802BC90
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r0, _0802BCB4 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x4
- bls _0802BCA8
- b _0802BEDA
-_0802BCA8:
- lsls r0, r1, 2
- ldr r1, _0802BCB8 @ =_0802BCBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802BCB4: .4byte gUnknown_02024D1E
-_0802BCB8: .4byte _0802BCBC
- .align 2, 0
-_0802BCBC:
- .4byte _0802BCD0
- .4byte _0802BCEC
- .4byte _0802BD84
- .4byte _0802BE50
- .4byte _0802BEA4
-_0802BCD0:
- bl sub_8023A80
- ldr r0, _0802BCE8 @ =gUnknown_02024D1E
- ldrb r1, [r0]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r0]
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _0802BEDA
- .align 2, 0
-_0802BCE8: .4byte gUnknown_02024D1E
-_0802BCEC:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802BD10
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0802BD10
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD10:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD36
- ldr r4, _0802BD64 @ =gUnknown_02024D1E
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _0802BD36
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_0802BD36:
- ldr r0, _0802BD60 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802BD68
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD64 @ =gUnknown_02024D1E
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0802BD7A
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- bl BeginFastPaletteFade
- b _0802BEDA
- .align 2, 0
-_0802BD60: .4byte gMain
-_0802BD64: .4byte gUnknown_02024D1E
-_0802BD68:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802BD72
- b _0802BEDA
-_0802BD72:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802BD80 @ =gUnknown_02024D1E
-_0802BD7A:
- movs r0, 0x4
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BD80: .4byte gUnknown_02024D1E
-_0802BD84:
- ldr r0, _0802BE34 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802BD92
- b _0802BEDA
-_0802BD92:
- ldr r7, _0802BE38 @ =gUnknown_02024A6A
- ldr r0, _0802BE3C @ =gUnknown_02024C07
- mov r10, r0
- ldrb r0, [r0]
- movs r4, 0x1
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _0802BE40 @ =gEnemyParty
- mov r8, r1
- add r0, r8
- movs r1, 0x2
- ldr r2, _0802BE44 @ =0x02016079
- bl GetMonData
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0xB
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- mov r1, r10
- ldrb r0, [r1]
- eors r0, r4
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- bl GetMonGender
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- ldrb r0, [r1]
- eors r4, r0
- lsls r4, 1
- adds r4, r7
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- movs r1, 0
- movs r2, 0
- bl GetMonData
- str r0, [sp]
- ldr r0, _0802BE48 @ =sub_800F808
- str r0, [sp, 0x4]
- movs r0, 0x2
- ldr r1, _0802BE44 @ =0x02016079
- adds r2, r6, 0
- adds r3, r5, 0
- bl DoNamingScreen
- ldr r1, _0802BE4C @ =gUnknown_02024D1E
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BE34: .4byte gPaletteFade
-_0802BE38: .4byte gUnknown_02024A6A
-_0802BE3C: .4byte gUnknown_02024C07
-_0802BE40: .4byte gEnemyParty
-_0802BE44: .4byte 0x02016079
-_0802BE48: .4byte sub_800F808
-_0802BE4C: .4byte gUnknown_02024D1E
-_0802BE50:
- ldr r0, _0802BE88 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802BE8C @ =sub_800F808
- cmp r1, r0
- bne _0802BEDA
- ldr r0, _0802BE90 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802BEDA
- ldr r2, _0802BE94 @ =gUnknown_02024A6A
- ldr r0, _0802BE98 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x1
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802BE9C @ =gEnemyParty
- adds r0, r1
- ldr r2, _0802BEA0 @ =0x02016079
- movs r1, 0x2
- bl SetMonData
- b _0802BEC0
- .align 2, 0
-_0802BE88: .4byte gMain
-_0802BE8C: .4byte sub_800F808
-_0802BE90: .4byte gPaletteFade
-_0802BE94: .4byte gUnknown_02024A6A
-_0802BE98: .4byte gUnknown_02024C07
-_0802BE9C: .4byte gEnemyParty
-_0802BEA0: .4byte 0x02016079
-_0802BEA4:
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _0802BEC0
- ldr r1, _0802BEBC @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
- b _0802BEDA
- .align 2, 0
-_0802BEBC: .4byte gUnknown_02024C10
-_0802BEC0:
- ldr r3, _0802BEEC @ =gUnknown_02024C10
- 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]
-_0802BEDA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802BEEC: .4byte gUnknown_02024C10
- thumb_func_end atkF3_receive_new_pokemon_maybe
-
- thumb_func_start sub_802BEF0
-sub_802BEF0: @ 802BEF0
- ldr r2, _0802BF10 @ =gBattleMons
- ldr r0, _0802BF14 @ =gUnknown_02024C07
- ldrb r1, [r0]
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldr r0, _0802BF18 @ =gUnknown_02024BEC
- ldr r2, [r0]
- ldrh r0, [r1, 0x28]
- subs r0, r2
- strh r0, [r1, 0x28]
- ldr r1, _0802BF1C @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF10: .4byte gBattleMons
-_0802BF14: .4byte gUnknown_02024C07
-_0802BF18: .4byte gUnknown_02024BEC
-_0802BF1C: .4byte gUnknown_02024C10
- thumb_func_end sub_802BEF0
-
- thumb_func_start sub_802BF20
-sub_802BF20: @ 802BF20
- ldr r1, _0802BF3C @ =gBattleMons
- ldr r0, _0802BF40 @ =gUnknown_02024C07
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x4C
- adds r0, r1
- movs r1, 0
- str r1, [r0]
- ldr r1, _0802BF44 @ =gUnknown_02024C10
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_0802BF3C: .4byte gBattleMons
-_0802BF40: .4byte gUnknown_02024C07
-_0802BF44: .4byte gUnknown_02024C10
- thumb_func_end sub_802BF20
-
- thumb_func_start sub_802BF48
-sub_802BF48: @ 802BF48
- ldr r1, _0802BF50 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF50: .4byte gUnknown_02024A7F
- thumb_func_end sub_802BF48
-
- thumb_func_start sub_802BF54
-sub_802BF54: @ 802BF54
- ldr r1, _0802BF64 @ =gUnknown_02024A7F
- movs r0, 0xC
- strb r0, [r1]
- ldr r1, _0802BF68 @ =gUnknown_02024A7E
- ldr r0, _0802BF6C @ =gUnknown_02024A68
- ldrb r0, [r0]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF64: .4byte gUnknown_02024A7F
-_0802BF68: .4byte gUnknown_02024A7E
-_0802BF6C: .4byte gUnknown_02024A68
- thumb_func_end sub_802BF54
-
- thumb_func_start nullsub_91
-nullsub_91: @ 802BF70
- bx lr
- thumb_func_end nullsub_91
-
- thumb_func_start sub_802BF74
-sub_802BF74: @ 802BF74
- ldr r1, _0802BF8C @ =gUnknown_03004330
- ldr r0, _0802BF90 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802BF94 @ =sub_802C014
- str r1, [r0]
- ldr r1, _0802BF98 @ =gUnknown_02024E6D
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0802BF8C: .4byte gUnknown_03004330
-_0802BF90: .4byte gUnknown_02024A60
-_0802BF94: .4byte sub_802C014
-_0802BF98: .4byte gUnknown_02024E6D
- thumb_func_end sub_802BF74
-
- thumb_func_start dp01_tbl1_exec_completed
-dp01_tbl1_exec_completed: @ 802BF9C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0802BFDC @ =gUnknown_03004330
- ldr r4, _0802BFE0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802BFE4 @ =sub_802C014
- str r1, [r0]
- ldr r0, _0802BFE8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802BFF0
- 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, _0802BFEC @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0802C002
- .align 2, 0
-_0802BFDC: .4byte gUnknown_03004330
-_0802BFE0: .4byte gUnknown_02024A60
-_0802BFE4: .4byte sub_802C014
-_0802BFE8: .4byte gUnknown_020239F8
-_0802BFEC: .4byte gUnknown_02023A60
-_0802BFF0:
- ldr r2, _0802C00C @ =gUnknown_02024A64
- ldr r1, _0802C010 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0802C002:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C00C: .4byte gUnknown_02024A64
-_0802C010: .4byte gBitTable
- thumb_func_end dp01_tbl1_exec_completed
-
- thumb_func_start sub_802C014
-sub_802C014: @ 802C014
- push {lr}
- ldr r2, _0802C048 @ =gUnknown_02024A64
- ldr r1, _0802C04C @ =gBitTable
- ldr r0, _0802C050 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802C060
- ldr r0, _0802C054 @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0802C05C
- ldr r0, _0802C058 @ =gUnknown_081FAD98
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0802C060
- .align 2, 0
-_0802C048: .4byte gUnknown_02024A64
-_0802C04C: .4byte gBitTable
-_0802C050: .4byte gUnknown_02024A60
-_0802C054: .4byte gUnknown_02023A60
-_0802C058: .4byte gUnknown_081FAD98
-_0802C05C:
- bl dp01_tbl1_exec_completed
-_0802C060:
- pop {r0}
- bx r0
- thumb_func_end sub_802C014
-
- thumb_func_start bx_0802E404
-bx_0802E404: @ 802C064
- push {lr}
- ldr r2, _0802C08C @ =gSprites
- ldr r1, _0802C090 @ =gUnknown_02024BE0
- ldr r0, _0802C094 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0802C086
- bl dp01_tbl1_exec_completed
-_0802C086:
- pop {r0}
- bx r0
- .align 2, 0
-_0802C08C: .4byte gSprites
-_0802C090: .4byte gUnknown_02024BE0
-_0802C094: .4byte gUnknown_02024A60
- thumb_func_end bx_0802E404
-
- thumb_func_start sub_802C098
-sub_802C098: @ 802C098
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _0802C0FC @ =gUnknown_02023A60
- ldr r4, _0802C100 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r2, r0, 9
- adds r1, r7, 0x2
- adds r1, r2, r1
- ldrb r5, [r1]
- adds r1, r7, 0x3
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r5, r1
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldr r0, _0802C104 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C13E
- movs r0, 0x5
- bl PlaySE
- bl sub_814A7FC
- ldr r1, _0802C108 @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0802C11C
- cmp r0, 0x1
- bgt _0802C10C
- cmp r0, 0
- beq _0802C116
- b _0802C138
- .align 2, 0
-_0802C0FC: .4byte gUnknown_02023A60
-_0802C100: .4byte gUnknown_02024A60
-_0802C104: .4byte gMain
-_0802C108: .4byte gUnknown_02024E60
-_0802C10C:
- cmp r0, 0x2
- beq _0802C122
- cmp r0, 0x3
- beq _0802C12E
- b _0802C138
-_0802C116:
- movs r0, 0x1
- movs r1, 0
- b _0802C126
-_0802C11C:
- movs r0, 0x1
- movs r1, 0x1
- b _0802C126
-_0802C122:
- movs r0, 0x1
- movs r1, 0x2
-_0802C126:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _0802C138
-_0802C12E:
- movs r0, 0x1
- movs r1, 0x3
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_0802C138:
- bl dp01_tbl1_exec_completed
- b _0802C2AC
-_0802C13E:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802C178
- ldr r5, _0802C174 @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C158
- b _0802C2AC
-_0802C158:
- 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 _0802C200
- .align 2, 0
-_0802C174: .4byte gUnknown_02024E60
-_0802C178:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802C1B0
- ldr r5, _0802C1AC @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C192
- b _0802C2AC
-_0802C192:
- 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 _0802C200
- .align 2, 0
-_0802C1AC: .4byte gUnknown_02024E60
-_0802C1B0:
- movs r0, 0x40
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- beq _0802C1D0
- ldr r5, _0802C1CC @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- b _0802C1E8
- .align 2, 0
-_0802C1CC: .4byte gUnknown_02024E60
-_0802C1D0:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802C218
- ldr r5, _0802C214 @ =gUnknown_02024E60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0802C2AC
-_0802C1E8:
- 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
-_0802C200:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0802C2AC
- .align 2, 0
-_0802C214: .4byte gUnknown_02024E60
-_0802C218:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C2A0
- ldr r6, _0802C294 @ =gUnknown_020239F8
- ldrh r1, [r6]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- ldrb r0, [r4]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0802C2AC
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0802C298 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _0802C29C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0802C2AC
- ldrh r1, [r6]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- bne _0802C2AC
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, r7, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802C278
- cmp r5, 0xC
- bhi _0802C2AC
- adds r0, r5, 0
- movs r1, 0x1
- bl AddBagItem
-_0802C278:
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl1_exec_completed
- bl sub_814A7FC
- b _0802C2AC
- .align 2, 0
-_0802C294: .4byte gUnknown_020239F8
-_0802C298: .4byte gUnknown_02024C0C
-_0802C29C: .4byte gBitTable
-_0802C2A0:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0802C2AC
- bl sub_804454C
-_0802C2AC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802C098
-
- thumb_func_start unref_sub_802C2B8
-unref_sub_802C2B8: @ 802C2B8
- push {r4,lr}
- ldr r4, _0802C2E0 @ =gUnknown_02024A60
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- ldr r1, _0802C2E4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C2E8 @ =sub_802C2EC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C2E0: .4byte gUnknown_02024A60
-_0802C2E4: .4byte gUnknown_03004330
-_0802C2E8: .4byte sub_802C2EC
- thumb_func_end unref_sub_802C2B8
-
- thumb_func_start sub_802C2EC
-sub_802C2EC: @ 802C2EC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _0802C384 @ =gUnknown_081FAE7C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldr r0, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r0]
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x1
- bl dp11b_obj_instanciate
- movs r4, 0
- ldr r0, _0802C38C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C32E
-_0802C312:
- ldr r0, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r0]
- cmp r4, r0
- beq _0802C324
- lsls r0, r4, 24
- lsrs r0, 24
- movs r1, 0x1
- bl dp11b_obj_free
-_0802C324:
- adds r4, 0x1
- ldr r0, _0802C38C @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r4, r0
- blt _0802C312
-_0802C32E:
- ldr r0, _0802C390 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802C3A8
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C394 @ =gSprites
- ldr r1, _0802C398 @ =gUnknown_02024BE0
- ldr r4, _0802C388 @ =gUnknown_03004344
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C39C @ =sub_8010574
- str r1, [r0]
- ldr r1, _0802C3A0 @ =gUnknown_02024E64
- ldr r0, _0802C3A4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldrb r0, [r4]
- lsls r0, 8
- orrs r2, r0
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- bl dp01_tbl1_exec_completed
- b _0802C658
- .align 2, 0
-_0802C384: .4byte gUnknown_081FAE7C
-_0802C388: .4byte gUnknown_03004344
-_0802C38C: .4byte gUnknown_02024A68
-_0802C390: .4byte gMain
-_0802C394: .4byte gSprites
-_0802C398: .4byte gUnknown_02024BE0
-_0802C39C: .4byte sub_8010574
-_0802C3A0: .4byte gUnknown_02024E64
-_0802C3A4: .4byte gUnknown_02024A60
-_0802C3A8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C41C
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C400 @ =gSprites
- ldr r1, _0802C404 @ =gUnknown_02024BE0
- ldr r5, _0802C408 @ =gUnknown_03004344
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C40C @ =sub_8010574
- str r1, [r0]
- ldr r1, _0802C410 @ =gUnknown_03004330
- ldr r4, _0802C414 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C418 @ =sub_802C68C
- str r1, [r0]
- ldrb r0, [r4]
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x1
- bl dp11b_obj_instanciate
- ldrb r0, [r5]
- movs r1, 0x1
- bl dp11b_obj_free
- b _0802C658
- .align 2, 0
-_0802C400: .4byte gSprites
-_0802C404: .4byte gUnknown_02024BE0
-_0802C408: .4byte gUnknown_03004344
-_0802C40C: .4byte sub_8010574
-_0802C410: .4byte gUnknown_03004330
-_0802C414: .4byte gUnknown_02024A60
-_0802C418: .4byte sub_802C68C
-_0802C41C:
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- bne _0802C426
- b _0802C540
-_0802C426:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C458 @ =gSprites
- ldr r1, _0802C45C @ =gUnknown_02024BE0
- ldr r3, _0802C460 @ =gUnknown_03004344
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C464 @ =sub_8010574
- str r1, [r0]
- adds r5, r3, 0
-_0802C448:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _0802C472
- .align 2, 0
-_0802C458: .4byte gSprites
-_0802C45C: .4byte gUnknown_02024BE0
-_0802C460: .4byte gUnknown_03004344
-_0802C464: .4byte sub_8010574
-_0802C468:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0802C478
- mov r2, sp
- adds r0, r2, r4
-_0802C472:
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802C468
-_0802C478:
- subs r4, 0x1
- cmp r4, 0
- bge _0802C480
- movs r4, 0x3
-_0802C480:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldr r1, _0802C4B4 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C478
- movs r4, 0
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802C4FE
- cmp r0, 0x1
- bgt _0802C4B8
- cmp r0, 0
- beq _0802C4C2
- b _0802C500
- .align 2, 0
-_0802C4B4: .4byte gUnknown_02024A68
-_0802C4B8:
- cmp r0, 0x2
- beq _0802C4C2
- cmp r0, 0x3
- beq _0802C4FE
- b _0802C500
-_0802C4C2:
- ldr r2, _0802C520 @ =gUnknown_02024A60
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _0802C4FE
- ldr r1, _0802C524 @ =gUnknown_02024A6A
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802C528 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802C52C @ =gUnknown_02024E64
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, _0802C530 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C500
-_0802C4FE:
- adds r4, 0x1
-_0802C500:
- ldr r0, _0802C534 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802C538 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _0802C53C @ =gUnknown_03004344
- cmp r1, 0
- beq _0802C518
- movs r4, 0
-_0802C518:
- cmp r4, 0
- beq _0802C448
- b _0802C640
- .align 2, 0
-_0802C520: .4byte gUnknown_02024A60
-_0802C524: .4byte gUnknown_02024A6A
-_0802C528: .4byte gPlayerParty
-_0802C52C: .4byte gUnknown_02024E64
-_0802C530: .4byte gBattleMoves
-_0802C534: .4byte gUnknown_02024C0C
-_0802C538: .4byte gBitTable
-_0802C53C: .4byte gUnknown_03004344
-_0802C540:
- movs r0, 0x90
- ands r0, r1
- cmp r0, 0
- bne _0802C54A
- b _0802C658
-_0802C54A:
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0802C57C @ =gSprites
- ldr r1, _0802C580 @ =gUnknown_02024BE0
- ldr r3, _0802C584 @ =gUnknown_03004344
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802C588 @ =sub_8010574
- str r1, [r0]
- adds r5, r3, 0
-_0802C56C:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r1, r0, 24
- movs r4, 0
- mov r0, sp
- b _0802C596
- .align 2, 0
-_0802C57C: .4byte gSprites
-_0802C580: .4byte gUnknown_02024BE0
-_0802C584: .4byte gUnknown_03004344
-_0802C588: .4byte sub_8010574
-_0802C58C:
- adds r4, 0x1
- cmp r4, 0x3
- bgt _0802C59C
- mov r2, sp
- adds r0, r2, r4
-_0802C596:
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802C58C
-_0802C59C:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0802C5A4
- movs r4, 0
-_0802C5A4:
- mov r1, sp
- adds r0, r1, r4
- ldrb r0, [r0]
- bl battle_get_side_with_given_state
- strb r0, [r5]
- ldr r1, _0802C5D8 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- beq _0802C59C
- movs r4, 0
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802C622
- cmp r0, 0x1
- bgt _0802C5DC
- cmp r0, 0
- beq _0802C5E6
- b _0802C624
- .align 2, 0
-_0802C5D8: .4byte gUnknown_02024A68
-_0802C5DC:
- cmp r0, 0x2
- beq _0802C5E6
- cmp r0, 0x3
- beq _0802C622
- b _0802C624
-_0802C5E6:
- ldr r2, _0802C660 @ =gUnknown_02024A60
- ldrb r0, [r2]
- ldrb r1, [r5]
- cmp r0, r1
- bne _0802C622
- ldr r1, _0802C664 @ =gUnknown_02024A6A
- ldrb r2, [r2]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802C668 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802C66C @ =gUnknown_02024E64
- adds r2, r1
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- ldr r2, _0802C670 @ =gBattleMoves
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802C624
-_0802C622:
- adds r4, 0x1
-_0802C624:
- ldr r0, _0802C674 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _0802C678 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _0802C67C @ =gUnknown_03004344
- cmp r1, 0
- beq _0802C63C
- movs r4, 0
-_0802C63C:
- cmp r4, 0
- beq _0802C56C
-_0802C640:
- ldr r2, _0802C680 @ =gSprites
- ldr r1, _0802C684 @ =gUnknown_02024BE0
- 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, _0802C688 @ =sub_8010520
- str r1, [r0]
-_0802C658:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802C660: .4byte gUnknown_02024A60
-_0802C664: .4byte gUnknown_02024A6A
-_0802C668: .4byte gPlayerParty
-_0802C66C: .4byte gUnknown_02024E64
-_0802C670: .4byte gBattleMoves
-_0802C674: .4byte gUnknown_02024C0C
-_0802C678: .4byte gBitTable
-_0802C67C: .4byte gUnknown_03004344
-_0802C680: .4byte gSprites
-_0802C684: .4byte gUnknown_02024BE0
-_0802C688: .4byte sub_8010520
- thumb_func_end sub_802C2EC
-
- thumb_func_start sub_802C68C
-sub_802C68C: @ 802C68C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r0, 0
- mov r8, r0
- ldr r7, _0802C6E4 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 9
- ldr r1, _0802C6E8 @ =gUnknown_02023A64
- adds r6, r0, r1
- ldr r0, _0802C6EC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r4, r5, 0
- ands r4, r1
- cmp r4, 0
- bne _0802C6B2
- b _0802C864
-_0802C6B2:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802C6F0 @ =gUnknown_02024E64
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, r6, r0
- ldrh r0, [r1]
- cmp r0, 0xAE
- bne _0802C6F4
- ldrb r0, [r6, 0x12]
- movs r4, 0
- cmp r0, 0x7
- beq _0802C702
- ldrb r1, [r6, 0x13]
- movs r0, 0x7
- eors r1, r0
- negs r0, r1
- orrs r0, r1
- asrs r4, r0, 31
- movs r0, 0x10
- ands r4, r0
- b _0802C702
- .align 2, 0
-_0802C6E4: .4byte gUnknown_02024A60
-_0802C6E8: .4byte gUnknown_02023A64
-_0802C6EC: .4byte gMain
-_0802C6F0: .4byte gUnknown_02024E64
-_0802C6F4:
- ldr r2, _0802C714 @ =gBattleMoves
- ldrh r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r4, [r0, 0x6]
-_0802C702:
- movs r0, 0x10
- ands r0, r4
- cmp r0, 0
- beq _0802C720
- ldr r0, _0802C718 @ =gUnknown_03004344
- ldr r1, _0802C71C @ =gUnknown_02024A60
- ldrb r1, [r1]
- strb r1, [r0]
- b _0802C73A
- .align 2, 0
-_0802C714: .4byte gBattleMoves
-_0802C718: .4byte gUnknown_03004344
-_0802C71C: .4byte gUnknown_02024A60
-_0802C720:
- ldr r0, _0802C764 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r2, 0x1
- movs r0, 0x1
- ands r0, r1
- eors r0, r2
- bl battle_get_side_with_given_state
- ldr r1, _0802C768 @ =gUnknown_03004344
- strb r0, [r1]
-_0802C73A:
- ldr r3, _0802C76C @ =gUnknown_02023A60
- ldr r5, _0802C764 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r1, r2, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802C770
- movs r0, 0x2
- ands r0, r4
- cmp r0, 0
- beq _0802C7B2
- adds r0, r3, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802C7B2
- movs r2, 0x1
- add r8, r2
- b _0802C7B2
- .align 2, 0
-_0802C764: .4byte gUnknown_02024A60
-_0802C768: .4byte gUnknown_03004344
-_0802C76C: .4byte gUnknown_02023A60
-_0802C770:
- movs r0, 0x7D
- ands r0, r4
- cmp r0, 0
- bne _0802C77C
- movs r0, 0x1
- add r8, r0
-_0802C77C:
- ldr r0, _0802C7D0 @ =gUnknown_02024E64
- adds r0, r2, r0
- adds r1, r6, 0
- adds r1, 0x8
- ldrb r0, [r0]
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _0802C7B8
- movs r0, 0x12
- ands r0, r4
- cmp r0, 0
- bne _0802C7B2
- movs r0, 0
- bl sub_803C348
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0802C7B2
- ldrb r0, [r5]
- bl sub_803C434
- ldr r1, _0802C7D4 @ =gUnknown_03004344
- strb r0, [r1]
- movs r2, 0
- mov r8, r2
-_0802C7B2:
- mov r0, r8
- cmp r0, 0
- bne _0802C7DC
-_0802C7B8:
- bl sub_814A7FC
- ldr r1, _0802C7D0 @ =gUnknown_02024E64
- ldr r0, _0802C7D8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r0, _0802C7D4 @ =gUnknown_03004344
- ldrb r0, [r0]
- lsls r0, 8
- orrs r2, r0
- b _0802C888
- .align 2, 0
-_0802C7D0: .4byte gUnknown_02024E64
-_0802C7D4: .4byte gUnknown_03004344
-_0802C7D8: .4byte gUnknown_02024A60
-_0802C7DC:
- ldr r1, _0802C7F8 @ =gUnknown_03004330
- ldr r2, _0802C7FC @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802C800 @ =sub_802C2EC
- str r1, [r0]
- movs r0, 0x12
- ands r4, r0
- cmp r4, 0
- beq _0802C808
- ldr r1, _0802C804 @ =gUnknown_03004344
- ldrb r0, [r2]
- b _0802C838
- .align 2, 0
-_0802C7F8: .4byte gUnknown_03004330
-_0802C7FC: .4byte gUnknown_02024A60
-_0802C800: .4byte sub_802C2EC
-_0802C804: .4byte gUnknown_03004344
-_0802C808:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _0802C828 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _0802C82C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0802C830
- movs r0, 0x3
- b _0802C832
- .align 2, 0
-_0802C828: .4byte gUnknown_02024C0C
-_0802C82C: .4byte gBitTable
-_0802C830:
- movs r0, 0x1
-_0802C832:
- bl battle_get_side_with_given_state
- ldr r1, _0802C854 @ =gUnknown_03004344
-_0802C838:
- strb r0, [r1]
- ldr r2, _0802C858 @ =gSprites
- ldr r1, _0802C85C @ =gUnknown_02024BE0
- ldr r0, _0802C854 @ =gUnknown_03004344
- 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, _0802C860 @ =sub_8010520
- b _0802CA36
- .align 2, 0
-_0802C854: .4byte gUnknown_03004344
-_0802C858: .4byte gSprites
-_0802C85C: .4byte gUnknown_02024BE0
-_0802C860: .4byte sub_8010520
-_0802C864:
- movs r6, 0x2
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0802C8A4
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802C898 @ =gUnknown_030042A4
- strh r4, [r0]
- ldr r1, _0802C89C @ =gUnknown_030042A0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _0802C8A0 @ =0x0000ffff
-_0802C888:
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl1_exec_completed
- b _0802CA38
- .align 2, 0
-_0802C898: .4byte gUnknown_030042A4
-_0802C89C: .4byte gUnknown_030042A0
-_0802C8A0: .4byte 0x0000ffff
-_0802C8A4:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802C8D4
- ldr r4, _0802C8D0 @ =gUnknown_02024E64
- adds r2, r4
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C8BC
- b _0802CA38
-_0802C8BC:
- ldrb r0, [r2]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x1
- eors r0, r2
- b _0802C976
- .align 2, 0
-_0802C8D0: .4byte gUnknown_02024E64
-_0802C8D4:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802C914
- ldr r4, _0802C90C @ =gUnknown_02024E64
- adds r3, r2, r4
- ldrb r2, [r3]
- movs r6, 0x1
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _0802C8EE
- b _0802CA38
-_0802C8EE:
- ldr r1, _0802C910 @ =gUnknown_03004348
- adds r0, r6, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcc _0802C8FC
- b _0802CA38
-_0802C8FC:
- ldrb r0, [r3]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r6
- b _0802C976
- .align 2, 0
-_0802C90C: .4byte gUnknown_02024E64
-_0802C910: .4byte gUnknown_03004348
-_0802C914:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802C944
- ldr r4, _0802C940 @ =gUnknown_02024E64
- adds r2, r4
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _0802C92C
- b _0802CA38
-_0802C92C:
- ldrb r0, [r2]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- b _0802C976
- .align 2, 0
-_0802C940: .4byte gUnknown_02024E64
-_0802C944:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802C99C
- ldr r4, _0802C994 @ =gUnknown_02024E64
- adds r3, r2, r4
- ldrb r2, [r3]
- movs r5, 0x2
- adds r0, r6, 0
- ands r0, r2
- cmp r0, 0
- bne _0802CA38
- ldr r1, _0802C998 @ =gUnknown_03004348
- adds r0, r5, 0
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802CA38
- ldrb r0, [r3]
- bl nullsub_7
- ldrb r1, [r7]
- adds r1, r4
- ldrb r0, [r1]
- eors r0, r5
-_0802C976:
- strb r0, [r1]
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- bl sub_802E220
- bl sub_802E2D4
- b _0802CA38
- .align 2, 0
-_0802C994: .4byte gUnknown_02024E64
-_0802C998: .4byte gUnknown_03004348
-_0802C99C:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802CA38
- ldr r0, _0802C9D8 @ =gUnknown_03004348
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0802CA38
- ldr r0, _0802C9DC @ =gUnknown_020239F8
- ldrh r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _0802CA38
- ldr r4, _0802C9E0 @ =gUnknown_02024E64
- adds r0, r2, r4
- ldrb r0, [r0]
- ldr r1, _0802C9E4 @ =gUnknown_081FAE80
- bl sub_802E12C
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802C9EC
- ldr r0, _0802C9E8 @ =gUnknown_03004344
- strb r5, [r0]
- b _0802C9F4
- .align 2, 0
-_0802C9D8: .4byte gUnknown_03004348
-_0802C9DC: .4byte gUnknown_020239F8
-_0802C9E0: .4byte gUnknown_02024E64
-_0802C9E4: .4byte gUnknown_081FAE80
-_0802C9E8: .4byte gUnknown_03004344
-_0802C9EC:
- ldr r1, _0802CA44 @ =gUnknown_03004344
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r1, 0
-_0802C9F4:
- ldrb r0, [r0]
- movs r1, 0x1B
- bl sub_802E3B4
- ldr r4, _0802CA48 @ =gUnknown_03004210
- ldr r1, _0802CA4C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CA50 @ =gUnknown_08400D89
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0802CA54 @ =gUnknown_03004330
- ldr r0, _0802CA58 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CA5C @ =sub_802CA60
-_0802CA36:
- str r1, [r0]
-_0802CA38:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802CA44: .4byte gUnknown_03004344
-_0802CA48: .4byte gUnknown_03004210
-_0802CA4C: .4byte 0x00001016
-_0802CA50: .4byte gUnknown_08400D89
-_0802CA54: .4byte gUnknown_03004330
-_0802CA58: .4byte gUnknown_02024A60
-_0802CA5C: .4byte sub_802CA60
- thumb_func_end sub_802C68C
-
- thumb_func_start sub_802CA60
-sub_802CA60: @ 802CA60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- ldr r0, _0802CDEC @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0
- bne _0802CA7A
- b _0802CE78
-_0802CA7A:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802CDF0 @ =gUnknown_02024E64
- mov r10, r0
- ldr r1, _0802CDF4 @ =gUnknown_02024A60
- mov r8, r1
- ldrb r1, [r1]
- adds r2, r1, r0
- ldr r5, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r2]
- ldrb r3, [r5]
- cmp r0, r3
- bne _0802CA98
- b _0802CE14
-_0802CA98:
- lsls r1, 9
- ldr r0, _0802CDFC @ =gUnknown_02023A64
- adds r1, r0
- mov r9, r1
- ldrb r1, [r2]
- lsls r1, 1
- add r1, r9
- ldrh r6, [r1]
- ldrb r0, [r5]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- strh r0, [r1]
- ldrb r0, [r5]
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- mov r1, r8
- ldrb r0, [r1]
- add r0, r10
- ldrb r1, [r0]
- mov r7, r9
- adds r7, 0x8
- adds r1, r7, r1
- ldrb r6, [r1]
- ldrb r0, [r5]
- adds r0, r7, r0
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r0, r7, r0
- strb r6, [r0]
- mov r2, r8
- ldrb r0, [r2]
- add r0, r10
- ldrb r1, [r0]
- mov r2, r9
- adds r2, 0xC
- adds r1, r2, r1
- ldrb r6, [r1]
- ldrb r0, [r5]
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r5]
- adds r2, r0
- strb r6, [r2]
- mov r3, r8
- ldrb r1, [r3]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r2, _0802CE00 @ =gUnknown_02024CA8
- adds r6, r0, r2
- ldrb r4, [r6, 0x18]
- lsls r3, r4, 24
- lsrs r2, r3, 28
- ldr r0, _0802CE04 @ =gBitTable
- mov r12, r0
- add r1, r10
- ldrb r0, [r1]
- lsls r0, 2
- add r0, r12
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _0802CB52
- lsrs r1, r3, 28
- bics r1, r0
- lsls r1, 4
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r4
- orrs r0, r1
- strb r0, [r6, 0x18]
- mov r1, r8
- ldrb r0, [r1]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r3, _0802CE00 @ =gUnknown_02024CA8
- adds r1, r3
- ldrb r4, [r1, 0x18]
- lsrs r3, r4, 4
- ldrb r0, [r5]
- lsls r0, 2
- add r0, r12
- ldr r0, [r0]
- orrs r0, r3
- lsls r0, 4
- ands r2, r4
- orrs r2, r0
- strb r2, [r1, 0x18]
-_0802CB52:
- bl sub_802E1B0
- movs r6, 0
- mov r12, r7
- mov r5, sp
- adds r5, 0x20
- str r5, [sp, 0x28]
- ldr r2, _0802CE08 @ =gBattleMons
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r4, r0, 0
- adds r4, 0x3B
- mov r7, r8
- mov r10, r2
- movs r5, 0x3
-_0802CB76:
- mov r3, sp
- adds r3, r6
- adds r3, 0x8
- ldrb r1, [r4]
- lsls r2, r6, 1
- adds r0, r5, 0
- lsls r0, r2
- ands r1, r0
- asrs r1, r2
- strb r1, [r3]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CB76
- ldr r1, _0802CDF0 @ =gUnknown_02024E64
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r2, [sp, 0x28]
- strb r0, [r2]
- ldrb r0, [r7]
- adds r0, r1
- ldrb r0, [r0]
- mov r2, sp
- adds r2, r0
- adds r2, 0x8
- ldr r1, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r1]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- movs r3, 0
- strb r0, [r2]
- ldrb r0, [r1]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldr r5, [sp, 0x28]
- ldrb r0, [r5]
- strb r0, [r1]
- strb r3, [r5]
- movs r6, 0
- ldr r2, [sp, 0x28]
-_0802CBD0:
- mov r0, sp
- adds r0, r6
- adds r0, 0x8
- ldrb r1, [r0]
- lsls r0, r6, 1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CBD0
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- add r0, r10
- adds r0, 0x3B
- ldr r2, [sp, 0x28]
- ldrb r1, [r2]
- strb r1, [r0]
- movs r6, 0
- adds r4, r7, 0
- movs r3, 0x58
- movs r5, 0x24
- add r5, r10
- mov r8, r5
- mov r2, r9
- mov r7, r10
- adds r7, 0xC
- mov r5, r12
-_0802CC0C:
- lsls r1, r6, 1
- ldrb r0, [r4]
- muls r0, r3
- adds r1, r0
- adds r1, r7
- ldrh r0, [r2]
- strh r0, [r1]
- ldrb r0, [r4]
- adds r1, r0, 0
- muls r1, r3
- adds r1, r6, r1
- add r1, r8
- adds r0, r5, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CC0C
- ldr r2, _0802CDF4 @ =gUnknown_02024A60
- ldrb r1, [r2]
- movs r0, 0x58
- muls r0, r1
- mov r1, r10
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x80
- lsls r1, 14
- ands r0, r1
- cmp r0, 0
- beq _0802CC4E
- b _0802CE1C
-_0802CC4E:
- movs r6, 0
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0x24]
- add r1, sp, 0x14
- mov r10, r1
- ldr r3, _0802CE0C @ =gUnknown_02024A6A
- mov r9, r3
- mov r8, r2
- movs r7, 0x64
- ldr r5, _0802CE10 @ =gPlayerParty
- adds r4, r0, 0
-_0802CC66:
- mov r1, r8
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0xD
- bl GetMonData
- strh r0, [r4]
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 1
- add r0, r9
- ldrh r0, [r0]
- muls r0, r7
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0x11
- bl GetMonData
- mov r3, r10
- adds r1, r3, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CC66
- ldr r1, _0802CE0C @ =gUnknown_02024A6A
- ldr r0, _0802CDF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802CE10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- ldr r5, [sp, 0x28]
- strb r0, [r5]
- movs r6, 0
- movs r5, 0x3
- ldr r4, [sp, 0x28]
-_0802CCC6:
- mov r3, sp
- adds r3, r6
- adds r3, 0x8
- lsls r2, r6, 1
- adds r1, r5, 0
- lsls r1, r2
- ldrb r0, [r4]
- ands r0, r1
- asrs r0, r2
- strb r0, [r3]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CCC6
- ldr r4, _0802CDF0 @ =gUnknown_02024E64
- ldr r3, _0802CDF4 @ =gUnknown_02024A60
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- lsls r1, 1
- ldr r0, [sp, 0x24]
- adds r1, r0, r1
- ldrh r6, [r1]
- ldr r2, _0802CDF8 @ =gUnknown_03004344
- ldrb r0, [r2]
- lsls r0, 1
- ldr r5, [sp, 0x24]
- adds r0, r5, r0
- ldrh r0, [r0]
- movs r5, 0
- strh r0, [r1]
- ldrb r0, [r2]
- lsls r0, 1
- ldr r1, [sp, 0x24]
- adds r0, r1, r0
- strh r6, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r1, [r0]
- add r1, r10
- ldrb r6, [r1]
- ldrb r0, [r2]
- add r0, r10
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- add r0, r10
- strb r6, [r0]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, [sp, 0x28]
- strb r0, [r1]
- ldrb r0, [r3]
- adds r0, r4
- ldrb r0, [r0]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldrb r0, [r2]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- strb r0, [r1]
- ldrb r0, [r2]
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- ldr r2, [sp, 0x28]
- ldrb r0, [r2]
- strb r0, [r1]
- strb r5, [r2]
- movs r6, 0
- ldr r2, [sp, 0x28]
-_0802CD5E:
- mov r0, sp
- adds r0, r6
- adds r0, 0x8
- ldrb r1, [r0]
- lsls r0, r6, 1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CD5E
- movs r6, 0
- ldr r3, _0802CE0C @ =gUnknown_02024A6A
- mov r10, r3
- ldr r5, _0802CDF4 @ =gUnknown_02024A60
- mov r9, r5
- movs r0, 0x64
- mov r8, r0
- ldr r7, _0802CE10 @ =gPlayerParty
- ldr r5, [sp, 0x24]
- adds r5, 0x8
- ldr r4, [sp, 0x24]
-_0802CD8C:
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- adds r1, r6, 0
- adds r1, 0xD
- adds r2, r4, 0
- bl SetMonData
- mov r3, r9
- ldrb r0, [r3]
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- adds r1, r6, 0
- adds r1, 0x11
- adds r2, r5, 0
- bl SetMonData
- adds r5, 0x1
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802CD8C
- ldr r1, _0802CE0C @ =gUnknown_02024A6A
- ldr r0, _0802CDF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802CE10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- ldr r2, [sp, 0x28]
- bl SetMonData
- b _0802CE1C
- .align 2, 0
-_0802CDEC: .4byte gMain
-_0802CDF0: .4byte gUnknown_02024E64
-_0802CDF4: .4byte gUnknown_02024A60
-_0802CDF8: .4byte gUnknown_03004344
-_0802CDFC: .4byte gUnknown_02023A64
-_0802CE00: .4byte gUnknown_02024CA8
-_0802CE04: .4byte gBitTable
-_0802CE08: .4byte gBattleMons
-_0802CE0C: .4byte gUnknown_02024A6A
-_0802CE10: .4byte gPlayerParty
-_0802CE14:
- ldrb r0, [r5]
- ldr r1, _0802CF20 @ =gUnknown_08400D49
- bl sub_802E12C
-_0802CE1C:
- ldr r1, _0802CF24 @ =gUnknown_03004330
- ldr r2, _0802CF28 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CF2C @ =sub_802C68C
- str r1, [r0]
- ldr r3, _0802CF30 @ =gUnknown_02024E64
- ldrb r0, [r2]
- adds r0, r3
- ldr r1, _0802CF34 @ =gUnknown_03004344
- ldrb r1, [r1]
- strb r1, [r0]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldr r4, _0802CF38 @ =gUnknown_03004210
- ldr r1, _0802CF3C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CF40 @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- bl sub_802E220
- bl sub_802E2D4
-_0802CE78:
- ldr r6, _0802CF44 @ =gMain
- ldrh r1, [r6, 0x2E]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0
- beq _0802CEF0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0802CF34 @ =gUnknown_03004344
- ldrb r0, [r0]
- bl nullsub_7
- ldr r5, _0802CF30 @ =gUnknown_02024E64
- ldr r4, _0802CF28 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- ldr r1, _0802CF20 @ =gUnknown_08400D49
- bl sub_802E12C
- ldr r1, _0802CF24 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802CF2C @ =sub_802C68C
- str r1, [r0]
- ldr r4, _0802CF38 @ =gUnknown_03004210
- ldr r1, _0802CF3C @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802CF40 @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- bl sub_802E220
- bl sub_802E2D4
-_0802CEF0:
- ldrh r1, [r6, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0802CF8C
- ldr r3, _0802CF34 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0802CF8C
- ldr r0, _0802CF30 @ =gUnknown_02024E64
- ldr r1, _0802CF28 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _0802CF48
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802CF4E
- .align 2, 0
-_0802CF20: .4byte gUnknown_08400D49
-_0802CF24: .4byte gUnknown_03004330
-_0802CF28: .4byte gUnknown_02024A60
-_0802CF2C: .4byte sub_802C68C
-_0802CF30: .4byte gUnknown_02024E64
-_0802CF34: .4byte gUnknown_03004344
-_0802CF38: .4byte gUnknown_03004210
-_0802CF3C: .4byte 0x00001016
-_0802CF40: .4byte gUnknown_08400D38
-_0802CF44: .4byte gMain
-_0802CF48:
- ldrb r0, [r3]
- bl nullsub_7
-_0802CF4E:
- ldr r4, _0802CF78 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802CF7C @ =gUnknown_02024E64
- ldr r0, _0802CF80 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802CF84
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802CF8C
- .align 2, 0
-_0802CF78: .4byte gUnknown_03004344
-_0802CF7C: .4byte gUnknown_02024E64
-_0802CF80: .4byte gUnknown_02024A60
-_0802CF84:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802CF8C:
- ldr r0, _0802CFC8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0802D020
- ldr r3, _0802CFCC @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0802D020
- ldr r1, _0802CFD0 @ =gUnknown_03004348
- movs r0, 0x1
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802D020
- ldr r0, _0802CFD4 @ =gUnknown_02024E64
- ldr r1, _0802CFD8 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- bne _0802CFDC
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802CFE2
- .align 2, 0
-_0802CFC8: .4byte gMain
-_0802CFCC: .4byte gUnknown_03004344
-_0802CFD0: .4byte gUnknown_03004348
-_0802CFD4: .4byte gUnknown_02024E64
-_0802CFD8: .4byte gUnknown_02024A60
-_0802CFDC:
- ldrb r0, [r3]
- bl nullsub_7
-_0802CFE2:
- ldr r4, _0802D00C @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x1
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D010 @ =gUnknown_02024E64
- ldr r0, _0802D014 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D018
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D020
- .align 2, 0
-_0802D00C: .4byte gUnknown_03004344
-_0802D010: .4byte gUnknown_02024E64
-_0802D014: .4byte gUnknown_02024A60
-_0802D018:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D020:
- ldr r0, _0802D050 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D0A4
- ldr r3, _0802D054 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0802D0A4
- ldr r0, _0802D058 @ =gUnknown_02024E64
- ldr r1, _0802D05C @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r5, [r1]
- cmp r2, r5
- bne _0802D060
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802D066
- .align 2, 0
-_0802D050: .4byte gMain
-_0802D054: .4byte gUnknown_03004344
-_0802D058: .4byte gUnknown_02024E64
-_0802D05C: .4byte gUnknown_02024A60
-_0802D060:
- ldrb r0, [r3]
- bl nullsub_7
-_0802D066:
- ldr r4, _0802D090 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D094 @ =gUnknown_02024E64
- ldr r0, _0802D098 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D09C
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D0A4
- .align 2, 0
-_0802D090: .4byte gUnknown_03004344
-_0802D094: .4byte gUnknown_02024E64
-_0802D098: .4byte gUnknown_02024A60
-_0802D09C:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D0A4:
- ldr r0, _0802D0E0 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0802D138
- ldr r3, _0802D0E4 @ =gUnknown_03004344
- ldrb r2, [r3]
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- bne _0802D138
- ldr r1, _0802D0E8 @ =gUnknown_03004348
- movs r0, 0x2
- eors r0, r2
- ldrb r1, [r1]
- cmp r0, r1
- bcs _0802D138
- ldr r0, _0802D0EC @ =gUnknown_02024E64
- ldr r1, _0802D0F0 @ =gUnknown_02024A60
- ldrb r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- cmp r2, r0
- bne _0802D0F4
- ldrb r0, [r1]
- movs r1, 0x1D
- bl sub_802E3B4
- b _0802D0FA
- .align 2, 0
-_0802D0E0: .4byte gMain
-_0802D0E4: .4byte gUnknown_03004344
-_0802D0E8: .4byte gUnknown_03004348
-_0802D0EC: .4byte gUnknown_02024E64
-_0802D0F0: .4byte gUnknown_02024A60
-_0802D0F4:
- ldrb r0, [r3]
- bl nullsub_7
-_0802D0FA:
- ldr r4, _0802D124 @ =gUnknown_03004344
- ldrb r0, [r4]
- movs r1, 0x2
- eors r0, r1
- strb r0, [r4]
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0802D128 @ =gUnknown_02024E64
- ldr r0, _0802D12C @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _0802D130
- adds r0, r1, 0
- movs r1, 0
- bl sub_802E3B4
- b _0802D138
- .align 2, 0
-_0802D124: .4byte gUnknown_03004344
-_0802D128: .4byte gUnknown_02024E64
-_0802D12C: .4byte gUnknown_02024A60
-_0802D130:
- ldrb r0, [r4]
- movs r1, 0x1B
- bl sub_802E3B4
-_0802D138:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_802CA60
-
- thumb_func_start sub_802D148
-sub_802D148: @ 802D148
- push {lr}
- ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _0802D174
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _0802D17C @ =gMain
- ldr r0, _0802D180 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0802D184 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0802D188 @ =c2_8011A1C
- bl SetMainCallback2
-_0802D174:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D178: .4byte gReceivedRemoteLinkPlayers
-_0802D17C: .4byte gMain
-_0802D180: .4byte 0x0000043d
-_0802D184: .4byte gUnknown_030042D0
-_0802D188: .4byte c2_8011A1C
- thumb_func_end sub_802D148
-
- thumb_func_start sub_802D18C
-sub_802D18C: @ 802D18C
- push {lr}
- ldr r0, _0802D1BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802D1F2
- ldr r0, _0802D1C0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802D1D0
- bl sub_800832C
- ldr r1, _0802D1C4 @ =gUnknown_03004330
- ldr r0, _0802D1C8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D1CC @ =sub_802D148
- str r1, [r0]
- b _0802D1F2
- .align 2, 0
-_0802D1BC: .4byte gPaletteFade
-_0802D1C0: .4byte gUnknown_020239F8
-_0802D1C4: .4byte gUnknown_03004330
-_0802D1C8: .4byte gUnknown_02024A60
-_0802D1CC: .4byte sub_802D148
-_0802D1D0:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _0802D1F8 @ =gMain
- ldr r0, _0802D1FC @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0802D200 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0802D1F2:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D1F8: .4byte gMain
-_0802D1FC: .4byte 0x0000043d
-_0802D200: .4byte gUnknown_030042D0
- thumb_func_end sub_802D18C
-
- thumb_func_start sub_802D204
-sub_802D204: @ 802D204
- push {lr}
- ldr r2, _0802D22C @ =gSprites
- ldr r1, _0802D230 @ =gUnknown_02024BE0
- ldr r0, _0802D234 @ =gUnknown_02024A60
- 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, _0802D238 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D228
- bl dp01_tbl1_exec_completed
-_0802D228:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D22C: .4byte gSprites
-_0802D230: .4byte gUnknown_02024BE0
-_0802D234: .4byte gUnknown_02024A60
-_0802D238: .4byte SpriteCallbackDummy
- thumb_func_end sub_802D204
-
- thumb_func_start sub_802D23C
-sub_802D23C: @ 802D23C
- push {lr}
- ldr r2, _0802D264 @ =gSprites
- ldr r1, _0802D268 @ =gUnknown_02024BE0
- ldr r0, _0802D26C @ =gUnknown_02024A60
- 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, _0802D270 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D260
- bl dp01_tbl1_exec_completed
-_0802D260:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D264: .4byte gSprites
-_0802D268: .4byte gUnknown_02024BE0
-_0802D26C: .4byte gUnknown_02024A60
-_0802D270: .4byte SpriteCallbackDummy
- thumb_func_end sub_802D23C
-
- thumb_func_start sub_802D274
-sub_802D274: @ 802D274
- push {r4-r6,lr}
- ldr r6, _0802D2CC @ =gSprites
- ldr r5, _0802D2D0 @ =gUnknown_02024BE0
- ldr r4, _0802D2D4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0802D2D8 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D2C6
- ldr r0, _0802D2DC @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- bl nullsub_10
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl FreeSpriteOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- bl dp01_tbl1_exec_completed
-_0802D2C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D2CC: .4byte gSprites
-_0802D2D0: .4byte gUnknown_02024BE0
-_0802D2D4: .4byte gUnknown_02024A60
-_0802D2D8: .4byte SpriteCallbackDummy
-_0802D2DC: .4byte gSaveBlock2
- thumb_func_end sub_802D274
-
- thumb_func_start sub_802D2E0
-sub_802D2E0: @ 802D2E0
- push {lr}
- ldr r3, _0802D314 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0802D318 @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0802D310
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl1_exec_completed
-_0802D310:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D314: .4byte gUnknown_02024A60
-_0802D318: .4byte 0x02017810
- thumb_func_end sub_802D2E0
-
- thumb_func_start sub_802D31C
-sub_802D31C: @ 802D31C
- push {r4-r7,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D340
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D374
- ldr r0, _0802D360 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D374
-_0802D340:
- ldr r2, _0802D364 @ =gSprites
- ldr r1, _0802D368 @ =gUnknown_03004340
- ldr r0, _0802D36C @ =gUnknown_02024A60
- 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, _0802D370 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D3AA
- b _0802D3A8
- .align 2, 0
-_0802D360: .4byte gUnknown_020239F8
-_0802D364: .4byte gSprites
-_0802D368: .4byte gUnknown_03004340
-_0802D36C: .4byte gUnknown_02024A60
-_0802D370: .4byte SpriteCallbackDummy
-_0802D374:
- ldr r2, _0802D45C @ =gSprites
- ldr r5, _0802D460 @ =gUnknown_03004340
- ldr r0, _0802D464 @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _0802D468 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _0802D3AA
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _0802D3AA
-_0802D3A8:
- movs r6, 0x1
-_0802D3AA:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0802D3B6
- movs r6, 0
-_0802D3B6:
- cmp r6, 0
- bne _0802D3BC
- b _0802D4DA
-_0802D3BC:
- ldr r7, _0802D464 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _0802D46C @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D3D8
- b _0802D4DA
-_0802D3D8:
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0802D4DA
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- 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, _0802D470 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _0802D474 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802D47C
- ldr r0, _0802D478 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _0802D488
- .align 2, 0
-_0802D45C: .4byte gSprites
-_0802D460: .4byte gUnknown_03004340
-_0802D464: .4byte gUnknown_02024A60
-_0802D468: .4byte SpriteCallbackDummy
-_0802D46C: .4byte 0x02017810
-_0802D470: .4byte 0x000027f9
-_0802D474: .4byte gUnknown_020239F8
-_0802D478: .4byte gMPlay_BGM
-_0802D47C:
- ldr r0, _0802D4E0 @ =gMPlay_BGM
- ldr r1, _0802D4E4 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_0802D488:
- ldr r7, _0802D4E8 @ =gUnknown_02024A6A
- ldr r4, _0802D4EC @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0802D4F0 @ =gPlayerParty
- adds r0, r5
- bl sub_80324F8
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D4BE
- ldrb r0, [r4]
- movs r1, 0x2
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- bl sub_80324F8
-_0802D4BE:
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D4F4 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _0802D4F8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D4FC @ =sub_802D2E0
- str r1, [r0]
-_0802D4DA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D4E0: .4byte gMPlay_BGM
-_0802D4E4: .4byte 0x0000ffff
-_0802D4E8: .4byte gUnknown_02024A6A
-_0802D4EC: .4byte gUnknown_02024A60
-_0802D4F0: .4byte gPlayerParty
-_0802D4F4: .4byte 0x02017810
-_0802D4F8: .4byte gUnknown_03004330
-_0802D4FC: .4byte sub_802D2E0
- thumb_func_end sub_802D31C
-
- thumb_func_start sub_802D500
-sub_802D500: @ 802D500
- push {r4-r7,lr}
- ldr r5, _0802D654 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _0802D658 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r7, 0x88
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _0802D530
- ldr r0, _0802D65C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D660 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D530:
- 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 _0802D55E
- ldr r0, _0802D65C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D660 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D55E:
- 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 _0802D64C
- 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 _0802D64C
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0802D5EE
- ldr r0, _0802D664 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802D5EE
- ldr r1, _0802D668 @ =gUnknown_0300434C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D66C @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _0802D670 @ =gUnknown_03004340
- ldrb r0, [r5]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0802D65C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D660 @ =gPlayerParty
- 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
-_0802D5EE:
- ldr r1, _0802D668 @ =gUnknown_0300434C
- ldr r4, _0802D654 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D66C @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _0802D670 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0802D65C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D660 @ =gPlayerParty
- 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, _0802D674 @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0802D678 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D67C @ =sub_802D31C
- str r1, [r0]
-_0802D64C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D654: .4byte gUnknown_02024A60
-_0802D658: .4byte 0x02017810
-_0802D65C: .4byte gUnknown_02024A6A
-_0802D660: .4byte gPlayerParty
-_0802D664: .4byte gUnknown_020239F8
-_0802D668: .4byte gUnknown_0300434C
-_0802D66C: .4byte gSprites
-_0802D670: .4byte gUnknown_03004340
-_0802D674: .4byte 0x02017840
-_0802D678: .4byte gUnknown_03004330
-_0802D67C: .4byte sub_802D31C
- thumb_func_end sub_802D500
-
- thumb_func_start sub_802D680
-sub_802D680: @ 802D680
- push {r4-r6,lr}
- ldr r2, _0802D710 @ =gSprites
- ldr r0, _0802D714 @ =gUnknown_03004340
- ldr r6, _0802D718 @ =gUnknown_02024A60
- ldrb r3, [r6]
- 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, _0802D71C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D708
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r5, _0802D720 @ =0x02017810
- adds r2, r0, r5
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0802D708
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _0802D724 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldrb r2, [r6]
- lsls r0, r2, 2
- adds r1, r5, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802D6FC
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_0802D6FC:
- ldr r0, _0802D728 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0802D72C @ =sub_802D730
- str r0, [r1]
-_0802D708:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D710: .4byte gSprites
-_0802D714: .4byte gUnknown_03004340
-_0802D718: .4byte gUnknown_02024A60
-_0802D71C: .4byte SpriteCallbackDummy
-_0802D720: .4byte 0x02017810
-_0802D724: .4byte 0x000027f9
-_0802D728: .4byte gUnknown_03004330
-_0802D72C: .4byte sub_802D730
- thumb_func_end sub_802D680
-
- thumb_func_start sub_802D730
-sub_802D730: @ 802D730
- push {r4,lr}
- ldr r4, _0802D780 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802D784 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802D77A
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _0802D77A
- ldr r0, _0802D788 @ =gMPlay_BGM
- ldr r1, _0802D78C @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r2, _0802D790 @ =gUnknown_02024A6A
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802D794 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl1_exec_completed
-_0802D77A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D780: .4byte gUnknown_02024A60
-_0802D784: .4byte 0x02017810
-_0802D788: .4byte gMPlay_BGM
-_0802D78C: .4byte 0x0000ffff
-_0802D790: .4byte gUnknown_02024A6A
-_0802D794: .4byte gPlayerParty
- thumb_func_end sub_802D730
-
- thumb_func_start sub_802D798
-sub_802D798: @ 802D798
- push {r4-r6,lr}
- ldr r5, _0802D844 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _0802D848 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0802D7C6
- ldr r0, _0802D84C @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0802D850 @ =gPlayerParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0802D7C6:
- ldr r4, _0802D854 @ =gSprites
- ldr r0, _0802D858 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _0802D85C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0802D83C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0802D83C
- adds r0, r3, r4
- bl DestroySprite
- ldr r4, _0802D860 @ =gUnknown_03004340
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0802D84C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0802D850 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _0802D864 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802D868 @ =sub_802D680
- str r1, [r0]
-_0802D83C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D844: .4byte gUnknown_02024A60
-_0802D848: .4byte 0x02017810
-_0802D84C: .4byte gUnknown_02024A6A
-_0802D850: .4byte gPlayerParty
-_0802D854: .4byte gSprites
-_0802D858: .4byte gUnknown_0300434C
-_0802D85C: .4byte SpriteCallbackDummy
-_0802D860: .4byte gUnknown_03004340
-_0802D864: .4byte gUnknown_03004330
-_0802D868: .4byte sub_802D680
- thumb_func_end sub_802D798
-
- thumb_func_start c3_0802FDF4
-c3_0802FDF4: @ 802D86C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- bne _0802D88E
- ldr r0, _0802D894 @ =gMPlay_BGM
- ldr r1, _0802D898 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- adds r0, r4, 0
- bl DestroyTask
-_0802D88E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D894: .4byte gMPlay_BGM
-_0802D898: .4byte 0x0000ffff
- thumb_func_end c3_0802FDF4
-
- thumb_func_start bx_t1_healthbar_update
-bx_t1_healthbar_update: @ 802D89C
- push {r4-r6,lr}
- ldr r5, _0802D8DC @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r6, _0802D8E0 @ =gUnknown_03004340
- 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 _0802D8E4
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _0802D8FE
- .align 2, 0
-_0802D8DC: .4byte gUnknown_02024A60
-_0802D8E0: .4byte gUnknown_03004340
-_0802D8E4:
- ldr r2, _0802D904 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802D908 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl1_exec_completed
-_0802D8FE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802D904: .4byte gUnknown_02024A6A
-_0802D908: .4byte gPlayerParty
- thumb_func_end bx_t1_healthbar_update
-
- thumb_func_start sub_802D90C
-sub_802D90C: @ 802D90C
- push {lr}
- ldr r0, _0802D920 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0802D91A
- bl dp01_tbl1_exec_completed
-_0802D91A:
- pop {r0}
- bx r0
- .align 2, 0
-_0802D920: .4byte gUnknown_03004210
- thumb_func_end sub_802D90C
-
- thumb_func_start sub_802D924
-sub_802D924: @ 802D924
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _0802DA24 @ =gTasks
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- mov r8, r0
- ldrb r0, [r0, 0x8]
- mov r10, r0
- mov r1, r8
- ldrb r7, [r1, 0xC]
- str r7, [sp, 0x8]
- ldrh r2, [r1, 0xA]
- str r2, [sp, 0xC]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0802D96A
- ldr r1, _0802DA28 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r10, r0
- bne _0802D96A
- b _0802DA80
-_0802D96A:
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- ldr r0, _0802DA2C @ =gPlayerParty
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- ldr r3, _0802DA30 @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0802DA34 @ =gBaseStats
- lsls r1, r5, 3
- subs r1, r5
- lsls r1, 2
- adds r1, r2
- ldrb r2, [r1, 0x13]
- movs r1, 0xCA
- lsls r1, 1
- muls r1, r2
- adds r4, r1
- adds r4, r3
- ldr r2, [r4]
- str r2, [sp]
- ldr r3, [sp, 0xC]
- lsls r1, r3, 16
- asrs r1, 16
- adds r0, r1
- cmp r0, r2
- bcc _0802DA58
- adds r0, r6, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r6, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- ldr r0, [sp, 0xC]
- subs r2, r0, r2
- ldr r4, _0802DA38 @ =gUnknown_02024A60
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl dp01_build_cmdbuf_x21_a_bb
- strb r5, [r4]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DA40
- ldr r2, _0802DA28 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r2
- mov r1, r10
- ldrh r0, [r0]
- cmp r1, r0
- beq _0802DA1E
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 1
- adds r0, r2
- ldrh r0, [r0]
- cmp r1, r0
- bne _0802DA40
-_0802DA1E:
- ldr r0, _0802DA3C @ =sub_802DCB0
- b _0802DA82
- .align 2, 0
-_0802DA24: .4byte gTasks
-_0802DA28: .4byte gUnknown_02024A6A
-_0802DA2C: .4byte gPlayerParty
-_0802DA30: .4byte gExperienceTables
-_0802DA34: .4byte gBaseStats
-_0802DA38: .4byte gUnknown_02024A60
-_0802DA3C: .4byte sub_802DCB0
-_0802DA40:
- ldr r0, _0802DA50 @ =gTasks
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DA54 @ =sub_802DDC4
- b _0802DA84
- .align 2, 0
-_0802DA50: .4byte gTasks
-_0802DA54: .4byte sub_802DDC4
-_0802DA58:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r6, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _0802DA78 @ =gUnknown_03004330
- ldr r3, [sp, 0x8]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, _0802DA7C @ =sub_802D90C
- str r1, [r0]
- mov r0, r9
- bl DestroyTask
- b _0802DA86
- .align 2, 0
-_0802DA78: .4byte gUnknown_03004330
-_0802DA7C: .4byte sub_802D90C
-_0802DA80:
- ldr r0, _0802DA98 @ =sub_802DA9C
-_0802DA82:
- mov r1, r8
-_0802DA84:
- str r0, [r1]
-_0802DA86:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DA98: .4byte sub_802DA9C
- thumb_func_end sub_802D924
-
- thumb_func_start sub_802DA9C
-sub_802DA9C: @ 802DA9C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0802DB54 @ =gTasks
- lsls r2, r0, 2
- mov r8, r2
- add r8, r0
- mov r0, r8
- lsls r0, 3
- mov r8, r0
- add r8, r1
- mov r2, r8
- ldrb r1, [r2, 0x8]
- movs r0, 0xA
- ldrsh r2, [r2, r0]
- mov r9, r2
- mov r2, r8
- ldrb r2, [r2, 0xC]
- mov r10, r2
- movs r0, 0x64
- adds r6, r1, 0
- muls r6, r0
- ldr r0, _0802DB58 @ =gPlayerParty
- adds r6, r0
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- movs r1, 0x19
- bl GetMonData
- adds r3, r0, 0
- ldr r6, _0802DB5C @ =gExperienceTables
- lsls r1, r4, 2
- ldr r2, _0802DB60 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r2
- adds r1, r0
- adds r1, r6
- ldr r1, [r1]
- subs r3, r1
- adds r4, 0x1
- lsls r4, 2
- adds r4, r0
- adds r4, r6
- ldr r2, [r4]
- subs r2, r1
- ldr r0, _0802DB64 @ =gUnknown_03004340
- add r0, r10
- ldrb r1, [r0]
- mov r0, r9
- negs r0, r0
- str r0, [sp]
- mov r0, r10
- bl sub_8043D84
- movs r0, 0x21
- bl PlaySE
- ldr r0, _0802DB68 @ =sub_802DB6C
- mov r1, r8
- str r0, [r1]
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DB54: .4byte gTasks
-_0802DB58: .4byte gPlayerParty
-_0802DB5C: .4byte gExperienceTables
-_0802DB60: .4byte gBaseStats
-_0802DB64: .4byte gUnknown_03004340
-_0802DB68: .4byte sub_802DB6C
- thumb_func_end sub_802DA9C
-
- thumb_func_start sub_802DB6C
-sub_802DB6C: @ 802DB6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0802DB98 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrh r1, [r6, 0x1C]
- movs r2, 0x1C
- ldrsh r0, [r6, r2]
- cmp r0, 0xC
- bgt _0802DB9C
- adds r0, r1, 0x1
- strh r0, [r6, 0x1C]
- b _0802DC98
- .align 2, 0
-_0802DB98: .4byte gTasks
-_0802DB9C:
- ldrb r0, [r6, 0x8]
- mov r9, r0
- ldrh r2, [r6, 0xA]
- mov r10, r2
- ldrb r7, [r6, 0xC]
- ldr r5, _0802DC64 @ =gUnknown_03004340
- adds r5, r7, r5
- ldrb r1, [r5]
- adds r0, r7, 0
- movs r2, 0x1
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- bl sub_8043DFC
- lsls r4, 16
- asrs r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- bne _0802DC98
- movs r0, 0x21
- bl m4aSongNumStop
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _0802DC68 @ =gPlayerParty
- adds r5, r1, r0
- 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, 0x19
- bl GetMonData
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _0802DC6C @ =gExperienceTables
- adds r4, 0x1
- lsls r4, 2
- ldr r2, _0802DC70 @ =gBaseStats
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x13]
- movs r0, 0xCA
- lsls r0, 1
- muls r0, r1
- adds r4, r0
- adds r4, r3
- ldr r1, [r4]
- str r1, [sp]
- mov r2, r10
- lsls r0, r2, 16
- asrs r4, r0, 16
- ldr r0, [sp, 0x4]
- adds r0, r4
- cmp r0, r1
- blt _0802DC7C
- adds r0, r5, 0
- movs r1, 0x19
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl CalculateMonStats
- ldr r2, [sp]
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r2, r0
- subs r2, r4, r2
- ldr r4, _0802DC74 @ =gUnknown_02024A60
- ldrb r5, [r4]
- strb r7, [r4]
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x1
- movs r1, 0xB
- bl dp01_build_cmdbuf_x21_a_bb
- strb r5, [r4]
- ldr r0, _0802DC78 @ =sub_802DCB0
- str r0, [r6]
- b _0802DC98
- .align 2, 0
-_0802DC64: .4byte gUnknown_03004340
-_0802DC68: .4byte gPlayerParty
-_0802DC6C: .4byte gExperienceTables
-_0802DC70: .4byte gBaseStats
-_0802DC74: .4byte gUnknown_02024A60
-_0802DC78: .4byte sub_802DCB0
-_0802DC7C:
- str r0, [sp, 0x4]
- add r2, sp, 0x4
- adds r0, r5, 0
- movs r1, 0x19
- bl SetMonData
- ldr r1, _0802DCA8 @ =gUnknown_03004330
- lsls r0, r7, 2
- adds r0, r1
- ldr r1, _0802DCAC @ =sub_802D90C
- str r1, [r0]
- mov r0, r8
- bl DestroyTask
-_0802DC98:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DCA8: .4byte gUnknown_03004330
-_0802DCAC: .4byte sub_802D90C
- thumb_func_end sub_802DB6C
-
- thumb_func_start sub_802DCB0
-sub_802DCB0: @ 802DCB0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0802DD04 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0xC]
- ldrb r6, [r0, 0x8]
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DCE4
- ldr r1, _0802DD08 @ =gUnknown_02024A6A
- movs r0, 0x2
- adds r2, r4, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- bne _0802DCE4
- adds r4, r2, 0
-_0802DCE4:
- adds r0, r4, 0
- adds r1, r4, 0
- adds r2, r4, 0
- movs r3, 0
- bl move_anim_start_t4
- ldr r0, _0802DD04 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DD0C @ =sub_802DD10
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DD04: .4byte gTasks
-_0802DD08: .4byte gUnknown_02024A6A
-_0802DD0C: .4byte sub_802DD10
- thumb_func_end sub_802DCB0
-
- thumb_func_start sub_802DD10
-sub_802DD10: @ 802DD10
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0802DD78 @ =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- ldrb r5, [r2, 0xC]
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- ldr r1, _0802DD7C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802DDAE
- ldrb r4, [r2, 0x8]
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0802DD80 @ =gPlayerParty
- adds r7, r1, r0
- adds r0, r7, 0
- movs r1, 0x38
- bl GetMonData
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0802DD8C
- ldr r1, _0802DD84 @ =gUnknown_02024A6A
- movs r0, 0x2
- adds r2, r5, 0
- eors r2, r0
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- bne _0802DD8C
- ldr r0, _0802DD88 @ =gUnknown_03004340
- adds r0, r2, r0
- ldrb r0, [r0]
- adds r1, r7, 0
- movs r2, 0
- bl sub_8045A5C
- b _0802DDA0
- .align 2, 0
-_0802DD78: .4byte gTasks
-_0802DD7C: .4byte 0x02017810
-_0802DD80: .4byte gPlayerParty
-_0802DD84: .4byte gUnknown_02024A6A
-_0802DD88: .4byte gUnknown_03004340
-_0802DD8C:
- ldr r0, _0802DDB4 @ =gUnknown_03004340
- adds r0, r5, r0
- ldrb r0, [r0]
- movs r1, 0x64
- muls r1, r4
- ldr r2, _0802DDB8 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
-_0802DDA0:
- ldr r0, _0802DDBC @ =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0802DDC0 @ =sub_802DDC4
- str r0, [r1]
-_0802DDAE:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DDB4: .4byte gUnknown_03004340
-_0802DDB8: .4byte gPlayerParty
-_0802DDBC: .4byte gTasks
-_0802DDC0: .4byte sub_802DDC4
- thumb_func_end sub_802DD10
-
- thumb_func_start sub_802DDC4
-sub_802DDC4: @ 802DDC4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0802DE00 @ =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r1, [r4, 0x8]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802DE04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- bl GetMonData
- ldrb r0, [r4, 0xC]
- ldr r1, _0802DE08 @ =gUnknown_03004330
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802DE0C @ =sub_802D90C
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DE00: .4byte gTasks
-_0802DE04: .4byte gPlayerParty
-_0802DE08: .4byte gUnknown_03004330
-_0802DE0C: .4byte sub_802D90C
- thumb_func_end sub_802DDC4
-
- thumb_func_start sub_802DE10
-sub_802DE10: @ 802DE10
- push {r4-r6,lr}
- ldr r6, _0802DE94 @ =gSprites
- ldr r5, _0802DE98 @ =gUnknown_02024BE0
- ldr r4, _0802DE9C @ =gUnknown_02024A60
- ldrb r2, [r4]
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r3, 0x22
- ldrsh r1, [r0, r3]
- movs r3, 0x26
- ldrsh r0, [r0, r3]
- adds r1, r0
- cmp r1, 0xA0
- ble _0802DE8C
- ldr r1, _0802DEA0 @ =gUnknown_02024A6A
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0802DEA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl nullsub_9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r1, _0802DEA8 @ =gUnknown_03004340
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl1_exec_completed
-_0802DE8C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DE94: .4byte gSprites
-_0802DE98: .4byte gUnknown_02024BE0
-_0802DE9C: .4byte gUnknown_02024A60
-_0802DEA0: .4byte gUnknown_02024A6A
-_0802DEA4: .4byte gPlayerParty
-_0802DEA8: .4byte gUnknown_03004340
- thumb_func_end sub_802DE10
-
- thumb_func_start sub_802DEAC
-sub_802DEAC: @ 802DEAC
- push {r4-r6,lr}
- ldr r6, _0802DF04 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0802DF08 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802DEFC
- ldr r5, _0802DF0C @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802DF10 @ =gSprites
- 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, _0802DF14 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl1_exec_completed
-_0802DEFC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF04: .4byte gUnknown_02024A60
-_0802DF08: .4byte 0x02017810
-_0802DF0C: .4byte gUnknown_02024BE0
-_0802DF10: .4byte gSprites
-_0802DF14: .4byte gUnknown_03004340
- thumb_func_end sub_802DEAC
-
- thumb_func_start sub_802DF18
-sub_802DF18: @ 802DF18
- push {lr}
- ldr r0, _0802DF2C @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0802DF26
- bl dp01_tbl1_exec_completed
-_0802DF26:
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF2C: .4byte gUnknown_03004210
- thumb_func_end sub_802DF18
-
- thumb_func_start sub_802DF30
-sub_802DF30: @ 802DF30
- push {r4,lr}
- ldr r0, _0802DF70 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DF6A
- ldr r1, _0802DF74 @ =gUnknown_03004330
- ldr r2, _0802DF78 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802DF7C @ =sub_802DF88
- str r1, [r0]
- ldr r3, _0802DF80 @ =gTasks
- ldr r1, _0802DF84 @ =gUnknown_0300434C
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldrb r4, [r1, 0x8]
- bl DestroyTask
- adds r0, r4, 0
- bl sub_8094E20
-_0802DF6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802DF70: .4byte gPaletteFade
-_0802DF74: .4byte gUnknown_03004330
-_0802DF78: .4byte gUnknown_02024A60
-_0802DF7C: .4byte sub_802DF88
-_0802DF80: .4byte gTasks
-_0802DF84: .4byte gUnknown_0300434C
- thumb_func_end sub_802DF30
-
- thumb_func_start sub_802DF88
-sub_802DF88: @ 802DF88
- push {lr}
- ldr r0, _0802DFB8 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802DFBC @ =sub_800F808
- cmp r1, r0
- bne _0802DFF8
- ldr r0, _0802DFC0 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802DFF8
- ldr r0, _0802DFC4 @ =gUnknown_0202E8F4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802DFD0
- ldr r0, _0802DFC8 @ =gUnknown_0202E8F5
- ldrb r1, [r0]
- ldr r2, _0802DFCC @ =gUnknown_02038470
- movs r0, 0x1
- bl dp01_build_cmdbuf_x22_a_three_bytes
- b _0802DFDA
- .align 2, 0
-_0802DFB8: .4byte gMain
-_0802DFBC: .4byte sub_800F808
-_0802DFC0: .4byte gPaletteFade
-_0802DFC4: .4byte gUnknown_0202E8F4
-_0802DFC8: .4byte gUnknown_0202E8F5
-_0802DFCC: .4byte gUnknown_02038470
-_0802DFD0:
- movs r0, 0x1
- movs r1, 0x6
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
-_0802DFDA:
- ldr r1, _0802DFFC @ =gUnknown_02023A60
- ldr r0, _0802E000 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _0802DFF4
- bl b_link_standby_message
-_0802DFF4:
- bl dp01_tbl1_exec_completed
-_0802DFF8:
- pop {r0}
- bx r0
- .align 2, 0
-_0802DFFC: .4byte gUnknown_02023A60
-_0802E000: .4byte gUnknown_02024A60
- thumb_func_end sub_802DF88
-
- thumb_func_start sub_802E004
-sub_802E004: @ 802E004
- push {lr}
- ldr r0, _0802E02C @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802E028
- ldr r1, _0802E030 @ =gUnknown_03004330
- ldr r0, _0802E034 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802E038 @ =sub_802E03C
- str r1, [r0]
- bl nullsub_14
- bl sub_80A6DCC
-_0802E028:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E02C: .4byte gPaletteFade
-_0802E030: .4byte gUnknown_03004330
-_0802E034: .4byte gUnknown_02024A60
-_0802E038: .4byte sub_802E03C
- thumb_func_end sub_802E004
-
- thumb_func_start sub_802E03C
-sub_802E03C: @ 802E03C
- push {lr}
- ldr r0, _0802E068 @ =gMain
- ldr r1, [r0, 0x4]
- ldr r0, _0802E06C @ =sub_800F808
- cmp r1, r0
- bne _0802E062
- ldr r0, _0802E070 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0802E062
- ldr r0, _0802E074 @ =word_203855E
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl1_exec_completed
-_0802E062:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E068: .4byte gMain
-_0802E06C: .4byte sub_800F808
-_0802E070: .4byte gPaletteFade
-_0802E074: .4byte word_203855E
- thumb_func_end sub_802E03C
-
- thumb_func_start bx_wait_t1
-bx_wait_t1: @ 802E078
- push {lr}
- ldr r0, _0802E0A4 @ =gUnknown_02024E6D
- ldrb r0, [r0]
- cmp r0, 0
- beq _0802E09A
- ldr r0, _0802E0A8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E0AC @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0802E09E
-_0802E09A:
- bl dp01_tbl1_exec_completed
-_0802E09E:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E0A4: .4byte gUnknown_02024E6D
-_0802E0A8: .4byte gUnknown_02024A60
-_0802E0AC: .4byte 0x02017810
- thumb_func_end bx_wait_t1
-
- thumb_func_start bx_blink_t1
-bx_blink_t1: @ 802E0B0
- push {r4,lr}
- ldr r1, _0802E0EC @ =gUnknown_02024BE0
- ldr r0, _0802E0F0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0802E0F4 @ =gSprites
- 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 _0802E0FC
- 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, _0802E0F8 @ =gUnknown_02024E6D
- strb r3, [r0]
- bl dp01_tbl1_exec_completed
- b _0802E126
- .align 2, 0
-_0802E0EC: .4byte gUnknown_02024BE0
-_0802E0F0: .4byte gUnknown_02024A60
-_0802E0F4: .4byte gSprites
-_0802E0F8: .4byte gUnknown_02024E6D
-_0802E0FC:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0802E120
- 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]
-_0802E120:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0802E126:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t1
-
- thumb_func_start sub_802E12C
-sub_802E12C: @ 802E12C
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r0, _0802E180 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r4, 9
- ldr r0, _0802E184 @ =gUnknown_02023A64
- adds r4, r0
- ldr r5, _0802E188 @ =gUnknown_020238CC
- adds r0, r5, 0
- bl StringCopy
- lsls r0, r6, 1
- adds r4, r0
- ldrh r1, [r4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _0802E18C @ =gMoveNames
- adds r1, r0
- adds r0, r5, 0
- bl StringAppend
- ldr r4, _0802E190 @ =gUnknown_03004210
- adds r1, r5, 0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 18
- movs r2, 0xC0
- lsls r2, 18
- adds r0, r2
- lsrs r2, r0, 16
- movs r0, 0x1
- ands r0, r6
- movs r3, 0x1
- cmp r0, 0
- beq _0802E176
- movs r3, 0xB
-_0802E176:
- cmp r6, 0x1
- bgt _0802E194
- movs r0, 0x37
- b _0802E196
- .align 2, 0
-_0802E180: .4byte gUnknown_02024A60
-_0802E184: .4byte gUnknown_02023A64
-_0802E188: .4byte gUnknown_020238CC
-_0802E18C: .4byte gMoveNames
-_0802E190: .4byte gUnknown_03004210
-_0802E194:
- movs r0, 0x39
-_0802E196:
- str r0, [sp]
- adds r0, r4, 0
- bl InitWindow
- ldr r0, _0802E1AC @ =gUnknown_03004210
- bl sub_8002F44
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E1AC: .4byte gUnknown_03004210
- thumb_func_end sub_802E12C
-
- thumb_func_start sub_802E1B0
-sub_802E1B0: @ 802E1B0
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r0, _0802E208 @ =gUnknown_02024A60
- ldrb r4, [r0]
- lsls r4, 9
- ldr r0, _0802E20C @ =gUnknown_02023A64
- adds r4, r0
- ldr r5, _0802E210 @ =gUnknown_03004348
- movs r0, 0
- strb r0, [r5]
- ldr r0, _0802E214 @ =gUnknown_03004210
- ldr r1, _0802E218 @ =0x00001016
- movs r2, 0x14
- str r2, [sp]
- movs r2, 0x3A
- str r2, [sp, 0x4]
- movs r2, 0x1
- movs r3, 0x37
- bl FillWindowRect
- movs r6, 0
-_0802E1DA:
- lsls r0, r6, 24
- lsrs r0, 24
- bl nullsub_7
- adds r0, r6, 0
- ldr r1, _0802E21C @ =gUnknown_08400D49
- bl sub_802E12C
- ldrh r0, [r4]
- cmp r0, 0
- beq _0802E1F6
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_0802E1F6:
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0802E1DA
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E208: .4byte gUnknown_02024A60
-_0802E20C: .4byte gUnknown_02023A64
-_0802E210: .4byte gUnknown_03004348
-_0802E214: .4byte gUnknown_03004210
-_0802E218: .4byte 0x00001016
-_0802E21C: .4byte gUnknown_08400D49
- thumb_func_end sub_802E1B0
-
- thumb_func_start sub_802E220
-sub_802E220: @ 802E220
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r4, _0802E2B8 @ =gUnknown_02023A60
- ldr r6, _0802E2BC @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r1, r0, 9
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0802E2B0
- adds r4, 0x4
- adds r4, r1, r4
- ldr r2, _0802E2C0 @ =gUnknown_020238CC
- ldr r1, _0802E2C4 @ =gUnknown_08400D49
- adds r0, r2, 0
- bl StringCopy
- adds r2, r0, 0
- movs r1, 0xFC
- strb r1, [r2]
- movs r0, 0x11
- strb r0, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- adds r2, 0x3
- strb r1, [r2]
- movs r0, 0x14
- strb r0, [r2, 0x1]
- movs r0, 0x6
- strb r0, [r2, 0x2]
- adds r2, 0x3
- ldr r5, _0802E2C8 @ =gUnknown_02024E64
- ldrb r1, [r6]
- adds r1, r5
- adds r0, r4, 0
- adds r0, 0x8
- ldrb r1, [r1]
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- ldrb r0, [r6]
- adds r0, r5
- adds r4, 0xC
- ldrb r0, [r0]
- adds r4, r0
- ldrb r1, [r4]
- adds r0, r2, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r4, _0802E2CC @ =gUnknown_03004210
- ldr r1, _0802E2C0 @ =gUnknown_020238CC
- ldr r2, _0802E2D0 @ =0x000002a2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x19
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_0802E2B0:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E2B8: .4byte gUnknown_02023A60
-_0802E2BC: .4byte gUnknown_02024A60
-_0802E2C0: .4byte gUnknown_020238CC
-_0802E2C4: .4byte gUnknown_08400D49
-_0802E2C8: .4byte gUnknown_02024E64
-_0802E2CC: .4byte gUnknown_03004210
-_0802E2D0: .4byte 0x000002a2
- thumb_func_end sub_802E220
-
- thumb_func_start sub_802E2D4
-sub_802E2D4: @ 802E2D4
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _0802E314 @ =gUnknown_02023A60
- ldr r5, _0802E318 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r0, r4, 0x2
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0802E328
- ldr r4, _0802E31C @ =gUnknown_03004210
- ldr r1, _0802E320 @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x37
- bl FillWindowRect
- ldr r1, _0802E324 @ =gUnknown_08400D52
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x13
- bl InitWindow
- b _0802E388
- .align 2, 0
-_0802E314: .4byte gUnknown_02023A60
-_0802E318: .4byte gUnknown_02024A60
-_0802E31C: .4byte gUnknown_03004210
-_0802E320: .4byte 0x00001016
-_0802E324: .4byte gUnknown_08400D52
-_0802E328:
- adds r4, 0x4
- adds r4, r1, r4
- ldr r3, _0802E398 @ =gUnknown_020238CC
- ldr r1, _0802E39C @ =gUnknown_08400D49
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- ldr r2, _0802E3A0 @ =gBattleMoves
- ldr r1, _0802E3A4 @ =gUnknown_02024E64
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r4, r0
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _0802E3A8 @ =gTypeNames
- adds r1, r0
- adds r0, r3, 0
- bl StringCopy
- ldr r4, _0802E3AC @ =gUnknown_03004210
- ldr r1, _0802E3B0 @ =0x00001016
- movs r0, 0x1C
- str r0, [sp]
- movs r0, 0x3A
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0x17
- movs r3, 0x39
- bl FillWindowRect
- ldr r1, _0802E398 @ =gUnknown_020238CC
- movs r2, 0xB0
- lsls r2, 2
- movs r0, 0x39
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
-_0802E388:
- ldr r0, _0802E3AC @ =gUnknown_03004210
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E398: .4byte gUnknown_020238CC
-_0802E39C: .4byte gUnknown_08400D49
-_0802E3A0: .4byte gBattleMoves
-_0802E3A4: .4byte gUnknown_02024E64
-_0802E3A8: .4byte gTypeNames
-_0802E3AC: .4byte gUnknown_03004210
-_0802E3B0: .4byte 0x00001016
- thumb_func_end sub_802E2D4
-
- thumb_func_start sub_802E3B4
-sub_802E3B4: @ 802E3B4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x48
- bl sub_814A958
- ldr r1, _0802E3DC @ =gUnknown_081FAE89
- lsls r4, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r1, 0x1
- adds r4, r1
- ldrb r1, [r4]
- bl sub_814A880
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E3DC: .4byte gUnknown_081FAE89
- thumb_func_end sub_802E3B4
-
- thumb_func_start nullsub_7
-nullsub_7: @ 802E3E0
- bx lr
- thumb_func_end nullsub_7
-
- thumb_func_start sub_802E3E4
-sub_802E3E4: @ 802E3E4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2A
- bl sub_814A958
- ldr r1, _0802E40C @ =gUnknown_081FAE91
- lsls r4, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- adds r1, 0x1
- adds r4, r1
- ldrb r1, [r4]
- bl sub_814A880
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802E40C: .4byte gUnknown_081FAE91
- thumb_func_end sub_802E3E4
-
- thumb_func_start nullsub_8
-nullsub_8: @ 802E410
- bx lr
- thumb_func_end nullsub_8
-
- thumb_func_start sub_802E414
-sub_802E414: @ 802E414
- push {lr}
- ldr r0, _0802E420 @ =sub_807AD58
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0802E420: .4byte sub_807AD58
- thumb_func_end sub_802E414
-
- thumb_func_start sub_802E424
-sub_802E424: @ 802E424
- push {lr}
- ldr r0, _0802E430 @ =sub_807AD58
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0802E430: .4byte sub_807AD58
- thumb_func_end sub_802E424
-
- thumb_func_start sub_802E434
-sub_802E434: @ 802E434
- push {lr}
- ldr r0, _0802E458 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E45C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0802E452
- bl dp01_tbl1_exec_completed
-_0802E452:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E458: .4byte gUnknown_02024A60
-_0802E45C: .4byte 0x02017810
- thumb_func_end sub_802E434
-
- thumb_func_start sub_802E460
-sub_802E460: @ 802E460
- push {lr}
- ldr r0, _0802E484 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0802E488 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0802E47E
- bl dp01_tbl1_exec_completed
-_0802E47E:
- pop {r0}
- bx r0
- .align 2, 0
-_0802E484: .4byte gUnknown_02024A60
-_0802E488: .4byte 0x02017810
- thumb_func_end sub_802E460
-
- thumb_func_start b_link_standby_message
-b_link_standby_message: @ 802E48C
- push {lr}
- sub sp, 0x4
- ldr r0, _0802E4BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0802E4B6
- ldr r0, _0802E4C0 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0802E4C4 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r0, _0802E4C8 @ =gUnknown_03004210
- ldr r1, _0802E4CC @ =gUnknown_08400CE0
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
-_0802E4B6:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0802E4BC: .4byte gUnknown_020239F8
-_0802E4C0: .4byte gUnknown_030042A4
-_0802E4C4: .4byte gUnknown_030042A0
-_0802E4C8: .4byte gUnknown_03004210
-_0802E4CC: .4byte gUnknown_08400CE0
- thumb_func_end b_link_standby_message
-
- thumb_func_start dp01t_00_1_getattr
-dp01t_00_1_getattr: @ 802E4D0
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _0802E4FC @ =gUnknown_02023A60
- ldr r0, _0802E500 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0802E508
- ldr r0, _0802E504 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon_
- adds r6, r0, 0
- b _0802E52A
- .align 2, 0
-_0802E4FC: .4byte gUnknown_02023A60
-_0802E500: .4byte gUnknown_02024A60
-_0802E504: .4byte gUnknown_02024A6A
-_0802E508:
- ldrb r4, [r1]
- movs r5, 0
-_0802E50C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802E522
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon_
- adds r6, r0
-_0802E522:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0802E50C
-_0802E52A:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl1_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_1_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_
-dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544
- 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, _0802E578 @ =gUnknown_02023A60
- ldr r3, _0802E57C @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0802E56E
- bl _0802ECDA
-_0802E56E:
- lsls r0, 2
- ldr r1, _0802E580 @ =_0802E584
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802E578: .4byte gUnknown_02023A60
-_0802E57C: .4byte gUnknown_02024A60
-_0802E580: .4byte _0802E584
- .align 2, 0
-_0802E584:
- .4byte _0802E674
- .4byte _0802E898
- .4byte _0802E8A8
- .4byte _0802E8B8
- .4byte _0802E920
- .4byte _0802E920
- .4byte _0802E920
- .4byte _0802E920
- .4byte _0802E93C
- .4byte _0802E978
- .4byte _0802E978
- .4byte _0802E978
- .4byte _0802E978
- .4byte _0802ECDA
- .4byte _0802ECDA
- .4byte _0802ECDA
- .4byte _0802ECDA
- .4byte _0802E994
- .4byte _0802E9A4
- .4byte _0802E9D4
- .4byte _0802E9E4
- .4byte _0802E9F4
- .4byte _0802EA04
- .4byte _0802EA14
- .4byte _0802EA24
- .4byte _0802EA34
- .4byte _0802EA44
- .4byte _0802EA54
- .4byte _0802EA64
- .4byte _0802EA74
- .4byte _0802EA84
- .4byte _0802EA94
- .4byte _0802EAE4
- .4byte _0802EAF4
- .4byte _0802EB04
- .4byte _0802EB14
- .4byte _0802EB24
- .4byte _0802EB34
- .4byte _0802EB44
- .4byte _0802EB54
- .4byte _0802EB64
- .4byte _0802EB98
- .4byte _0802EBA8
- .4byte _0802EBB8
- .4byte _0802EBC8
- .4byte _0802EBD8
- .4byte _0802EBE8
- .4byte _0802EBF8
- .4byte _0802EC08
- .4byte _0802EC28
- .4byte _0802EC38
- .4byte _0802EC48
- .4byte _0802EC58
- .4byte _0802EC68
- .4byte _0802EC78
- .4byte _0802EC88
- .4byte _0802EC98
- .4byte _0802ECA8
- .4byte _0802ECB8
- .4byte _0802ECC8
-_0802E674:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802E888 @ =gPlayerParty
- 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
-_0802E6C0:
- 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 _0802E6C0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802E888 @ =gPlayerParty
- 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, _0802E88C @ =0xfffffc1f
- 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, _0802E890 @ =0xfff07fff
- 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, _0802E894 @ =0xfffffe0f
- 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
-_0802E878:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _0802E878
- b _0802ECDA
- .align 2, 0
-_0802E888: .4byte gPlayerParty
-_0802E88C: .4byte 0xfffffc1f
-_0802E890: .4byte 0xfff07fff
-_0802E894: .4byte 0xfffffe0f
-_0802E898:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E8A4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- b _0802EC12
- .align 2, 0
-_0802E8A4: .4byte gPlayerParty
-_0802E8A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E8B4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xC
- b _0802EC12
- .align 2, 0
-_0802E8B4: .4byte gPlayerParty
-_0802E8B8:
- 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, _0802E91C @ =gPlayerParty
- adds r4, r1, r0
- mov r8, r9
-_0802E8CE:
- 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 _0802E8CE
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E91C @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_0802E90C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _0802E90C
- b _0802ECDA
- .align 2, 0
-_0802E91C: .4byte gPlayerParty
-_0802E920:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E938 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _0802EC12
- .align 2, 0
-_0802E938: .4byte gPlayerParty
-_0802E93C:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _0802E974 @ =gPlayerParty
- mov r8, r2
-_0802E948:
- 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 _0802E948
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E974 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0802ECDA
- .align 2, 0
-_0802E974: .4byte gPlayerParty
-_0802E978:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E990 @ =gPlayerParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0802ECD2
- .align 2, 0
-_0802E990: .4byte gPlayerParty
-_0802E994:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9A0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1
- b _0802E9AE
- .align 2, 0
-_0802E9A0: .4byte gPlayerParty
-_0802E9A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9D0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x19
-_0802E9AE:
- 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 _0802ECDA
- .align 2, 0
-_0802E9D0: .4byte gPlayerParty
-_0802E9D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9E0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1A
- b _0802ECD2
- .align 2, 0
-_0802E9E0: .4byte gPlayerParty
-_0802E9E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802E9F0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1B
- b _0802ECD2
- .align 2, 0
-_0802E9F0: .4byte gPlayerParty
-_0802E9F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA00 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1C
- b _0802ECD2
- .align 2, 0
-_0802EA00: .4byte gPlayerParty
-_0802EA04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1D
- b _0802ECD2
- .align 2, 0
-_0802EA10: .4byte gPlayerParty
-_0802EA14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA20 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1E
- b _0802ECD2
- .align 2, 0
-_0802EA20: .4byte gPlayerParty
-_0802EA24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA30 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x1F
- b _0802ECD2
- .align 2, 0
-_0802EA30: .4byte gPlayerParty
-_0802EA34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA40 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x20
- b _0802ECD2
- .align 2, 0
-_0802EA40: .4byte gPlayerParty
-_0802EA44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA50 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x22
- b _0802ECD2
- .align 2, 0
-_0802EA50: .4byte gPlayerParty
-_0802EA54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA60 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x23
- b _0802ECD2
- .align 2, 0
-_0802EA60: .4byte gPlayerParty
-_0802EA64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA70 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x24
- b _0802ECD2
- .align 2, 0
-_0802EA70: .4byte gPlayerParty
-_0802EA74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA80 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x25
- b _0802ECD2
- .align 2, 0
-_0802EA80: .4byte gPlayerParty
-_0802EA84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EA90 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x26
- b _0802ECD2
- .align 2, 0
-_0802EA90: .4byte gPlayerParty
-_0802EA94:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802EAE0 @ =gPlayerParty
- 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 _0802ECDA
- .align 2, 0
-_0802EAE0: .4byte gPlayerParty
-_0802EAE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EAF0 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x27
- b _0802ECD2
- .align 2, 0
-_0802EAF0: .4byte gPlayerParty
-_0802EAF4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB00 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x28
- b _0802ECD2
- .align 2, 0
-_0802EB00: .4byte gPlayerParty
-_0802EB04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB10 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x29
- b _0802ECD2
- .align 2, 0
-_0802EB10: .4byte gPlayerParty
-_0802EB14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB20 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2A
- b _0802ECD2
- .align 2, 0
-_0802EB20: .4byte gPlayerParty
-_0802EB24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB30 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2B
- b _0802ECD2
- .align 2, 0
-_0802EB30: .4byte gPlayerParty
-_0802EB34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB40 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2C
- b _0802ECD2
- .align 2, 0
-_0802EB40: .4byte gPlayerParty
-_0802EB44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB50 @ =gPlayerParty
- adds r0, r1
- movs r1, 0
- b _0802EB6E
- .align 2, 0
-_0802EB50: .4byte gPlayerParty
-_0802EB54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB60 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x9
- b _0802EC12
- .align 2, 0
-_0802EB60: .4byte gPlayerParty
-_0802EB64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EB94 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x37
-_0802EB6E:
- 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 _0802ECDA
- .align 2, 0
-_0802EB94: .4byte gPlayerParty
-_0802EB98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x38
- b _0802ECD2
- .align 2, 0
-_0802EBA4: .4byte gPlayerParty
-_0802EBA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x39
- b _0802EC12
- .align 2, 0
-_0802EBB4: .4byte gPlayerParty
-_0802EBB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBC4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- b _0802EC12
- .align 2, 0
-_0802EBC4: .4byte gPlayerParty
-_0802EBC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBD4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3B
- b _0802EC12
- .align 2, 0
-_0802EBD4: .4byte gPlayerParty
-_0802EBD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBE4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3C
- b _0802EC12
- .align 2, 0
-_0802EBE4: .4byte gPlayerParty
-_0802EBE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EBF4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3D
- b _0802EC12
- .align 2, 0
-_0802EBF4: .4byte gPlayerParty
-_0802EBF8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC04 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3E
- b _0802EC12
- .align 2, 0
-_0802EC04: .4byte gPlayerParty
-_0802EC08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC24 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3F
-_0802EC12:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0802ECDA
- .align 2, 0
-_0802EC24: .4byte gPlayerParty
-_0802EC28:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC34 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x16
- b _0802ECD2
- .align 2, 0
-_0802EC34: .4byte gPlayerParty
-_0802EC38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC44 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x17
- b _0802ECD2
- .align 2, 0
-_0802EC44: .4byte gPlayerParty
-_0802EC48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC54 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x18
- b _0802ECD2
- .align 2, 0
-_0802EC54: .4byte gPlayerParty
-_0802EC58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC64 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x21
- b _0802ECD2
- .align 2, 0
-_0802EC64: .4byte gPlayerParty
-_0802EC68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC74 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x2F
- b _0802ECD2
- .align 2, 0
-_0802EC74: .4byte gPlayerParty
-_0802EC78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC84 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x30
- b _0802ECD2
- .align 2, 0
-_0802EC84: .4byte gPlayerParty
-_0802EC88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802EC94 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x32
- b _0802ECD2
- .align 2, 0
-_0802EC94: .4byte gPlayerParty
-_0802EC98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECA4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x33
- b _0802ECD2
- .align 2, 0
-_0802ECA4: .4byte gPlayerParty
-_0802ECA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECB4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x34
- b _0802ECD2
- .align 2, 0
-_0802ECB4: .4byte gPlayerParty
-_0802ECB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECC4 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x35
- b _0802ECD2
- .align 2, 0
-_0802ECC4: .4byte gPlayerParty
-_0802ECC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802ECEC @ =gPlayerParty
- adds r0, r1
- movs r1, 0x36
-_0802ECD2:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0802ECDA:
- 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
-_0802ECEC: .4byte gPlayerParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_
-
- thumb_func_start sub_802ECF0
-sub_802ECF0: @ 802ECF0
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r2, _0802ED68 @ =gUnknown_02024A6A
- ldr r5, _0802ED6C @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r3, _0802ED70 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r2, [r0]
- ldr r0, _0802ED74 @ =gPlayerParty
- adds r0, r2, r0
- adds r6, r4, r0
- mov r0, sp
- adds r4, r0, r2
- movs r2, 0
- adds r0, r3, 0x2
- adds r1, r0
- adds r7, r5, 0
- mov r12, r3
- ldrb r1, [r1]
- cmp r2, r1
- bcs _0802ED46
- adds r3, r0, 0
-_0802ED2C:
- adds r1, r4, r2
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcc _0802ED2C
-_0802ED46:
- ldrb r0, [r7]
- lsls r0, 9
- mov r1, r12
- adds r1, 0x2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl1_exec_completed
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802ED68: .4byte gUnknown_02024A6A
-_0802ED6C: .4byte gUnknown_02024A60
-_0802ED70: .4byte gUnknown_02023A60
-_0802ED74: .4byte gPlayerParty
- thumb_func_end sub_802ECF0
-
- thumb_func_start dp01t_02_1_setattr
-dp01t_02_1_setattr: @ 802ED78
- push {r4,r5,lr}
- ldr r1, _0802ED9C @ =gUnknown_02023A60
- ldr r0, _0802EDA0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0802EDA8
- ldr r0, _0802EDA4 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl dp01_setattr_by_ch1_for_player_pokemon
- b _0802EDC6
- .align 2, 0
-_0802ED9C: .4byte gUnknown_02023A60
-_0802EDA0: .4byte gUnknown_02024A60
-_0802EDA4: .4byte gUnknown_02024A6A
-_0802EDA8:
- ldrb r4, [r1]
- movs r5, 0
-_0802EDAC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0802EDBA
- adds r0, r5, 0
- bl dp01_setattr_by_ch1_for_player_pokemon
-_0802EDBA:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0802EDAC
-_0802EDC6:
- bl dp01_tbl1_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp01t_02_1_setattr
-
- thumb_func_start dp01_setattr_by_ch1_for_player_pokemon
-dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0
- 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, _0802EE08 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _0802EE0C @ =gUnknown_02023A63
- 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 _0802EDFC
- bl _0802F796
-_0802EDFC:
- lsls r0, 2
- ldr r1, _0802EE10 @ =_0802EE14
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0802EE08: .4byte gUnknown_02024A60
-_0802EE0C: .4byte gUnknown_02023A63
-_0802EE10: .4byte _0802EE14
- .align 2, 0
-_0802EE14:
- .4byte _0802EF04
- .4byte _0802F09C
- .4byte _0802F0BC
- .4byte _0802F0DC
- .4byte _0802F134
- .4byte _0802F134
- .4byte _0802F134
- .4byte _0802F134
- .4byte _0802F15C
- .4byte _0802F1C0
- .4byte _0802F1C0
- .4byte _0802F1C0
- .4byte _0802F1C0
- .4byte _0802F796
- .4byte _0802F796
- .4byte _0802F796
- .4byte _0802F796
- .4byte _0802F1F0
- .4byte _0802F210
- .4byte _0802F230
- .4byte _0802F250
- .4byte _0802F270
- .4byte _0802F290
- .4byte _0802F2B0
- .4byte _0802F2D0
- .4byte _0802F2F0
- .4byte _0802F310
- .4byte _0802F330
- .4byte _0802F350
- .4byte _0802F370
- .4byte _0802F390
- .4byte _0802F3B0
- .4byte _0802F420
- .4byte _0802F440
- .4byte _0802F460
- .4byte _0802F480
- .4byte _0802F4A0
- .4byte _0802F4C0
- .4byte _0802F4E0
- .4byte _0802F500
- .4byte _0802F520
- .4byte _0802F540
- .4byte _0802F560
- .4byte _0802F580
- .4byte _0802F5A0
- .4byte _0802F5C0
- .4byte _0802F5E0
- .4byte _0802F600
- .4byte _0802F620
- .4byte _0802F640
- .4byte _0802F660
- .4byte _0802F680
- .4byte _0802F6A0
- .4byte _0802F6C0
- .4byte _0802F6E0
- .4byte _0802F700
- .4byte _0802F720
- .4byte _0802F740
- .4byte _0802F760
- .4byte _0802F780
-_0802EF04:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F098 @ =gPlayerParty
- 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
-_0802EF6A:
- 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 _0802EF6A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F098 @ =gPlayerParty
- 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 _0802F796
- .align 2, 0
-_0802F098: .4byte gPlayerParty
-_0802F09C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F0B4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F0B8 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F0B4: .4byte gPlayerParty
-_0802F0B8: .4byte gUnknown_02024A60
-_0802F0BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F0D4 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F0D8 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F0D4: .4byte gPlayerParty
-_0802F0D8: .4byte gUnknown_02024A60
-_0802F0DC:
- 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, _0802F130 @ =gPlayerParty
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_0802F0F6:
- 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 _0802F0F6
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F130 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F130: .4byte gPlayerParty
-_0802F134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F150 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802F154 @ =gUnknown_02023A60
- ldr r1, _0802F158 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0802F1D8
- .align 2, 0
-_0802F150: .4byte gPlayerParty
-_0802F154: .4byte gUnknown_02023A60
-_0802F158: .4byte gUnknown_02024A60
-_0802F15C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F1B8 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0802F1BC @ =gUnknown_02024A60
- 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 _0802F796
- .align 2, 0
-_0802F1B8: .4byte gPlayerParty
-_0802F1BC: .4byte gUnknown_02024A60
-_0802F1C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F1E4 @ =gPlayerParty
- adds r0, r1
- ldr r3, _0802F1E8 @ =gUnknown_02023A60
- ldr r1, _0802F1EC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0802F1D8:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F1E4: .4byte gPlayerParty
-_0802F1E8: .4byte gUnknown_02023A60
-_0802F1EC: .4byte gUnknown_02024A60
-_0802F1F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F208 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F20C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F208: .4byte gPlayerParty
-_0802F20C: .4byte gUnknown_02024A60
-_0802F210:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F228 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F22C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F228: .4byte gPlayerParty
-_0802F22C: .4byte gUnknown_02024A60
-_0802F230:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F248 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F24C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F248: .4byte gPlayerParty
-_0802F24C: .4byte gUnknown_02024A60
-_0802F250:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F268 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F26C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F268: .4byte gPlayerParty
-_0802F26C: .4byte gUnknown_02024A60
-_0802F270:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F288 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F28C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F288: .4byte gPlayerParty
-_0802F28C: .4byte gUnknown_02024A60
-_0802F290:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F2A8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F2AC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F2A8: .4byte gPlayerParty
-_0802F2AC: .4byte gUnknown_02024A60
-_0802F2B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F2C8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F2CC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F2C8: .4byte gPlayerParty
-_0802F2CC: .4byte gUnknown_02024A60
-_0802F2D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F2E8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F2EC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F2E8: .4byte gPlayerParty
-_0802F2EC: .4byte gUnknown_02024A60
-_0802F2F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F308 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F30C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F308: .4byte gPlayerParty
-_0802F30C: .4byte gUnknown_02024A60
-_0802F310:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F328 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F32C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F328: .4byte gPlayerParty
-_0802F32C: .4byte gUnknown_02024A60
-_0802F330:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F348 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F34C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F348: .4byte gPlayerParty
-_0802F34C: .4byte gUnknown_02024A60
-_0802F350:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F368 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F36C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F368: .4byte gPlayerParty
-_0802F36C: .4byte gUnknown_02024A60
-_0802F370:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F388 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F38C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F388: .4byte gPlayerParty
-_0802F38C: .4byte gUnknown_02024A60
-_0802F390:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F3A8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F3AC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F3A8: .4byte gPlayerParty
-_0802F3AC: .4byte gUnknown_02024A60
-_0802F3B0:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0802F418 @ =gPlayerParty
- adds r4, r0
- ldr r5, _0802F41C @ =gUnknown_02024A60
- 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 _0802F4D0
- .align 2, 0
-_0802F418: .4byte gPlayerParty
-_0802F41C: .4byte gUnknown_02024A60
-_0802F420:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F438 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F43C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F438: .4byte gPlayerParty
-_0802F43C: .4byte gUnknown_02024A60
-_0802F440:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F458 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F45C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F458: .4byte gPlayerParty
-_0802F45C: .4byte gUnknown_02024A60
-_0802F460:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F478 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F47C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F478: .4byte gPlayerParty
-_0802F47C: .4byte gUnknown_02024A60
-_0802F480:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F498 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F49C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F498: .4byte gPlayerParty
-_0802F49C: .4byte gUnknown_02024A60
-_0802F4A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F4B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F4BC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F4B8: .4byte gPlayerParty
-_0802F4BC: .4byte gUnknown_02024A60
-_0802F4C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F4D8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F4DC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_0802F4D0:
- movs r1, 0x2C
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F4D8: .4byte gPlayerParty
-_0802F4DC: .4byte gUnknown_02024A60
-_0802F4E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F4F8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F4FC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F4F8: .4byte gPlayerParty
-_0802F4FC: .4byte gUnknown_02024A60
-_0802F500:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F518 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F51C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F518: .4byte gPlayerParty
-_0802F51C: .4byte gUnknown_02024A60
-_0802F520:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F538 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F53C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F538: .4byte gPlayerParty
-_0802F53C: .4byte gUnknown_02024A60
-_0802F540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F558 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F55C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F558: .4byte gPlayerParty
-_0802F55C: .4byte gUnknown_02024A60
-_0802F560:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F578 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F57C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F578: .4byte gPlayerParty
-_0802F57C: .4byte gUnknown_02024A60
-_0802F580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F598 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F59C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F598: .4byte gPlayerParty
-_0802F59C: .4byte gUnknown_02024A60
-_0802F5A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F5B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F5BC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F5B8: .4byte gPlayerParty
-_0802F5BC: .4byte gUnknown_02024A60
-_0802F5C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F5D8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F5DC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F5D8: .4byte gPlayerParty
-_0802F5DC: .4byte gUnknown_02024A60
-_0802F5E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F5F8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F5FC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F5F8: .4byte gPlayerParty
-_0802F5FC: .4byte gUnknown_02024A60
-_0802F600:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F618 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F61C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F618: .4byte gPlayerParty
-_0802F61C: .4byte gUnknown_02024A60
-_0802F620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F638 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F63C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F638: .4byte gPlayerParty
-_0802F63C: .4byte gUnknown_02024A60
-_0802F640:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F658 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F65C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F658: .4byte gPlayerParty
-_0802F65C: .4byte gUnknown_02024A60
-_0802F660:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F678 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F67C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F678: .4byte gPlayerParty
-_0802F67C: .4byte gUnknown_02024A60
-_0802F680:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F698 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F69C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F698: .4byte gPlayerParty
-_0802F69C: .4byte gUnknown_02024A60
-_0802F6A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F6B8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F6BC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F6B8: .4byte gPlayerParty
-_0802F6BC: .4byte gUnknown_02024A60
-_0802F6C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F6D8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F6DC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F6D8: .4byte gPlayerParty
-_0802F6DC: .4byte gUnknown_02024A60
-_0802F6E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F6F8 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F6FC @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F6F8: .4byte gPlayerParty
-_0802F6FC: .4byte gUnknown_02024A60
-_0802F700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F718 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F71C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F718: .4byte gPlayerParty
-_0802F71C: .4byte gUnknown_02024A60
-_0802F720:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F738 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F73C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F738: .4byte gPlayerParty
-_0802F73C: .4byte gUnknown_02024A60
-_0802F740:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F758 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F75C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F758: .4byte gPlayerParty
-_0802F75C: .4byte gUnknown_02024A60
-_0802F760:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F778 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F77C @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _0802F796
- .align 2, 0
-_0802F778: .4byte gPlayerParty
-_0802F77C: .4byte gUnknown_02024A60
-_0802F780:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0802F7C0 @ =gPlayerParty
- adds r0, r1
- ldr r1, _0802F7C4 @ =gUnknown_02024A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_0802F796:
- ldr r2, _0802F7C8 @ =gUnknown_02024A6A
- ldr r0, _0802F7C4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802F7C0 @ =gPlayerParty
- 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
-_0802F7C0: .4byte gPlayerParty
-_0802F7C4: .4byte gUnknown_02024A60
-_0802F7C8: .4byte gUnknown_02024A6A
- thumb_func_end dp01_setattr_by_ch1_for_player_pokemon
-
- thumb_func_start sub_802F7CC
-sub_802F7CC: @ 802F7CC
- push {r4-r7,lr}
- ldr r1, _0802F830 @ =gUnknown_02024A6A
- ldr r7, _0802F834 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0802F838 @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _0802F83C @ =gPlayerParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0802F824
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0802F802:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0802F802
-_0802F824:
- bl dp01_tbl1_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F830: .4byte gUnknown_02024A6A
-_0802F834: .4byte gUnknown_02024A60
-_0802F838: .4byte gUnknown_02023A60
-_0802F83C: .4byte gPlayerParty
- thumb_func_end sub_802F7CC
-
- thumb_func_start sub_802F840
-sub_802F840: @ 802F840
- push {r4,lr}
- ldr r2, _0802F88C @ =gUnknown_02024A6A
- ldr r4, _0802F890 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802F894 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldr r2, _0802F898 @ =gSprites
- ldr r0, _0802F89C @ =gUnknown_02024BE0
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldr r1, _0802F8A0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802F8A4 @ =bx_0802E404
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F88C: .4byte gUnknown_02024A6A
-_0802F890: .4byte gUnknown_02024A60
-_0802F894: .4byte gPlayerParty
-_0802F898: .4byte gSprites
-_0802F89C: .4byte gUnknown_02024BE0
-_0802F8A0: .4byte gUnknown_03004330
-_0802F8A4: .4byte bx_0802E404
- thumb_func_end sub_802F840
-
- thumb_func_start sub_802F8A8
-sub_802F8A8: @ 802F8A8
- push {r4-r6,lr}
- ldr r5, _0802F914 @ =gUnknown_02024A60
- ldrb r0, [r5]
- ldr r4, _0802F918 @ =gUnknown_02023A60
- lsls r1, r0, 9
- adds r6, r4, 0x2
- adds r1, r6
- ldrb r1, [r1]
- bl sub_8032AA8
- ldr r2, _0802F91C @ =gUnknown_02024A6A
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r2
- lsls r0, 9
- adds r4, 0x1
- adds r0, r4
- ldrb r0, [r0]
- movs r4, 0
- strh r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802F920 @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldr r1, _0802F924 @ =gUnknown_02024E60
- ldrb r0, [r5]
- adds r0, r1
- strb r4, [r0]
- ldr r1, _0802F928 @ =gUnknown_02024E64
- ldrb r0, [r5]
- adds r0, r1
- strb r4, [r0]
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r1, r6
- ldrb r1, [r1]
- bl sub_802F934
- ldr r1, _0802F92C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802F930 @ =sub_802D798
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802F914: .4byte gUnknown_02024A60
-_0802F918: .4byte gUnknown_02023A60
-_0802F91C: .4byte gUnknown_02024A6A
-_0802F920: .4byte gPlayerParty
-_0802F924: .4byte gUnknown_02024E60
-_0802F928: .4byte gUnknown_02024E64
-_0802F92C: .4byte gUnknown_03004330
-_0802F930: .4byte sub_802D798
- thumb_func_end sub_802F8A8
-
- thumb_func_start sub_802F934
-sub_802F934: @ 802F934
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0802FA78 @ =gUnknown_02024A6A
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _0802FA7C @ =gUnknown_02023A60
- 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, _0802FA80 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _0802FA84 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _0802FA88 @ =gUnknown_0300434C
- 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, _0802FA8C @ =gUnknown_02024E8C
- 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, _0802FA90 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _0802FA94 @ =gSprites
- 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, _0802FA98 @ =gUnknown_02024E84
- 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, _0802FA9C @ =SpriteCallbackDummy
- 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
-_0802FA78: .4byte gUnknown_02024A6A
-_0802FA7C: .4byte gUnknown_02023A60
-_0802FA80: .4byte gPlayerParty
-_0802FA84: .4byte sub_80312F0
-_0802FA88: .4byte gUnknown_0300434C
-_0802FA8C: .4byte gUnknown_02024E8C
-_0802FA90: .4byte gUnknown_02024BE0
-_0802FA94: .4byte gSprites
-_0802FA98: .4byte gUnknown_02024E84
-_0802FA9C: .4byte SpriteCallbackDummy
- thumb_func_end sub_802F934
-
- thumb_func_start sub_802FAA0
-sub_802FAA0: @ 802FAA0
- push {r4-r6,lr}
- ldr r1, _0802FAD0 @ =gUnknown_02023A60
- ldr r6, _0802FAD4 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0802FAE4
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0802FAD8 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _0802FADC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FAE0 @ =sub_802FB2C
- str r1, [r0]
- b _0802FB1A
- .align 2, 0
-_0802FAD0: .4byte gUnknown_02023A60
-_0802FAD4: .4byte gUnknown_02024A60
-_0802FAD8: .4byte 0x02017810
-_0802FADC: .4byte gUnknown_03004330
-_0802FAE0: .4byte sub_802FB2C
-_0802FAE4:
- ldr r5, _0802FB20 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802FB24 @ =gSprites
- 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, _0802FB28 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl1_exec_completed
-_0802FB1A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FB20: .4byte gUnknown_02024BE0
-_0802FB24: .4byte gSprites
-_0802FB28: .4byte gUnknown_03004340
- thumb_func_end sub_802FAA0
-
- thumb_func_start sub_802FB2C
-sub_802FB2C: @ 802FB2C
- push {r4,r5,lr}
- ldr r5, _0802FB48 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0802FB4C @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0802FB50
- cmp r0, 0x1
- beq _0802FB7C
- b _0802FBA4
- .align 2, 0
-_0802FB48: .4byte gUnknown_02024A60
-_0802FB4C: .4byte 0x02017810
-_0802FB50:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802FB6C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0802FB6C:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0802FBA4
-_0802FB7C:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0802FBA4
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r1, _0802FBAC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FBB0 @ =sub_802DEAC
- str r1, [r0]
-_0802FBA4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FBAC: .4byte gUnknown_03004330
-_0802FBB0: .4byte sub_802DEAC
- thumb_func_end sub_802FB2C
-
- thumb_func_start sub_802FBB4
-sub_802FBB4: @ 802FBB4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0802FBDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0802FBE8
- ldr r0, _0802FBE0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- ldr r7, _0802FBE4 @ =0x0000fff0
- cmp r1, 0
- beq _0802FBEA
- movs r7, 0x10
- b _0802FBEA
- .align 2, 0
-_0802FBDC: .4byte gUnknown_020239F8
-_0802FBE0: .4byte gUnknown_02024A60
-_0802FBE4: .4byte 0x0000fff0
-_0802FBE8:
- movs r7, 0
-_0802FBEA:
- ldr r4, _0802FCB8 @ =gSaveBlock2
- ldrb r0, [r4, 0x8]
- ldr r6, _0802FCBC @ =gUnknown_02024A60
- ldrb r1, [r6]
- bl sub_8031AF4
- ldrb r5, [r4, 0x8]
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0802FCC0 @ =gUnknown_02024E8C
- mov r8, r0
- lsls r5, r7, 16
- movs r0, 0xA0
- lsls r0, 15
- adds r5, r0
- asrs r5, 16
- ldr r1, _0802FCC4 @ =gTrainerBackPicCoords
- ldrb r0, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0802FCC8 @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _0802FCCC @ =gSprites
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FCD0 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0802FCD4 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0802FCD8 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FCDC @ =sub_802D204
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FCB8: .4byte gSaveBlock2
-_0802FCBC: .4byte gUnknown_02024A60
-_0802FCC0: .4byte gUnknown_02024E8C
-_0802FCC4: .4byte gTrainerBackPicCoords
-_0802FCC8: .4byte gUnknown_02024BE0
-_0802FCCC: .4byte gSprites
-_0802FCD0: .4byte 0x0000fffe
-_0802FCD4: .4byte sub_80313A0
-_0802FCD8: .4byte gUnknown_03004330
-_0802FCDC: .4byte sub_802D204
- thumb_func_end sub_802FBB4
-
- thumb_func_start sub_802FCE0
-sub_802FCE0: @ 802FCE0
- push {r4-r6,lr}
- ldr r4, _0802FD94 @ =gSaveBlock2
- ldrb r0, [r4, 0x8]
- ldr r5, _0802FD98 @ =gUnknown_02024A60
- 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, _0802FD9C @ =gUnknown_02024E8C
- ldr r2, _0802FDA0 @ =gTrainerBackPicCoords
- 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, _0802FDA4 @ =gUnknown_02024BE0
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, _0802FDA8 @ =gSprites
- 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
- ldr r1, _0802FDAC @ =0x0000ffa0
- 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
- movs r1, 0x2
- 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, _0802FDB0 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0802FDB4 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FDB8 @ =sub_802D23C
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FD94: .4byte gSaveBlock2
-_0802FD98: .4byte gUnknown_02024A60
-_0802FD9C: .4byte gUnknown_02024E8C
-_0802FDA0: .4byte gTrainerBackPicCoords
-_0802FDA4: .4byte gUnknown_02024BE0
-_0802FDA8: .4byte gSprites
-_0802FDAC: .4byte 0x0000ffa0
-_0802FDB0: .4byte sub_80313A0
-_0802FDB4: .4byte gUnknown_03004330
-_0802FDB8: .4byte sub_802D23C
- thumb_func_end sub_802FCE0
-
- thumb_func_start sub_802FDBC
-sub_802FDBC: @ 802FDBC
- push {r4-r6,lr}
- ldr r5, _0802FE5C @ =gUnknown_02024BE0
- ldr r6, _0802FE60 @ =gUnknown_02024A60
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0802FE64 @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FE68 @ =0x0000ffd8
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0802FE6C @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0802FE70 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, _0802FE74 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FE78 @ =sub_802D274
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FE5C: .4byte gUnknown_02024BE0
-_0802FE60: .4byte gUnknown_02024A60
-_0802FE64: .4byte gSprites
-_0802FE68: .4byte 0x0000ffd8
-_0802FE6C: .4byte sub_8078B34
-_0802FE70: .4byte SpriteCallbackDummy
-_0802FE74: .4byte gUnknown_03004330
-_0802FE78: .4byte sub_802D274
- thumb_func_end sub_802FDBC
-
- thumb_func_start sub_802FE7C
-sub_802FE7C: @ 802FE7C
- push {r4,r5,lr}
- ldr r5, _0802FEC0 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0802FEC4 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0802FEC8
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0802FEAE
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0802FEAE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0802FF3E
- .align 2, 0
-_0802FEC0: .4byte gUnknown_02024A60
-_0802FEC4: .4byte 0x02017810
-_0802FEC8:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0802FF3E
- strb r4, [r3, 0x4]
- ldr r2, _0802FF44 @ =gUnknown_02024A6A
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0802FF48 @ =gPlayerParty
- adds r0, r2
- bl sub_80324F8
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl PlaySE12WithPanning
- ldr r2, _0802FF4C @ =gSprites
- ldr r3, _0802FF50 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x30]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x32]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0802FF54 @ =sub_80105EC
- str r1, [r0]
- ldr r1, _0802FF58 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FF5C @ =sub_802DE10
- str r1, [r0]
-_0802FF3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FF44: .4byte gUnknown_02024A6A
-_0802FF48: .4byte gPlayerParty
-_0802FF4C: .4byte gSprites
-_0802FF50: .4byte gUnknown_02024BE0
-_0802FF54: .4byte sub_80105EC
-_0802FF58: .4byte gUnknown_03004330
-_0802FF5C: .4byte sub_802DE10
- thumb_func_end sub_802FE7C
-
- thumb_func_start sub_802FF60
-sub_802FF60: @ 802FF60
- push {lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl dp01_tbl1_exec_completed
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_802FF60
-
- thumb_func_start sub_802FF80
-sub_802FF80: @ 802FF80
- push {r4,r5,lr}
- ldr r1, _0802FFBC @ =0x02017840
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _0802FFC0 @ =gUnknown_02024E6D
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _0802FFC4 @ =gUnknown_02024A60
- 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, 0x3
- bl move_anim_start_t4
- ldr r1, _0802FFC8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0802FFCC @ =bx_wait_t1
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0802FFBC: .4byte 0x02017840
-_0802FFC0: .4byte gUnknown_02024E6D
-_0802FFC4: .4byte gUnknown_02024A60
-_0802FFC8: .4byte gUnknown_03004330
-_0802FFCC: .4byte bx_wait_t1
- thumb_func_end sub_802FF80
-
- thumb_func_start sub_802FFD0
-sub_802FFD0: @ 802FFD0
- push {r4,r5,lr}
- ldr r1, _08030014 @ =gUnknown_02023A60
- ldr r5, _08030018 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0803001C @ =0x02017840
- strb r1, [r0, 0x8]
- ldr r1, _08030020 @ =gUnknown_02024E6D
- 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, 0x3
- bl move_anim_start_t4
- ldr r1, _08030024 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030028 @ =bx_wait_t1
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030014: .4byte gUnknown_02023A60
-_08030018: .4byte gUnknown_02024A60
-_0803001C: .4byte 0x02017840
-_08030020: .4byte gUnknown_02024E6D
-_08030024: .4byte gUnknown_03004330
-_08030028: .4byte bx_wait_t1
- thumb_func_end sub_802FFD0
-
- thumb_func_start sub_803002C
-sub_803002C: @ 803002C
- push {lr}
- ldr r1, _08030054 @ =gUnknown_02023A60
- ldr r0, _08030058 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803004A
-_08030040:
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08030040
-_0803004A:
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030054: .4byte gUnknown_02023A60
-_08030058: .4byte gUnknown_02024A60
- thumb_func_end sub_803002C
-
- thumb_func_start dp01t_0F_1_move_anim
-dp01t_0F_1_move_anim: @ 803005C
- push {r4-r6,lr}
- ldr r6, _08030140 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _0803006E
- b _0803017E
-_0803006E:
- ldr r0, _08030144 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08030148 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0803014C @ =gUnknown_0202F7BC
- 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, _08030150 @ =gUnknown_0202F7B8
- 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, _08030154 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08030158 @ =gUnknown_0202F7C0
- 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, _0803015C @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08030160 @ =gUnknown_02024E70
- 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 _08030164
- bl dp01_tbl1_exec_completed
- b _0803017E
- .align 2, 0
-_08030140: .4byte gUnknown_02024A60
-_08030144: .4byte gUnknown_02023A60
-_08030148: .4byte gUnknown_0202F7C4
-_0803014C: .4byte gUnknown_0202F7BC
-_08030150: .4byte gUnknown_0202F7B8
-_08030154: .4byte gUnknown_0202F7BE
-_08030158: .4byte gUnknown_0202F7C0
-_0803015C: .4byte gUnknown_0202F7B4
-_08030160: .4byte gUnknown_02024E70
-_08030164:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08030184 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08030188 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803018C @ =sub_8030190
- str r1, [r0]
-_0803017E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08030184: .4byte 0x02017810
-_08030188: .4byte gUnknown_03004330
-_0803018C: .4byte sub_8030190
- thumb_func_end dp01t_0F_1_move_anim
-
- thumb_func_start sub_8030190
-sub_8030190: @ 8030190
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _080301D4 @ =gUnknown_02023A60
- ldr r5, _080301D8 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _080301DC @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _0803021E
- cmp r2, 0x1
- bgt _080301E0
- cmp r2, 0
- beq _080301EA
- b _080302E8
- .align 2, 0
-_080301D4: .4byte gUnknown_02023A60
-_080301D8: .4byte gUnknown_02024A60
-_080301DC: .4byte 0x02017810
-_080301E0:
- cmp r2, 0x2
- beq _08030244
- cmp r2, 0x3
- beq _080302B0
- b _080302E8
-_080301EA:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _0803020E
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0803020E:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _080302E8
-_0803021E:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080302E8
- 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 _080302E8
-_08030244:
- ldr r0, _080302A0 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _080302A4 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080302E8
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803028C
- cmp r7, 0x1
- bhi _0803028C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0803028C:
- ldr r0, _080302A8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080302AC @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _080302E8
- .align 2, 0
-_080302A0: .4byte gUnknown_0202F7AC
-_080302A4: .4byte gUnknown_0202F7B1
-_080302A8: .4byte gUnknown_02024A60
-_080302AC: .4byte 0x02017810
-_080302B0:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080302E8
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl1_exec_completed
-_080302E8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8030190
-
- thumb_func_start sub_80302F4
-sub_80302F4: @ 80302F4
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08030338 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0803033C @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _08030340 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _08030344 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _08030348 @ =gUnknown_03004210
- ldr r1, _0803034C @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08030350 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030354 @ =sub_802DF18
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030338: .4byte gUnknown_030042A4
-_0803033C: .4byte gUnknown_030042A0
-_08030340: .4byte gUnknown_02024A60
-_08030344: .4byte gUnknown_02023A62
-_08030348: .4byte gUnknown_03004210
-_0803034C: .4byte gUnknown_020238CC
-_08030350: .4byte gUnknown_03004330
-_08030354: .4byte sub_802DF18
- thumb_func_end sub_80302F4
-
- thumb_func_start dp01t_11_1_message_for_player_only
-dp01t_11_1_message_for_player_only: @ 8030358
- push {lr}
- ldr r0, _08030370 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08030374
- bl sub_80302F4
- b _08030378
- .align 2, 0
-_08030370: .4byte gUnknown_02024A60
-_08030374:
- bl dp01_tbl1_exec_completed
-_08030378:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_1_message_for_player_only
-
- thumb_func_start sub_803037C
-sub_803037C: @ 803037C
- push {r4,lr}
- sub sp, 0x8
- ldr r1, _08030434 @ =gUnknown_030042A4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08030438 @ =gUnknown_030042A0
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _0803043C @ =gUnknown_03004210
- 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
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x26
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect
- ldr r1, _08030440 @ =gUnknown_03004330
- ldr r0, _08030444 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030448 @ =sub_802C098
- str r1, [r0]
- ldr r1, _0803044C @ =gUnknown_08400CF3
- 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, _08030450 @ =0x0000ffff
- ldr r3, _08030454 @ =0x00002d9f
- movs r0, 0
- str r0, [sp]
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_080303EC:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _080303EC
- ldr r1, _08030458 @ =gUnknown_02024E60
- ldr r0, _08030444 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _0803045C @ =gUnknown_08400CA8
- bl get_battle_strings_
- ldr r4, _0803043C @ =gUnknown_03004210
- ldr r1, _08030460 @ =gUnknown_020238CC
- 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}
- pop {r0}
- bx r0
- .align 2, 0
-_08030434: .4byte gUnknown_030042A4
-_08030438: .4byte gUnknown_030042A0
-_0803043C: .4byte gUnknown_03004210
-_08030440: .4byte gUnknown_03004330
-_08030444: .4byte gUnknown_02024A60
-_08030448: .4byte sub_802C098
-_0803044C: .4byte gUnknown_08400CF3
-_08030450: .4byte 0x0000ffff
-_08030454: .4byte 0x00002d9f
-_08030458: .4byte gUnknown_02024E60
-_0803045C: .4byte gUnknown_08400CA8
-_08030460: .4byte gUnknown_020238CC
- thumb_func_end sub_803037C
-
- thumb_func_start nullsub_42
-nullsub_42: @ 8030464
- bx lr
- thumb_func_end nullsub_42
-
- thumb_func_start sub_8030468
-sub_8030468: @ 8030468
- push {lr}
- sub sp, 0x4
- ldr r1, _08030494 @ =0x0000ffff
- ldr r3, _08030498 @ =0x00002d9f
- movs r0, 0
- str r0, [sp]
- movs r2, 0xC
- bl sub_814A5C0
- bl sub_80304A8
- ldr r1, _0803049C @ =gUnknown_03004330
- ldr r0, _080304A0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080304A4 @ =sub_802C68C
- str r1, [r0]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_08030494: .4byte 0x0000ffff
-_08030498: .4byte 0x00002d9f
-_0803049C: .4byte gUnknown_03004330
-_080304A0: .4byte gUnknown_02024A60
-_080304A4: .4byte sub_802C68C
- thumb_func_end sub_8030468
-
- thumb_func_start sub_80304A8
-sub_80304A8: @ 80304A8
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _08030510 @ =gUnknown_030042A4
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08030514 @ =gUnknown_030042A0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_802E1B0
- ldr r1, _08030518 @ =gUnknown_03004344
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _0803051C @ =gUnknown_02024E64
- ldr r4, _08030520 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3B4
- ldr r1, _08030524 @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08030500
- ldr r4, _08030528 @ =gUnknown_03004210
- ldr r1, _0803052C @ =gUnknown_08400D38
- movs r2, 0xA4
- lsls r2, 2
- movs r0, 0x37
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x17
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
-_08030500:
- bl sub_802E220
- bl sub_802E2D4
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030510: .4byte gUnknown_030042A4
-_08030514: .4byte gUnknown_030042A0
-_08030518: .4byte gUnknown_03004344
-_0803051C: .4byte gUnknown_02024E64
-_08030520: .4byte gUnknown_02024A60
-_08030524: .4byte gUnknown_02023A60
-_08030528: .4byte gUnknown_03004210
-_0803052C: .4byte gUnknown_08400D38
- thumb_func_end sub_80304A8
-
- thumb_func_start sub_8030530
-sub_8030530: @ 8030530
- push {r4,r5,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, _0803057C @ =gUnknown_03004330
- ldr r2, _08030580 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030584 @ =sub_802E004
- str r1, [r0]
- ldr r1, _08030588 @ =gUnknown_02024E6C
- ldrb r0, [r2]
- strb r0, [r1]
- movs r3, 0
- ldr r5, _0803058C @ =gUnknown_02038470
- ldr r4, _08030590 @ =gUnknown_02023A60
-_0803055E:
- adds r0, r3, r5
- ldrb r1, [r2]
- lsls r1, 9
- adds r1, 0x1
- adds r1, r3, r1
- adds r1, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2
- ble _0803055E
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0803057C: .4byte gUnknown_03004330
-_08030580: .4byte gUnknown_02024A60
-_08030584: .4byte sub_802E004
-_08030588: .4byte gUnknown_02024E6C
-_0803058C: .4byte gUnknown_02038470
-_08030590: .4byte gUnknown_02023A60
- thumb_func_end sub_8030530
-
- thumb_func_start sub_8030594
-sub_8030594: @ 8030594
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08030644 @ =TaskDummy
- movs r1, 0xFF
- bl CreateTask
- ldr r3, _08030648 @ =gUnknown_0300434C
- ldr r5, _0803064C @ =gUnknown_02024A60
- ldrb r1, [r5]
- adds r1, r3
- strb r0, [r1]
- ldr r4, _08030650 @ =gTasks
- ldrb r2, [r5]
- adds r3, r2, r3
- ldrb r0, [r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldr r4, _08030654 @ =gUnknown_02023A60
- lsls r2, 9
- adds r3, r4, 0x1
- adds r2, r3
- ldrb r2, [r2]
- movs r0, 0xF
- ands r0, r2
- strh r0, [r1, 0x8]
- ldr r2, _08030658 @ =0x02000000
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- lsrs r0, 4
- ldr r3, _0803065C @ =0x00016054
- adds r1, r2, r3
- strb r0, [r1]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r4, 0x2
- adds r0, r1
- ldrb r1, [r0]
- adds r3, 0x49
- adds r0, r2, r3
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, r4, 0x3
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _08030660 @ =0x000160c0
- adds r2, r1
- strb r0, [r2]
- movs r2, 0
- ldr r3, _08030664 @ =gUnknown_02038470
-_08030600:
- adds r0, r2, r3
- ldrb r1, [r5]
- lsls r1, 9
- adds r1, 0x4
- adds r1, r2, r1
- adds r1, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08030600
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08030668 @ =gUnknown_03004330
- ldr r2, _0803064C @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803066C @ =sub_802DF30
- str r1, [r0]
- ldr r1, _08030670 @ =gUnknown_02024E6C
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030644: .4byte TaskDummy
-_08030648: .4byte gUnknown_0300434C
-_0803064C: .4byte gUnknown_02024A60
-_08030650: .4byte gTasks
-_08030654: .4byte gUnknown_02023A60
-_08030658: .4byte 0x02000000
-_0803065C: .4byte 0x00016054
-_08030660: .4byte 0x000160c0
-_08030664: .4byte gUnknown_02038470
-_08030668: .4byte gUnknown_03004330
-_0803066C: .4byte sub_802DF30
-_08030670: .4byte gUnknown_02024E6C
- thumb_func_end sub_8030594
-
- thumb_func_start sub_8030674
-sub_8030674: @ 8030674
- push {lr}
- sub sp, 0x4
- bl sub_80325B8
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl dp01_tbl1_exec_completed
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_8030674
-
- thumb_func_start sub_8030698
-sub_8030698: @ 8030698
- 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, _08030710 @ =gUnknown_02023A60
- ldr r0, _08030714 @ =gUnknown_02024A60
- 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, _08030718 @ =0x00007fff
- cmp r7, r0
- beq _08030728
- ldr r6, _0803071C @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08030720 @ =gPlayerParty
- 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, _08030724 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08030762
- .align 2, 0
-_08030710: .4byte gUnknown_02023A60
-_08030714: .4byte gUnknown_02024A60
-_08030718: .4byte 0x00007fff
-_0803071C: .4byte gUnknown_02024A6A
-_08030720: .4byte gPlayerParty
-_08030724: .4byte gUnknown_03004340
-_08030728:
- ldr r1, _08030780 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08030784 @ =gPlayerParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r4, _08030788 @ =gUnknown_03004340
- 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
-_08030762:
- ldr r1, _0803078C @ =gUnknown_03004330
- ldr r0, _08030790 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030794 @ =bx_t1_healthbar_update
- 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
-_08030780: .4byte gUnknown_02024A6A
-_08030784: .4byte gPlayerParty
-_08030788: .4byte gUnknown_03004340
-_0803078C: .4byte gUnknown_03004330
-_08030790: .4byte gUnknown_02024A60
-_08030794: .4byte bx_t1_healthbar_update
- thumb_func_end sub_8030698
-
- thumb_func_start sub_8030798
-sub_8030798: @ 8030798
- push {r4-r7,lr}
- ldr r5, _080307C4 @ =gUnknown_02023A60
- ldr r6, _080307C8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 9
- adds r1, r5, 0x1
- adds r0, r1
- ldrb r7, [r0]
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _080307CC @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x63
- bls _080307D0
- bl dp01_tbl1_exec_completed
- b _0803081C
- .align 2, 0
-_080307C4: .4byte gUnknown_02023A60
-_080307C8: .4byte gUnknown_02024A60
-_080307CC: .4byte gPlayerParty
-_080307D0:
- movs r0, 0x1
- bl load_gfxc_health_bar
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- ldrb r1, [r6]
- lsls r1, 9
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r0, r5, 0x3
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- ldr r0, _08030824 @ =sub_802D924
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08030828 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r7, [r1, 0x8]
- strh r4, [r1, 0xA]
- ldrb r0, [r6]
- strh r0, [r1, 0xC]
- ldr r1, _0803082C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030830 @ =nullsub_91
- str r1, [r0]
-_0803081C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030824: .4byte sub_802D924
-_08030828: .4byte gTasks
-_0803082C: .4byte gUnknown_03004330
-_08030830: .4byte nullsub_91
- thumb_func_end sub_8030798
-
- thumb_func_start sub_8030834
-sub_8030834: @ 8030834
- push {r4,lr}
- ldr r4, _0803088C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08030884
- ldr r0, _08030890 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08030894 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08030898 @ =gPlayerParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0803089C @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _080308A0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080308A4 @ =sub_802E434
- str r1, [r0]
-_08030884:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803088C: .4byte gUnknown_02024A60
-_08030890: .4byte gUnknown_03004340
-_08030894: .4byte gUnknown_02024A6A
-_08030898: .4byte gPlayerParty
-_0803089C: .4byte 0x02017810
-_080308A0: .4byte gUnknown_03004330
-_080308A4: .4byte sub_802E434
- thumb_func_end sub_8030834
-
- thumb_func_start sub_80308A8
-sub_80308A8: @ 80308A8
- push {r4,r5,lr}
- ldr r5, _08030900 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _080308F8
- ldr r4, _08030904 @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _08030908 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803090C @ =sub_802E434
- str r1, [r0]
-_080308F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030900: .4byte gUnknown_02024A60
-_08030904: .4byte gUnknown_02023A60
-_08030908: .4byte gUnknown_03004330
-_0803090C: .4byte sub_802E434
- thumb_func_end sub_80308A8
-
- thumb_func_start sub_8030910
-sub_8030910: @ 8030910
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r0, _0803096C @ =gUnknown_02024A6A
- mov r8, r0
- ldr r4, _08030970 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08030974 @ =gPlayerParty
- adds r0, r5
- movs r1, 0x37
- bl GetMonData
- ldr r2, _08030978 @ =gUnknown_02023A60
- ldrb r1, [r4]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- eors r0, r1
- mov r1, sp
- strb r0, [r1]
- ldrb r0, [r4]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- bl dp01_tbl1_exec_completed
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803096C: .4byte gUnknown_02024A6A
-_08030970: .4byte gUnknown_02024A60
-_08030974: .4byte gPlayerParty
-_08030978: .4byte gUnknown_02023A60
- thumb_func_end sub_8030910
-
- thumb_func_start sub_803097C
-sub_803097C: @ 803097C
- push {lr}
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803097C
-
- thumb_func_start sub_8030988
-sub_8030988: @ 8030988
- push {r4,r5,lr}
- ldr r3, _080309EC @ =gUnknown_02023A60
- ldr r0, _080309F0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r2, 9
- adds r0, r3, 0x1
- adds r0, r2, r0
- ldrb r5, [r0]
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r5, r0
- adds r0, r3, 0x3
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 16
- orrs r5, r0
- adds r0, r3, 0x4
- adds r0, r2, r0
- ldrb r4, [r0]
- lsls r4, 24
- adds r0, r3, 0x5
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r0, r3, 0x6
- adds r0, r2, r0
- ldrb r0, [r0]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- adds r3, 0x7
- adds r2, r3
- orrs r5, r4
- lsrs r4, r1, 16
- movs r0, 0x80
- lsls r0, 5
- cmp r4, r0
- bhi _080309F8
- ldr r0, _080309F4 @ =0x040000d4
- str r2, [r0]
- str r5, [r0, 0x4]
- lsrs r1, 17
- movs r2, 0x80
- lsls r2, 24
- orrs r1, r2
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- b _08030A24
- .align 2, 0
-_080309EC: .4byte gUnknown_02023A60
-_080309F0: .4byte gUnknown_02024A60
-_080309F4: .4byte 0x040000d4
-_080309F8:
- ldr r3, _08030A30 @ =0x040000d4
- str r2, [r3]
- str r5, [r3, 0x4]
- ldr r0, _08030A34 @ =0x80000800
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
- movs r0, 0x80
- lsls r0, 5
- adds r2, r0
- adds r5, r0
- ldr r1, _08030A38 @ =0xfffff000
- adds r4, r1
- cmp r4, r0
- bhi _080309F8
- str r2, [r3]
- str r5, [r3, 0x4]
- lsrs r0, r4, 1
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r3, 0x8]
- ldr r0, [r3, 0x8]
-_08030A24:
- bl dp01_tbl1_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030A30: .4byte 0x040000d4
-_08030A34: .4byte 0x80000800
-_08030A38: .4byte 0xfffff000
- thumb_func_end sub_8030988
-
- thumb_func_start sub_8030A3C
-sub_8030A3C: @ 8030A3C
- push {lr}
- ldr r2, _08030A64 @ =gUnknown_02023A60
- ldr r0, _08030A68 @ =gUnknown_02024A60
- 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 PlayBGM
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030A64: .4byte gUnknown_02023A60
-_08030A68: .4byte gUnknown_02024A60
- thumb_func_end sub_8030A3C
-
- thumb_func_start sub_8030A6C
-sub_8030A6C: @ 8030A6C
- push {lr}
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030A6C
-
- thumb_func_start sub_8030A78
-sub_8030A78: @ 8030A78
- push {lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030A78
-
- thumb_func_start sub_8030A8C
-sub_8030A8C: @ 8030A8C
- push {lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030A8C
-
- thumb_func_start sub_8030AA0
-sub_8030AA0: @ 8030AA0
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030AA0
-
- thumb_func_start sub_8030AB4
-sub_8030AB4: @ 8030AB4
- push {lr}
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x24_aa_0
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030AB4
-
- thumb_func_start sub_8030AC8
-sub_8030AC8: @ 8030AC8
- push {lr}
- ldr r2, _08030AE0 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030AE0: .4byte gUnknown_020238C8
- thumb_func_end sub_8030AC8
-
- thumb_func_start sub_8030AE4
-sub_8030AE4: @ 8030AE4
- push {lr}
- ldr r3, _08030B10 @ =gUnknown_020238C8
- ldr r1, _08030B14 @ =gUnknown_02023A60
- ldr r0, _08030B18 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030B10: .4byte gUnknown_020238C8
-_08030B14: .4byte gUnknown_02023A60
-_08030B18: .4byte gUnknown_02024A60
- thumb_func_end sub_8030AE4
-
- thumb_func_start sub_8030B1C
-sub_8030B1C: @ 8030B1C
- push {lr}
- ldr r2, _08030B30 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030B30: .4byte gUnknown_020238C8
- thumb_func_end sub_8030B1C
-
- thumb_func_start sub_8030B34
-sub_8030B34: @ 8030B34
- push {lr}
- ldr r3, _08030B58 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030B58: .4byte gUnknown_020238C8
- thumb_func_end sub_8030B34
-
- thumb_func_start dp01t_29_1_blink
-dp01t_29_1_blink: @ 8030B5C
- push {r4,lr}
- ldr r3, _08030B84 @ =gSprites
- ldr r2, _08030B88 @ =gUnknown_02024BE0
- ldr r4, _08030B8C @ =gUnknown_02024A60
- 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 _08030B90
- bl dp01_tbl1_exec_completed
- b _08030BBA
- .align 2, 0
-_08030B84: .4byte gSprites
-_08030B88: .4byte gUnknown_02024BE0
-_08030B8C: .4byte gUnknown_02024A60
-_08030B90:
- ldr r1, _08030BC0 @ =gUnknown_02024E6D
- 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, _08030BC4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030BC8 @ =bx_blink_t1
- str r1, [r0]
-_08030BBA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030BC0: .4byte gUnknown_02024E6D
-_08030BC4: .4byte gUnknown_03004330
-_08030BC8: .4byte bx_blink_t1
- thumb_func_end dp01t_29_1_blink
-
- thumb_func_start sub_8030BCC
-sub_8030BCC: @ 8030BCC
- push {lr}
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8030BCC
-
- thumb_func_start sub_8030BD8
-sub_8030BD8: @ 8030BD8
- push {r4,lr}
- ldr r4, _08030C14 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _08030BEC
- movs r3, 0xC0
-_08030BEC:
- ldr r2, _08030C18 @ =gUnknown_02023A60
- 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_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08030C14: .4byte gUnknown_02024A60
-_08030C18: .4byte gUnknown_02023A60
- thumb_func_end sub_8030BD8
-
- thumb_func_start sub_8030C1C
-sub_8030C1C: @ 8030C1C
- push {lr}
- ldr r2, _08030C44 @ =gUnknown_02023A60
- ldr r0, _08030C48 @ =gUnknown_02024A60
- 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_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030C44: .4byte gUnknown_02023A60
-_08030C48: .4byte gUnknown_02024A60
- thumb_func_end sub_8030C1C
-
- thumb_func_start sub_8030C4C
-sub_8030C4C: @ 8030C4C
- push {lr}
- ldr r1, _08030C80 @ =gUnknown_02024A6A
- ldr r0, _08030C84 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08030C88 @ =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- negs r1, r1
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030C80: .4byte gUnknown_02024A6A
-_08030C84: .4byte gUnknown_02024A60
-_08030C88: .4byte gPlayerParty
- thumb_func_end sub_8030C4C
-
- thumb_func_start dp01t_2E_1_battle_intro
-dp01t_2E_1_battle_intro: @ 8030C8C
- push {lr}
- ldr r1, _08030CB4 @ =gUnknown_02023A60
- ldr r0, _08030CB8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08030CBC @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08030CB4: .4byte gUnknown_02023A60
-_08030CB8: .4byte gUnknown_02024A60
-_08030CBC: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_1_battle_intro
-
- thumb_func_start sub_8030CC0
-sub_8030CC0: @ 8030CC0
- push {r4-r7,lr}
- ldr r6, _08030DF8 @ =gUnknown_02024BE0
- ldr r7, _08030DFC @ =gUnknown_02024A60
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08030E00 @ =gSprites
- 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, _08030E04 @ =0x0000ffd8
- 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, _08030E08 @ =sub_8078B34
- 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, _08030E0C @ =sub_8030E38
- 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, _08030E10 @ =0x0000d6f8
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- ldr r1, _08030E14 @ =gTrainerBackPicPaletteTable
- ldr r0, _08030E18 @ =gSaveBlock2
- ldrb r0, [r0, 0x8]
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- 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, _08030E1C @ =task05_08033660
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08030E20 @ =gTasks
- 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, _08030E24 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08030DDC
- ldr r0, _08030E28 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08030E2C @ =sub_8044CA0
- str r1, [r0]
-_08030DDC:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08030E30 @ =gUnknown_03004330
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030E34 @ =nullsub_91
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030DF8: .4byte gUnknown_02024BE0
-_08030DFC: .4byte gUnknown_02024A60
-_08030E00: .4byte gSprites
-_08030E04: .4byte 0x0000ffd8
-_08030E08: .4byte sub_8078B34
-_08030E0C: .4byte sub_8030E38
-_08030E10: .4byte 0x0000d6f8
-_08030E14: .4byte gTrainerBackPicPaletteTable
-_08030E18: .4byte gSaveBlock2
-_08030E1C: .4byte task05_08033660
-_08030E20: .4byte gTasks
-_08030E24: .4byte 0x02017810
-_08030E28: .4byte gUnknown_02024E68
-_08030E2C: .4byte sub_8044CA0
-_08030E30: .4byte gUnknown_03004330
-_08030E34: .4byte nullsub_91
- thumb_func_end sub_8030CC0
-
- thumb_func_start sub_8030E38
-sub_8030E38: @ 8030E38
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r4, [r5, 0x38]
- lsls r4, 24
- lsrs r4, 24
- bl FreeSpriteOamMatrix
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r5, 0
- bl DestroySprite
- ldr r1, _08030E90 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08030E94 @ =gPlayerParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_80318FC
- ldr r0, _08030E98 @ =gUnknown_02024BE0
- adds r4, r0
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08030E9C @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08030E90: .4byte gUnknown_02024A6A
-_08030E94: .4byte gPlayerParty
-_08030E98: .4byte gUnknown_02024BE0
-_08030E9C: .4byte gSprites
- thumb_func_end sub_8030E38
-
- thumb_func_start task05_08033660
-task05_08033660: @ 8030EA0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _08030EC8 @ =gTasks
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x1E
- bgt _08030ECC
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08030F88
- .align 2, 0
-_08030EC8: .4byte gTasks
-_08030ECC:
- ldr r7, _08030F0C @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldrh r0, [r1, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08030EEC
- ldr r0, _08030F10 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08030F1C
-_08030EEC:
- ldr r0, _08030F14 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08030F18 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_802F934
- b _08030F70
- .align 2, 0
-_08030F0C: .4byte gUnknown_02024A60
-_08030F10: .4byte gUnknown_020239F8
-_08030F14: .4byte gUnknown_02023A60
-_08030F18: .4byte gUnknown_02024A6A
-_08030F1C:
- ldr r4, _08030F94 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r5, _08030F98 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_802F934
- ldrb r0, [r7]
- movs r6, 0x2
- eors r0, r6
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08030F9C @ =gPlayerParty
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r7]
- movs r1, 0
- bl sub_802F934
- ldrb r0, [r7]
- eors r0, r6
- strb r0, [r7]
-_08030F70:
- ldr r1, _08030FA0 @ =gUnknown_03004330
- ldr r2, _08030FA4 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08030FA8 @ =sub_802D500
- str r1, [r0]
- mov r3, r9
- strb r3, [r2]
- mov r0, r8
- bl DestroyTask
-_08030F88:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08030F94: .4byte gUnknown_02023A60
-_08030F98: .4byte gUnknown_02024A6A
-_08030F9C: .4byte gPlayerParty
-_08030FA0: .4byte gUnknown_03004330
-_08030FA4: .4byte gUnknown_02024A60
-_08030FA8: .4byte sub_802D500
- thumb_func_end task05_08033660
-
- thumb_func_start sub_8030FAC
-sub_8030FAC: @ 8030FAC
- push {r4-r6,lr}
- ldr r1, _08030FD4 @ =gUnknown_02023A60
- ldr r0, _08030FD8 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08030FDC
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08030FDC
- bl dp01_tbl1_exec_completed
- b _08031044
- .align 2, 0
-_08030FD4: .4byte gUnknown_02023A60
-_08030FD8: .4byte gUnknown_02024A60
-_08030FDC:
- ldr r5, _0803104C @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r6, _08031050 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _08031054 @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _08031058 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08031038
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_08031038:
- ldr r0, _0803105C @ =gUnknown_03004330
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08031060 @ =sub_8031064
- str r0, [r1]
-_08031044:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803104C: .4byte gUnknown_02024A60
-_08031050: .4byte 0x02017810
-_08031054: .4byte gUnknown_02023A64
-_08031058: .4byte gUnknown_02024E68
-_0803105C: .4byte gUnknown_03004330
-_08031060: .4byte sub_8031064
- thumb_func_end sub_8030FAC
-
- thumb_func_start sub_8031064
-sub_8031064: @ 8031064
- push {r4,lr}
- ldr r4, _0803109C @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _080310A0 @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08031094
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl1_exec_completed
-_08031094:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803109C: .4byte gUnknown_02024A60
-_080310A0: .4byte 0x02017810
- thumb_func_end sub_8031064
-
- thumb_func_start sub_80310A4
-sub_80310A4: @ 80310A4
- push {lr}
- ldr r0, _080310DC @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _080310E0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080310D2
- ldr r2, _080310E4 @ =gTasks
- ldr r0, _080310E8 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _080310EC @ =sub_8044CA0
- str r1, [r0]
-_080310D2:
- bl dp01_tbl1_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_080310DC: .4byte gUnknown_02024A60
-_080310E0: .4byte 0x02017810
-_080310E4: .4byte gTasks
-_080310E8: .4byte gUnknown_02024E68
-_080310EC: .4byte sub_8044CA0
- thumb_func_end sub_80310A4
-
- thumb_func_start sub_80310F0
-sub_80310F0: @ 80310F0
- push {r4,lr}
- ldr r4, _08031110 @ =gUnknown_02024A60
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031110: .4byte gUnknown_02024A60
- thumb_func_end sub_80310F0
-
- thumb_func_start dp01t_33_1_enemy_move
-dp01t_33_1_enemy_move: @ 8031114
- push {r4,lr}
- ldr r4, _08031164 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0803115A
- ldr r3, _08031168 @ =gSprites
- ldr r0, _0803116C @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _08031170 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_0803115A:
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031164: .4byte gUnknown_02024A60
-_08031168: .4byte gSprites
-_0803116C: .4byte gUnknown_02024BE0
-_08031170: .4byte gUnknown_02023A60
- thumb_func_end dp01t_33_1_enemy_move
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl1
-bx_exec_buffer_A_ch0_tbl1: @ 8031174
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _080311B8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _080311CC
- ldr r5, _080311BC @ =gUnknown_02023A60
- 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 _080311C0
- bl dp01_tbl1_exec_completed
- b _080311CC
- .align 2, 0
-_080311B8: .4byte gUnknown_02024A60
-_080311BC: .4byte gUnknown_02023A60
-_080311C0:
- ldr r0, _080311D4 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080311D8 @ =sub_802E460
- str r0, [r1]
-_080311CC:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080311D4: .4byte gUnknown_03004330
-_080311D8: .4byte sub_802E460
- thumb_func_end bx_exec_buffer_A_ch0_tbl1
-
- thumb_func_start dp01t_35_1_link_standby_message_and_free_vram
-dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC
- push {r4,lr}
- ldr r1, _080311FC @ =gUnknown_02023A60
- ldr r0, _08031200 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0803120E
- cmp r0, 0x1
- bgt _08031204
- cmp r0, 0
- beq _0803120A
- b _0803122C
- .align 2, 0
-_080311FC: .4byte gUnknown_02023A60
-_08031200: .4byte gUnknown_02024A60
-_08031204:
- cmp r0, 0x2
- beq _08031228
- b _0803122C
-_0803120A:
- bl b_link_standby_message
-_0803120E:
- ldr r4, _08031224 @ =gUnknown_02024A60
- ldrb r0, [r4]
- movs r1, 0x1
- bl dp11b_obj_free
- ldrb r0, [r4]
- movs r1, 0
- bl dp11b_obj_free
- b _0803122C
- .align 2, 0
-_08031224: .4byte gUnknown_02024A60
-_08031228:
- bl b_link_standby_message
-_0803122C:
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end dp01t_35_1_link_standby_message_and_free_vram
-
- thumb_func_start sub_8031238
-sub_8031238: @ 8031238
- push {r4,lr}
- ldr r1, _08031258 @ =gUnknown_02023A60
- ldr r4, _0803125C @ =gUnknown_02024A60
- ldrb r3, [r4]
- lsls r0, r3, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x1
- beq _08031280
- cmp r2, 0x1
- bgt _08031260
- cmp r2, 0
- beq _08031266
- b _08031290
- .align 2, 0
-_08031258: .4byte gUnknown_02023A60
-_0803125C: .4byte gUnknown_02024A60
-_08031260:
- cmp r2, 0x2
- beq _08031288
- b _08031290
-_08031266:
- ldr r0, _08031278 @ =gUnknown_02024E60
- adds r0, r3, r0
- strb r2, [r0]
- ldr r1, _0803127C @ =gUnknown_02024E64
- ldrb r0, [r4]
- adds r0, r1
- strb r2, [r0]
- b _08031290
- .align 2, 0
-_08031278: .4byte gUnknown_02024E60
-_0803127C: .4byte gUnknown_02024E64
-_08031280:
- ldr r0, _08031284 @ =gUnknown_02024E60
- b _0803128A
- .align 2, 0
-_08031284: .4byte gUnknown_02024E60
-_08031288:
- ldr r0, _0803129C @ =gUnknown_02024E64
-_0803128A:
- adds r0, r3, r0
- movs r1, 0
- strb r1, [r0]
-_08031290:
- bl dp01_tbl1_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803129C: .4byte gUnknown_02024E64
- thumb_func_end sub_8031238
-
- thumb_func_start sub_80312A0
-sub_80312A0: @ 80312A0
- push {r4,lr}
- ldr r2, _080312D8 @ =gUnknown_02024D26
- ldr r1, _080312DC @ =gUnknown_02023A60
- ldr r4, _080312E0 @ =gUnknown_02024A60
- 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_tbl1_exec_completed
- ldr r1, _080312E4 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080312E8 @ =sub_802D18C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080312D8: .4byte gUnknown_02024D26
-_080312DC: .4byte gUnknown_02023A60
-_080312E0: .4byte gUnknown_02024A60
-_080312E4: .4byte gUnknown_03004330
-_080312E8: .4byte sub_802D18C
- thumb_func_end sub_80312A0
-
- thumb_func_start nullsub_43
-nullsub_43: @ 80312EC
- bx lr
- thumb_func_end nullsub_43
-
- thumb_func_start sub_80312F0
-sub_80312F0: @ 80312F0
- push {r4-r7,lr}
- adds r6, r0, 0
- ldrh r0, [r6, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _08031334 @ =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- adds r3, r5, r7
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r4, [r0]
- lsls r0, r4, 26
- cmp r0, 0
- bge _08031354
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- blt _08031354
- adds r1, r3, 0
- adds r1, 0x2C
- ldrb r2, [r1]
- lsls r0, r2, 25
- cmp r0, 0
- bge _08031338
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- b _08031354
- .align 2, 0
-_08031334: .4byte gSprites
-_08031338:
- lsls r0, r4, 27
- cmp r0, 0
- bge _08031354
- adds r0, r7, 0
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0803135C @ =sub_80105DC
- str r1, [r0]
- adds r0, r3, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _08031360 @ =SpriteCallbackDummy
- str r0, [r6, 0x1C]
-_08031354:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803135C: .4byte sub_80105DC
-_08031360: .4byte SpriteCallbackDummy
- thumb_func_end sub_80312F0
-
- thumb_func_start unref_sub_8031364
-unref_sub_8031364: @ 8031364
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- adds r3, r4, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r3]
- ldr r0, _08031388 @ =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- cmp r1, 0
- bne _0803138C
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _08031394
- .align 2, 0
-_08031388: .4byte SpriteCallbackDummy
-_0803138C:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08031394:
- adds r0, r4, 0
- bl AnimateSprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8031364
-
- thumb_func_start sub_80313A0
-sub_80313A0: @ 80313A0
- push {lr}
- adds r2, r0, 0
- ldr r0, _080313C8 @ =gUnknown_02024DE8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080313C2
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _080313C2
- ldr r0, _080313CC @ =SpriteCallbackDummy
- str r0, [r2, 0x1C]
-_080313C2:
- pop {r0}
- bx r0
- .align 2, 0
-_080313C8: .4byte gUnknown_02024DE8
-_080313CC: .4byte SpriteCallbackDummy
- thumb_func_end sub_80313A0
-
- thumb_func_start move_anim_start_t2_for_situation
-move_anim_start_t2_for_situation: @ 80313D0
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- ldr r5, _08031400 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- ldr r6, _08031404 @ =0x02017810
- adds r1, r6
- ldrb r2, [r1]
- movs r3, 0x10
- orrs r2, r3
- strb r2, [r1]
- cmp r0, 0
- bne _0803144C
- cmp r4, 0x20
- bne _08031408
- ldrb r0, [r5]
- movs r1, 0x6
- bl move_anim_start_t2
- b _080314C2
- .align 2, 0
-_08031400: .4byte gUnknown_02024A60
-_08031404: .4byte 0x02017810
-_08031408:
- cmp r4, 0x8
- beq _08031414
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- beq _0803141E
-_08031414:
- ldrb r0, [r5]
- movs r1, 0
- bl move_anim_start_t2
- b _080314C2
-_0803141E:
- cmp r4, 0x10
- bne _0803142C
- ldrb r0, [r5]
- movs r1, 0x2
- bl move_anim_start_t2
- b _080314C2
-_0803142C:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _0803143E
- ldrb r0, [r5]
- movs r1, 0x4
- bl move_anim_start_t2
- b _080314C2
-_0803143E:
- cmp r4, 0x40
- bne _080314AE
- ldrb r0, [r5]
- movs r1, 0x5
- bl move_anim_start_t2
- b _080314C2
-_0803144C:
- movs r0, 0xF0
- lsls r0, 12
- ands r0, r4
- cmp r0, 0
- beq _08031460
- ldrb r0, [r5]
- movs r1, 0x3
- bl move_anim_start_t2
- b _080314C2
-_08031460:
- movs r0, 0x7
- ands r0, r4
- cmp r0, 0
- beq _08031472
- ldrb r0, [r5]
- movs r1, 0x1
- bl move_anim_start_t2
- b _080314C2
-_08031472:
- movs r0, 0x80
- lsls r0, 21
- ands r0, r4
- cmp r0, 0
- beq _08031486
- ldrb r0, [r5]
- movs r1, 0x7
- bl move_anim_start_t2
- b _080314C2
-_08031486:
- movs r0, 0x80
- lsls r0, 20
- ands r0, r4
- cmp r0, 0
- beq _0803149A
- ldrb r0, [r5]
- movs r1, 0x8
- bl move_anim_start_t2
- b _080314C2
-_0803149A:
- movs r0, 0xE0
- lsls r0, 8
- ands r0, r4
- cmp r0, 0
- beq _080314AE
- ldrb r0, [r5]
- movs r1, 0x9
- bl move_anim_start_t2
- b _080314C2
-_080314AE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
-_080314C2:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end move_anim_start_t2_for_situation
-
- thumb_func_start move_anim_start_t3
-move_anim_start_t3: @ 80314C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 16
- lsrs r7, r4, 16
- cmp r5, 0
- bne _0803150C
- movs r0, 0x80
- ands r0, r7
- cmp r0, 0
- beq _0803150C
- ldr r0, _08031508 @ =gUnknown_02024E84
- adds r0, r6, r0
- movs r2, 0x7F
- adds r1, r7, 0
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x1
- b _080315C2
- .align 2, 0
-_08031508: .4byte gUnknown_02024E84
-_0803150C:
- lsls r1, r6, 2
- ldr r0, _08031530 @ =0x02017800
- adds r4, r1, r0
- ldrb r1, [r4]
- movs r0, 0x4
- mov r8, r0
- ands r0, r1
- cmp r0, 0
- beq _08031578
- adds r0, r5, 0
- bl sub_803163C
- lsls r0, 24
- cmp r0, 0
- bne _08031534
- movs r0, 0x1
- b _080315C2
- .align 2, 0
-_08031530: .4byte 0x02017800
-_08031534:
- ldrb r1, [r4]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _08031578
- cmp r5, 0x2
- bne _08031578
- ldr r1, _08031570 @ =gSprites
- ldr r0, _08031574 @ =gUnknown_02024BE0
- adds r0, r6, r0
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08031578
- adds r0, r6, 0
- movs r1, 0x1
- bl refresh_graphics_maybe
- adds r0, r6, 0
- bl sub_80324E0
- movs r0, 0x1
- b _080315C2
- .align 2, 0
-_08031570: .4byte gSprites
-_08031574: .4byte gUnknown_02024BE0
-_08031578:
- ldr r0, _080315D0 @ =gUnknown_0202F7C8
- mov r1, r9
- strb r1, [r0]
- ldr r0, _080315D4 @ =gUnknown_0202F7C9
- mov r1, r10
- strb r1, [r0]
- ldr r4, _080315D8 @ =0x02017840
- strh r7, [r4]
- ldr r0, _080315DC @ =gBattleAnims_Unknown1
- adds r1, r5, 0
- movs r2, 0
- bl move_something
- ldr r0, _080315E0 @ =sub_80315E8
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080315E4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r6, [r1, 0x8]
- movs r0, 0x8
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- subs r4, 0x30
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0
-_080315C2:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080315D0: .4byte gUnknown_0202F7C8
-_080315D4: .4byte gUnknown_0202F7C9
-_080315D8: .4byte 0x02017840
-_080315DC: .4byte gBattleAnims_Unknown1
-_080315E0: .4byte sub_80315E8
-_080315E4: .4byte gTasks
- thumb_func_end move_anim_start_t3
-
- thumb_func_start sub_80315E8
-sub_80315E8: @ 80315E8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0803162C @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08031630 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08031626
- ldr r1, _08031634 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08031638 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_08031626:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803162C: .4byte gUnknown_0202F7AC
-_08031630: .4byte gUnknown_0202F7B1
-_08031634: .4byte gTasks
-_08031638: .4byte 0x02017810
- thumb_func_end sub_80315E8
-
- thumb_func_start sub_803163C
-sub_803163C: @ 803163C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bgt _08031650
- cmp r0, 0xA
- bge _08031654
- cmp r0, 0x2
- beq _08031654
- b _08031658
-_08031650:
- cmp r0, 0x11
- bne _08031658
-_08031654:
- movs r0, 0x1
- b _0803165A
-_08031658:
- movs r0, 0
-_0803165A:
- pop {r1}
- bx r1
- thumb_func_end sub_803163C
-
- thumb_func_start move_anim_start_t4
-move_anim_start_t4: @ 8031660
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _080316B4 @ =gUnknown_0202F7C8
- strb r1, [r0]
- ldr r0, _080316B8 @ =gUnknown_0202F7C9
- strb r2, [r0]
- ldr r0, _080316BC @ =gBattleAnims_Unknown2
- adds r1, r3, 0
- movs r2, 0
- bl move_something
- ldr r0, _080316C0 @ =sub_80316CC
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080316C4 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- movs r0, 0x8
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080316C8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080316B4: .4byte gUnknown_0202F7C8
-_080316B8: .4byte gUnknown_0202F7C9
-_080316BC: .4byte gBattleAnims_Unknown2
-_080316C0: .4byte sub_80316CC
-_080316C4: .4byte gTasks
-_080316C8: .4byte 0x02017810
- thumb_func_end move_anim_start_t4
-
- thumb_func_start sub_80316CC
-sub_80316CC: @ 80316CC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08031710 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08031714 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0803170A
- ldr r1, _08031718 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0803171C @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x41
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0803170A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031710: .4byte gUnknown_0202F7AC
-_08031714: .4byte gUnknown_0202F7B1
-_08031718: .4byte gTasks
-_0803171C: .4byte 0x02017810
- thumb_func_end sub_80316CC
-
- thumb_func_start sub_8031720
-sub_8031720: @ 8031720
- movs r0, 0
- bx lr
- thumb_func_end sub_8031720
-
- thumb_func_start mplay_80342A4
-mplay_80342A4: @ 8031724
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08031764
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- ldr r2, _0803176C @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x8]
- adds r0, 0x1
- strb r0, [r1, 0x8]
- ldr r0, _08031770 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1D
- bls _08031768
- ldr r0, _08031774 @ =gMPlay_SE1
- bl m4aMPlayStop
- ldr r0, _08031778 @ =gMPlay_SE2
- bl m4aMPlayStop
-_08031764:
- cmp r5, 0
- beq _0803177C
-_08031768:
- movs r0, 0x1
- b _0803178A
- .align 2, 0
-_0803176C: .4byte 0x02017810
-_08031770: .4byte gUnknown_02024A60
-_08031774: .4byte gMPlay_SE1
-_08031778: .4byte gMPlay_SE2
-_0803177C:
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- ldr r1, _08031790 @ =0x02017810
- adds r0, r1
- strb r5, [r0, 0x8]
- movs r0, 0
-_0803178A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08031790: .4byte 0x02017810
- thumb_func_end mplay_80342A4
-
- thumb_func_start sub_8031794
-sub_8031794: @ 8031794
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0xC]
- mov r0, r9
- lsls r1, r0, 2
- ldr r0, _080317D0 @ =0x02017800
- adds r2, r1, r0
- ldrh r0, [r2, 0x2]
- cmp r0, 0
- bne _080317D4
- mov r0, r8
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r7, [sp, 0xC]
- b _080317DC
- .align 2, 0
-_080317D0: .4byte 0x02017800
-_080317D4:
- ldrh r6, [r2, 0x2]
- ldr r0, _08031838 @ =gUnknown_02024E70
- adds r0, r1, r0
- ldr r7, [r0]
-_080317DC:
- mov r0, r8
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- mov r0, r9
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r5, r6, 3
- ldr r1, _0803183C @ =gMonFrontPicTable
- adds r5, r1
- ldr r1, _08031840 @ =gMonFrontPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08031844 @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- adds r0, r5, 0
- bl sub_800D334
- mov r1, r9
- lsls r2, r1, 4
- movs r0, 0x80
- lsls r0, 1
- adds r7, r2, r0
- lsls r1, 2
- ldr r0, _08031848 @ =0x02017800
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- str r1, [sp, 0x10]
- adds r4, r2, 0
- cmp r0, 0
- bne _0803184C
- mov r0, r8
- bl pokemon_get_pal
- b _08031856
- .align 2, 0
-_08031838: .4byte gUnknown_02024E70
-_0803183C: .4byte gMonFrontPicTable
-_08031840: .4byte gMonFrontPicCoords
-_08031844: .4byte gUnknown_081FAF4C
-_08031848: .4byte 0x02017800
-_0803184C:
- adds r0, r6, 0
- mov r1, r10
- ldr r2, [sp, 0xC]
- bl species_and_otid_get_pal
-_08031856:
- adds r5, r0, 0
- ldr r1, _080318E0 @ =0x02000000
- mov r8, r1
- adds r0, r5, 0
- bl sub_800D238
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
- adds r1, r4, 0
- adds r1, 0x80
- mov r0, r8
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _080318E4 @ =SPECIES_CASTFORM
- cmp r6, r0
- bne _080318A2
- subs r0, 0x81
- adds r7, r4, r0
- movs r4, 0xB2
- lsls r4, 9
- add r4, r8
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _080318E8 @ =gUnknown_02024E84
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r4
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
-_080318A2:
- movs r0, 0xBC
- lsls r0, 9
- add r0, r8
- ldr r1, [sp, 0x10]
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _080318CE
- ldr r3, _080318EC @ =0x00007fff
- adds r0, r7, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r7, 1
- ldr r0, _080318F0 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _080318F4 @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _080318F8 @ =REG_BG0CNT
- bl CpuSet
-_080318CE:
- 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
-_080318E0: .4byte 0x02000000
-_080318E4: .4byte SPECIES_CASTFORM
-_080318E8: .4byte gUnknown_02024E84
-_080318EC: .4byte 0x00007fff
-_080318F0: .4byte gPlttBufferFaded
-_080318F4: .4byte gPlttBufferUnfaded
-_080318F8: .4byte REG_BG0CNT
- thumb_func_end sub_8031794
-
- thumb_func_start sub_80318FC
-sub_80318FC: @ 80318FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0xC]
- mov r0, r9
- lsls r1, r0, 2
- ldr r0, _08031938 @ =0x02017800
- adds r2, r1, r0
- ldrh r0, [r2, 0x2]
- cmp r0, 0
- bne _0803193C
- mov r0, r8
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r7, [sp, 0xC]
- b _08031944
- .align 2, 0
-_08031938: .4byte 0x02017800
-_0803193C:
- ldrh r6, [r2, 0x2]
- ldr r0, _080319A0 @ =gUnknown_02024E70
- adds r0, r1, r0
- ldr r7, [r0]
-_08031944:
- mov r0, r8
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- mov r0, r9
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r5, r6, 3
- ldr r1, _080319A4 @ =gMonBackPicTable
- adds r5, r1
- ldr r1, _080319A8 @ =gMonBackPicCoords
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _080319AC @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- adds r0, r5, 0
- bl sub_800D334
- mov r1, r9
- lsls r2, r1, 4
- movs r0, 0x80
- lsls r0, 1
- adds r7, r2, r0
- lsls r1, 2
- ldr r0, _080319B0 @ =0x02017800
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- str r1, [sp, 0x10]
- adds r4, r2, 0
- cmp r0, 0
- bne _080319B4
- mov r0, r8
- bl pokemon_get_pal
- b _080319BE
- .align 2, 0
-_080319A0: .4byte gUnknown_02024E70
-_080319A4: .4byte gMonBackPicTable
-_080319A8: .4byte gMonBackPicCoords
-_080319AC: .4byte gUnknown_081FAF4C
-_080319B0: .4byte 0x02017800
-_080319B4:
- adds r0, r6, 0
- mov r1, r10
- ldr r2, [sp, 0xC]
- bl species_and_otid_get_pal
-_080319BE:
- adds r5, r0, 0
- ldr r1, _08031A48 @ =0x02000000
- mov r8, r1
- adds r0, r5, 0
- bl sub_800D238
- mov r0, r8
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
- adds r1, r4, 0
- adds r1, 0x80
- mov r0, r8
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08031A4C @ =SPECIES_CASTFORM
- cmp r6, r0
- bne _08031A0A
- subs r0, 0x81
- adds r7, r4, r0
- movs r4, 0xB2
- lsls r4, 9
- add r4, r8
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _08031A50 @ =gUnknown_02024E84
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r4
- adds r1, r7, 0
- movs r2, 0x20
- bl LoadPalette
-_08031A0A:
- movs r0, 0xBC
- lsls r0, 9
- add r0, r8
- ldr r1, [sp, 0x10]
- adds r0, r1, r0
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _08031A36
- ldr r3, _08031A54 @ =0x00007fff
- adds r0, r7, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r7, 1
- ldr r0, _08031A58 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08031A5C @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _08031A60 @ =REG_BG0CNT
- bl CpuSet
-_08031A36:
- 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
-_08031A48: .4byte 0x02000000
-_08031A4C: .4byte SPECIES_CASTFORM
-_08031A50: .4byte gUnknown_02024E84
-_08031A54: .4byte 0x00007fff
-_08031A58: .4byte gPlttBufferFaded
-_08031A5C: .4byte gPlttBufferUnfaded
-_08031A60: .4byte REG_BG0CNT
- thumb_func_end sub_80318FC
-
- thumb_func_start unref_sub_8031A64
-unref_sub_8031A64: @ 8031A64
- bx lr
- thumb_func_end unref_sub_8031A64
-
- thumb_func_start nullsub_9
-nullsub_9: @ 8031A68
- bx lr
- thumb_func_end nullsub_9
-
- thumb_func_start sub_8031A6C
-sub_8031A6C: @ 8031A6C
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r0, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r6, r4, 3
- ldr r5, _08031ADC @ =gTrainerFrontPicTable
- adds r5, r6, r5
- ldr r1, _08031AE0 @ =gTrainerFrontPicCoords
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08031AE4 @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r4, [r0]
- str r4, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r5, 0
- bl DecompressPicFromTable_2
- str r4, [sp, 0x8]
- ldrh r2, [r5, 0x4]
- ldr r0, _08031AE8 @ =0xffff0000
- ldr r1, [sp, 0xC]
- ands r1, r0
- orrs r1, r2
- str r1, [sp, 0xC]
- ldrh r2, [r5, 0x6]
- lsls r2, 16
- ldr r0, _08031AEC @ =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [sp, 0xC]
- add r0, sp, 0x8
- bl LoadCompressedObjectPic
- ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable
- adds r6, r0
- adds r0, r6, 0
- bl LoadCompressedObjectPalette
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08031ADC: .4byte gTrainerFrontPicTable
-_08031AE0: .4byte gTrainerFrontPicCoords
-_08031AE4: .4byte gUnknown_081FAF4C
-_08031AE8: .4byte 0xffff0000
-_08031AEC: .4byte 0x0000ffff
-_08031AF0: .4byte gTrainerFrontPicPaletteTable
- thumb_func_end sub_8031A6C
-
- thumb_func_start sub_8031AF4
-sub_8031AF4: @ 8031AF4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsls r1, r4, 3
- mov r8, r1
- ldr r6, _08031B60 @ =gTrainerBackPicTable
- add r6, r8
- ldr r1, _08031B64 @ =gTrainerBackPicCoords
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08031B68 @ =gUnknown_081FAF4C
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r6, 0
- bl DecompressPicFromTable_2
- ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable
- add r8, r0
- mov r1, r8
- ldr r0, [r1]
- lsls r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r5, r1
- lsrs r5, 16
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadCompressedPalette
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08031B60: .4byte gTrainerBackPicTable
-_08031B64: .4byte gTrainerBackPicCoords
-_08031B68: .4byte gUnknown_081FAF4C
-_08031B6C: .4byte gTrainerBackPicPaletteTable
- thumb_func_end sub_8031AF4
-
- thumb_func_start nullsub_10
-nullsub_10: @ 8031B70
- bx lr
- thumb_func_end nullsub_10
-
- thumb_func_start sub_8031B74
-sub_8031B74: @ 8031B74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable
- lsrs r4, 13
- adds r0, r4, r0
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- ldr r0, _08031B9C @ =gTrainerFrontPicTable
- adds r4, r0
- ldrh r0, [r4, 0x6]
- bl FreeSpriteTilesByTag
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031B98: .4byte gTrainerFrontPicPaletteTable
-_08031B9C: .4byte gTrainerFrontPicTable
- thumb_func_end sub_8031B74
-
- thumb_func_start unref_sub_8031BA0
-unref_sub_8031BA0: @ 8031BA0
- push {r4-r7,lr}
- ldr r4, _08031BCC @ =gUnknown_0820A4D4
- adds r0, r4, 0
- bl LoadSpritePalette
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadSpritePalette
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08031BD8
- ldr r0, _08031BD0 @ =gUnknown_0820A47C
- bl LoadCompressedObjectPic
- ldr r0, _08031BD4 @ =gUnknown_0820A484
- bl LoadCompressedObjectPic
- movs r5, 0x2
- b _08031BFA
- .align 2, 0
-_08031BCC: .4byte gUnknown_0820A4D4
-_08031BD0: .4byte gUnknown_0820A47C
-_08031BD4: .4byte gUnknown_0820A484
-_08031BD8:
- ldr r4, _08031C20 @ =gUnknown_0820A48C
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r4, _08031C24 @ =gUnknown_0820A49C
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- movs r5, 0x4
-_08031BFA:
- movs r4, 0
- cmp r4, r5
- bcs _08031C1A
- ldr r7, _08031C28 @ =gUnknown_02024A72
- ldr r6, _08031C2C @ =gUnknown_0820A4B4
-_08031C04:
- adds r0, r4, r7
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r6
- bl LoadCompressedObjectPic
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _08031C04
-_08031C1A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031C20: .4byte gUnknown_0820A48C
-_08031C24: .4byte gUnknown_0820A49C
-_08031C28: .4byte gUnknown_02024A72
-_08031C2C: .4byte gUnknown_0820A4B4
- thumb_func_end unref_sub_8031BA0
-
- thumb_func_start sub_8031C30
-sub_8031C30: @ 8031C30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- movs r6, 0
- cmp r4, 0
- bne _08031C40
- b _08031D52
-_08031C40:
- cmp r4, 0x1
- bne _08031C5C
- ldr r4, _08031C58 @ =gUnknown_0820A4D4
- adds r0, r4, 0
- bl LoadSpritePalette
- adds r4, 0x8
- adds r0, r4, 0
- bl LoadSpritePalette
- b _08031D52
- .align 2, 0
-_08031C58: .4byte gUnknown_0820A4D4
-_08031C5C:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08031CC4
- cmp r4, 0x2
- bne _08031C94
- ldr r0, _08031C80 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08031C88
- ldr r0, _08031C84 @ =gUnknown_0820A4AC
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031C80: .4byte gUnknown_020239F8
-_08031C84: .4byte gUnknown_0820A4AC
-_08031C88:
- ldr r0, _08031C90 @ =gUnknown_0820A47C
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031C90: .4byte gUnknown_0820A47C
-_08031C94:
- cmp r4, 0x3
- bne _08031CA4
- ldr r0, _08031CA0 @ =gUnknown_0820A484
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CA0: .4byte gUnknown_0820A484
-_08031CA4:
- cmp r4, 0x4
- bne _08031CB4
- ldr r0, _08031CB0 @ =gUnknown_02024A72
- ldrb r0, [r0]
- b _08031D3C
- .align 2, 0
-_08031CB0: .4byte gUnknown_02024A72
-_08031CB4:
- cmp r4, 0x5
- bne _08031D50
- ldr r0, _08031CC0 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x1]
- b _08031D3C
- .align 2, 0
-_08031CC0: .4byte gUnknown_02024A72
-_08031CC4:
- cmp r4, 0x2
- bne _08031CD4
- ldr r0, _08031CD0 @ =gUnknown_0820A48C
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CD0: .4byte gUnknown_0820A48C
-_08031CD4:
- cmp r4, 0x3
- bne _08031CE4
- ldr r0, _08031CE0 @ =gUnknown_0820A494
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CE0: .4byte gUnknown_0820A494
-_08031CE4:
- cmp r4, 0x4
- bne _08031CF4
- ldr r0, _08031CF0 @ =gUnknown_0820A49C
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031CF0: .4byte gUnknown_0820A49C
-_08031CF4:
- cmp r4, 0x5
- bne _08031D04
- ldr r0, _08031D00 @ =gUnknown_0820A4A4
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031D00: .4byte gUnknown_0820A4A4
-_08031D04:
- cmp r4, 0x6
- bne _08031D14
- ldr r0, _08031D10 @ =gUnknown_02024A72
- ldrb r0, [r0]
- b _08031D3C
- .align 2, 0
-_08031D10: .4byte gUnknown_02024A72
-_08031D14:
- cmp r4, 0x7
- bne _08031D24
- ldr r0, _08031D20 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x1]
- b _08031D3C
- .align 2, 0
-_08031D20: .4byte gUnknown_02024A72
-_08031D24:
- cmp r4, 0x8
- bne _08031D34
- ldr r0, _08031D30 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x2]
- b _08031D3C
- .align 2, 0
-_08031D30: .4byte gUnknown_02024A72
-_08031D34:
- cmp r5, 0x9
- bne _08031D50
- ldr r0, _08031D48 @ =gUnknown_02024A72
- ldrb r0, [r0, 0x3]
-_08031D3C:
- lsls r0, 3
- ldr r1, _08031D4C @ =gUnknown_0820A4B4
- adds r0, r1
- bl LoadCompressedObjectPic
- b _08031D52
- .align 2, 0
-_08031D48: .4byte gUnknown_02024A72
-_08031D4C: .4byte gUnknown_0820A4B4
-_08031D50:
- movs r6, 0x1
-_08031D52:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8031C30
-
- thumb_func_start load_gfxc_health_bar
-load_gfxc_health_bar: @ 8031D5C
- push {lr}
- ldr r0, _08031D6C @ =gUnknown_08D09C48
- movs r1, 0x80
- lsls r1, 18
- bl sub_800D238
- pop {r0}
- bx r0
- .align 2, 0
-_08031D6C: .4byte gUnknown_08D09C48
- thumb_func_end load_gfxc_health_bar
-
- thumb_func_start battle_load_something
-battle_load_something: @ 8031D70
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- movs r6, 0
- ldrb r0, [r5]
- cmp r0, 0x6
- bls _08031D80
- b _08031EDE
-_08031D80:
- lsls r0, 2
- ldr r1, _08031D8C @ =_08031D90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08031D8C: .4byte _08031D90
- .align 2, 0
-_08031D90:
- .4byte _08031DAC
- .4byte _08031DB2
- .4byte _08031EBC
- .4byte _08031DC8
- .4byte _08031DF8
- .4byte _08031E34
- .4byte _08031ED4
-_08031DAC:
- bl sub_8031F0C
- b _08031EBC
-_08031DB2:
- ldrb r0, [r4]
- bl sub_8031C30
- lsls r0, 24
- cmp r0, 0
- beq _08031DC0
- b _08031EB8
-_08031DC0:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08031EDE
-_08031DC8:
- ldr r0, _08031DE0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08031DE4
- ldrb r0, [r4]
- cmp r0, 0
- bne _08031DE4
- bl battle_make_oam_safari_battle
- b _08031DEA
- .align 2, 0
-_08031DE0: .4byte gUnknown_020239F8
-_08031DE4:
- ldrb r0, [r4]
- bl battle_make_oam_normal_battle
-_08031DEA:
- ldr r2, _08031DF4 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r1, r2
- strb r0, [r1]
- b _08031EA6
- .align 2, 0
-_08031DF4: .4byte gUnknown_03004340
-_08031DF8:
- ldrb r0, [r4]
- bl sub_8043F44
- ldr r0, _08031E18 @ =gUnknown_02024A72
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x1
- bhi _08031E20
- ldr r0, _08031E1C @ =gUnknown_03004340
- adds r0, r1, r0
- ldrb r0, [r0]
- movs r1, 0
- bl nullsub_11
- b _08031EA6
- .align 2, 0
-_08031E18: .4byte gUnknown_02024A72
-_08031E1C: .4byte gUnknown_03004340
-_08031E20:
- ldr r0, _08031E30 @ =gUnknown_03004340
- adds r0, r1, r0
- ldrb r0, [r0]
- movs r1, 0x1
- bl nullsub_11
- b _08031EA6
- .align 2, 0
-_08031E30: .4byte gUnknown_03004340
-_08031E34:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08031E7C
- ldr r0, _08031E6C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08031E9A
- ldr r0, _08031E70 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08031E74 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08031E78 @ =gPlayerParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- b _08031E9A
- .align 2, 0
-_08031E6C: .4byte gUnknown_020239F8
-_08031E70: .4byte gUnknown_03004340
-_08031E74: .4byte gUnknown_02024A6A
-_08031E78: .4byte gPlayerParty
-_08031E7C:
- ldr r0, _08031EC4 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08031EC8 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08031ECC @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
-_08031E9A:
- ldr r1, _08031EC4 @ =gUnknown_03004340
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
-_08031EA6:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r1, _08031ED0 @ =gUnknown_02024A68
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r1]
- cmp r0, r1
- bne _08031EDE
-_08031EB8:
- movs r0, 0
- strb r0, [r4]
-_08031EBC:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _08031EDE
- .align 2, 0
-_08031EC4: .4byte gUnknown_03004340
-_08031EC8: .4byte gUnknown_02024A6A
-_08031ECC: .4byte gEnemyParty
-_08031ED0: .4byte gUnknown_02024A68
-_08031ED4:
- bl sub_80327CC
- bl sub_8094958
- movs r6, 0x1
-_08031EDE:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end battle_load_something
-
- thumb_func_start sub_8031EE8
-sub_8031EE8: @ 8031EE8
- push {r4,lr}
- ldr r4, _08031F08 @ =0x02017810
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x30
- bl memset
- adds r4, 0x30
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08031F08: .4byte 0x02017810
- thumb_func_end sub_8031EE8
-
- thumb_func_start sub_8031F0C
-sub_8031F0C: @ 8031F0C
- push {lr}
- bl sub_8031EE8
- ldr r0, _08031F20 @ =0x02017800
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_08031F20: .4byte 0x02017800
- thumb_func_end sub_8031F0C
-
- thumb_func_start sub_8031F24
-sub_8031F24: @ 8031F24
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- ldr r5, _08031F78 @ =gUnknown_02024A68
- ldrb r0, [r5]
- cmp r4, r0
- bge _08031F6E
- ldr r0, _08031F7C @ =gSprites
- mov r8, r0
- movs r7, 0x1
- movs r0, 0x2
- negs r0, r0
- mov r12, r0
- ldr r6, _08031F80 @ =gUnknown_02024BE0
- ldr r3, _08031F84 @ =0x02017800
-_08031F44:
- adds r0, r4, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- ands r1, r7
- ldrb r2, [r3]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r3, 0x4
- adds r4, 0x1
- ldrb r0, [r5]
- cmp r4, r0
- blt _08031F44
-_08031F6E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08031F78: .4byte gUnknown_02024A68
-_08031F7C: .4byte gSprites
-_08031F80: .4byte gUnknown_02024BE0
-_08031F84: .4byte 0x02017800
- thumb_func_end sub_8031F24
-
- thumb_func_start sub_8031F88
-sub_8031F88: @ 8031F88
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- ldr r1, _08031FB8 @ =0x02017800
- adds r3, r1
- ldr r2, _08031FBC @ =gSprites
- ldr r1, _08031FC0 @ =gUnknown_02024BE0
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bx lr
- .align 2, 0
-_08031FB8: .4byte 0x02017800
-_08031FBC: .4byte gSprites
-_08031FC0: .4byte gUnknown_02024BE0
- thumb_func_end sub_8031F88
-
- thumb_func_start sub_8031FC4
-sub_8031FC4: @ 8031FC4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xC]
- lsls r2, 24
- cmp r2, 0
- beq _08032088
- ldr r0, _08032064 @ =gUnknown_02024BE0
- mov r1, r8
- adds r6, r1, r0
- ldrb r1, [r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r7, _08032068 @ =gSprites
- adds r0, r7
- ldr r4, _0803206C @ =0x02017840
- ldrb r1, [r4]
- bl StartSpriteAnim
- mov r2, r8
- lsls r0, r2, 20
- movs r5, 0x80
- lsls r5, 17
- adds r0, r5
- lsrs r5, r0, 16
- ldrh r0, [r4]
- lsls r0, 5
- ldr r2, _08032070 @ =0xffffebc0
- adds r1, r4, r2
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08032074 @ =gUnknown_02024E84
- add r0, r8
- ldrh r1, [r4]
- strb r1, [r0]
- mov r1, r8
- lsls r0, r1, 2
- subs r4, 0x40
- adds r0, r4
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _0803204C
- ldr r3, _08032078 @ =0x00007fff
- adds r0, r5, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r5, 1
- ldr r0, _0803207C @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08032080 @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _08032084 @ =REG_BG0CNT
- bl CpuSet
-_0803204C:
- mov r0, r8
- bl sub_8077F68
- ldrb r2, [r6]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r7
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x22]
- b _080322F6
- .align 2, 0
-_08032064: .4byte gUnknown_02024BE0
-_08032068: .4byte gSprites
-_0803206C: .4byte 0x02017840
-_08032070: .4byte 0xffffebc0
-_08032074: .4byte gUnknown_02024E84
-_08032078: .4byte 0x00007fff
-_0803207C: .4byte gPlttBufferFaded
-_08032080: .4byte gPlttBufferUnfaded
-_08032084: .4byte REG_BG0CNT
-_08032088:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _080320D0
- movs r2, 0
- mov r10, r2
- ldr r5, _080320C0 @ =0x02019348
- ldrh r7, [r5, 0x2]
- ldr r4, [r5, 0x8]
- mov r9, r4
- ldr r6, [r5, 0xC]
- lsls r0, r7, 3
- ldr r1, _080320C4 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _080320C8 @ =gMonBackPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _080320CC @ =gUnknown_081FAF4C
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, [r5, 0x10]
- b _08032184
- .align 2, 0
-_080320C0: .4byte 0x02019348
-_080320C4: .4byte gMonBackPicTable
-_080320C8: .4byte gMonBackPicCoords
-_080320CC: .4byte gUnknown_081FAF4C
-_080320D0:
- mov r0, r8
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, [sp, 0xC]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08032104
- ldr r1, _080320FC @ =gUnknown_02024A6A
- ldr r5, [sp, 0xC]
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08032100 @ =gEnemyParty
- b _08032114
- .align 2, 0
-_080320FC: .4byte gUnknown_02024A6A
-_08032100: .4byte gEnemyParty
-_08032104:
- ldr r1, _0803218C @ =gUnknown_02024A6A
- ldr r2, [sp, 0xC]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08032190 @ =gPlayerParty
-_08032114:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _080321A4
- ldr r0, _0803218C @ =gUnknown_02024A6A
- mov r5, r8
- lsls r4, r5, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08032190 @ =gPlayerParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r7, 3
- ldr r1, _08032194 @ =gMonBackPicTable
- adds r0, r1
- ldr r1, _08032198 @ =gMonBackPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0803219C @ =gUnknown_081FAF4C
- mov r12, r4
- mov r5, r10
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _080321A0 @ =gUnknown_02024E70
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
-_08032184:
- str r4, [sp, 0x8]
- bl sub_800D334
- b _08032202
- .align 2, 0
-_0803218C: .4byte gUnknown_02024A6A
-_08032190: .4byte gPlayerParty
-_08032194: .4byte gMonBackPicTable
-_08032198: .4byte gMonBackPicCoords
-_0803219C: .4byte gUnknown_081FAF4C
-_080321A0: .4byte gUnknown_02024E70
-_080321A4:
- ldr r0, _08032308 @ =gUnknown_02024A6A
- mov r1, r8
- lsls r4, r1, 1
- adds r4, r0
- ldrh r0, [r4]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0803230C @ =gEnemyParty
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrh r0, [r4]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- adds r6, r0, 0
- lsls r0, r7, 3
- ldr r1, _08032310 @ =gMonFrontPicTable
- adds r0, r1
- ldr r1, _08032314 @ =gMonFrontPicCoords
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08032318 @ =gUnknown_081FAF4C
- mov r12, r4
- mov r5, r10
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- ldr r4, _0803231C @ =gUnknown_02024E70
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp, 0x8]
- bl sub_800D334
-_08032202:
- ldr r1, _08032318 @ =gUnknown_081FAF4C
- mov r2, r10
- lsls r0, r2, 2
- adds r0, r1
- ldr r2, [r0]
- ldr r0, _08032320 @ =gUnknown_02024BE0
- add r0, r8
- mov r10, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08032324 @ =gSprites
- adds r0, r4
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldr r1, _08032328 @ =0x06010000
- adds r0, r1
- ldr r1, _0803232C @ =0x040000d4
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _08032330 @ =0x84000200
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r5, r8
- lsls r0, r5, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 16
- adds r0, r7, 0
- adds r1, r6, 0
- mov r2, r9
- bl species_and_otid_get_pal
- adds r6, r0, 0
- ldr r2, _08032334 @ =0x02000000
- mov r9, r2
- mov r1, r9
- bl sub_800D238
- mov r0, r9
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08032338 @ =SPECIES_CASTFORM
- cmp r7, r0
- bne _08032288
- movs r4, 0xB2
- lsls r4, 9
- add r4, r9
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _0803233C @ =gUnknown_02024E84
- ldr r1, [sp, 0xC]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r0, 5
- adds r0, r4
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
-_08032288:
- ldr r3, _08032340 @ =0x00007fff
- adds r0, r5, 0
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
- lsls r1, r5, 1
- ldr r0, _08032344 @ =gPlttBufferFaded
- adds r0, r1, r0
- ldr r2, _08032348 @ =gPlttBufferUnfaded
- adds r1, r2
- ldr r2, _0803234C @ =REG_BG0CNT
- bl CpuSet
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _080322C8
- mov r2, r8
- lsls r0, r2, 2
- movs r1, 0xBC
- lsls r1, 9
- add r1, r9
- adds r0, r1
- strh r7, [r0, 0x2]
- ldr r0, _0803233C @ =gUnknown_02024E84
- adds r1, r2, r0
- ldr r4, [sp, 0xC]
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
-_080322C8:
- mov r0, r8
- bl sub_8077F68
- mov r5, r10
- ldrb r2, [r5]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _08032324 @ =gSprites
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x22]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0803233C @ =gUnknown_02024E84
- add r1, r8
- ldrb r1, [r1]
- bl StartSpriteAnim
-_080322F6:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032308: .4byte gUnknown_02024A6A
-_0803230C: .4byte gEnemyParty
-_08032310: .4byte gMonFrontPicTable
-_08032314: .4byte gMonFrontPicCoords
-_08032318: .4byte gUnknown_081FAF4C
-_0803231C: .4byte gUnknown_02024E70
-_08032320: .4byte gUnknown_02024BE0
-_08032324: .4byte gSprites
-_08032328: .4byte 0x06010000
-_0803232C: .4byte 0x040000d4
-_08032330: .4byte 0x84000200
-_08032334: .4byte 0x02000000
-_08032338: .4byte SPECIES_CASTFORM
-_0803233C: .4byte gUnknown_02024E84
-_08032340: .4byte 0x00007fff
-_08032344: .4byte gPlttBufferFaded
-_08032348: .4byte gPlttBufferUnfaded
-_0803234C: .4byte REG_BG0CNT
- thumb_func_end sub_8031FC4
-
- thumb_func_start sub_8032350
-sub_8032350: @ 8032350
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r1, 24
- cmp r1, 0
- bne _08032408
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0803236C
- movs r4, 0
- b _08032376
-_0803236C:
- adds r0, r4, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
-_08032376:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08032388
- ldr r0, _08032384 @ =gSubstituteDollTilemap
- b _08032396
- .align 2, 0
-_08032384: .4byte gSubstituteDollTilemap
-_08032388:
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080323AC
- ldr r0, _080323A4 @ =gSubstituteDollGfx
-_08032396:
- ldr r1, _080323A8 @ =gUnknown_081FAF4C
- lsls r4, 2
- adds r1, r4, r1
- ldr r1, [r1]
- bl LZDecompressVram
- b _080323BA
- .align 2, 0
-_080323A4: .4byte gSubstituteDollGfx
-_080323A8: .4byte gUnknown_081FAF4C
-_080323AC:
- ldr r0, _080323F4 @ =gSubstituteDollTilemap
- ldr r1, _080323F8 @ =gUnknown_081FAF4C
- lsls r4, 2
- adds r1, r4, r1
- ldr r1, [r1]
- bl LZDecompressVram
-_080323BA:
- lsls r7, r5, 4
- ldr r0, _080323FC @ =gSubstituteDollPal
- mov r12, r0
- ldr r0, _080323F8 @ =gUnknown_081FAF4C
- adds r0, r4, r0
- ldr r4, [r0]
- ldr r3, _08032400 @ =0x040000d4
- ldr r6, _08032404 @ =0x84000200
- movs r0, 0x80
- lsls r0, 4
- adds r2, r4, r0
- adds r5, r0, 0
- movs r1, 0x2
-_080323D4:
- str r4, [r3]
- str r2, [r3, 0x4]
- str r6, [r3, 0x8]
- ldr r0, [r3, 0x8]
- adds r2, r5
- subs r1, 0x1
- cmp r1, 0
- bge _080323D4
- movs r0, 0x80
- lsls r0, 1
- adds r1, r7, r0
- mov r0, r12
- movs r2, 0x20
- bl LoadCompressedPalette
- b _08032456
- .align 2, 0
-_080323F4: .4byte gSubstituteDollTilemap
-_080323F8: .4byte gUnknown_081FAF4C
-_080323FC: .4byte gSubstituteDollPal
-_08032400: .4byte 0x040000d4
-_08032404: .4byte 0x84000200
-_08032408:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08032456
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08032440
- ldr r1, _08032438 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803243C @ =gEnemyParty
- adds r0, r1
- adds r1, r4, 0
- bl sub_8031794
- b _08032456
- .align 2, 0
-_08032438: .4byte gUnknown_02024A6A
-_0803243C: .4byte gEnemyParty
-_08032440:
- ldr r1, _0803245C @ =gUnknown_02024A6A
- lsls r0, r5, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08032460 @ =gPlayerParty
- adds r0, r1
- adds r1, r5, 0
- bl sub_80318FC
-_08032456:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803245C: .4byte gUnknown_02024A6A
-_08032460: .4byte gPlayerParty
- thumb_func_end sub_8032350
-
- thumb_func_start refresh_graphics_maybe
-refresh_graphics_maybe: @ 8032464
- push {r4-r6,lr}
- adds r5, r1, 0
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8032350
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r1, _080324A0 @ =gSprites
- adds r4, r0, r1
- ldr r0, _080324A4 @ =gUnknown_02024E84
- adds r0, r6, r0
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnim
- cmp r5, 0
- bne _080324A8
- adds r0, r6, 0
- bl sub_8077F7C
- b _080324AE
- .align 2, 0
-_080324A0: .4byte gSprites
-_080324A4: .4byte gUnknown_02024E84
-_080324A8:
- adds r0, r6, 0
- bl sub_8077F68
-_080324AE:
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end refresh_graphics_maybe
-
- thumb_func_start sub_80324BC
-sub_80324BC: @ 80324BC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xA4
- bne _080324D8
- lsls r2, r0, 2
- ldr r0, _080324DC @ =0x02017800
- adds r2, r0
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_080324D8:
- pop {r0}
- bx r0
- .align 2, 0
-_080324DC: .4byte 0x02017800
- thumb_func_end sub_80324BC
-
- thumb_func_start sub_80324E0
-sub_80324E0: @ 80324E0
- lsls r0, 24
- lsrs r0, 22
- ldr r1, _080324F4 @ =0x02017800
- adds r0, r1
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bx lr
- .align 2, 0
-_080324F4: .4byte 0x02017800
- thumb_func_end sub_80324E0
-
- thumb_func_start sub_80324F8
-sub_80324F8: @ 80324F8
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- adds r7, r6, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r4, 16
- asrs r4, 16
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08032568
- lsls r0, r6, 2
- ldr r3, _08032564 @ =0x02017800
- adds r4, r0, r3
- ldrb r1, [r4]
- movs r5, 0x2
- movs r2, 0x2
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080325B2
- adds r0, r6, 0
- eors r0, r5
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0803255A
- movs r0, 0x5A
- bl PlaySE
-_0803255A:
- ldrb r0, [r4]
- orrs r0, r5
- strb r0, [r4]
- b _080325B2
- .align 2, 0
-_08032564: .4byte 0x02017800
-_08032568:
- lsls r1, r6, 2
- ldr r4, _0803258C @ =0x02017800
- adds r1, r4
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _08032590
- movs r0, 0x5A
- bl m4aSongNumStop
- b _080325B2
- .align 2, 0
-_0803258C: .4byte 0x02017800
-_08032590:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080325B2
- movs r0, 0x2
- eors r7, r0
- lsls r0, r7, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080325B2
- movs r0, 0x5A
- bl m4aSongNumStop
-_080325B2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80324F8
-
- thumb_func_start sub_80325B8
-sub_80325B8: @ 80325B8
- push {r4-r6,lr}
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, r4, 2
- ldr r6, _08032600 @ =0x02017800
- adds r1, r6
- ldrb r2, [r1]
- movs r5, 0x3
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080325F2
- movs r0, 0x2
- adds r1, r4, 0
- eors r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
-_080325F2:
- movs r0, 0x5A
- bl m4aSongNumStop
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032600: .4byte 0x02017800
- thumb_func_end sub_80325B8
-
- thumb_func_start unref_sub_8032604
-unref_sub_8032604: @ 8032604
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- adds r1, r0, 0
- lsls r4, 16
- asrs r4, 16
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8032604
-
- thumb_func_start sub_8032638
-sub_8032638: @ 8032638
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _080326DC @ =gMain
- ldr r1, _080326E0 @ =0x0000043d
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080326CE
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r5, _080326E4 @ =gUnknown_02024A6A
- mov r1, r8
- lsls r0, r1, 1
- adds r0, r5
- ldrb r0, [r0]
- bl pokemon_order_func
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r9
- lsls r0, r1, 1
- adds r0, r5
- ldrb r0, [r0]
- bl pokemon_order_func
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0x64
- adds r0, r4, 0
- muls r0, r7
- ldr r6, _080326E8 @ =gPlayerParty
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080326AA
- adds r0, r4, 0
- mov r1, r8
- bl sub_80324F8
-_080326AA:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080326CE
- adds r0, r5, 0
- muls r0, r7
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080326CE
- adds r0, r4, 0
- mov r1, r9
- bl sub_80324F8
-_080326CE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080326DC: .4byte gMain
-_080326E0: .4byte 0x0000043d
-_080326E4: .4byte gUnknown_02024A6A
-_080326E8: .4byte gPlayerParty
- thumb_func_end sub_8032638
-
- thumb_func_start sub_80326EC
-sub_80326EC: @ 80326EC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r0, _08032778 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- bge _080327B4
- movs r0, 0x3
- mov r10, r8
- mov r1, r10
- ands r1, r0
- mov r10, r1
- movs r6, 0
- movs r2, 0x3F
- negs r2, r2
- mov r9, r2
-_08032718:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _080327A8
- ldr r4, _0803277C @ =gSprites
- ldr r0, _08032780 @ =gUnknown_02024BE0
- adds r3, r5, r0
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r7, 0x4
- negs r7, r7
- adds r2, r7, 0
- ands r1, r2
- mov r2, r10
- orrs r1, r2
- strb r1, [r0, 0x1]
- mov r7, r8
- cmp r7, 0
- bne _08032788
- ldr r2, _08032784 @ =0x02017810
- adds r2, r6, r2
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r2, 0x6]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x3]
- mov r2, r9
- ands r1, r2
- strb r1, [r0, 0x3]
- b _080327A8
- .align 2, 0
-_08032778: .4byte gUnknown_02024A68
-_0803277C: .4byte gSprites
-_08032780: .4byte gUnknown_02024BE0
-_08032784: .4byte 0x02017810
-_08032788:
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, _080327C4 @ =0x02017810
- adds r0, r6, r0
- ldrb r1, [r0, 0x6]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r0, [r2, 0x3]
- mov r3, r9
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x3]
-_080327A8:
- adds r6, 0xC
- adds r5, 0x1
- ldr r0, _080327C8 @ =gUnknown_02024A68
- ldrb r0, [r0]
- cmp r5, r0
- blt _08032718
-_080327B4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080327C4: .4byte 0x02017810
-_080327C8: .4byte gUnknown_02024A68
- thumb_func_end sub_80326EC
-
- thumb_func_start sub_80327CC
-sub_80327CC: @ 80327CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08032894 @ =gUnknown_081FAF24
- bl LoadCompressedObjectPic
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08032898 @ =gSpriteTemplate_81FAF34
- mov r8, r0
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 8
- movs r0, 0x80
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0xC8
- bl CreateSprite
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- ldr r6, _0803289C @ =0x02017810
- adds r1, r6
- strb r0, [r1, 0x7]
- ldr r7, _080328A0 @ =gSprites
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r5, [r0, 0x2E]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0803288A
- movs r0, 0x3
- bl battle_get_side_with_given_state
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8077ABC
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 8
- movs r0, 0x80
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- adds r1, r4, 0
- movs r3, 0xC8
- bl CreateSprite
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r6
- strb r0, [r1, 0x7]
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r5, [r0, 0x2E]
-_0803288A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032894: .4byte gUnknown_081FAF24
-_08032898: .4byte gSpriteTemplate_81FAF34
-_0803289C: .4byte 0x02017810
-_080328A0: .4byte gSprites
- thumb_func_end sub_80327CC
-
- thumb_func_start sub_80328A4
-sub_80328A4: @ 80328A4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- movs r0, 0
- mov r8, r0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080328E8 @ =gUnknown_02024BE0
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080328EC @ =gSprites
- adds r7, r0, r1
- adds r6, r7, 0
- adds r6, 0x3E
- ldrb r1, [r6]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080328E0
- adds r0, r4, 0
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- bne _080328F4
-_080328E0:
- ldr r0, _080328F0 @ =sub_8032978
- str r0, [r5, 0x1C]
- b _08032964
- .align 2, 0
-_080328E8: .4byte gUnknown_02024BE0
-_080328EC: .4byte gSprites
-_080328F0: .4byte sub_8032978
-_080328F4:
- ldr r0, _08032910 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08032906
- ldrb r1, [r6]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08032918
-_08032906:
- movs r0, 0x1
- mov r8, r0
- lsls r4, 2
- ldr r6, _08032914 @ =0x02017800
- b _08032938
- .align 2, 0
-_08032910: .4byte gUnknown_0202F7B1
-_08032914: .4byte 0x02017800
-_08032918:
- lsls r0, r4, 2
- ldr r1, _08032970 @ =0x02017800
- adds r3, r0, r1
- ldrh r2, [r3, 0x2]
- adds r4, r0, 0
- adds r6, r1, 0
- cmp r2, 0
- beq _08032938
- ldr r0, _08032974 @ =gEnemyMonElevation
- adds r1, r2, 0
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08032938
- movs r0, 0x1
- mov r8, r0
-_08032938:
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08032948
- movs r0, 0x1
- mov r8, r0
-_08032948:
- ldrh r0, [r7, 0x20]
- strh r0, [r5, 0x20]
- ldrh r0, [r7, 0x24]
- strh r0, [r5, 0x24]
- adds r2, r5, 0
- adds r2, 0x3E
- mov r0, r8
- lsls r3, r0, 2
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
-_08032964:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032970: .4byte 0x02017800
-_08032974: .4byte gEnemyMonElevation
- thumb_func_end sub_80328A4
-
- thumb_func_start sub_8032978
-sub_8032978: @ 8032978
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_8032978
-
- thumb_func_start sub_8032984
-sub_8032984: @ 8032984
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- lsls r1, 16
- lsrs r5, r1, 16
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _080329FA
- lsls r0, r4, 2
- ldr r3, _080329D0 @ =0x02017800
- adds r1, r0, r3
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _080329AA
- adds r5, r0, 0
-_080329AA:
- ldr r0, _080329D4 @ =gEnemyMonElevation
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0
- beq _080329E0
- ldr r2, _080329D8 @ =gSprites
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r3, r0
- ldrb r1, [r0, 0x17]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080329DC @ =sub_80328A4
- b _080329F8
- .align 2, 0
-_080329D0: .4byte 0x02017800
-_080329D4: .4byte gEnemyMonElevation
-_080329D8: .4byte gSprites
-_080329DC: .4byte sub_80328A4
-_080329E0:
- ldr r2, _08032A00 @ =gSprites
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r0, r3, r0
- ldrb r1, [r0, 0x17]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08032A04 @ =sub_8032978
-_080329F8:
- str r1, [r0]
-_080329FA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032A00: .4byte gSprites
-_08032A04: .4byte sub_8032978
- thumb_func_end sub_8032984
-
- thumb_func_start sub_8032A08
-sub_8032A08: @ 8032A08
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08032A2C @ =gSprites
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08032A30 @ =0x02017810
- adds r1, r0
- ldrb r1, [r1, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08032A34 @ =sub_8032978
- str r1, [r0]
- bx lr
- .align 2, 0
-_08032A2C: .4byte gSprites
-_08032A30: .4byte 0x02017810
-_08032A34: .4byte sub_8032978
- thumb_func_end sub_8032A08
-
- thumb_func_start sub_8032A38
-sub_8032A38: @ 8032A38
- push {r4-r6,lr}
- ldr r3, _08032AA4 @ =0x06000240
- movs r0, 0
- movs r6, 0xF0
- lsls r6, 8
-_08032A42:
- adds r5, r0, 0x1
- movs r4, 0xF
-_08032A46:
- ldrh r1, [r3]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- bne _08032A56
- adds r0, r6, 0
- orrs r0, r1
- strh r0, [r3]
-_08032A56:
- ldrh r1, [r3]
- movs r2, 0xF0
- lsls r2, 4
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08032A6A
- adds r0, r2, 0
- orrs r0, r1
- strh r0, [r3]
-_08032A6A:
- ldrh r1, [r3]
- movs r2, 0xF0
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- bne _08032A7C
- adds r0, r1, 0
- orrs r0, r2
- strh r0, [r3]
-_08032A7C:
- ldrh r1, [r3]
- movs r2, 0xF
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08032A8E
- adds r0, r1, 0
- orrs r0, r2
- strh r0, [r3]
-_08032A8E:
- adds r3, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08032A46
- adds r0, r5, 0
- cmp r0, 0x8
- ble _08032A42
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032AA4: .4byte 0x06000240
- thumb_func_end sub_8032A38
-
- thumb_func_start sub_8032AA8
-sub_8032AA8: @ 8032AA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsls r2, r4, 2
- ldr r0, _08032AD4 @ =0x02017800
- adds r2, r0
- movs r3, 0
- movs r0, 0
- strh r0, [r2, 0x2]
- ldr r0, _08032AD8 @ =gUnknown_02024E84
- adds r0, r4, r0
- strb r3, [r0]
- cmp r1, 0
- bne _08032ACC
- adds r0, r4, 0
- bl sub_80324E0
-_08032ACC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08032AD4: .4byte 0x02017800
-_08032AD8: .4byte gUnknown_02024E84
- thumb_func_end sub_8032AA8
-
- thumb_func_start nullsub_45
-nullsub_45: @ 8032ADC
- bx lr
- thumb_func_end nullsub_45
-
- thumb_func_start sub_8032AE0
-sub_8032AE0: @ 8032AE0
- ldr r1, _08032AF0 @ =gUnknown_03004330
- ldr r0, _08032AF4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08032AF8 @ =sub_8032AFC
- str r1, [r0]
- bx lr
- .align 2, 0
-_08032AF0: .4byte gUnknown_03004330
-_08032AF4: .4byte gUnknown_02024A60
-_08032AF8: .4byte sub_8032AFC
- thumb_func_end sub_8032AE0
-
- thumb_func_start sub_8032AFC
-sub_8032AFC: @ 8032AFC
- push {lr}
- ldr r2, _08032B30 @ =gUnknown_02024A64
- ldr r1, _08032B34 @ =gBitTable
- ldr r0, _08032B38 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08032B48
- ldr r0, _08032B3C @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _08032B44
- ldr r0, _08032B40 @ =gUnknown_081FAF5C
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _08032B48
- .align 2, 0
-_08032B30: .4byte gUnknown_02024A64
-_08032B34: .4byte gBitTable
-_08032B38: .4byte gUnknown_02024A60
-_08032B3C: .4byte gUnknown_02023A60
-_08032B40: .4byte gUnknown_081FAF5C
-_08032B44:
- bl sub_80334EC
-_08032B48:
- pop {r0}
- bx r0
- thumb_func_end sub_8032AFC
-
- thumb_func_start sub_8032B4C
-sub_8032B4C: @ 8032B4C
- push {lr}
- ldr r2, _08032B74 @ =gSprites
- ldr r1, _08032B78 @ =gUnknown_02024BE0
- ldr r0, _08032B7C @ =gUnknown_02024A60
- 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, _08032B80 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032B70
- bl sub_80334EC
-_08032B70:
- pop {r0}
- bx r0
- .align 2, 0
-_08032B74: .4byte gSprites
-_08032B78: .4byte gUnknown_02024BE0
-_08032B7C: .4byte gUnknown_02024A60
-_08032B80: .4byte SpriteCallbackDummy
- thumb_func_end sub_8032B4C
-
- thumb_func_start sub_8032B84
-sub_8032B84: @ 8032B84
- push {lr}
- ldr r2, _08032BAC @ =gSprites
- ldr r1, _08032BB0 @ =gUnknown_02024BE0
- ldr r0, _08032BB4 @ =gUnknown_02024A60
- 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, _08032BB8 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032BA8
- bl sub_80334EC
-_08032BA8:
- pop {r0}
- bx r0
- .align 2, 0
-_08032BAC: .4byte gSprites
-_08032BB0: .4byte gUnknown_02024BE0
-_08032BB4: .4byte gUnknown_02024A60
-_08032BB8: .4byte SpriteCallbackDummy
- thumb_func_end sub_8032B84
-
- thumb_func_start sub_8032BBC
-sub_8032BBC: @ 8032BBC
- push {r4-r6,lr}
- ldr r4, _08032C34 @ =gSprites
- ldr r6, _08032C38 @ =gUnknown_02024BE0
- ldr r5, _08032C3C @ =gUnknown_02024A60
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _08032C40 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032C2C
- adds r0, r2, r4
- ldrh r0, [r0, 0x6]
- bl sub_8031B74
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x38]
- ldr r2, _08032C44 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08032C48 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- bl sub_80334EC
-_08032C2C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08032C34: .4byte gSprites
-_08032C38: .4byte gUnknown_02024BE0
-_08032C3C: .4byte gUnknown_02024A60
-_08032C40: .4byte SpriteCallbackDummy
-_08032C44: .4byte 0x000003ff
-_08032C48: .4byte 0xfffffc00
- thumb_func_end sub_8032BBC
-
- thumb_func_start sub_8032C4C
-sub_8032C4C: @ 8032C4C
- push {lr}
- ldr r3, _08032C80 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _08032C84 @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08032C7C
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl sub_80334EC
-_08032C7C:
- pop {r0}
- bx r0
- .align 2, 0
-_08032C80: .4byte gUnknown_02024A60
-_08032C84: .4byte 0x02017810
- thumb_func_end sub_8032C4C
-
- thumb_func_start sub_8032C88
-sub_8032C88: @ 8032C88
- push {r4-r7,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08032CAC
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08032CE0
- ldr r0, _08032CCC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08032CE0
-_08032CAC:
- ldr r2, _08032CD0 @ =gSprites
- ldr r1, _08032CD4 @ =gUnknown_03004340
- ldr r0, _08032CD8 @ =gUnknown_02024A60
- 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, _08032CDC @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08032D16
- b _08032D14
- .align 2, 0
-_08032CCC: .4byte gUnknown_020239F8
-_08032CD0: .4byte gSprites
-_08032CD4: .4byte gUnknown_03004340
-_08032CD8: .4byte gUnknown_02024A60
-_08032CDC: .4byte SpriteCallbackDummy
-_08032CE0:
- ldr r2, _08032DC4 @ =gSprites
- ldr r5, _08032DC8 @ =gUnknown_03004340
- ldr r0, _08032DCC @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _08032DD0 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _08032D16
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _08032D16
-_08032D14:
- movs r6, 0x1
-_08032D16:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08032D22
- movs r6, 0
-_08032D22:
- cmp r6, 0
- beq _08032E0E
- ldr r7, _08032DCC @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _08032DD4 @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032E0E
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032E0E
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- 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, _08032DD8 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _08032DDC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08032DE4
- ldr r0, _08032DE0 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _08032DF0
- .align 2, 0
-_08032DC4: .4byte gSprites
-_08032DC8: .4byte gUnknown_03004340
-_08032DCC: .4byte gUnknown_02024A60
-_08032DD0: .4byte SpriteCallbackDummy
-_08032DD4: .4byte 0x02017810
-_08032DD8: .4byte 0x000027f9
-_08032DDC: .4byte gUnknown_020239F8
-_08032DE0: .4byte gMPlay_BGM
-_08032DE4:
- ldr r0, _08032E14 @ =gMPlay_BGM
- ldr r1, _08032E18 @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08032DF0:
- ldr r2, _08032E1C @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08032E20 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _08032E24 @ =gUnknown_03004330
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08032E28 @ =sub_8032C4C
- str r1, [r0]
-_08032E0E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032E14: .4byte gMPlay_BGM
-_08032E18: .4byte 0x0000ffff
-_08032E1C: .4byte gUnknown_02024A60
-_08032E20: .4byte 0x02017810
-_08032E24: .4byte gUnknown_03004330
-_08032E28: .4byte sub_8032C4C
- thumb_func_end sub_8032C88
-
- thumb_func_start sub_8032E2C
-sub_8032E2C: @ 8032E2C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08032FEC @ =gUnknown_02024A60
- mov r9, r0
- ldrb r2, [r0]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _08032FF0 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r5, 0x88
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08032E64
- ldr r0, _08032FF4 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08032FF8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08032E64:
- mov r1, r9
- ldrb r0, [r1]
- movs r7, 0x2
- adds r2, r7, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08032E94
- ldr r0, _08032FF4 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08032FF8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08032E94:
- mov r0, r9
- ldrb r2, [r0]
- 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
- beq _08032EAE
- b _08032FE0
-_08032EAE:
- adds r1, r7, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08032EC6
- b _08032FE0
-_08032EC6:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08032F58
- ldr r0, _08032FFC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08032F58
- ldr r1, _08033000 @ =gUnknown_0300434C
- mov r2, r9
- ldrb r0, [r2]
- eors r0, r7
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08033004 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r4, _08033008 @ =gUnknown_03004340
- mov r1, r9
- ldrb r0, [r1]
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08032FF4 @ =gUnknown_02024A6A
- mov r8, r2
- lsls r1, 1
- add r1, r8
- ldrh r1, [r1]
- movs r6, 0x64
- muls r1, r6
- ldr r5, _08032FF8 @ =gEnemyParty
- adds r1, r5
- movs r2, 0
- bl sub_8045A5C
- mov r1, r9
- ldrb r0, [r1]
- eors r0, r7
- bl sub_804777C
- mov r2, r9
- ldrb r0, [r2]
- eors r0, r7
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- mov r1, r9
- ldrb r0, [r1]
- adds r4, r7, 0
- eors r4, r0
- lsls r0, r4, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
-_08032F58:
- ldr r1, _08033000 @ =gUnknown_0300434C
- ldr r4, _08032FEC @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08033004 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _08033008 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08032FF4 @ =gUnknown_02024A6A
- mov r9, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
- movs r2, 0x64
- mov r8, r2
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08032FF8 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r5, [r4]
- lsls r0, r5, 1
- add r0, r9
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_8032984
- ldr r2, _0803300C @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08033010 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08033014 @ =sub_8032C88
- str r1, [r0]
-_08032FE0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08032FEC: .4byte gUnknown_02024A60
-_08032FF0: .4byte 0x02017810
-_08032FF4: .4byte gUnknown_02024A6A
-_08032FF8: .4byte gEnemyParty
-_08032FFC: .4byte gUnknown_020239F8
-_08033000: .4byte gUnknown_0300434C
-_08033004: .4byte gSprites
-_08033008: .4byte gUnknown_03004340
-_0803300C: .4byte 0x02017840
-_08033010: .4byte gUnknown_03004330
-_08033014: .4byte sub_8032C88
- thumb_func_end sub_8032E2C
-
- thumb_func_start sub_8033018
-sub_8033018: @ 8033018
- push {r4-r7,lr}
- ldr r2, _08033070 @ =gSprites
- ldr r0, _08033074 @ =gUnknown_02024BE0
- ldr r7, _08033078 @ =gUnknown_02024A60
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r2, r0, 31
- cmp r2, 0x1
- bne _080330BC
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _080330BC
- lsls r4, r3, 1
- adds r0, r4, r3
- lsls r0, 2
- ldr r6, _0803307C @ =0x02017810
- adds r1, r0, r6
- ldrb r5, [r1]
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _08033088
- ldr r0, _08033080 @ =gUnknown_02024A6A
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08033084 @ =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8141828
- b _080330BC
- .align 2, 0
-_08033070: .4byte gSprites
-_08033074: .4byte gUnknown_02024BE0
-_08033078: .4byte gUnknown_02024A60
-_0803307C: .4byte 0x02017810
-_08033080: .4byte gUnknown_02024A6A
-_08033084: .4byte gEnemyParty
-_08033088:
- ldrb r0, [r1, 0x1]
- ands r2, r0
- cmp r2, 0
- beq _080330BC
- movs r0, 0x7F
- ands r0, r5
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _080330C4 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- bl sub_80334EC
-_080330BC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080330C4: .4byte 0x000027f9
- thumb_func_end sub_8033018
-
- thumb_func_start sub_80330C8
-sub_80330C8: @ 80330C8
- push {r4-r6,lr}
- ldr r6, _08033108 @ =gUnknown_02024A60
- ldrb r0, [r6]
- ldr r5, _0803310C @ =gUnknown_03004340
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08033110
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08033114
- .align 2, 0
-_08033108: .4byte gUnknown_02024A60
-_0803310C: .4byte gUnknown_03004340
-_08033110:
- bl sub_80334EC
-_08033114:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80330C8
-
- thumb_func_start sub_803311C
-sub_803311C: @ 803311C
- push {lr}
- ldr r2, _08033150 @ =gSprites
- ldr r0, _08033154 @ =gUnknown_02024BE0
- ldr r1, _08033158 @ =gUnknown_02024A60
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _0803314A
- ldr r0, _0803315C @ =gUnknown_03004340
- adds r0, r3, r0
- ldrb r0, [r0]
- bl sub_8043DB0
- bl sub_80334EC
-_0803314A:
- pop {r0}
- bx r0
- .align 2, 0
-_08033150: .4byte gSprites
-_08033154: .4byte gUnknown_02024BE0
-_08033158: .4byte gUnknown_02024A60
-_0803315C: .4byte gUnknown_03004340
- thumb_func_end sub_803311C
-
- thumb_func_start sub_8033160
-sub_8033160: @ 8033160
- push {r4-r6,lr}
- ldr r6, _080331BC @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080331C0 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080331B6
- ldr r5, _080331C4 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _080331C8 @ =gSprites
- 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
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _080331CC @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl sub_80334EC
-_080331B6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080331BC: .4byte gUnknown_02024A60
-_080331C0: .4byte 0x02017810
-_080331C4: .4byte gUnknown_02024BE0
-_080331C8: .4byte gSprites
-_080331CC: .4byte gUnknown_03004340
- thumb_func_end sub_8033160
-
- thumb_func_start sub_80331D0
-sub_80331D0: @ 80331D0
- push {lr}
- ldr r0, _080331E4 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _080331DE
- bl sub_80334EC
-_080331DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080331E4: .4byte gUnknown_03004210
- thumb_func_end sub_80331D0
-
- thumb_func_start bx_blink_t7
-bx_blink_t7: @ 80331E8
- push {r4,lr}
- ldr r1, _08033224 @ =gUnknown_02024BE0
- ldr r0, _08033228 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0803322C @ =gSprites
- 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 _08033234
- 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, _08033230 @ =gUnknown_02024E6D
- strb r3, [r0]
- bl sub_80334EC
- b _0803325E
- .align 2, 0
-_08033224: .4byte gUnknown_02024BE0
-_08033228: .4byte gUnknown_02024A60
-_0803322C: .4byte gSprites
-_08033230: .4byte gUnknown_02024E6D
-_08033234:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08033258
- 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]
-_08033258:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0803325E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t7
-
- thumb_func_start sub_8033264
-sub_8033264: @ 8033264
- push {r4,lr}
- ldr r2, _080332B4 @ =gSprites
- ldr r0, _080332B8 @ =gUnknown_03004340
- ldr r4, _080332BC @ =gUnknown_02024A60
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _080332C0 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080332AC
- lsls r0, r3, 2
- ldr r1, _080332C4 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _080332A0
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_080332A0:
- ldr r0, _080332C8 @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _080332CC @ =sub_80332D0
- str r0, [r1]
-_080332AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080332B4: .4byte gSprites
-_080332B8: .4byte gUnknown_03004340
-_080332BC: .4byte gUnknown_02024A60
-_080332C0: .4byte SpriteCallbackDummy
-_080332C4: .4byte 0x02017800
-_080332C8: .4byte gUnknown_03004330
-_080332CC: .4byte sub_80332D0
- thumb_func_end sub_8033264
-
- thumb_func_start sub_80332D0
-sub_80332D0: @ 80332D0
- push {lr}
- ldr r0, _080332FC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08033300 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080332F6
- ldr r0, _08033304 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- bl sub_80334EC
-_080332F6:
- pop {r0}
- bx r0
- .align 2, 0
-_080332FC: .4byte gUnknown_02024A60
-_08033300: .4byte 0x02017810
-_08033304: .4byte c3_0802FDF4
- thumb_func_end sub_80332D0
-
- thumb_func_start sub_8033308
-sub_8033308: @ 8033308
- push {r4,r5,lr}
- ldr r5, _080333AC @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _080333B0 @ =0x02017810
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080333A4
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _080333B4 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r1, _080333B8 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _080333BC @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _080333C0 @ =gUnknown_03004340
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _080333C4 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _080333C8 @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _080333CC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080333D0 @ =sub_8033264
- str r1, [r0]
-_080333A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080333AC: .4byte gUnknown_02024A60
-_080333B0: .4byte 0x02017810
-_080333B4: .4byte 0x000027f9
-_080333B8: .4byte gUnknown_02024BE0
-_080333BC: .4byte gSprites
-_080333C0: .4byte gUnknown_03004340
-_080333C4: .4byte gUnknown_02024A6A
-_080333C8: .4byte gEnemyParty
-_080333CC: .4byte gUnknown_03004330
-_080333D0: .4byte sub_8033264
- thumb_func_end sub_8033308
-
- thumb_func_start sub_80333D4
-sub_80333D4: @ 80333D4
- push {r4-r6,lr}
- ldr r5, _08033470 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _08033474 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _08033402
- ldr r0, _08033478 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0803347C @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08033402:
- ldr r4, _08033480 @ =gSprites
- ldr r0, _08033484 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _08033488 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08033468
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08033468
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, _08033478 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803347C @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _0803348C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08033490 @ =sub_8033308
- str r1, [r0]
-_08033468:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08033470: .4byte gUnknown_02024A60
-_08033474: .4byte 0x02017810
-_08033478: .4byte gUnknown_02024A6A
-_0803347C: .4byte gEnemyParty
-_08033480: .4byte gSprites
-_08033484: .4byte gUnknown_0300434C
-_08033488: .4byte SpriteCallbackDummy
-_0803348C: .4byte gUnknown_03004330
-_08033490: .4byte sub_8033308
- thumb_func_end sub_80333D4
-
- thumb_func_start sub_8033494
-sub_8033494: @ 8033494
- push {lr}
- ldr r0, _080334B8 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080334BC @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _080334B2
- bl sub_80334EC
-_080334B2:
- pop {r0}
- bx r0
- .align 2, 0
-_080334B8: .4byte gUnknown_02024A60
-_080334BC: .4byte 0x02017810
- thumb_func_end sub_8033494
-
- thumb_func_start sub_80334C0
-sub_80334C0: @ 80334C0
- push {lr}
- ldr r0, _080334E4 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _080334E8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _080334DE
- bl sub_80334EC
-_080334DE:
- pop {r0}
- bx r0
- .align 2, 0
-_080334E4: .4byte gUnknown_02024A60
-_080334E8: .4byte 0x02017810
- thumb_func_end sub_80334C0
-
- thumb_func_start sub_80334EC
-sub_80334EC: @ 80334EC
- ldr r1, _08033510 @ =gUnknown_03004330
- ldr r2, _08033514 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08033518 @ =sub_8032AFC
- str r1, [r0]
- ldr r3, _0803351C @ =gUnknown_02024A64
- ldr r1, _08033520 @ =gBitTable
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r3]
- bics r0, r1
- str r0, [r3]
- bx lr
- .align 2, 0
-_08033510: .4byte gUnknown_03004330
-_08033514: .4byte gUnknown_02024A60
-_08033518: .4byte sub_8032AFC
-_0803351C: .4byte gUnknown_02024A64
-_08033520: .4byte gBitTable
- thumb_func_end sub_80334EC
-
- thumb_func_start dp01t_00_7_getattr
-dp01t_00_7_getattr: @ 8033524
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _08033550 @ =gUnknown_02023A60
- ldr r0, _08033554 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0803355C
- ldr r0, _08033558 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl sub_8033598
- adds r6, r0, 0
- b _0803357E
- .align 2, 0
-_08033550: .4byte gUnknown_02023A60
-_08033554: .4byte gUnknown_02024A60
-_08033558: .4byte gUnknown_02024A6A
-_0803355C:
- ldrb r4, [r1]
- movs r5, 0
-_08033560:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08033576
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl sub_8033598
- adds r6, r0
-_08033576:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _08033560
-_0803357E:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl sub_80334EC
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_7_getattr
-
- thumb_func_start sub_8033598
-sub_8033598: @ 8033598
- 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, _080335CC @ =gUnknown_02023A60
- ldr r3, _080335D0 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _080335C2
- bl _08033D2E
-_080335C2:
- lsls r0, 2
- ldr r1, _080335D4 @ =_080335D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080335CC: .4byte gUnknown_02023A60
-_080335D0: .4byte gUnknown_02024A60
-_080335D4: .4byte _080335D8
- .align 2, 0
-_080335D8:
- .4byte _080336C8
- .4byte _080338EC
- .4byte _080338FC
- .4byte _0803390C
- .4byte _08033974
- .4byte _08033974
- .4byte _08033974
- .4byte _08033974
- .4byte _08033990
- .4byte _080339CC
- .4byte _080339CC
- .4byte _080339CC
- .4byte _080339CC
- .4byte _08033D2E
- .4byte _08033D2E
- .4byte _08033D2E
- .4byte _08033D2E
- .4byte _080339E8
- .4byte _080339F8
- .4byte _08033A28
- .4byte _08033A38
- .4byte _08033A48
- .4byte _08033A58
- .4byte _08033A68
- .4byte _08033A78
- .4byte _08033A88
- .4byte _08033A98
- .4byte _08033AA8
- .4byte _08033AB8
- .4byte _08033AC8
- .4byte _08033AD8
- .4byte _08033AE8
- .4byte _08033B38
- .4byte _08033B48
- .4byte _08033B58
- .4byte _08033B68
- .4byte _08033B78
- .4byte _08033B88
- .4byte _08033B98
- .4byte _08033BA8
- .4byte _08033BB8
- .4byte _08033BEC
- .4byte _08033BFC
- .4byte _08033C0C
- .4byte _08033C1C
- .4byte _08033C2C
- .4byte _08033C3C
- .4byte _08033C4C
- .4byte _08033C5C
- .4byte _08033C7C
- .4byte _08033C8C
- .4byte _08033C9C
- .4byte _08033CAC
- .4byte _08033CBC
- .4byte _08033CCC
- .4byte _08033CDC
- .4byte _08033CEC
- .4byte _08033CFC
- .4byte _08033D0C
- .4byte _08033D1C
-_080336C8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080338DC @ =gEnemyParty
- 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
-_08033714:
- 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 _08033714
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080338DC @ =gEnemyParty
- 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, _080338E0 @ =0xfffffc1f
- 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, _080338E4 @ =0xfff07fff
- 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, _080338E8 @ =0xfffffe0f
- 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
-_080338CC:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _080338CC
- b _08033D2E
- .align 2, 0
-_080338DC: .4byte gEnemyParty
-_080338E0: .4byte 0xfffffc1f
-_080338E4: .4byte 0xfff07fff
-_080338E8: .4byte 0xfffffe0f
-_080338EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080338F8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _08033C66
- .align 2, 0
-_080338F8: .4byte gEnemyParty
-_080338FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033908 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _08033C66
- .align 2, 0
-_08033908: .4byte gEnemyParty
-_0803390C:
- 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, _08033970 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_08033922:
- 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 _08033922
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033970 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_08033960:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _08033960
- b _08033D2E
- .align 2, 0
-_08033970: .4byte gEnemyParty
-_08033974:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803398C @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _08033C66
- .align 2, 0
-_0803398C: .4byte gEnemyParty
-_08033990:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _080339C8 @ =gEnemyParty
- mov r8, r2
-_0803399C:
- 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 _0803399C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080339C8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08033D2E
- .align 2, 0
-_080339C8: .4byte gEnemyParty
-_080339CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080339E4 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _08033D26
- .align 2, 0
-_080339E4: .4byte gEnemyParty
-_080339E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080339F4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _08033A02
- .align 2, 0
-_080339F4: .4byte gEnemyParty
-_080339F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A24 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_08033A02:
- 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 _08033D2E
- .align 2, 0
-_08033A24: .4byte gEnemyParty
-_08033A28:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A34 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _08033D26
- .align 2, 0
-_08033A34: .4byte gEnemyParty
-_08033A38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A44 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _08033D26
- .align 2, 0
-_08033A44: .4byte gEnemyParty
-_08033A48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _08033D26
- .align 2, 0
-_08033A54: .4byte gEnemyParty
-_08033A58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A64 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _08033D26
- .align 2, 0
-_08033A64: .4byte gEnemyParty
-_08033A68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A74 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _08033D26
- .align 2, 0
-_08033A74: .4byte gEnemyParty
-_08033A78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A84 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _08033D26
- .align 2, 0
-_08033A84: .4byte gEnemyParty
-_08033A88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033A94 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _08033D26
- .align 2, 0
-_08033A94: .4byte gEnemyParty
-_08033A98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AA4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _08033D26
- .align 2, 0
-_08033AA4: .4byte gEnemyParty
-_08033AA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AB4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _08033D26
- .align 2, 0
-_08033AB4: .4byte gEnemyParty
-_08033AB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AC4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _08033D26
- .align 2, 0
-_08033AC4: .4byte gEnemyParty
-_08033AC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AD4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _08033D26
- .align 2, 0
-_08033AD4: .4byte gEnemyParty
-_08033AD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033AE4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _08033D26
- .align 2, 0
-_08033AE4: .4byte gEnemyParty
-_08033AE8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08033B34 @ =gEnemyParty
- 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 _08033D2E
- .align 2, 0
-_08033B34: .4byte gEnemyParty
-_08033B38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B44 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _08033D26
- .align 2, 0
-_08033B44: .4byte gEnemyParty
-_08033B48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _08033D26
- .align 2, 0
-_08033B54: .4byte gEnemyParty
-_08033B58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B64 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _08033D26
- .align 2, 0
-_08033B64: .4byte gEnemyParty
-_08033B68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B74 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _08033D26
- .align 2, 0
-_08033B74: .4byte gEnemyParty
-_08033B78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B84 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _08033D26
- .align 2, 0
-_08033B84: .4byte gEnemyParty
-_08033B88:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033B94 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _08033D26
- .align 2, 0
-_08033B94: .4byte gEnemyParty
-_08033B98:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BA4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _08033BC2
- .align 2, 0
-_08033BA4: .4byte gEnemyParty
-_08033BA8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BB4 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _08033C66
- .align 2, 0
-_08033BB4: .4byte gEnemyParty
-_08033BB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BE8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_08033BC2:
- 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 _08033D2E
- .align 2, 0
-_08033BE8: .4byte gEnemyParty
-_08033BEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033BF8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _08033D26
- .align 2, 0
-_08033BF8: .4byte gEnemyParty
-_08033BFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C08 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _08033C66
- .align 2, 0
-_08033C08: .4byte gEnemyParty
-_08033C0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C18 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _08033C66
- .align 2, 0
-_08033C18: .4byte gEnemyParty
-_08033C1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C28 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _08033C66
- .align 2, 0
-_08033C28: .4byte gEnemyParty
-_08033C2C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C38 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _08033C66
- .align 2, 0
-_08033C38: .4byte gEnemyParty
-_08033C3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C48 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _08033C66
- .align 2, 0
-_08033C48: .4byte gEnemyParty
-_08033C4C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C58 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _08033C66
- .align 2, 0
-_08033C58: .4byte gEnemyParty
-_08033C5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C78 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_08033C66:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08033D2E
- .align 2, 0
-_08033C78: .4byte gEnemyParty
-_08033C7C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C88 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _08033D26
- .align 2, 0
-_08033C88: .4byte gEnemyParty
-_08033C8C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033C98 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _08033D26
- .align 2, 0
-_08033C98: .4byte gEnemyParty
-_08033C9C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CA8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _08033D26
- .align 2, 0
-_08033CA8: .4byte gEnemyParty
-_08033CAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CB8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _08033D26
- .align 2, 0
-_08033CB8: .4byte gEnemyParty
-_08033CBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CC8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _08033D26
- .align 2, 0
-_08033CC8: .4byte gEnemyParty
-_08033CCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CD8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _08033D26
- .align 2, 0
-_08033CD8: .4byte gEnemyParty
-_08033CDC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CE8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _08033D26
- .align 2, 0
-_08033CE8: .4byte gEnemyParty
-_08033CEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033CF8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _08033D26
- .align 2, 0
-_08033CF8: .4byte gEnemyParty
-_08033CFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033D08 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _08033D26
- .align 2, 0
-_08033D08: .4byte gEnemyParty
-_08033D0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033D18 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _08033D26
- .align 2, 0
-_08033D18: .4byte gEnemyParty
-_08033D1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08033D40 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_08033D26:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08033D2E:
- 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
-_08033D40: .4byte gEnemyParty
- thumb_func_end sub_8033598
-
- thumb_func_start dp01t_01_2_read_pokmon_data_slice
-dp01t_01_2_read_pokmon_data_slice: @ 8033D44
- push {r4-r7,lr}
- sub sp, 0x58
- ldr r2, _08033DBC @ =gUnknown_02024A6A
- ldr r5, _08033DC0 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r3, _08033DC4 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, r3, 0x1
- adds r0, r1, r0
- ldrb r2, [r0]
- ldr r0, _08033DC8 @ =gEnemyParty
- adds r0, r2, r0
- adds r6, r4, r0
- mov r0, sp
- adds r4, r0, r2
- movs r2, 0
- adds r0, r3, 0x2
- adds r1, r0
- adds r7, r5, 0
- mov r12, r3
- ldrb r1, [r1]
- cmp r2, r1
- bcs _08033D9A
- adds r3, r0, 0
-_08033D80:
- adds r1, r4, r2
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r5]
- lsls r0, 9
- adds r0, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcc _08033D80
-_08033D9A:
- ldrb r0, [r7]
- lsls r0, 9
- mov r1, r12
- adds r1, 0x2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl sub_80334EC
- add sp, 0x58
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08033DBC: .4byte gUnknown_02024A6A
-_08033DC0: .4byte gUnknown_02024A60
-_08033DC4: .4byte gUnknown_02023A60
-_08033DC8: .4byte gEnemyParty
- thumb_func_end dp01t_01_2_read_pokmon_data_slice
-
- thumb_func_start dp01t_02_7_setattr
-dp01t_02_7_setattr: @ 8033DCC
- push {r4,r5,lr}
- ldr r1, _08033DF0 @ =gUnknown_02023A60
- ldr r0, _08033DF4 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08033DFC
- ldr r0, _08033DF8 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8033E24
- b _08033E1A
- .align 2, 0
-_08033DF0: .4byte gUnknown_02023A60
-_08033DF4: .4byte gUnknown_02024A60
-_08033DF8: .4byte gUnknown_02024A6A
-_08033DFC:
- ldrb r4, [r1]
- movs r5, 0
-_08033E00:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08033E0E
- adds r0, r5, 0
- bl sub_8033E24
-_08033E0E:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08033E00
-_08033E1A:
- bl sub_80334EC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp01t_02_7_setattr
-
- thumb_func_start sub_8033E24
-sub_8033E24: @ 8033E24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08033E5C @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _08033E60 @ =gUnknown_02023A63
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _08033E52
- bl _08034730
-_08033E52:
- lsls r0, 2
- ldr r1, _08033E64 @ =_08033E68
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08033E5C: .4byte gUnknown_02024A60
-_08033E60: .4byte gUnknown_02023A63
-_08033E64: .4byte _08033E68
- .align 2, 0
-_08033E68:
- .4byte _08033F58
- .4byte _080340F0
- .4byte _0803410C
- .4byte _08034128
- .4byte _0803417C
- .4byte _0803417C
- .4byte _0803417C
- .4byte _0803417C
- .4byte _0803419C
- .4byte _08034204
- .4byte _08034204
- .4byte _08034204
- .4byte _08034204
- .4byte _08034730
- .4byte _08034730
- .4byte _08034730
- .4byte _08034730
- .4byte _0803422C
- .4byte _08034248
- .4byte _08034264
- .4byte _08034280
- .4byte _0803429C
- .4byte _080342B8
- .4byte _080342D4
- .4byte _080342F0
- .4byte _0803430C
- .4byte _08034328
- .4byte _08034344
- .4byte _08034360
- .4byte _0803437C
- .4byte _08034398
- .4byte _080343B4
- .4byte _08034428
- .4byte _08034444
- .4byte _08034460
- .4byte _0803447C
- .4byte _08034498
- .4byte _080344B4
- .4byte _080344D0
- .4byte _080344EC
- .4byte _08034508
- .4byte _08034524
- .4byte _08034540
- .4byte _0803455C
- .4byte _08034578
- .4byte _08034594
- .4byte _080345B0
- .4byte _080345CC
- .4byte _080345E8
- .4byte _08034604
- .4byte _08034620
- .4byte _0803463C
- .4byte _08034658
- .4byte _08034674
- .4byte _08034690
- .4byte _080346AC
- .4byte _080346C8
- .4byte _080346E4
- .4byte _08034700
- .4byte _0803471C
-_08033F58:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080340EC @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r7, 0
- bl SetMonData
- adds r2, r7, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r7
- mov r10, r0
- adds r0, r7, 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, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08033FBE:
- 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, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08033FBE
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _080340EC @ =gEnemyParty
- 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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 _08034730
- .align 2, 0
-_080340EC: .4byte gEnemyParty
-_080340F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034108 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034108: .4byte gEnemyParty
-_0803410C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034124 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034124: .4byte gEnemyParty
-_08034128:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08034178 @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08034140:
- 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 _08034140
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034178 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034178: .4byte gEnemyParty
-_0803417C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034194 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08034198 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0803421A
- .align 2, 0
-_08034194: .4byte gEnemyParty
-_08034198: .4byte gUnknown_02023A60
-_0803419C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08034200 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034200: .4byte gEnemyParty
-_08034204:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034224 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08034228 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0803421A:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034224: .4byte gEnemyParty
-_08034228: .4byte gUnknown_02023A60
-_0803422C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034244 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034244: .4byte gEnemyParty
-_08034248:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034260 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034260: .4byte gEnemyParty
-_08034264:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803427C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803427C: .4byte gEnemyParty
-_08034280:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034298 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034298: .4byte gEnemyParty
-_0803429C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080342B4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _08034730
- .align 2, 0
-_080342B4: .4byte gEnemyParty
-_080342B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080342D0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _08034730
- .align 2, 0
-_080342D0: .4byte gEnemyParty
-_080342D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080342EC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _08034730
- .align 2, 0
-_080342EC: .4byte gEnemyParty
-_080342F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034308 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034308: .4byte gEnemyParty
-_0803430C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034324 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034324: .4byte gEnemyParty
-_08034328:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034340 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034340: .4byte gEnemyParty
-_08034344:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803435C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803435C: .4byte gEnemyParty
-_08034360:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034378 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034378: .4byte gEnemyParty
-_0803437C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034394 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034394: .4byte gEnemyParty
-_08034398:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080343B0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _08034730
- .align 2, 0
-_080343B0: .4byte gEnemyParty
-_080343B4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08034424 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _080344C2
- .align 2, 0
-_08034424: .4byte gEnemyParty
-_08034428:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034440 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034440: .4byte gEnemyParty
-_08034444:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803445C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803445C: .4byte gEnemyParty
-_08034460:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034478 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034478: .4byte gEnemyParty
-_0803447C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034494 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034494: .4byte gEnemyParty
-_08034498:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080344B0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _08034730
- .align 2, 0
-_080344B0: .4byte gEnemyParty
-_080344B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080344CC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_080344C2:
- movs r1, 0x2C
- bl SetMonData
- b _08034730
- .align 2, 0
-_080344CC: .4byte gEnemyParty
-_080344D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080344E8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _08034730
- .align 2, 0
-_080344E8: .4byte gEnemyParty
-_080344EC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034504 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034504: .4byte gEnemyParty
-_08034508:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034520 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034520: .4byte gEnemyParty
-_08034524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803453C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803453C: .4byte gEnemyParty
-_08034540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034558 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034558: .4byte gEnemyParty
-_0803455C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034574 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034574: .4byte gEnemyParty
-_08034578:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034590 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034590: .4byte gEnemyParty
-_08034594:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080345AC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _08034730
- .align 2, 0
-_080345AC: .4byte gEnemyParty
-_080345B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080345C8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _08034730
- .align 2, 0
-_080345C8: .4byte gEnemyParty
-_080345CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080345E4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _08034730
- .align 2, 0
-_080345E4: .4byte gEnemyParty
-_080345E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034600 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034600: .4byte gEnemyParty
-_08034604:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803461C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803461C: .4byte gEnemyParty
-_08034620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034638 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034638: .4byte gEnemyParty
-_0803463C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034654 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034654: .4byte gEnemyParty
-_08034658:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034670 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034670: .4byte gEnemyParty
-_08034674:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803468C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _08034730
- .align 2, 0
-_0803468C: .4byte gEnemyParty
-_08034690:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346A8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346A8: .4byte gEnemyParty
-_080346AC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346C4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346C4: .4byte gEnemyParty
-_080346C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346E0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346E0: .4byte gEnemyParty
-_080346E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080346FC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _08034730
- .align 2, 0
-_080346FC: .4byte gEnemyParty
-_08034700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034718 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _08034730
- .align 2, 0
-_08034718: .4byte gEnemyParty
-_0803471C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08034740 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_08034730:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08034740: .4byte gEnemyParty
- thumb_func_end sub_8033E24
-
- thumb_func_start sub_8034744
-sub_8034744: @ 8034744
- push {r4-r7,lr}
- ldr r1, _080347A8 @ =gUnknown_02024A6A
- ldr r7, _080347AC @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _080347B0 @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _080347B4 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0803479C
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0803477A:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0803477A
-_0803479C:
- bl sub_80334EC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080347A8: .4byte gUnknown_02024A6A
-_080347AC: .4byte gUnknown_02024A60
-_080347B0: .4byte gUnknown_02023A60
-_080347B4: .4byte gEnemyParty
- thumb_func_end sub_8034744
-
- thumb_func_start sub_80347B8
-sub_80347B8: @ 80347B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r6, _080348E8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 1
- ldr r1, _080348EC @ =gUnknown_02024A6A
- adds r0, r1
- ldrh r0, [r0]
- movs r7, 0x64
- muls r0, r7
- ldr r2, _080348F0 @ =gEnemyParty
- mov r10, r2
- add r0, r10
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldrb r1, [r6]
- lsls r0, r1, 1
- ldr r2, _080348EC @ =gUnknown_02024A6A
- adds r0, r2
- ldrh r0, [r0]
- muls r0, r7
- add r0, r10
- bl sub_8031794
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080348F4 @ =gUnknown_02024E8C
- mov r9, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080348F8 @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080348FC @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08034900 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08034904 @ =gUnknown_02024E84
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- ldr r2, _080348EC @ =gUnknown_02024A6A
- adds r0, r2
- ldrh r0, [r0]
- muls r0, r7
- add r0, r10
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _08034908 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803490C @ =sub_8033018
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080348E8: .4byte gUnknown_02024A60
-_080348EC: .4byte gUnknown_02024A6A
-_080348F0: .4byte gEnemyParty
-_080348F4: .4byte gUnknown_02024E8C
-_080348F8: .4byte gUnknown_02024BE0
-_080348FC: .4byte gSprites
-_08034900: .4byte 0x0000ff10
-_08034904: .4byte gUnknown_02024E84
-_08034908: .4byte gUnknown_03004330
-_0803490C: .4byte sub_8033018
- thumb_func_end sub_80347B8
-
- thumb_func_start sub_8034910
-sub_8034910: @ 8034910
- push {r4,lr}
- ldr r1, _08034948 @ =gUnknown_02024A6A
- ldr r4, _0803494C @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08034950 @ =gUnknown_02023A60
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_803495C
- ldr r1, _08034954 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034958 @ =sub_80333D4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08034948: .4byte gUnknown_02024A6A
-_0803494C: .4byte gUnknown_02024A60
-_08034950: .4byte gUnknown_02023A60
-_08034954: .4byte gUnknown_03004330
-_08034958: .4byte sub_80333D4
- thumb_func_end sub_8034910
-
- thumb_func_start sub_803495C
-sub_803495C: @ 803495C
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _08034AB8 @ =gUnknown_02024A6A
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08034ABC @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08034AC0 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08034AC4 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _08034AC8 @ =gUnknown_0300434C
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl sub_8031794
- 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, _08034ACC @ =gUnknown_02024E8C
- mov r9, 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, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _08034AD0 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _08034AD4 @ =gSprites
- 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]
- mov r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- 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, _08034AD8 @ =gUnknown_02024E84
- 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, _08034ADC @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_8046400
- mov r1, r10
- 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
-_08034AB8: .4byte gUnknown_02024A6A
-_08034ABC: .4byte gUnknown_02023A60
-_08034AC0: .4byte gEnemyParty
-_08034AC4: .4byte sub_80312F0
-_08034AC8: .4byte gUnknown_0300434C
-_08034ACC: .4byte gUnknown_02024E8C
-_08034AD0: .4byte gUnknown_02024BE0
-_08034AD4: .4byte gSprites
-_08034AD8: .4byte gUnknown_02024E84
-_08034ADC: .4byte SpriteCallbackDummy
- thumb_func_end sub_803495C
-
- thumb_func_start sub_8034AE0
-sub_8034AE0: @ 8034AE0
- push {r4-r6,lr}
- ldr r1, _08034B10 @ =gUnknown_02023A60
- ldr r6, _08034B14 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _08034B24
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08034B18 @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _08034B1C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034B20 @ =sub_8034B74
- str r1, [r0]
- b _08034B60
- .align 2, 0
-_08034B10: .4byte gUnknown_02023A60
-_08034B14: .4byte gUnknown_02024A60
-_08034B18: .4byte 0x02017810
-_08034B1C: .4byte gUnknown_03004330
-_08034B20: .4byte sub_8034B74
-_08034B24:
- ldr r5, _08034B68 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08034B6C @ =gSprites
- 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
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08034B70 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl sub_80334EC
-_08034B60:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034B68: .4byte gUnknown_02024BE0
-_08034B6C: .4byte gSprites
-_08034B70: .4byte gUnknown_03004340
- thumb_func_end sub_8034AE0
-
- thumb_func_start sub_8034B74
-sub_8034B74: @ 8034B74
- push {r4,r5,lr}
- ldr r5, _08034B90 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08034B94 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _08034B98
- cmp r0, 0x1
- beq _08034BC4
- b _08034BEC
- .align 2, 0
-_08034B90: .4byte gUnknown_02024A60
-_08034B94: .4byte 0x02017810
-_08034B98:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08034BB4
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08034BB4:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08034BEC
-_08034BC4:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08034BEC
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl move_anim_start_t4
- ldr r1, _08034BF4 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034BF8 @ =sub_8033160
- str r1, [r0]
-_08034BEC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08034BF4: .4byte gUnknown_03004330
-_08034BF8: .4byte sub_8033160
- thumb_func_end sub_8034B74
-
- thumb_func_start sub_8034BFC
-sub_8034BFC: @ 8034BFC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r3, _08034C18 @ =gTrainerBattleOpponent
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08034C1C
- bl GetSecretBaseTrainerPicIndex
- b _08034C42
- .align 2, 0
-_08034C18: .4byte gTrainerBattleOpponent
-_08034C1C:
- ldr r0, _08034C30 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08034C34
- bl get_trainer_class_pic_index
- b _08034C42
- .align 2, 0
-_08034C30: .4byte gUnknown_020239F8
-_08034C34:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08034C48
- bl sub_8135FBC
-_08034C42:
- lsls r0, 24
- lsrs r0, 24
- b _08034C56
-_08034C48:
- ldr r2, _08034D88 @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
-_08034C56:
- mov r9, r0
- ldr r0, _08034D8C @ =gUnknown_02024A60
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r5, _08034D90 @ =gUnknown_02024E8C
- ldr r1, _08034D94 @ =gTrainerFrontPicCoords
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- movs r1, 0xB0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _08034D98 @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08034D9C @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08034DA0 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08034DA4 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _08034DA8 @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08034DAC @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08034DB0 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08034DB4 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _08034DB8 @ =gUnknown_03004330
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034DBC @ =sub_8032B4C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034D88: .4byte gTrainers
-_08034D8C: .4byte gUnknown_02024A60
-_08034D90: .4byte gUnknown_02024E8C
-_08034D94: .4byte gTrainerFrontPicCoords
-_08034D98: .4byte gUnknown_02024BE0
-_08034D9C: .4byte gSprites
-_08034DA0: .4byte 0x0000ff10
-_08034DA4: .4byte gTrainerFrontPicPaletteTable
-_08034DA8: .4byte gTrainerFrontPicTable
-_08034DAC: .4byte 0x000003ff
-_08034DB0: .4byte 0xfffffc00
-_08034DB4: .4byte sub_80313A0
-_08034DB8: .4byte gUnknown_03004330
-_08034DBC: .4byte sub_8032B4C
- thumb_func_end sub_8034BFC
-
- thumb_func_start sub_8034DC0
-sub_8034DC0: @ 8034DC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r3, _08034DDC @ =gTrainerBattleOpponent
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08034DE0
- bl GetSecretBaseTrainerPicIndex
- b _08034E06
- .align 2, 0
-_08034DDC: .4byte gTrainerBattleOpponent
-_08034DE0:
- ldr r0, _08034DF4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08034DF8
- bl get_trainer_class_pic_index
- b _08034E06
- .align 2, 0
-_08034DF4: .4byte gUnknown_020239F8
-_08034DF8:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _08034E0C
- bl sub_8135FBC
-_08034E06:
- lsls r0, 24
- lsrs r0, 24
- b _08034E1A
-_08034E0C:
- ldr r2, _08034F4C @ =gTrainers
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x3]
-_08034E1A:
- mov r9, r0
- ldr r0, _08034F50 @ =gUnknown_02024A60
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _08034F54 @ =gUnknown_02024E8C
- ldr r2, _08034F58 @ =gTrainerFrontPicCoords
- mov r3, r9
- lsls r1, r3, 2
- adds r1, r2
- ldrb r1, [r1]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 14
- adds r2, r1
- asrs r2, 16
- movs r1, 0xB0
- movs r3, 0x1E
- bl CreateSprite
- ldr r5, _08034F5C @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08034F60 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x60
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x20]
- adds r1, 0x20
- strh r1, [r0, 0x20]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08034F64 @ =0x0000fffe
- strh r1, [r0, 0x2E]
- ldr r0, _08034F68 @ =gTrainerFrontPicPaletteTable
- mov r3, r9
- lsls r6, r3, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _08034F6C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08034F70 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08034F74 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r3, r8
- ldrb r0, [r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r9
- strh r1, [r0, 0x6]
- ldrb r0, [r3]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08034F78 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _08034F7C @ =gUnknown_03004330
- ldrb r0, [r3]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08034F80 @ =sub_8032B84
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08034F4C: .4byte gTrainers
-_08034F50: .4byte gUnknown_02024A60
-_08034F54: .4byte gUnknown_02024E8C
-_08034F58: .4byte gTrainerFrontPicCoords
-_08034F5C: .4byte gUnknown_02024BE0
-_08034F60: .4byte gSprites
-_08034F64: .4byte 0x0000fffe
-_08034F68: .4byte gTrainerFrontPicPaletteTable
-_08034F6C: .4byte gTrainerFrontPicTable
-_08034F70: .4byte 0x000003ff
-_08034F74: .4byte 0xfffffc00
-_08034F78: .4byte sub_80313A0
-_08034F7C: .4byte gUnknown_03004330
-_08034F80: .4byte sub_8032B84
- thumb_func_end sub_8034DC0
-
- thumb_func_start sub_8034F84
-sub_8034F84: @ 8034F84
- push {r4-r6,lr}
- ldr r6, _08035014 @ =gUnknown_02024BE0
- ldr r4, _08035018 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0803501C @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08035020 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08035024 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _08035028 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803502C @ =sub_8032BBC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035014: .4byte gUnknown_02024BE0
-_08035018: .4byte gUnknown_02024A60
-_0803501C: .4byte gSprites
-_08035020: .4byte sub_8078B34
-_08035024: .4byte SpriteCallbackDummy
-_08035028: .4byte gUnknown_03004330
-_0803502C: .4byte sub_8032BBC
- thumb_func_end sub_8034F84
-
- thumb_func_start sub_8035030
-sub_8035030: @ 8035030
- push {r4,r5,lr}
- ldr r5, _08035074 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08035078 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0803507C
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08035062
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08035062:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _080350B8
- .align 2, 0
-_08035074: .4byte gUnknown_02024A60
-_08035078: .4byte 0x02017810
-_0803507C:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080350B8
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080350C0 @ =gSprites
- ldr r1, _080350C4 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080350C8 @ =sub_8010384
- str r1, [r0]
- ldr r1, _080350CC @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080350D0 @ =sub_803311C
- str r1, [r0]
-_080350B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080350C0: .4byte gSprites
-_080350C4: .4byte gUnknown_02024BE0
-_080350C8: .4byte sub_8010384
-_080350CC: .4byte gUnknown_03004330
-_080350D0: .4byte sub_803311C
- thumb_func_end sub_8035030
-
- thumb_func_start sub_80350D4
-sub_80350D4: @ 80350D4
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350D4
-
- thumb_func_start sub_80350E0
-sub_80350E0: @ 80350E0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350E0
-
- thumb_func_start sub_80350EC
-sub_80350EC: @ 80350EC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350EC
-
- thumb_func_start sub_80350F8
-sub_80350F8: @ 80350F8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80350F8
-
- thumb_func_start sub_8035104
-sub_8035104: @ 8035104
- push {r4-r6,lr}
- ldr r6, _080351E8 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08035116
- b _08035226
-_08035116:
- ldr r0, _080351EC @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _080351F0 @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _080351F4 @ =gUnknown_0202F7BC
- 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, _080351F8 @ =gUnknown_0202F7B8
- 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, _080351FC @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08035200 @ =gUnknown_0202F7C0
- 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, _08035204 @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08035208 @ =gUnknown_02024E70
- 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 _0803520C
- bl sub_80334EC
- b _08035226
- .align 2, 0
-_080351E8: .4byte gUnknown_02024A60
-_080351EC: .4byte gUnknown_02023A60
-_080351F0: .4byte gUnknown_0202F7C4
-_080351F4: .4byte gUnknown_0202F7BC
-_080351F8: .4byte gUnknown_0202F7B8
-_080351FC: .4byte gUnknown_0202F7BE
-_08035200: .4byte gUnknown_0202F7C0
-_08035204: .4byte gUnknown_0202F7B4
-_08035208: .4byte gUnknown_02024E70
-_0803520C:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0803522C @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08035230 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035234 @ =sub_8035238
- str r1, [r0]
-_08035226:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803522C: .4byte 0x02017810
-_08035230: .4byte gUnknown_03004330
-_08035234: .4byte sub_8035238
- thumb_func_end sub_8035104
-
- thumb_func_start sub_8035238
-sub_8035238: @ 8035238
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0803527C @ =gUnknown_02023A60
- ldr r5, _08035280 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08035284 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _080352C6
- cmp r2, 0x1
- bgt _08035288
- cmp r2, 0
- beq _08035292
- b _08035390
- .align 2, 0
-_0803527C: .4byte gUnknown_02023A60
-_08035280: .4byte gUnknown_02024A60
-_08035284: .4byte 0x02017810
-_08035288:
- cmp r2, 0x2
- beq _080352EC
- cmp r2, 0x3
- beq _08035358
- b _08035390
-_08035292:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _080352B6
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_080352B6:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08035390
-_080352C6:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08035390
- 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 _08035390
-_080352EC:
- ldr r0, _08035348 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _0803534C @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08035390
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08035334
- cmp r7, 0x1
- bhi _08035334
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08035334:
- ldr r0, _08035350 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08035354 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08035390
- .align 2, 0
-_08035348: .4byte gUnknown_0202F7AC
-_0803534C: .4byte gUnknown_0202F7B1
-_08035350: .4byte gUnknown_02024A60
-_08035354: .4byte 0x02017810
-_08035358:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08035390
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl sub_80334EC
-_08035390:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8035238
-
- thumb_func_start sub_803539C
-sub_803539C: @ 803539C
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _080353E0 @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _080353E4 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _080353E8 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _080353EC @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _080353F0 @ =gUnknown_03004210
- ldr r1, _080353F4 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _080353F8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080353FC @ =sub_80331D0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080353E0: .4byte gUnknown_030042A4
-_080353E4: .4byte gUnknown_030042A0
-_080353E8: .4byte gUnknown_02024A60
-_080353EC: .4byte gUnknown_02023A62
-_080353F0: .4byte gUnknown_03004210
-_080353F4: .4byte gUnknown_020238CC
-_080353F8: .4byte gUnknown_03004330
-_080353FC: .4byte sub_80331D0
- thumb_func_end sub_803539C
-
- thumb_func_start sub_8035400
-sub_8035400: @ 8035400
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035400
-
- thumb_func_start sub_803540C
-sub_803540C: @ 803540C
- push {lr}
- bl sub_8036B0C
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_803540C
-
- thumb_func_start sub_803541C
-sub_803541C: @ 803541C
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_803541C
-
- thumb_func_start sub_8035428
-sub_8035428: @ 8035428
- push {r4-r6,lr}
- ldr r6, _0803545C @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 9
- ldr r1, _08035460 @ =gUnknown_02023A64
- adds r5, r0, r1
- ldr r0, _08035464 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x93
- lsls r0, 3
- ands r0, r1
- cmp r0, 0
- beq _080354F8
- bl sub_810715C
- bl sub_81072A8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- beq _08035468
- cmp r4, 0x5
- bne _08035474
- movs r0, 0x1
- movs r1, 0x4
- b _0803546C
- .align 2, 0
-_0803545C: .4byte gUnknown_02024A60
-_08035460: .4byte gUnknown_02023A64
-_08035464: .4byte gUnknown_020239F8
-_08035468:
- movs r0, 0x1
- movs r1, 0x3
-_0803546C:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _080354E0
-_08035474:
- ldr r3, _080354E8 @ =gBattleMoves
- lsls r0, r4, 1
- adds r2, r5, r0
- ldrh r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x6]
- movs r0, 0x12
- ands r0, r1
- cmp r0, 0
- beq _08035494
- ldr r1, _080354EC @ =gUnknown_02024C08
- ldrb r0, [r6]
- strb r0, [r1]
-_08035494:
- ldrh r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r1, [r0, 0x6]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080354CE
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r5, _080354EC @ =gUnknown_02024C08
- strb r0, [r5]
- ldr r0, _080354F0 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080354F4 @ =gBitTable
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080354CE
- movs r0, 0x2
- bl battle_get_side_with_given_state
- strb r0, [r5]
-_080354CE:
- ldr r0, _080354EC @ =gUnknown_02024C08
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x1
- movs r1, 0xA
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_080354E0:
- bl sub_80334EC
- b _0803558A
- .align 2, 0
-_080354E8: .4byte gBattleMoves
-_080354EC: .4byte gUnknown_02024C08
-_080354F0: .4byte gUnknown_02024C0C
-_080354F4: .4byte gBitTable
-_080354F8:
- movs r6, 0x3
-_080354FA:
- bl Random
- adds r4, r0, 0
- ands r4, r6
- lsls r0, r4, 1
- adds r0, r5, r0
- ldrh r2, [r0]
- cmp r2, 0
- beq _080354FA
- ldr r1, _08035534 @ =gBattleMoves
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x6]
- movs r0, 0x12
- ands r0, r1
- cmp r0, 0
- beq _0803553C
- ldr r0, _08035538 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- movs r0, 0x1
- movs r1, 0xA
- adds r2, r4, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _08035586
- .align 2, 0
-_08035534: .4byte gBattleMoves
-_08035538: .4byte gUnknown_02024A60
-_0803553C:
- ldr r0, _0803556C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08035570
- bl Random
- movs r1, 0x2
- ands r1, r0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 16
- orrs r2, r4
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- b _08035586
- .align 2, 0
-_0803556C: .4byte gUnknown_020239F8
-_08035570:
- movs r0, 0
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 16
- orrs r2, r4
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
-_08035586:
- bl sub_80334EC
-_0803558A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8035428
-
- thumb_func_start sub_8035590
-sub_8035590: @ 8035590
- push {lr}
- ldr r1, _080355B4 @ =0x02000000
- ldr r0, _080355B8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 1
- ldr r2, _080355BC @ =0x000160d4
- adds r0, r2
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_080355B4: .4byte 0x02000000
-_080355B8: .4byte gUnknown_02024A60
-_080355BC: .4byte 0x000160d4
- thumb_func_end sub_8035590
-
- thumb_func_start sub_80355C0
-sub_80355C0: @ 80355C0
- push {r4-r6,lr}
- ldr r6, _08035604 @ =0x02000000
- ldr r5, _08035608 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _0803560C @ =0x000160c8
- adds r0, r1
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08035664
- bl sub_8036CD4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bne _0803568A
- ldr r0, _08035610 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08035614
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- b _08035628
- .align 2, 0
-_08035604: .4byte 0x02000000
-_08035608: .4byte gUnknown_02024A60
-_0803560C: .4byte 0x000160c8
-_08035610: .4byte gUnknown_020239F8
-_08035614:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
-_08035628:
- movs r4, 0
- b _0803562E
-_0803562C:
- adds r4, 0x1
-_0803562E:
- cmp r4, 0x5
- bgt _0803568A
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0803565C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0803562C
- ldr r1, _08035660 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _0803562C
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _0803562C
- b _0803568A
- .align 2, 0
-_0803565C: .4byte gEnemyParty
-_08035660: .4byte gUnknown_02024A6A
-_08035664:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _080356B0 @ =0x000160c8
- adds r0, r2
- adds r0, r6
- ldrb r4, [r0]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _080356B0 @ =0x000160c8
- adds r0, r1
- adds r0, r6
- movs r1, 0x6
- strb r1, [r0]
-_0803568A:
- ldr r1, _080356B4 @ =0x02000000
- ldr r0, _080356B8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- ldr r2, _080356BC @ =0x00016068
- adds r0, r2
- adds r0, r1
- strb r4, [r0]
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x22_a_three_bytes
- bl sub_80334EC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080356B0: .4byte 0x000160c8
-_080356B4: .4byte 0x02000000
-_080356B8: .4byte gUnknown_02024A60
-_080356BC: .4byte 0x00016068
- thumb_func_end sub_80355C0
-
- thumb_func_start sub_80356C0
-sub_80356C0: @ 80356C0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80356C0
-
- thumb_func_start sub_80356CC
-sub_80356CC: @ 80356CC
- 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, _08035744 @ =gUnknown_02023A60
- ldr r0, _08035748 @ =gUnknown_02024A60
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x3
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r1, 8
- adds r3, 0x2
- adds r2, r3
- ldrb r0, [r2]
- orrs r0, r1
- lsls r0, 16
- asrs r7, r0, 16
- ldr r0, _0803574C @ =0x00007fff
- cmp r7, r0
- beq _0803575C
- ldr r6, _08035750 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08035754 @ =gEnemyParty
- 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, _08035758 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08035786
- .align 2, 0
-_08035744: .4byte gUnknown_02023A60
-_08035748: .4byte gUnknown_02024A60
-_0803574C: .4byte 0x00007fff
-_08035750: .4byte gUnknown_02024A6A
-_08035754: .4byte gEnemyParty
-_08035758: .4byte gUnknown_03004340
-_0803575C:
- ldr r1, _080357A4 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _080357A8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _080357AC @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08035786:
- ldr r1, _080357B0 @ =gUnknown_03004330
- ldr r0, _080357B4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080357B8 @ =sub_80330C8
- 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
-_080357A4: .4byte gUnknown_02024A6A
-_080357A8: .4byte gEnemyParty
-_080357AC: .4byte gUnknown_03004340
-_080357B0: .4byte gUnknown_03004330
-_080357B4: .4byte gUnknown_02024A60
-_080357B8: .4byte sub_80330C8
- thumb_func_end sub_80356CC
-
- thumb_func_start sub_80357BC
-sub_80357BC: @ 80357BC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80357BC
-
- thumb_func_start sub_80357C8
-sub_80357C8: @ 80357C8
- push {r4,lr}
- ldr r4, _08035820 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08035818
- ldr r0, _08035824 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08035828 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0803582C @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08035830 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08035834 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035838 @ =sub_8033494
- str r1, [r0]
-_08035818:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035820: .4byte gUnknown_02024A60
-_08035824: .4byte gUnknown_03004340
-_08035828: .4byte gUnknown_02024A6A
-_0803582C: .4byte gEnemyParty
-_08035830: .4byte 0x02017810
-_08035834: .4byte gUnknown_03004330
-_08035838: .4byte sub_8033494
- thumb_func_end sub_80357C8
-
- thumb_func_start sub_803583C
-sub_803583C: @ 803583C
- push {r4,r5,lr}
- ldr r5, _08035894 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0803588C
- ldr r4, _08035898 @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _0803589C @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080358A0 @ =sub_8033494
- str r1, [r0]
-_0803588C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08035894: .4byte gUnknown_02024A60
-_08035898: .4byte gUnknown_02023A60
-_0803589C: .4byte gUnknown_03004330
-_080358A0: .4byte sub_8033494
- thumb_func_end sub_803583C
-
- thumb_func_start sub_80358A4
-sub_80358A4: @ 80358A4
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358A4
-
- thumb_func_start sub_80358B0
-sub_80358B0: @ 80358B0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358B0
-
- thumb_func_start sub_80358BC
-sub_80358BC: @ 80358BC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358BC
-
- thumb_func_start sub_80358C8
-sub_80358C8: @ 80358C8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358C8
-
- thumb_func_start sub_80358D4
-sub_80358D4: @ 80358D4
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358D4
-
- thumb_func_start sub_80358E0
-sub_80358E0: @ 80358E0
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358E0
-
- thumb_func_start sub_80358EC
-sub_80358EC: @ 80358EC
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358EC
-
- thumb_func_start sub_80358F8
-sub_80358F8: @ 80358F8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_80358F8
-
- thumb_func_start sub_8035904
-sub_8035904: @ 8035904
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035904
-
- thumb_func_start sub_8035910
-sub_8035910: @ 8035910
- push {lr}
- ldr r2, _08035928 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035928: .4byte gUnknown_020238C8
- thumb_func_end sub_8035910
-
- thumb_func_start sub_803592C
-sub_803592C: @ 803592C
- push {lr}
- ldr r3, _08035958 @ =gUnknown_020238C8
- ldr r1, _0803595C @ =gUnknown_02023A60
- ldr r0, _08035960 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035958: .4byte gUnknown_020238C8
-_0803595C: .4byte gUnknown_02023A60
-_08035960: .4byte gUnknown_02024A60
- thumb_func_end sub_803592C
-
- thumb_func_start sub_8035964
-sub_8035964: @ 8035964
- push {lr}
- ldr r2, _08035978 @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035978: .4byte gUnknown_020238C8
- thumb_func_end sub_8035964
-
- thumb_func_start sub_803597C
-sub_803597C: @ 803597C
- push {lr}
- ldr r3, _080359A0 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_080359A0: .4byte gUnknown_020238C8
- thumb_func_end sub_803597C
-
- thumb_func_start dp01t_29_7_blink
-dp01t_29_7_blink: @ 80359A4
- push {r4,lr}
- ldr r3, _080359CC @ =gSprites
- ldr r2, _080359D0 @ =gUnknown_02024BE0
- ldr r4, _080359D4 @ =gUnknown_02024A60
- 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 _080359D8
- bl sub_80334EC
- b _08035A02
- .align 2, 0
-_080359CC: .4byte gSprites
-_080359D0: .4byte gUnknown_02024BE0
-_080359D4: .4byte gUnknown_02024A60
-_080359D8:
- ldr r1, _08035A08 @ =gUnknown_02024E6D
- 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, _08035A0C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035A10 @ =bx_blink_t7
- str r1, [r0]
-_08035A02:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035A08: .4byte gUnknown_02024E6D
-_08035A0C: .4byte gUnknown_03004330
-_08035A10: .4byte bx_blink_t7
- thumb_func_end dp01t_29_7_blink
-
- thumb_func_start sub_8035A14
-sub_8035A14: @ 8035A14
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035A14
-
- thumb_func_start sub_8035A20
-sub_8035A20: @ 8035A20
- push {r4,lr}
- ldr r4, _08035A5C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _08035A34
- movs r3, 0xC0
-_08035A34:
- ldr r2, _08035A60 @ =gUnknown_02023A60
- 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 sub_80334EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035A5C: .4byte gUnknown_02024A60
-_08035A60: .4byte gUnknown_02023A60
- thumb_func_end sub_8035A20
-
- thumb_func_start sub_8035A64
-sub_8035A64: @ 8035A64
- push {lr}
- ldr r2, _08035A8C @ =gUnknown_02023A60
- ldr r0, _08035A90 @ =gUnknown_02024A60
- 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 sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035A8C: .4byte gUnknown_02023A60
-_08035A90: .4byte gUnknown_02024A60
- thumb_func_end sub_8035A64
-
- thumb_func_start sub_8035A94
-sub_8035A94: @ 8035A94
- push {lr}
- ldr r1, _08035AC4 @ =gUnknown_02024A6A
- ldr r0, _08035AC8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08035ACC @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035AC4: .4byte gUnknown_02024A6A
-_08035AC8: .4byte gUnknown_02024A60
-_08035ACC: .4byte gEnemyParty
- thumb_func_end sub_8035A94
-
- thumb_func_start dp01t_2E_7_battle_intro
-dp01t_2E_7_battle_intro: @ 8035AD0
- push {lr}
- ldr r1, _08035AF8 @ =gUnknown_02023A60
- ldr r0, _08035AFC @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08035B00 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035AF8: .4byte gUnknown_02023A60
-_08035AFC: .4byte gUnknown_02024A60
-_08035B00: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_7_battle_intro
-
- thumb_func_start sub_8035B04
-sub_8035B04: @ 8035B04
- push {r4-r6,lr}
- ldr r5, _08035BE0 @ =gUnknown_02024BE0
- ldr r6, _08035BE4 @ =gUnknown_02024A60
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08035BE8 @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08035BEC @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08035BF0 @ =sub_8035C10
- bl oamt_set_x3A_32
- ldr r0, _08035BF4 @ =sub_8035C44
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08035BF8 @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _08035BFC @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08035BC2
- ldr r0, _08035C00 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08035C04 @ =sub_8044CA0
- str r1, [r0]
-_08035BC2:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08035C08 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035C0C @ =nullsub_45
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035BE0: .4byte gUnknown_02024BE0
-_08035BE4: .4byte gUnknown_02024A60
-_08035BE8: .4byte gSprites
-_08035BEC: .4byte sub_8078B34
-_08035BF0: .4byte sub_8035C10
-_08035BF4: .4byte sub_8035C44
-_08035BF8: .4byte gTasks
-_08035BFC: .4byte 0x02017810
-_08035C00: .4byte gUnknown_02024E68
-_08035C04: .4byte sub_8044CA0
-_08035C08: .4byte gUnknown_03004330
-_08035C0C: .4byte nullsub_45
- thumb_func_end sub_8035B04
-
- thumb_func_start sub_8035C10
-sub_8035C10: @ 8035C10
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_8031B74
- ldrh r0, [r4, 0x38]
- ldr r1, _08035C3C @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _08035C40 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035C3C: .4byte 0x000003ff
-_08035C40: .4byte 0xfffffc00
- thumb_func_end sub_8035C10
-
- thumb_func_start sub_8035C44
-sub_8035C44: @ 8035C44
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _08035C9C @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _08035CA0 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08035C7E
- ldr r0, _08035CA4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08035CB0
-_08035C7E:
- ldr r0, _08035CA8 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08035CAC @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_803495C
- b _08035CF0
- .align 2, 0
-_08035C9C: .4byte gUnknown_02024A60
-_08035CA0: .4byte gTasks
-_08035CA4: .4byte gUnknown_020239F8
-_08035CA8: .4byte gUnknown_02023A60
-_08035CAC: .4byte gUnknown_02024A6A
-_08035CB0:
- ldr r4, _08035D14 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _08035D18 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_803495C
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_803495C
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_08035CF0:
- ldr r1, _08035D1C @ =gUnknown_03004330
- ldr r2, _08035D20 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08035D24 @ =sub_8032E2C
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08035D14: .4byte gUnknown_02023A60
-_08035D18: .4byte gUnknown_02024A6A
-_08035D1C: .4byte gUnknown_03004330
-_08035D20: .4byte gUnknown_02024A60
-_08035D24: .4byte sub_8032E2C
- thumb_func_end sub_8035C44
-
- thumb_func_start dp01t_30_7_0803D67C
-dp01t_30_7_0803D67C: @ 8035D28
- push {r4-r6,lr}
- ldr r1, _08035D50 @ =gUnknown_02023A60
- ldr r0, _08035D54 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08035D58
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08035D58
- bl sub_80334EC
- b _08035E12
- .align 2, 0
-_08035D50: .4byte gUnknown_02023A60
-_08035D54: .4byte gUnknown_02024A60
-_08035D58:
- ldr r3, _08035DA8 @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _08035DAC @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _08035DB0 @ =gUnknown_02023A60
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- cmp r0, 0
- beq _08035DBC
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _08035DB4
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _08035E12
- .align 2, 0
-_08035DA8: .4byte gUnknown_02024A60
-_08035DAC: .4byte 0x02017810
-_08035DB0: .4byte gUnknown_02023A60
-_08035DB4:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_08035DBC:
- adds r5, r6, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _08035E18 @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _08035E1C @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08035E20 @ =0x02017810
- adds r0, r3
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08035E06
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_08035E06:
- ldr r0, _08035E24 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08035E28 @ =sub_8035E2C
- str r0, [r1]
-_08035E12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035E18: .4byte gUnknown_02023A64
-_08035E1C: .4byte gUnknown_02024E68
-_08035E20: .4byte 0x02017810
-_08035E24: .4byte gUnknown_03004330
-_08035E28: .4byte sub_8035E2C
- thumb_func_end dp01t_30_7_0803D67C
-
- thumb_func_start sub_8035E2C
-sub_8035E2C: @ 8035E2C
- push {r4,lr}
- ldr r4, _08035E64 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08035E68 @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08035E5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl sub_80334EC
-_08035E5C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035E64: .4byte gUnknown_02024A60
-_08035E68: .4byte 0x02017810
- thumb_func_end sub_8035E2C
-
- thumb_func_start sub_8035E6C
-sub_8035E6C: @ 8035E6C
- push {lr}
- ldr r0, _08035EA4 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _08035EA8 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08035E9A
- ldr r2, _08035EAC @ =gTasks
- ldr r0, _08035EB0 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08035EB4 @ =sub_8044CA0
- str r1, [r0]
-_08035E9A:
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035EA4: .4byte gUnknown_02024A60
-_08035EA8: .4byte 0x02017810
-_08035EAC: .4byte gTasks
-_08035EB0: .4byte gUnknown_02024E68
-_08035EB4: .4byte sub_8044CA0
- thumb_func_end sub_8035E6C
-
- thumb_func_start sub_8035EB8
-sub_8035EB8: @ 8035EB8
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035EB8
-
- thumb_func_start sub_8035EC4
-sub_8035EC4: @ 8035EC4
- push {r4,lr}
- ldr r4, _08035F14 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _08035F0A
- ldr r3, _08035F18 @ =gSprites
- ldr r0, _08035F1C @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _08035F20 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_08035F0A:
- bl sub_80334EC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08035F14: .4byte gUnknown_02024A60
-_08035F18: .4byte gSprites
-_08035F1C: .4byte gUnknown_02024BE0
-_08035F20: .4byte gUnknown_02023A60
- thumb_func_end sub_8035EC4
-
- thumb_func_start dp01t_34_7_move_anim_start_t3
-dp01t_34_7_move_anim_start_t3: @ 8035F24
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08035F68 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08035F7C
- ldr r5, _08035F6C @ =gUnknown_02023A60
- 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 _08035F70
- bl sub_80334EC
- b _08035F7C
- .align 2, 0
-_08035F68: .4byte gUnknown_02024A60
-_08035F6C: .4byte gUnknown_02023A60
-_08035F70:
- ldr r0, _08035F84 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08035F88 @ =sub_80334C0
- str r0, [r1]
-_08035F7C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08035F84: .4byte gUnknown_03004330
-_08035F88: .4byte sub_80334C0
- thumb_func_end dp01t_34_7_move_anim_start_t3
-
- thumb_func_start sub_8035F8C
-sub_8035F8C: @ 8035F8C
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035F8C
-
- thumb_func_start sub_8035F98
-sub_8035F98: @ 8035F98
- push {lr}
- bl sub_80334EC
- pop {r0}
- bx r0
- thumb_func_end sub_8035F98
-
- thumb_func_start sub_8035FA4
-sub_8035FA4: @ 8035FA4
- push {lr}
- ldr r0, _08035FD8 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _08035FCE
- ldr r2, _08035FDC @ =gMain
- ldr r0, _08035FE0 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08035FE4 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08035FCE:
- bl sub_80334EC
- pop {r0}
- bx r0
- .align 2, 0
-_08035FD8: .4byte gUnknown_020239F8
-_08035FDC: .4byte gMain
-_08035FE0: .4byte 0x0000043d
-_08035FE4: .4byte gUnknown_030042D0
- thumb_func_end sub_8035FA4
-
- thumb_func_start nullsub_46
-nullsub_46: @ 8035FE8
- bx lr
- thumb_func_end nullsub_46
-
- thumb_func_start ai_switch_perish_song
-ai_switch_perish_song: @ 8035FEC
- push {lr}
- ldr r1, _08036038 @ =gUnknown_02024C98
- ldr r0, _0803603C @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0803604C
- ldr r0, _08036040 @ =gUnknown_02024CA8
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0xF]
- lsls r0, 28
- cmp r0, 0
- bne _0803604C
- adds r0, r2, 0
- bl battle_get_per_side_status
- ldr r1, _08036044 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036048 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _0803604E
- .align 2, 0
-_08036038: .4byte gUnknown_02024C98
-_0803603C: .4byte gUnknown_02024A60
-_08036040: .4byte gUnknown_02024CA8
-_08036044: .4byte 0x02000000
-_08036048: .4byte 0x000160c8
-_0803604C:
- movs r0, 0
-_0803604E:
- pop {r1}
- bx r1
- thumb_func_end ai_switch_perish_song
-
- thumb_func_start sub_8036054
-sub_8036054: @ 8036054
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0803606C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080360A0
- b _080361C8
- .align 2, 0
-_0803606C: .4byte gUnknown_020239F8
-_08036070:
- ldr r0, _08036094 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036098 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _0803609C @ =0x000160c8
- adds r0, r2
- adds r0, r1
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _080361CA
- .align 2, 0
-_08036094: .4byte gUnknown_02024A60
-_08036098: .4byte 0x02000000
-_0803609C: .4byte 0x000160c8
-_080360A0:
- ldr r4, _080361D8 @ =gBattleMons
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x58
- muls r0, r1
- adds r0, r4
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x19
- beq _080360BC
- b _080361C8
-_080360BC:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r2, r0, 24
- movs r6, 0
- adds r7, r4, 0
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r4, r0, r7
- movs r3, 0x20
- adds r3, r4
- mov r8, r3
-_080360D8:
- lsls r1, r6, 1
- ldr r0, _080361DC @ =gUnknown_02024A60
- ldrb r0, [r0]
- muls r0, r5
- adds r1, r0
- adds r0, r7, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08036104
- ldrh r1, [r4]
- mov r3, r8
- ldrb r2, [r3]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- bne _080361C8
-_08036104:
- adds r6, 0x1
- cmp r6, 0x3
- ble _080360D8
- movs r6, 0
- ldr r0, _080361E0 @ =gEnemyParty
- mov r9, r0
-_08036110:
- movs r0, 0x64
- adds r5, r6, 0
- muls r5, r0
- mov r2, r9
- adds r4, r5, r2
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080361C2
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080361C2
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080361C2
- ldr r1, _080361E4 @ =gUnknown_02024A6A
- ldr r0, _080361DC @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080361C2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r2, r0, 24
- movs r4, 0
- mov r8, r5
- ldr r1, _080361D8 @ =gBattleMons
- movs r0, 0x58
- muls r0, r2
- adds r5, r0, r1
- adds r7, r5, 0
- adds r7, 0x20
-_0803617C:
- adds r1, r4, 0
- adds r1, 0xD
- mov r0, r8
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080361BC
- ldrh r1, [r5]
- ldrb r2, [r7]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _080361BC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080361BC
- b _08036070
-_080361BC:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803617C
-_080361C2:
- adds r6, 0x1
- cmp r6, 0x5
- ble _08036110
-_080361C8:
- movs r0, 0
-_080361CA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080361D8: .4byte gBattleMons
-_080361DC: .4byte gUnknown_02024A60
-_080361E0: .4byte gEnemyParty
-_080361E4: .4byte gUnknown_02024A6A
- thumb_func_end sub_8036054
-
- thumb_func_start sub_80361E8
-sub_80361E8: @ 80361E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0x1
- bl ai_has_super_effective_move_on_field
- lsls r0, 24
- cmp r0, 0
- beq _08036214
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08036214
- b _08036400
-_08036214:
- ldr r1, _0803627C @ =gUnknown_02024C3C
- ldr r5, _08036280 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r0, r3, 1
- adds r4, r0, r1
- ldrh r1, [r4]
- cmp r1, 0
- bne _08036226
- b _08036400
-_08036226:
- ldr r0, _08036284 @ =0x0000ffff
- cmp r1, r0
- bne _0803622E
- b _08036400
-_0803622E:
- ldr r2, _08036288 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _08036242
- b _08036400
-_08036242:
- ldr r0, _0803628C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080362AE
- mov r8, r3
- mov r0, r8
- bl battle_get_per_side_status
- movs r4, 0x2
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _08036290 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _08036294 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036298
- ldrb r7, [r5]
- b _080362B2
- .align 2, 0
-_0803627C: .4byte gUnknown_02024C3C
-_08036280: .4byte gUnknown_02024A60
-_08036284: .4byte 0x0000ffff
-_08036288: .4byte gBattleMoves
-_0803628C: .4byte gUnknown_020239F8
-_08036290: .4byte gUnknown_02024C0C
-_08036294: .4byte gBitTable
-_08036298:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r7, r0, 24
- b _080362B2
-_080362AE:
- adds r7, r3, 0
- mov r8, r7
-_080362B2:
- ldr r3, _080362D4 @ =gBattleMoves
- ldr r1, _080362D8 @ =gUnknown_02024C3C
- ldr r2, _080362DC @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x2]
- adds r1, r2, 0
- cmp r0, 0xA
- bne _080362E0
- movs r0, 0x12
- b _080362F2
- .align 2, 0
-_080362D4: .4byte gBattleMoves
-_080362D8: .4byte gUnknown_02024C3C
-_080362DC: .4byte gUnknown_02024A60
-_080362E0:
- cmp r0, 0xB
- bne _080362EA
- movs r2, 0xB
- mov r10, r2
- b _080362F4
-_080362EA:
- cmp r0, 0xD
- beq _080362F0
- b _08036400
-_080362F0:
- movs r0, 0xA
-_080362F2:
- mov r10, r0
-_080362F4:
- ldr r2, _08036308 @ =gBattleMons
- ldrb r1, [r1]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, r10
- bne _0803633C
- b _08036400
- .align 2, 0
-_08036308: .4byte gBattleMons
-_0803630C:
- ldr r0, _08036330 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036334 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036338 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _08036402
- .align 2, 0
-_08036330: .4byte gUnknown_02024A60
-_08036334: .4byte 0x02000000
-_08036338: .4byte 0x000160c8
-_0803633C:
- movs r6, 0
- ldr r0, _080363CC @ =gBaseStats
- mov r9, r0
-_08036342:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _080363D0 @ =gEnemyParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080363FA
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080363FA
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080363FA
- ldr r1, _080363D4 @ =gUnknown_02024A6A
- mov r2, r8
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080363FA
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080363FA
- ldr r1, _080363D8 @ =0x02000000
- ldr r0, _080363DC @ =0x00016068
- add r0, r8
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080363FA
- ldr r2, _080363DC @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080363FA
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _080363E0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x17]
- b _080363EA
- .align 2, 0
-_080363CC: .4byte gBaseStats
-_080363D0: .4byte gEnemyParty
-_080363D4: .4byte gUnknown_02024A6A
-_080363D8: .4byte 0x02000000
-_080363DC: .4byte 0x00016068
-_080363E0:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x16]
-_080363EA:
- cmp r10, r0
- bne _080363FA
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _0803630C
-_080363FA:
- adds r6, 0x1
- cmp r6, 0x5
- ble _08036342
-_08036400:
- movs r0, 0
-_08036402:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80361E8
-
- thumb_func_start ai_switchout_natural_cure
-ai_switchout_natural_cure: @ 8036410
- push {r4,r5,lr}
- ldr r3, _08036468 @ =gBattleMons
- ldr r5, _0803646C @ =gUnknown_02024A60
- ldrb r4, [r5]
- movs r0, 0x58
- adds r2, r4, 0
- muls r2, r0
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r2, r0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _080364D8
- adds r1, r2, r3
- adds r0, r1, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1E
- bne _080364D8
- ldrh r0, [r1, 0x2C]
- ldrh r1, [r1, 0x28]
- lsrs r0, 1
- cmp r1, r0
- bcc _080364D8
- ldr r1, _08036470 @ =gUnknown_02024C3C
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _08036456
- ldr r0, _08036474 @ =0x0000ffff
- cmp r1, r0
- bne _08036478
-_08036456:
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08036478
- ldrb r0, [r5]
- b _080364E0
- .align 2, 0
-_08036468: .4byte gBattleMons
-_0803646C: .4byte gUnknown_02024A60
-_08036470: .4byte gUnknown_02024C3C
-_08036474: .4byte 0x0000ffff
-_08036478:
- ldr r2, _080364A4 @ =gBattleMoves
- ldr r1, _080364A8 @ =gUnknown_02024C3C
- ldr r4, _080364AC @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080364B0
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- beq _080364B0
- ldrb r0, [r4]
- b _080364E0
- .align 2, 0
-_080364A4: .4byte gBattleMoves
-_080364A8: .4byte gUnknown_02024C3C
-_080364AC: .4byte gUnknown_02024A60
-_080364B0:
- movs r0, 0x8
- movs r1, 0x1
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- bne _080364FE
- movs r0, 0x4
- movs r1, 0x1
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- bne _080364FE
- bl Random
- movs r1, 0x1
- ands r1, r0
- cmp r1, 0
- bne _080364DC
-_080364D8:
- movs r0, 0
- b _08036500
-_080364DC:
- ldr r0, _08036508 @ =gUnknown_02024A60
- ldrb r0, [r0]
-_080364E0:
- bl battle_get_per_side_status
- ldr r1, _0803650C @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036510 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- movs r1, 0x6
- strb r1, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_080364FE:
- movs r0, 0x1
-_08036500:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08036508: .4byte gUnknown_02024A60
-_0803650C: .4byte 0x02000000
-_08036510: .4byte 0x000160c8
- thumb_func_end ai_switchout_natural_cure
-
- thumb_func_start ai_has_super_effective_move_on_field
-ai_has_super_effective_move_on_field: @ 8036514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _080365AC @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _080365B0 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803659C
- movs r4, 0
- ldr r6, _080365B4 @ =gBattleMons
- movs r7, 0x58
- adds r0, r3, 0
- muls r0, r7
- adds r5, r0, r6
- movs r0, 0x20
- adds r0, r5
- mov r9, r0
-_08036550:
- lsls r1, r4, 1
- ldr r0, _080365B8 @ =gUnknown_02024A60
- ldrb r0, [r0]
- muls r0, r7
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08036596
- ldrh r1, [r5]
- mov r3, r9
- ldrb r2, [r3]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _08036596
- mov r0, r8
- cmp r0, 0
- bne _080365C0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080365C0
-_08036596:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08036550
-_0803659C:
- ldr r0, _080365BC @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080365C4
- b _0803663E
- .align 2, 0
-_080365AC: .4byte gUnknown_02024C0C
-_080365B0: .4byte gBitTable
-_080365B4: .4byte gBattleMons
-_080365B8: .4byte gUnknown_02024A60
-_080365BC: .4byte gUnknown_020239F8
-_080365C0:
- movs r0, 0x1
- b _08036640
-_080365C4:
- movs r0, 0x2
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0803664C @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08036650 @ =gBitTable
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0803663E
- movs r4, 0
- ldr r6, _08036654 @ =gBattleMons
- movs r7, 0x58
- adds r0, r3, 0
- muls r0, r7
- adds r5, r0, r6
- movs r3, 0x20
- adds r3, r5
- mov r9, r3
-_080365F2:
- lsls r1, r4, 1
- ldr r0, _08036658 @ =gUnknown_02024A60
- ldrb r0, [r0]
- muls r0, r7
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0xC
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08036638
- ldrh r1, [r5]
- mov r3, r9
- ldrb r2, [r3]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _08036638
- mov r0, r8
- cmp r0, 0
- bne _080365C0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _080365C0
-_08036638:
- adds r4, 0x1
- cmp r4, 0x3
- ble _080365F2
-_0803663E:
- movs r0, 0
-_08036640:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0803664C: .4byte gUnknown_02024C0C
-_08036650: .4byte gBitTable
-_08036654: .4byte gBattleMons
-_08036658: .4byte gUnknown_02024A60
- thumb_func_end ai_has_super_effective_move_on_field
-
- thumb_func_start ai_is_too_invested_in_stat_buffs
-ai_is_too_invested_in_stat_buffs: @ 803665C
- push {r4,lr}
- movs r4, 0
- ldr r1, _0803669C @ =gBattleMons
- ldr r0, _080366A0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, 0x18
- adds r2, r0, r1
- movs r3, 0x7
-_08036670:
- ldrb r1, [r2]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0x6
- ble _08036686
- subs r1, 0x6
- lsls r0, r4, 24
- asrs r0, 24
- adds r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
-_08036686:
- adds r2, 0x1
- subs r3, 0x1
- cmp r3, 0
- bge _08036670
- movs r0, 0
- cmp r4, 0x3
- bls _08036696
- movs r0, 0x1
-_08036696:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0803669C: .4byte gBattleMons
-_080366A0: .4byte gUnknown_02024A60
- thumb_func_end ai_is_too_invested_in_stat_buffs
-
- thumb_func_start sub_80366A4
-sub_80366A4: @ 80366A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- ldr r1, _08036730 @ =gUnknown_02024C3C
- ldr r5, _08036734 @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r0, r3, 1
- adds r4, r0, r1
- ldrh r1, [r4]
- cmp r1, 0
- bne _080366CE
- b _080368D8
-_080366CE:
- ldr r0, _08036738 @ =0x0000ffff
- cmp r1, r0
- bne _080366D6
- b _080368D8
-_080366D6:
- ldr r0, _0803673C @ =gUnknown_02024C5C
- adds r0, r3, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080366E2
- b _080368D8
-_080366E2:
- ldr r2, _08036740 @ =gBattleMoves
- ldrh r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- bne _080366F6
- b _080368D8
-_080366F6:
- ldr r0, _08036744 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08036798
- mov r9, r3
- mov r0, r9
- bl battle_get_per_side_status
- movs r4, 0x2
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _08036748 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _0803674C @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036750
- ldrb r5, [r5]
- mov r10, r5
- b _0803679C
- .align 2, 0
-_08036730: .4byte gUnknown_02024C3C
-_08036734: .4byte gUnknown_02024A60
-_08036738: .4byte 0x0000ffff
-_0803673C: .4byte gUnknown_02024C5C
-_08036740: .4byte gBattleMoves
-_08036744: .4byte gUnknown_020239F8
-_08036748: .4byte gUnknown_02024C0C
-_0803674C: .4byte gBitTable
-_08036750:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- eors r0, r4
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- b _0803679C
-_08036768:
- ldr r0, _0803678C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036790 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r2, _08036794 @ =0x000160c8
- adds r0, r2
- adds r0, r1
- strb r6, [r0]
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- movs r0, 0x1
- b _080368DA
- .align 2, 0
-_0803678C: .4byte gUnknown_02024A60
-_08036790: .4byte 0x02000000
-_08036794: .4byte 0x000160c8
-_08036798:
- mov r9, r3
- mov r10, r9
-_0803679C:
- movs r6, 0
-_0803679E:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08036830 @ =gEnemyParty
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080367B6
- b _080368D0
-_080367B6:
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- bne _080367C4
- b _080368D0
-_080367C4:
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080368D0
- ldr r1, _08036834 @ =gUnknown_02024A6A
- mov r2, r9
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080368D0
- mov r2, r10
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r6, r0
- beq _080368D0
- ldr r1, _08036838 @ =0x02000000
- ldr r0, _0803683C @ =0x00016068
- add r0, r9
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080368D0
- ldr r0, _0803683C @ =0x00016068
- add r0, r10
- adds r0, r1
- ldrb r0, [r0]
- cmp r6, r0
- beq _080368D0
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r5, 0
- movs r1, 0x2E
- bl GetMonData
- cmp r0, 0
- beq _08036844
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _08036840 @ =gBaseStats
- adds r0, r1
- ldrb r2, [r0, 0x17]
- b _08036850
- .align 2, 0
-_08036830: .4byte gEnemyParty
-_08036834: .4byte gUnknown_02024A6A
-_08036838: .4byte 0x02000000
-_0803683C: .4byte 0x00016068
-_08036840: .4byte gBaseStats
-_08036844:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r2, _080368EC @ =gBaseStats
- adds r0, r2
- ldrb r2, [r0, 0x16]
-_08036850:
- ldr r1, _080368F0 @ =gUnknown_02024C3C
- ldr r5, _080368F4 @ =gUnknown_02024A60
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- adds r1, r4, 0
- bl ai_rate_move
- ldr r1, [sp]
- ands r1, r0
- cmp r1, 0
- beq _080368D0
- ldr r1, _080368F8 @ =gUnknown_02024C5C
- ldrb r0, [r5]
- adds r0, r1
- ldrb r0, [r0]
- mov r9, r0
- movs r4, 0
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- mov r8, r1
- ldr r1, _080368FC @ =gBattleMons
- movs r0, 0x58
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- adds r5, r0, r1
- adds r7, r5, 0
- adds r7, 0x20
-_0803688E:
- ldr r0, _08036900 @ =gEnemyParty
- adds r1, r4, 0
- adds r1, 0xD
- add r0, r8
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _080368CA
- ldrh r1, [r5]
- ldrb r2, [r7]
- bl ai_rate_move
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0x2
- ands r1, r0
- cmp r1, 0
- beq _080368CA
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldr r1, [sp, 0x4]
- bl __modsi3
- cmp r0, 0
- bne _080368CA
- b _08036768
-_080368CA:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0803688E
-_080368D0:
- adds r6, 0x1
- cmp r6, 0x5
- bgt _080368D8
- b _0803679E
-_080368D8:
- movs r0, 0
-_080368DA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080368EC: .4byte gBaseStats
-_080368F0: .4byte gUnknown_02024C3C
-_080368F4: .4byte gUnknown_02024A60
-_080368F8: .4byte gUnknown_02024C5C
-_080368FC: .4byte gBattleMons
-_08036900: .4byte gEnemyParty
- thumb_func_end sub_80366A4
-
- thumb_func_start sub_8036904
-sub_8036904: @ 8036904
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r6, _080369E0 @ =gBattleMons
- ldr r4, _080369E4 @ =gUnknown_02024A60
- ldrb r2, [r4]
- movs r5, 0x58
- adds r0, r2, 0
- muls r0, r5
- adds r1, r6, 0
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _080369E8 @ =0x0400e000
- ands r0, r1
- cmp r0, 0
- beq _0803692A
- b _08036AFC
-_0803692A:
- ldr r0, _080369EC @ =gUnknown_02024C98
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- movs r0, 0x80
- lsls r0, 3
- ands r1, r0
- cmp r1, 0
- beq _0803693E
- b _08036AFC
-_0803693E:
- str r1, [sp]
- movs r0, 0xC
- adds r1, r2, 0
- movs r2, 0x17
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08036956
- b _08036AFC
-_08036956:
- ldrb r1, [r4]
- str r0, [sp]
- movs r0, 0xC
- movs r2, 0x47
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0803696E
- b _08036AFC
-_0803696E:
- str r0, [sp]
- movs r0, 0xE
- movs r1, 0
- movs r2, 0x2A
- movs r3, 0
- bl sub_8018324
- lsls r0, 24
- cmp r0, 0
- beq _080369A0
- ldrb r0, [r4]
- muls r0, r5
- adds r1, r0, r6
- adds r0, r1, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _08036994
- b _08036AFC
-_08036994:
- adds r0, r1, 0
- adds r0, 0x22
- ldrb r0, [r0]
- cmp r0, 0x8
- bne _080369A0
- b _08036AFC
-_080369A0:
- movs r0, 0
- mov r8, r0
- ldr r0, _080369F0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08036A12
- ldr r4, _080369E4 @ =gUnknown_02024A60
- ldrb r7, [r4]
- adds r0, r7, 0
- bl battle_get_per_side_status
- movs r5, 0x2
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _080369F4 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _080369F8 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _080369FC
- ldrb r6, [r4]
- b _08036A18
- .align 2, 0
-_080369E0: .4byte gBattleMons
-_080369E4: .4byte gUnknown_02024A60
-_080369E8: .4byte 0x0400e000
-_080369EC: .4byte gUnknown_02024C98
-_080369F0: .4byte gUnknown_020239F8
-_080369F4: .4byte gUnknown_02024C0C
-_080369F8: .4byte gBitTable
-_080369FC:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- b _08036A18
-_08036A12:
- ldr r0, _08036AE8 @ =gUnknown_02024A60
- ldrb r6, [r0]
- adds r7, r6, 0
-_08036A18:
- movs r5, 0
-_08036A1A:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08036AEC @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036A7E
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08036A7E
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08036A7E
- ldr r1, _08036AF0 @ =gUnknown_02024A6A
- lsls r0, r7, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _08036A7E
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r5, r0
- beq _08036A7E
- ldr r1, _08036AF4 @ =0x02000000
- ldr r2, _08036AF8 @ =0x00016068
- adds r0, r7, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _08036A7E
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r5, r0
- beq _08036A7E
- movs r0, 0x1
- add r8, r0
-_08036A7E:
- adds r5, 0x1
- cmp r5, 0x5
- ble _08036A1A
- mov r2, r8
- cmp r2, 0
- beq _08036AFC
- bl ai_switch_perish_song
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- bl sub_8036054
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- bl sub_80361E8
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- bl ai_switchout_natural_cure
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- movs r0, 0
- bl ai_has_super_effective_move_on_field
- lsls r0, 24
- cmp r0, 0
- bne _08036AFC
- bl ai_is_too_invested_in_stat_buffs
- lsls r0, 24
- cmp r0, 0
- bne _08036AFC
- movs r0, 0x8
- movs r1, 0x2
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- bne _08036AE4
- movs r0, 0x4
- movs r1, 0x3
- bl sub_80366A4
- lsls r0, 24
- cmp r0, 0
- beq _08036AFC
-_08036AE4:
- movs r0, 0x1
- b _08036AFE
- .align 2, 0
-_08036AE8: .4byte gUnknown_02024A60
-_08036AEC: .4byte gEnemyParty
-_08036AF0: .4byte gUnknown_02024A6A
-_08036AF4: .4byte 0x02000000
-_08036AF8: .4byte 0x00016068
-_08036AFC:
- movs r0, 0
-_08036AFE:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8036904
-
- thumb_func_start sub_8036B0C
-sub_8036B0C: @ 8036B0C
- push {r4-r6,lr}
- ldr r5, _08036B68 @ =gUnknown_020239F8
- ldrh r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08036B1C
- b _08036C2E
-_08036B1C:
- bl sub_8036904
- lsls r0, 24
- cmp r0, 0
- bne _08036B28
- b _08036C24
-_08036B28:
- ldr r4, _08036B6C @ =0x02000000
- ldr r0, _08036B70 @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 25
- ldr r1, _08036B74 @ =0x000160c8
- adds r0, r1
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _08036BEA
- bl sub_8036CD4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bne _08036BD4
- ldrh r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08036B78
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- b _08036B8C
- .align 2, 0
-_08036B68: .4byte gUnknown_020239F8
-_08036B6C: .4byte 0x02000000
-_08036B70: .4byte gUnknown_02024A60
-_08036B74: .4byte 0x000160c8
-_08036B78:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0x3
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r5, r0, 24
-_08036B8C:
- movs r4, 0
-_08036B8E:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08036C0C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036BCE
- ldr r1, _08036C10 @ =gUnknown_02024A6A
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _08036BCE
- lsls r0, r5, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r4, r0
- beq _08036BCE
- ldr r1, _08036C14 @ =0x02000000
- ldr r2, _08036C18 @ =0x00016068
- adds r0, r6, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r4, r0
- beq _08036BCE
- adds r0, r5, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r4, r0
- bne _08036BD4
-_08036BCE:
- adds r4, 0x1
- cmp r4, 0x5
- ble _08036B8E
-_08036BD4:
- ldr r0, _08036C1C @ =gUnknown_02024A60
- ldrb r0, [r0]
- bl battle_get_per_side_status
- ldr r1, _08036C14 @ =0x02000000
- lsls r0, 24
- lsrs r0, 25
- ldr r3, _08036C20 @ =0x000160c8
- adds r0, r3
- adds r0, r1
- strb r4, [r0]
-_08036BEA:
- ldr r4, _08036C1C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_get_per_side_status
- ldr r2, _08036C14 @ =0x02000000
- ldrb r1, [r4]
- ldr r3, _08036C18 @ =0x00016068
- adds r1, r3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 25
- adds r3, 0x60
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- b _08036C40
- .align 2, 0
-_08036C0C: .4byte gEnemyParty
-_08036C10: .4byte gUnknown_02024A6A
-_08036C14: .4byte 0x02000000
-_08036C18: .4byte 0x00016068
-_08036C1C: .4byte gUnknown_02024A60
-_08036C20: .4byte 0x000160c8
-_08036C24:
- bl sub_803708C
- lsls r0, 24
- cmp r0, 0
- bne _08036C40
-_08036C2E:
- ldr r0, _08036C48 @ =gUnknown_02024A60
- ldrb r0, [r0]
- movs r2, 0x1
- eors r2, r0
- lsls r2, 8
- movs r0, 0x1
- movs r1, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_08036C40:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08036C48: .4byte gUnknown_02024A60
- thumb_func_end sub_8036B0C
-
- thumb_func_start sub_8036C4C
-sub_8036C4C: @ 8036C4C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r6, r3, 0
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r7, 0
- ldr r0, _08036CD0 @ =gTypeEffectiveness
- mov r10, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08036CBE
- mov r5, r10
-_08036C7A:
- ldrb r0, [r5]
- cmp r0, 0xFE
- beq _08036CB0
- ldr r1, [sp]
- cmp r0, r1
- bne _08036CB0
- ldrb r4, [r5, 0x1]
- cmp r4, r9
- bne _08036C9A
- ldrb r1, [r6]
- ldrb r0, [r5, 0x2]
- muls r0, r1
- movs r1, 0xA
- bl __divsi3
- strb r0, [r6]
-_08036C9A:
- cmp r4, r8
- bne _08036CB0
- cmp r9, r8
- beq _08036CB0
- ldrb r1, [r6]
- ldrb r0, [r5, 0x2]
- muls r0, r1
- movs r1, 0xA
- bl __divsi3
- strb r0, [r6]
-_08036CB0:
- adds r5, 0x3
- adds r7, 0x3
- mov r1, r10
- adds r0, r7, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08036C7A
-_08036CBE:
- 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
-_08036CD0: .4byte gTypeEffectiveness
- thumb_func_end sub_8036C4C
-
- thumb_func_start sub_8036CD4
-sub_8036CD4: @ 8036CD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- ldr r0, _08036D1C @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08036D78
- ldr r4, _08036D20 @ =gUnknown_02024A60
- ldrb r0, [r4]
- str r0, [sp, 0xC]
- bl battle_get_per_side_status
- movs r5, 0x2
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- ldr r1, _08036D24 @ =gUnknown_02024C0C
- ldrb r1, [r1]
- ldr r2, _08036D28 @ =gBitTable
- lsls r0, 24
- lsrs r0, 22
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036D2C
- ldrb r4, [r4]
- str r4, [sp, 0x10]
- b _08036D42
- .align 2, 0
-_08036D1C: .4byte gUnknown_020239F8
-_08036D20: .4byte gUnknown_02024A60
-_08036D24: .4byte gUnknown_02024C0C
-_08036D28: .4byte gBitTable
-_08036D2C:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
-_08036D42:
- bl Random
- movs r3, 0x2
- ands r0, r3
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _08036D70 @ =gUnknown_02024C0C
- ldrb r1, [r0]
- ldr r2, _08036D74 @ =gBitTable
- mov r4, r10
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08036D8C
- eors r4, r3
- lsls r0, r4, 24
- lsrs r0, 24
- mov r10, r0
- b _08036D8C
- .align 2, 0
-_08036D70: .4byte gUnknown_02024C0C
-_08036D74: .4byte gBitTable
-_08036D78:
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _08036E5C @ =gUnknown_02024A60
- ldrb r0, [r0]
- str r0, [sp, 0x10]
- str r0, [sp, 0xC]
-_08036D8C:
- movs r0, 0
- mov r9, r0
- mov r1, sp
- str r1, [sp, 0x14]
-_08036D94:
- movs r2, 0
- str r2, [sp, 0x4]
- movs r3, 0x6
- str r3, [sp, 0x8]
- movs r7, 0
- ldr r4, _08036E60 @ =gBitTable
- mov r8, r4
-_08036DA2:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _08036E64 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- beq _08036E7C
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036E7C
- mov r1, r8
- ldr r0, [r1]
- mov r2, r9
- ands r0, r2
- cmp r0, 0
- bne _08036E7C
- ldr r1, _08036E68 @ =gUnknown_02024A6A
- ldr r3, [sp, 0xC]
- lsls r0, r3, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036E7C
- ldr r4, [sp, 0x10]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036E7C
- ldr r1, _08036E6C @ =0x02000000
- ldr r2, _08036E70 @ =0x00016068
- adds r0, r3, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036E7C
- adds r0, r4, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036E7C
- ldr r1, _08036E74 @ =gBaseStats
- lsls r0, r5, 3
- subs r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r5, [r0, 0x6]
- ldrb r6, [r0, 0x7]
- movs r0, 0xA
- ldr r3, [sp, 0x14]
- strb r0, [r3]
- movs r0, 0x58
- mov r4, r10
- muls r4, r0
- ldr r0, _08036E78 @ =gBattleMons
- adds r4, r0
- adds r0, r4, 0
- adds r0, 0x21
- ldrb r0, [r0]
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, sp
- bl sub_8036C4C
- adds r4, 0x22
- ldrb r0, [r4]
- adds r1, r5, 0
- adds r2, r6, 0
- mov r3, sp
- bl sub_8036C4C
- ldr r2, [sp, 0x4]
- ldr r1, [sp, 0x14]
- ldrb r1, [r1]
- cmp r2, r1
- bcs _08036E8A
- ldr r2, [sp, 0x14]
- ldrb r2, [r2]
- str r2, [sp, 0x4]
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- b _08036E8A
- .align 2, 0
-_08036E5C: .4byte gUnknown_02024A60
-_08036E60: .4byte gBitTable
-_08036E64: .4byte gEnemyParty
-_08036E68: .4byte gUnknown_02024A6A
-_08036E6C: .4byte 0x02000000
-_08036E70: .4byte 0x00016068
-_08036E74: .4byte gBaseStats
-_08036E78: .4byte gBattleMons
-_08036E7C:
- mov r3, r8
- ldr r0, [r3]
- mov r4, r9
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r0, 24
- mov r9, r0
-_08036E8A:
- movs r0, 0x4
- add r8, r0
- adds r7, 0x1
- cmp r7, 0x5
- ble _08036DA2
- ldr r1, [sp, 0x8]
- cmp r1, 0x6
- beq _08036EF8
- movs r7, 0
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r6, _08036EEC @ =gEnemyParty
-_08036EA4:
- adds r1, r7, 0
- adds r1, 0xD
- adds r0, r5, r6
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08036ECA
- ldr r0, _08036EF0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- adds r0, r4, 0
- mov r2, r10
- bl move_effectiveness_something
- movs r1, 0x2
- ands r1, r0
- cmp r1, 0
- bne _08036ED0
-_08036ECA:
- adds r7, 0x1
- cmp r7, 0x3
- ble _08036EA4
-_08036ED0:
- cmp r7, 0x4
- beq _08036ED6
- b _08036FEE
-_08036ED6:
- ldr r2, [sp, 0x8]
- lsls r0, r2, 2
- ldr r3, _08036EF4 @ =gBitTable
- adds r0, r3
- ldr r0, [r0]
- mov r4, r9
- orrs r4, r0
- lsls r0, r4, 24
- lsrs r0, 24
- b _08036EFA
- .align 2, 0
-_08036EEC: .4byte gEnemyParty
-_08036EF0: .4byte gUnknown_02024A60
-_08036EF4: .4byte gBitTable
-_08036EF8:
- movs r0, 0x3F
-_08036EFA:
- mov r9, r0
- mov r1, r9
- cmp r1, 0x3F
- beq _08036F04
- b _08036D94
-_08036F04:
- ldr r0, _08037000 @ =gUnknown_02024DEC
- movs r2, 0
- strh r2, [r0]
- ldr r0, _08037004 @ =0x02000000
- ldr r3, _08037008 @ =0x0001601c
- adds r1, r0, r3
- strb r2, [r1]
- ldr r4, _0803700C @ =0x0001601f
- adds r0, r4
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08037010 @ =gUnknown_02024C68
- strb r2, [r0]
- ldr r0, _08037014 @ =gCritMultiplier
- strb r1, [r0]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r1, 0x6
- str r1, [sp, 0x8]
- movs r7, 0
-_08036F2C:
- movs r0, 0x64
- adds r6, r7, 0
- muls r6, r0
- ldr r2, _08037018 @ =gEnemyParty
- adds r4, r6, r2
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- adds r3, r7, 0x1
- str r3, [sp, 0x18]
- cmp r0, 0
- beq _08036FE8
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08036FE8
- ldr r1, _0803701C @ =gUnknown_02024A6A
- ldr r4, [sp, 0xC]
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036FE8
- ldr r2, [sp, 0x10]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- beq _08036FE8
- ldr r1, _08037004 @ =0x02000000
- ldr r3, _08037020 @ =0x00016068
- adds r0, r4, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036FE8
- adds r0, r2, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r7, r0
- beq _08036FE8
- movs r5, 0
- mov r9, r6
- ldr r4, _08037024 @ =gUnknown_02024BEC
- mov r8, r4
- ldr r6, _08037028 @ =gUnknown_02024A60
-_08036F90:
- adds r1, r5, 0
- adds r1, 0xD
- ldr r0, _08037018 @ =gEnemyParty
- add r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0
- mov r1, r8
- str r0, [r1]
- cmp r4, 0
- beq _08036FCC
- ldr r0, _0803702C @ =gBattleMoves
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- beq _08036FCC
- ldrb r0, [r6]
- mov r1, r10
- bl sub_801CAF8
- ldrb r1, [r6]
- adds r0, r4, 0
- mov r2, r10
- bl move_effectiveness_something
-_08036FCC:
- mov r2, r8
- ldr r0, [r2]
- ldr r3, [sp, 0x4]
- cmp r3, r0
- bge _08036FE2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
-_08036FE2:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08036F90
-_08036FE8:
- ldr r7, [sp, 0x18]
- cmp r7, 0x5
- ble _08036F2C
-_08036FEE:
- ldr r0, [sp, 0x8]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08037000: .4byte gUnknown_02024DEC
-_08037004: .4byte 0x02000000
-_08037008: .4byte 0x0001601c
-_0803700C: .4byte 0x0001601f
-_08037010: .4byte gUnknown_02024C68
-_08037014: .4byte gCritMultiplier
-_08037018: .4byte gEnemyParty
-_0803701C: .4byte gUnknown_02024A6A
-_08037020: .4byte 0x00016068
-_08037024: .4byte gUnknown_02024BEC
-_08037028: .4byte gUnknown_02024A60
-_0803702C: .4byte gBattleMoves
- thumb_func_end sub_8036CD4
-
- thumb_func_start ai_identify_item_effect
-ai_identify_item_effect: @ 8037030
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bne _08037040
- movs r0, 0x1
- b _08037086
-_08037040:
- ldrb r1, [r2, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803704E
- movs r0, 0x2
- b _08037086
-_0803704E:
- ldrb r4, [r2, 0x3]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r4
- cmp r0, 0
- beq _0803705E
- movs r0, 0x3
- b _08037086
-_0803705E:
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08037074
- ldrb r0, [r2, 0x1]
- cmp r0, 0
- bne _08037074
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- beq _08037078
-_08037074:
- movs r0, 0x4
- b _08037086
-_08037078:
- movs r0, 0x80
- ands r0, r4
- cmp r0, 0
- bne _08037084
- movs r0, 0x6
- b _08037086
-_08037084:
- movs r0, 0x5
-_08037086:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ai_identify_item_effect
-
- thumb_func_start sub_803708C
-sub_803708C: @ 803708C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- str r0, [sp]
- mov r8, r0
- mov r9, r0
-_080370A0:
- movs r0, 0x64
- mov r1, r9
- muls r1, r0
- ldr r0, _08037170 @ =gEnemyParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _080370DC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _080370DC
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _080370DC
- ldr r0, [sp]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
-_080370DC:
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- cmp r2, 0x5
- ble _080370A0
- movs r3, 0
- mov r9, r3
-_080370EA:
- ldr r4, _08037174 @ =0x02016a00
- mov r0, r9
- cmp r0, 0
- beq _08037106
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- mov r1, r9
- subs r0, r1
- adds r0, 0x1
- ldr r2, [sp]
- cmp r2, r0
- ble _08037106
- b _080374EC
-_08037106:
- mov r3, r9
- lsls r1, r3, 1
- adds r0, r4, 0
- adds r0, 0x24
- adds r0, r1, r0
- ldrh r0, [r0]
- mov r10, r0
- str r1, [sp, 0x4]
- cmp r0, 0
- bne _0803711C
- b _080374EC
-_0803711C:
- ldr r1, _08037178 @ =gItemEffectTable
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- cmp r1, 0
- bne _0803712C
- b _080374EC
-_0803712C:
- adds r5, r1, 0
- mov r0, r10
- cmp r0, 0xAF
- bne _08037136
- ldr r5, _0803717C @ =gSaveBlock1 + 0x3676
-_08037136:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r0, 24
- adds r1, r5, 0
- bl ai_identify_item_effect
- ldr r2, _08037180 @ =0xfffe9600
- adds r4, r2
- ldr r3, _08037184 @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsrs r1, 1
- ldr r2, _08037188 @ =0x000160d8
- adds r1, r2
- adds r1, r4
- strb r0, [r1]
- ldrb r0, [r3]
- lsrs r0, 1
- adds r0, r2
- adds r0, r4
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r0, 0x5
- bls _08037166
- b _080374A8
-_08037166:
- lsls r0, 2
- ldr r1, _0803718C @ =_08037190
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08037170: .4byte gEnemyParty
-_08037174: .4byte 0x02016a00
-_08037178: .4byte gItemEffectTable
-_0803717C: .4byte gSaveBlock1 + 0x3676
-_08037180: .4byte 0xfffe9600
-_08037184: .4byte gUnknown_02024A60
-_08037188: .4byte 0x000160d8
-_0803718C: .4byte _08037190
- .align 2, 0
-_08037190:
- .4byte _080371A8
- .4byte _080371D0
- .4byte _0803721C
- .4byte _08037388
- .4byte _08037468
- .4byte _080374F8
-_080371A8:
- ldr r2, _080371C8 @ =gBattleMons
- ldr r0, _080371CC @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x2C]
- ldrh r0, [r0, 0x28]
- lsrs r1, 2
- cmp r0, r1
- bcc _080371C0
- b _080374A8
-_080371C0:
- cmp r0, 0
- bne _080371C6
- b _080374A8
-_080371C6:
- b _08037450
- .align 2, 0
-_080371C8: .4byte gBattleMons
-_080371CC: .4byte gUnknown_02024A60
-_080371D0:
- mov r0, r10
- movs r1, 0x4
- movs r2, 0x4
- bl sub_803F1DC
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080371E4
- b _080374A8
-_080371E4:
- ldr r2, _08037214 @ =gBattleMons
- ldr r0, _08037218 @ =gUnknown_02024A60
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r1, r0, r2
- ldrh r2, [r1, 0x28]
- cmp r2, 0
- bne _080371F8
- b _080374A8
-_080371F8:
- ldrh r3, [r1, 0x2C]
- lsrs r0, r3, 2
- cmp r2, r0
- bcs _08037202
- b _08037496
-_08037202:
- adds r0, r2, 0
- subs r0, r3, r0
- adds r1, r5, r4
- ldrb r1, [r1]
- cmp r0, r1
- bgt _08037210
- b _080374A8
-_08037210:
- b _08037496
- .align 2, 0
-_08037214: .4byte gBattleMons
-_08037218: .4byte gUnknown_02024A60
-_0803721C:
- ldr r2, _08037378 @ =0x02000000
- ldr r3, _0803737C @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsrs r0, 1
- ldr r6, _08037380 @ =0x000160da
- adds r0, r6
- adds r0, r2
- movs r1, 0
- mov r12, r1
- movs r1, 0
- strb r1, [r0]
- ldrb r1, [r5, 0x3]
- movs r7, 0x20
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08037264
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08037264
- lsrs r1, r4, 1
- adds r1, r6
- adds r1, r2
- ldrb r0, [r1]
- orrs r0, r7
- strb r0, [r1]
- movs r0, 0x1
- mov r8, r0
-_08037264:
- ldrb r1, [r5, 0x3]
- movs r6, 0x10
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080372A0
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0803728E
- movs r0, 0x80
- ands r1, r0
- cmp r1, 0
- beq _080372A0
-_0803728E:
- lsrs r1, r4, 1
- ldr r0, _08037380 @ =0x000160da
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- orrs r0, r6
- strb r0, [r1]
- movs r1, 0x1
- mov r8, r1
-_080372A0:
- ldrb r1, [r5, 0x3]
- movs r6, 0x8
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _080372D4
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080372D4
- lsrs r0, r4, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r0, 0x1
- mov r8, r0
-_080372D4:
- ldrb r1, [r5, 0x3]
- movs r6, 0x4
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08037308
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08037308
- lsrs r0, r4, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r0, 0x1
- mov r8, r0
-_08037308:
- ldrb r1, [r5, 0x3]
- movs r6, 0x2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0803733C
- ldr r1, _08037384 @ =gBattleMons
- ldrb r4, [r3]
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803733C
- lsrs r0, r4, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r0, 0x1
- mov r8, r0
-_0803733C:
- ldrb r1, [r5, 0x3]
- movs r4, 0x1
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0803734A
- b _080374A8
-_0803734A:
- ldr r1, _08037384 @ =gBattleMons
- ldrb r3, [r3]
- movs r0, 0x58
- muls r0, r3
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08037362
- b _080374A8
-_08037362:
- lsrs r0, r3, 1
- ldr r1, _08037380 @ =0x000160da
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- orrs r1, r4
- strb r1, [r0]
- movs r2, 0x1
- mov r8, r2
- b _080374AE
- .align 2, 0
-_08037378: .4byte 0x02000000
-_0803737C: .4byte gUnknown_02024A60
-_08037380: .4byte 0x000160da
-_08037384: .4byte gBattleMons
-_08037388:
- ldr r6, _08037458 @ =0x02000000
- ldr r4, _0803745C @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsrs r0, 1
- ldr r3, _08037460 @ =0x000160da
- adds r0, r3
- adds r0, r6
- movs r1, 0
- mov r12, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, _08037464 @ =gUnknown_02024CA8
- ldrb r2, [r4]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _080374A8
- ldrb r1, [r5]
- movs r7, 0xF
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _080373CA
- lsrs r0, r2, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
-_080373CA:
- ldrb r1, [r5, 0x1]
- movs r2, 0xF0
- mov r8, r2
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _080373E8
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_080373E8:
- ldrb r1, [r5, 0x1]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08037402
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08037402:
- ldrb r1, [r5, 0x2]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0803741C
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_0803741C:
- ldrb r1, [r5, 0x2]
- mov r0, r8
- ands r0, r1
- cmp r0, 0
- beq _08037436
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x20
- orrs r1, r2
- strb r1, [r0]
-_08037436:
- ldrb r1, [r5]
- movs r0, 0x30
- ands r0, r1
- cmp r0, 0
- beq _08037450
- ldrb r0, [r4]
- lsrs r0, 1
- adds r0, r3
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
-_08037450:
- movs r3, 0x1
- mov r8, r3
- b _080374AE
- .align 2, 0
-_08037458: .4byte 0x02000000
-_0803745C: .4byte gUnknown_02024A60
-_08037460: .4byte 0x000160da
-_08037464: .4byte gUnknown_02024CA8
-_08037468:
- ldr r4, _0803749C @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _080374A0 @ =gUnknown_02024CA8
- ldrb r1, [r4]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- beq _080374A8
- ldr r0, _080374A4 @ =gUnknown_02024C80
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _080374A8
-_08037496:
- movs r0, 0x1
- mov r8, r0
- b _080374AE
- .align 2, 0
-_0803749C: .4byte gUnknown_02024A60
-_080374A0: .4byte gUnknown_02024CA8
-_080374A4: .4byte gUnknown_02024C80
-_080374A8:
- mov r1, r8
- cmp r1, 0
- beq _080374EC
-_080374AE:
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- ldr r1, _080374DC @ =0x02000000
- ldr r0, _080374E0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 1
- ldr r2, _080374E4 @ =0x000160d4
- adds r0, r2
- adds r0, r1
- movs r2, 0
- mov r3, r10
- strb r3, [r0]
- ldr r0, _080374E8 @ =0x00016a24
- adds r1, r0
- ldr r3, [sp, 0x4]
- adds r1, r3, r1
- strh r2, [r1]
- mov r0, r8
- b _080374FA
- .align 2, 0
-_080374DC: .4byte 0x02000000
-_080374E0: .4byte gUnknown_02024A60
-_080374E4: .4byte 0x000160d4
-_080374E8: .4byte 0x00016a24
-_080374EC:
- movs r0, 0x1
- add r9, r0
- mov r1, r9
- cmp r1, 0x3
- bgt _080374F8
- b _080370EA
-_080374F8:
- movs r0, 0
-_080374FA:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_803708C
-
- thumb_func_start nullsub_47
-nullsub_47: @ 803750C
- bx lr
- thumb_func_end nullsub_47
-
- thumb_func_start sub_8037510
-sub_8037510: @ 8037510
- ldr r1, _08037520 @ =gUnknown_03004330
- ldr r0, _08037524 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037528 @ =sub_803752C
- str r1, [r0]
- bx lr
- .align 2, 0
-_08037520: .4byte gUnknown_03004330
-_08037524: .4byte gUnknown_02024A60
-_08037528: .4byte sub_803752C
- thumb_func_end sub_8037510
-
- thumb_func_start sub_803752C
-sub_803752C: @ 803752C
- push {lr}
- ldr r2, _08037560 @ =gUnknown_02024A64
- ldr r1, _08037564 @ =gBitTable
- ldr r0, _08037568 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08037578
- ldr r0, _0803756C @ =gUnknown_02023A60
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _08037574
- ldr r0, _08037570 @ =gUnknown_081FB048
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _08037578
- .align 2, 0
-_08037560: .4byte gUnknown_02024A64
-_08037564: .4byte gBitTable
-_08037568: .4byte gUnknown_02024A60
-_0803756C: .4byte gUnknown_02023A60
-_08037570: .4byte gUnknown_081FB048
-_08037574:
- bl dp01_tbl4_exec_completed
-_08037578:
- pop {r0}
- bx r0
- thumb_func_end sub_803752C
-
- thumb_func_start sub_803757C
-sub_803757C: @ 803757C
- push {lr}
- ldr r2, _080375A4 @ =gSprites
- ldr r1, _080375A8 @ =gUnknown_02024BE0
- ldr r0, _080375AC @ =gUnknown_02024A60
- 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, _080375B0 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _080375A0
- bl dp01_tbl4_exec_completed
-_080375A0:
- pop {r0}
- bx r0
- .align 2, 0
-_080375A4: .4byte gSprites
-_080375A8: .4byte gUnknown_02024BE0
-_080375AC: .4byte gUnknown_02024A60
-_080375B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_803757C
-
- thumb_func_start sub_80375B4
-sub_80375B4: @ 80375B4
- push {r4-r6,lr}
- ldr r4, _0803762C @ =gSprites
- ldr r6, _08037630 @ =gUnknown_02024BE0
- ldr r5, _08037634 @ =gUnknown_02024A60
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r2, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, [r0]
- ldr r0, _08037638 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037624
- adds r0, r2, r4
- ldrh r0, [r0, 0x6]
- bl sub_8031B74
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x38]
- ldr r2, _0803763C @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08037640 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- bl dp01_tbl4_exec_completed
-_08037624:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803762C: .4byte gSprites
-_08037630: .4byte gUnknown_02024BE0
-_08037634: .4byte gUnknown_02024A60
-_08037638: .4byte SpriteCallbackDummy
-_0803763C: .4byte 0x000003ff
-_08037640: .4byte 0xfffffc00
- thumb_func_end sub_80375B4
-
- thumb_func_start sub_8037644
-sub_8037644: @ 8037644
- push {lr}
- ldr r3, _08037678 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0803767C @ =0x02017810
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _08037674
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl4_exec_completed
-_08037674:
- pop {r0}
- bx r0
- .align 2, 0
-_08037678: .4byte gUnknown_02024A60
-_0803767C: .4byte 0x02017810
- thumb_func_end sub_8037644
-
- thumb_func_start sub_8037680
-sub_8037680: @ 8037680
- push {r4-r7,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080376A4
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080376D8
- ldr r0, _080376C4 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080376D8
-_080376A4:
- ldr r2, _080376C8 @ =gSprites
- ldr r1, _080376CC @ =gUnknown_03004340
- ldr r0, _080376D0 @ =gUnknown_02024A60
- 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, _080376D4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _0803770E
- b _0803770C
- .align 2, 0
-_080376C4: .4byte gUnknown_020239F8
-_080376C8: .4byte gSprites
-_080376CC: .4byte gUnknown_03004340
-_080376D0: .4byte gUnknown_02024A60
-_080376D4: .4byte SpriteCallbackDummy
-_080376D8:
- ldr r2, _080377D8 @ =gSprites
- ldr r5, _080377DC @ =gUnknown_03004340
- ldr r0, _080377E0 @ =gUnknown_02024A60
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r4, [r0]
- ldr r0, _080377E4 @ =SpriteCallbackDummy
- cmp r4, r0
- bne _0803770E
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- cmp r0, r4
- bne _0803770E
-_0803770C:
- movs r6, 0x1
-_0803770E:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0803771A
- movs r6, 0
-_0803771A:
- cmp r6, 0
- bne _08037720
- b _08037822
-_08037720:
- ldr r7, _080377E0 @ =gUnknown_02024A60
- ldrb r0, [r7]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bne _080377B4
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r5, _080377E8 @ =0x02017810
- adds r4, r0, r5
- ldrb r1, [r4, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08037822
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08037822
- ldrb r1, [r4]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- movs r4, 0x2
- negs r4, r4
- 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, _080377EC @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
-_080377B4:
- ldr r0, _080377F0 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080377F8
- ldrb r0, [r7]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08037804
- ldr r0, _080377F4 @ =gMPlay_BGM
- bl m4aMPlayContinue
- b _08037804
- .align 2, 0
-_080377D8: .4byte gSprites
-_080377DC: .4byte gUnknown_03004340
-_080377E0: .4byte gUnknown_02024A60
-_080377E4: .4byte SpriteCallbackDummy
-_080377E8: .4byte 0x02017810
-_080377EC: .4byte 0x000027f9
-_080377F0: .4byte gUnknown_020239F8
-_080377F4: .4byte gMPlay_BGM
-_080377F8:
- ldr r0, _08037828 @ =gMPlay_BGM
- ldr r1, _0803782C @ =0x0000ffff
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08037804:
- ldr r2, _08037830 @ =gUnknown_02024A60
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037834 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _08037838 @ =gUnknown_03004330
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803783C @ =sub_8037644
- str r1, [r0]
-_08037822:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037828: .4byte gMPlay_BGM
-_0803782C: .4byte 0x0000ffff
-_08037830: .4byte gUnknown_02024A60
-_08037834: .4byte 0x02017810
-_08037838: .4byte gUnknown_03004330
-_0803783C: .4byte sub_8037644
- thumb_func_end sub_8037680
-
- thumb_func_start sub_8037840
-sub_8037840: @ 8037840
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r6, _08037A48 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r5, _08037A4C @ =0x02017810
- adds r0, r5
- ldrb r1, [r0]
- movs r4, 0x88
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _08037878
- ldr r0, _08037A50 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037A54 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08037878:
- ldrb r0, [r6]
- movs r7, 0x2
- adds r2, r7, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _080378A6
- ldr r0, _08037A50 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037A54 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_080378A6:
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080378BE
- b _08037A3A
-_080378BE:
- adds r1, r2, 0
- eors r1, r7
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _080378DA
- b _08037A3A
-_080378DA:
- ldr r0, _08037A58 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803791A
- adds r0, r2, 0
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0803791A
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x9]
- adds r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0803790E
- b _08037A3A
-_0803790E:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strb r4, [r0, 0x9]
-_0803791A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _080379B2
- ldr r0, _08037A58 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080379B2
- ldr r1, _08037A5C @ =gUnknown_0300434C
- ldr r5, _08037A48 @ =gUnknown_02024A60
- ldrb r0, [r5]
- movs r4, 0x2
- eors r0, r4
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037A60 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _08037A64 @ =gUnknown_03004340
- mov r8, r0
- ldrb r0, [r5]
- adds r1, r4, 0
- eors r1, r0
- mov r2, r8
- adds r0, r1, r2
- ldrb r0, [r0]
- ldr r2, _08037A50 @ =gUnknown_02024A6A
- mov r10, r2
- lsls r1, 1
- add r1, r10
- ldrh r1, [r1]
- movs r2, 0x64
- mov r9, r2
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08037A54 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r4
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r4
- add r0, r8
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- eors r4, r0
- lsls r0, r4, 1
- add r0, r10
- ldrh r0, [r0]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
-_080379B2:
- ldr r1, _08037A5C @ =gUnknown_0300434C
- ldr r4, _08037A48 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037A60 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r5, _08037A64 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08037A50 @ =gUnknown_02024A6A
- mov r9, r2
- lsls r1, 1
- add r1, r9
- ldrh r1, [r1]
- movs r2, 0x64
- mov r8, r2
- mov r2, r8
- muls r2, r1
- adds r1, r2, 0
- ldr r6, _08037A54 @ =gEnemyParty
- adds r1, r6
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r5, [r4]
- lsls r0, r5, 1
- add r0, r9
- ldrh r0, [r0]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r6
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_8032984
- ldr r2, _08037A68 @ =0x02017840
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08037A6C @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037A70 @ =sub_8037680
- str r1, [r0]
-_08037A3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037A48: .4byte gUnknown_02024A60
-_08037A4C: .4byte 0x02017810
-_08037A50: .4byte gUnknown_02024A6A
-_08037A54: .4byte gEnemyParty
-_08037A58: .4byte gUnknown_020239F8
-_08037A5C: .4byte gUnknown_0300434C
-_08037A60: .4byte gSprites
-_08037A64: .4byte gUnknown_03004340
-_08037A68: .4byte 0x02017840
-_08037A6C: .4byte gUnknown_03004330
-_08037A70: .4byte sub_8037680
- thumb_func_end sub_8037840
-
- thumb_func_start sub_8037A74
-sub_8037A74: @ 8037A74
- push {r4-r7,lr}
- ldr r2, _08037ACC @ =gSprites
- ldr r0, _08037AD0 @ =gUnknown_02024BE0
- ldr r7, _08037AD4 @ =gUnknown_02024A60
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r2, r0, 31
- cmp r2, 0x1
- bne _08037B18
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _08037B18
- lsls r4, r3, 1
- adds r0, r4, r3
- lsls r0, 2
- ldr r6, _08037AD8 @ =0x02017810
- adds r1, r0, r6
- ldrb r5, [r1]
- movs r0, 0x80
- ands r0, r5
- cmp r0, 0
- bne _08037AE4
- ldr r0, _08037ADC @ =gUnknown_02024A6A
- adds r0, r4, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037AE0 @ =gEnemyParty
- adds r1, r0
- adds r0, r3, 0
- bl sub_8141828
- b _08037B18
- .align 2, 0
-_08037ACC: .4byte gSprites
-_08037AD0: .4byte gUnknown_02024BE0
-_08037AD4: .4byte gUnknown_02024A60
-_08037AD8: .4byte 0x02017810
-_08037ADC: .4byte gUnknown_02024A6A
-_08037AE0: .4byte gEnemyParty
-_08037AE4:
- ldrb r0, [r1, 0x1]
- ands r2, r0
- cmp r2, 0
- beq _08037B18
- movs r0, 0x7F
- ands r0, r5
- strb r0, [r1]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _08037B20 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- bl dp01_tbl4_exec_completed
-_08037B18:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08037B20: .4byte 0x000027f9
- thumb_func_end sub_8037A74
-
- thumb_func_start sub_8037B24
-sub_8037B24: @ 8037B24
- push {r4-r6,lr}
- ldr r6, _08037B64 @ =gUnknown_02024A60
- ldrb r0, [r6]
- ldr r5, _08037B68 @ =gUnknown_03004340
- adds r1, r0, r5
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08037B6C
- ldrb r0, [r6]
- adds r0, r5
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08037B70
- .align 2, 0
-_08037B64: .4byte gUnknown_02024A60
-_08037B68: .4byte gUnknown_03004340
-_08037B6C:
- bl dp01_tbl4_exec_completed
-_08037B70:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8037B24
-
- thumb_func_start sub_8037B78
-sub_8037B78: @ 8037B78
- push {lr}
- ldr r2, _08037BAC @ =gSprites
- ldr r0, _08037BB0 @ =gUnknown_02024BE0
- ldr r1, _08037BB4 @ =gUnknown_02024A60
- ldrb r3, [r1]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _08037BA6
- ldr r0, _08037BB8 @ =gUnknown_03004340
- adds r0, r3, r0
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08037BA6:
- pop {r0}
- bx r0
- .align 2, 0
-_08037BAC: .4byte gSprites
-_08037BB0: .4byte gUnknown_02024BE0
-_08037BB4: .4byte gUnknown_02024A60
-_08037BB8: .4byte gUnknown_03004340
- thumb_func_end sub_8037B78
-
- thumb_func_start sub_8037BBC
-sub_8037BBC: @ 8037BBC
- push {r4-r6,lr}
- ldr r6, _08037C18 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _08037C1C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08037C12
- ldr r5, _08037C20 @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08037C24 @ =gSprites
- 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
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08037C28 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08037C12:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037C18: .4byte gUnknown_02024A60
-_08037C1C: .4byte 0x02017810
-_08037C20: .4byte gUnknown_02024BE0
-_08037C24: .4byte gSprites
-_08037C28: .4byte gUnknown_03004340
- thumb_func_end sub_8037BBC
-
- thumb_func_start sub_8037C2C
-sub_8037C2C: @ 8037C2C
- push {lr}
- ldr r0, _08037C40 @ =gUnknown_03004210
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08037C3A
- bl dp01_tbl4_exec_completed
-_08037C3A:
- pop {r0}
- bx r0
- .align 2, 0
-_08037C40: .4byte gUnknown_03004210
- thumb_func_end sub_8037C2C
-
- thumb_func_start dp01t_0F_4_move_anim
-dp01t_0F_4_move_anim: @ 8037C44
- push {r4,lr}
- ldr r1, _08037C80 @ =gUnknown_02024BE0
- ldr r0, _08037C84 @ =gUnknown_02024A60
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _08037C88 @ =gSprites
- 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 _08037C90
- 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, _08037C8C @ =gUnknown_02024E6D
- strb r3, [r0]
- bl dp01_tbl4_exec_completed
- b _08037CBA
- .align 2, 0
-_08037C80: .4byte gUnknown_02024BE0
-_08037C84: .4byte gUnknown_02024A60
-_08037C88: .4byte gSprites
-_08037C8C: .4byte gUnknown_02024E6D
-_08037C90:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08037CB4
- 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]
-_08037CB4:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08037CBA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end dp01t_0F_4_move_anim
-
- thumb_func_start sub_8037CC0
-sub_8037CC0: @ 8037CC0
- push {r4,lr}
- ldr r2, _08037D10 @ =gSprites
- ldr r0, _08037D14 @ =gUnknown_03004340
- ldr r4, _08037D18 @ =gUnknown_02024A60
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08037D1C @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037D08
- lsls r0, r3, 2
- ldr r1, _08037D20 @ =0x02017800
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08037CFC
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_08037CFC:
- ldr r0, _08037D24 @ =gUnknown_03004330
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08037D28 @ =sub_8037D2C
- str r0, [r1]
-_08037D08:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08037D10: .4byte gSprites
-_08037D14: .4byte gUnknown_03004340
-_08037D18: .4byte gUnknown_02024A60
-_08037D1C: .4byte SpriteCallbackDummy
-_08037D20: .4byte 0x02017800
-_08037D24: .4byte gUnknown_03004330
-_08037D28: .4byte sub_8037D2C
- thumb_func_end sub_8037CC0
-
- thumb_func_start sub_8037D2C
-sub_8037D2C: @ 8037D2C
- push {lr}
- ldr r0, _08037D58 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037D5C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08037D52
- ldr r0, _08037D60 @ =c3_0802FDF4
- movs r1, 0xA
- bl CreateTask
- bl dp01_tbl4_exec_completed
-_08037D52:
- pop {r0}
- bx r0
- .align 2, 0
-_08037D58: .4byte gUnknown_02024A60
-_08037D5C: .4byte 0x02017810
-_08037D60: .4byte c3_0802FDF4
- thumb_func_end sub_8037D2C
-
- thumb_func_start sub_8037D64
-sub_8037D64: @ 8037D64
- push {r4,r5,lr}
- ldr r5, _08037E08 @ =gUnknown_02024A60
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _08037E0C @ =0x02017810
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08037E00
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _08037E10 @ =0x000027f9
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r1, _08037E14 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037E18 @ =gSprites
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _08037E1C @ =gUnknown_03004340
- ldrb r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08037E20 @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08037E24 @ =gEnemyParty
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- bl sub_804777C
- ldrb r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r5]
- bl sub_8031F88
- ldr r1, _08037E28 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037E2C @ =sub_8037CC0
- str r1, [r0]
-_08037E00:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08037E08: .4byte gUnknown_02024A60
-_08037E0C: .4byte 0x02017810
-_08037E10: .4byte 0x000027f9
-_08037E14: .4byte gUnknown_02024BE0
-_08037E18: .4byte gSprites
-_08037E1C: .4byte gUnknown_03004340
-_08037E20: .4byte gUnknown_02024A6A
-_08037E24: .4byte gEnemyParty
-_08037E28: .4byte gUnknown_03004330
-_08037E2C: .4byte sub_8037CC0
- thumb_func_end sub_8037D64
-
- thumb_func_start sub_8037E30
-sub_8037E30: @ 8037E30
- push {r4-r6,lr}
- ldr r5, _08037ECC @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _08037ED0 @ =0x02017810
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _08037E5E
- ldr r0, _08037ED4 @ =gUnknown_02024A6A
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08037ED8 @ =gEnemyParty
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08037E5E:
- ldr r4, _08037EDC @ =gSprites
- ldr r0, _08037EE0 @ =gUnknown_0300434C
- ldrb r2, [r5]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _08037EE4 @ =SpriteCallbackDummy
- cmp r1, r0
- bne _08037EC4
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _08037EC4
- adds r0, r3, r4
- bl DestroySprite
- ldrb r4, [r5]
- ldr r1, _08037ED4 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08037ED8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _08037EE8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037EEC @ =sub_8037D64
- str r1, [r0]
-_08037EC4:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08037ECC: .4byte gUnknown_02024A60
-_08037ED0: .4byte 0x02017810
-_08037ED4: .4byte gUnknown_02024A6A
-_08037ED8: .4byte gEnemyParty
-_08037EDC: .4byte gSprites
-_08037EE0: .4byte gUnknown_0300434C
-_08037EE4: .4byte SpriteCallbackDummy
-_08037EE8: .4byte gUnknown_03004330
-_08037EEC: .4byte sub_8037D64
- thumb_func_end sub_8037E30
-
- thumb_func_start sub_8037EF0
-sub_8037EF0: @ 8037EF0
- push {lr}
- ldr r0, _08037F20 @ =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _08037F1C
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _08037F24 @ =gMain
- ldr r0, _08037F28 @ =0x0000043d
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08037F2C @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _08037F30 @ =c2_8011A1C
- bl SetMainCallback2
-_08037F1C:
- pop {r0}
- bx r0
- .align 2, 0
-_08037F20: .4byte gReceivedRemoteLinkPlayers
-_08037F24: .4byte gMain
-_08037F28: .4byte 0x0000043d
-_08037F2C: .4byte gUnknown_030042D0
-_08037F30: .4byte c2_8011A1C
- thumb_func_end sub_8037EF0
-
- thumb_func_start sub_8037F34
-sub_8037F34: @ 8037F34
- push {lr}
- ldr r0, _08037F64 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08037F9A
- ldr r0, _08037F68 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08037F78
- bl sub_800832C
- ldr r1, _08037F6C @ =gUnknown_03004330
- ldr r0, _08037F70 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08037F74 @ =sub_8037EF0
- str r1, [r0]
- b _08037F9A
- .align 2, 0
-_08037F64: .4byte gPaletteFade
-_08037F68: .4byte gUnknown_020239F8
-_08037F6C: .4byte gUnknown_03004330
-_08037F70: .4byte gUnknown_02024A60
-_08037F74: .4byte sub_8037EF0
-_08037F78:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _08037FA0 @ =gMain
- ldr r0, _08037FA4 @ =0x0000043d
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08037FA8 @ =gUnknown_030042D0
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08037F9A:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FA0: .4byte gMain
-_08037FA4: .4byte 0x0000043d
-_08037FA8: .4byte gUnknown_030042D0
- thumb_func_end sub_8037F34
-
- thumb_func_start sub_8037FAC
-sub_8037FAC: @ 8037FAC
- push {lr}
- ldr r0, _08037FD0 @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08037FD4 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08037FCA
- bl dp01_tbl4_exec_completed
-_08037FCA:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FD0: .4byte gUnknown_02024A60
-_08037FD4: .4byte 0x02017810
- thumb_func_end sub_8037FAC
-
- thumb_func_start sub_8037FD8
-sub_8037FD8: @ 8037FD8
- push {lr}
- ldr r0, _08037FFC @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08038000 @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08037FF6
- bl dp01_tbl4_exec_completed
-_08037FF6:
- pop {r0}
- bx r0
- .align 2, 0
-_08037FFC: .4byte gUnknown_02024A60
-_08038000: .4byte 0x02017810
- thumb_func_end sub_8037FD8
-
- thumb_func_start dp01_tbl4_exec_completed
-dp01_tbl4_exec_completed: @ 8038004
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _08038044 @ =gUnknown_03004330
- ldr r4, _08038048 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803804C @ =sub_803752C
- str r1, [r0]
- ldr r0, _08038050 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08038058
- 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, _08038054 @ =gUnknown_02023A60
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0803806A
- .align 2, 0
-_08038044: .4byte gUnknown_03004330
-_08038048: .4byte gUnknown_02024A60
-_0803804C: .4byte sub_803752C
-_08038050: .4byte gUnknown_020239F8
-_08038054: .4byte gUnknown_02023A60
-_08038058:
- ldr r2, _08038074 @ =gUnknown_02024A64
- ldr r1, _08038078 @ =gBitTable
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0803806A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08038074: .4byte gUnknown_02024A64
-_08038078: .4byte gBitTable
- thumb_func_end dp01_tbl4_exec_completed
-
- thumb_func_start dp01t_00_4_getattr
-dp01t_00_4_getattr: @ 803807C
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _080380A8 @ =gUnknown_02023A60
- ldr r0, _080380AC @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080380B4
- ldr r0, _080380B0 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0, 0
- b _080380D6
- .align 2, 0
-_080380A8: .4byte gUnknown_02023A60
-_080380AC: .4byte gUnknown_02024A60
-_080380B0: .4byte gUnknown_02024A6A
-_080380B4:
- ldrb r4, [r1]
- movs r5, 0
-_080380B8:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080380CE
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon__
- adds r6, r0
-_080380CE:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _080380B8
-_080380D6:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl4_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_4_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
-dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
- 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, _08038124 @ =gUnknown_02023A60
- ldr r3, _08038128 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0803811A
- bl _08038886
-_0803811A:
- lsls r0, 2
- ldr r1, _0803812C @ =_08038130
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038124: .4byte gUnknown_02023A60
-_08038128: .4byte gUnknown_02024A60
-_0803812C: .4byte _08038130
- .align 2, 0
-_08038130:
- .4byte _08038220
- .4byte _08038444
- .4byte _08038454
- .4byte _08038464
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384CC
- .4byte _080384E8
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038524
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038886
- .4byte _08038540
- .4byte _08038550
- .4byte _08038580
- .4byte _08038590
- .4byte _080385A0
- .4byte _080385B0
- .4byte _080385C0
- .4byte _080385D0
- .4byte _080385E0
- .4byte _080385F0
- .4byte _08038600
- .4byte _08038610
- .4byte _08038620
- .4byte _08038630
- .4byte _08038640
- .4byte _08038690
- .4byte _080386A0
- .4byte _080386B0
- .4byte _080386C0
- .4byte _080386D0
- .4byte _080386E0
- .4byte _080386F0
- .4byte _08038700
- .4byte _08038710
- .4byte _08038744
- .4byte _08038754
- .4byte _08038764
- .4byte _08038774
- .4byte _08038784
- .4byte _08038794
- .4byte _080387A4
- .4byte _080387B4
- .4byte _080387D4
- .4byte _080387E4
- .4byte _080387F4
- .4byte _08038804
- .4byte _08038814
- .4byte _08038824
- .4byte _08038834
- .4byte _08038844
- .4byte _08038854
- .4byte _08038864
- .4byte _08038874
-_08038220:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- 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
-_0803826C:
- 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 _0803826C
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038434 @ =gEnemyParty
- 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, _08038438 @ =0xfffffc1f
- 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, _0803843C @ =0xfff07fff
- 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, _08038440 @ =0xfffffe0f
- 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
-_08038424:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08038424
- b _08038886
- .align 2, 0
-_08038434: .4byte gEnemyParty
-_08038438: .4byte 0xfffffc1f
-_0803843C: .4byte 0xfff07fff
-_08038440: .4byte 0xfffffe0f
-_08038444:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038450 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- b _080387BE
- .align 2, 0
-_08038450: .4byte gEnemyParty
-_08038454:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038460 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xC
- b _080387BE
- .align 2, 0
-_08038460: .4byte gEnemyParty
-_08038464:
- 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, _080384C8 @ =gEnemyParty
- adds r4, r1, r0
- mov r8, r9
-_0803847A:
- 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 _0803847A
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384C8 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_080384B8:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _080384B8
- b _08038886
- .align 2, 0
-_080384C8: .4byte gEnemyParty
-_080384CC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080384E4 @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _080387BE
- .align 2, 0
-_080384E4: .4byte gEnemyParty
-_080384E8:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08038520 @ =gEnemyParty
- mov r8, r2
-_080384F4:
- 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 _080384F4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038520 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _08038886
- .align 2, 0
-_08038520: .4byte gEnemyParty
-_08038524:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803853C @ =gEnemyParty
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0803887E
- .align 2, 0
-_0803853C: .4byte gEnemyParty
-_08038540:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803854C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1
- b _0803855A
- .align 2, 0
-_0803854C: .4byte gEnemyParty
-_08038550:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803857C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x19
-_0803855A:
- 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 _08038886
- .align 2, 0
-_0803857C: .4byte gEnemyParty
-_08038580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803858C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1A
- b _0803887E
- .align 2, 0
-_0803858C: .4byte gEnemyParty
-_08038590:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803859C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1B
- b _0803887E
- .align 2, 0
-_0803859C: .4byte gEnemyParty
-_080385A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1C
- b _0803887E
- .align 2, 0
-_080385AC: .4byte gEnemyParty
-_080385B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1D
- b _0803887E
- .align 2, 0
-_080385BC: .4byte gEnemyParty
-_080385C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1E
- b _0803887E
- .align 2, 0
-_080385CC: .4byte gEnemyParty
-_080385D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x1F
- b _0803887E
- .align 2, 0
-_080385DC: .4byte gEnemyParty
-_080385E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x20
- b _0803887E
- .align 2, 0
-_080385EC: .4byte gEnemyParty
-_080385F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080385FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x22
- b _0803887E
- .align 2, 0
-_080385FC: .4byte gEnemyParty
-_08038600:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803860C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x23
- b _0803887E
- .align 2, 0
-_0803860C: .4byte gEnemyParty
-_08038610:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803861C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x24
- b _0803887E
- .align 2, 0
-_0803861C: .4byte gEnemyParty
-_08038620:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803862C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x25
- b _0803887E
- .align 2, 0
-_0803862C: .4byte gEnemyParty
-_08038630:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803863C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x26
- b _0803887E
- .align 2, 0
-_0803863C: .4byte gEnemyParty
-_08038640:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0803868C @ =gEnemyParty
- 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 _08038886
- .align 2, 0
-_0803868C: .4byte gEnemyParty
-_08038690:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803869C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x27
- b _0803887E
- .align 2, 0
-_0803869C: .4byte gEnemyParty
-_080386A0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386AC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x28
- b _0803887E
- .align 2, 0
-_080386AC: .4byte gEnemyParty
-_080386B0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386BC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x29
- b _0803887E
- .align 2, 0
-_080386BC: .4byte gEnemyParty
-_080386C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386CC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2A
- b _0803887E
- .align 2, 0
-_080386CC: .4byte gEnemyParty
-_080386D0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386DC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2B
- b _0803887E
- .align 2, 0
-_080386DC: .4byte gEnemyParty
-_080386E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386EC @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2C
- b _0803887E
- .align 2, 0
-_080386EC: .4byte gEnemyParty
-_080386F0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080386FC @ =gEnemyParty
- adds r0, r1
- movs r1, 0
- b _0803871A
- .align 2, 0
-_080386FC: .4byte gEnemyParty
-_08038700:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803870C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x9
- b _080387BE
- .align 2, 0
-_0803870C: .4byte gEnemyParty
-_08038710:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038740 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x37
-_0803871A:
- 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 _08038886
- .align 2, 0
-_08038740: .4byte gEnemyParty
-_08038744:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038750 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x38
- b _0803887E
- .align 2, 0
-_08038750: .4byte gEnemyParty
-_08038754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038760 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x39
- b _080387BE
- .align 2, 0
-_08038760: .4byte gEnemyParty
-_08038764:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038770 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- b _080387BE
- .align 2, 0
-_08038770: .4byte gEnemyParty
-_08038774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038780 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3B
- b _080387BE
- .align 2, 0
-_08038780: .4byte gEnemyParty
-_08038784:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038790 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3C
- b _080387BE
- .align 2, 0
-_08038790: .4byte gEnemyParty
-_08038794:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387A0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3D
- b _080387BE
- .align 2, 0
-_080387A0: .4byte gEnemyParty
-_080387A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387B0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3E
- b _080387BE
- .align 2, 0
-_080387B0: .4byte gEnemyParty
-_080387B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387D0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3F
-_080387BE:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _08038886
- .align 2, 0
-_080387D0: .4byte gEnemyParty
-_080387D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387E0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x16
- b _0803887E
- .align 2, 0
-_080387E0: .4byte gEnemyParty
-_080387E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080387F0 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x17
- b _0803887E
- .align 2, 0
-_080387F0: .4byte gEnemyParty
-_080387F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038800 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x18
- b _0803887E
- .align 2, 0
-_08038800: .4byte gEnemyParty
-_08038804:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038810 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x21
- b _0803887E
- .align 2, 0
-_08038810: .4byte gEnemyParty
-_08038814:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038820 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x2F
- b _0803887E
- .align 2, 0
-_08038820: .4byte gEnemyParty
-_08038824:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038830 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x30
- b _0803887E
- .align 2, 0
-_08038830: .4byte gEnemyParty
-_08038834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038840 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x32
- b _0803887E
- .align 2, 0
-_08038840: .4byte gEnemyParty
-_08038844:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038850 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x33
- b _0803887E
- .align 2, 0
-_08038850: .4byte gEnemyParty
-_08038854:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038860 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x34
- b _0803887E
- .align 2, 0
-_08038860: .4byte gEnemyParty
-_08038864:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038870 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x35
- b _0803887E
- .align 2, 0
-_08038870: .4byte gEnemyParty
-_08038874:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038898 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x36
-_0803887E:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_08038886:
- 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
-_08038898: .4byte gEnemyParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
-
- thumb_func_start sub_803889C
-sub_803889C: @ 803889C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803889C
-
- thumb_func_start sub_80388A8
-sub_80388A8: @ 80388A8
- push {r4,r5,lr}
- ldr r1, _080388CC @ =gUnknown_02023A60
- ldr r0, _080388D0 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _080388D8
- ldr r0, _080388D4 @ =gUnknown_02024A6A
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8038900
- b _080388F6
- .align 2, 0
-_080388CC: .4byte gUnknown_02023A60
-_080388D0: .4byte gUnknown_02024A60
-_080388D4: .4byte gUnknown_02024A6A
-_080388D8:
- ldrb r4, [r1]
- movs r5, 0
-_080388DC:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _080388EA
- adds r0, r5, 0
- bl sub_8038900
-_080388EA:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _080388DC
-_080388F6:
- bl dp01_tbl4_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80388A8
-
- thumb_func_start sub_8038900
-sub_8038900: @ 8038900
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r3, _08038938 @ =gUnknown_02024A60
- ldrb r0, [r3]
- lsls r0, 9
- ldr r2, _0803893C @ =gUnknown_02023A63
- adds r4, r0, r2
- adds r7, r4, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- adds r3, r2, 0
- cmp r0, 0x3B
- bls _0803892E
- bl _0803920C
-_0803892E:
- lsls r0, 2
- ldr r1, _08038940 @ =_08038944
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08038938: .4byte gUnknown_02024A60
-_0803893C: .4byte gUnknown_02023A63
-_08038940: .4byte _08038944
- .align 2, 0
-_08038944:
- .4byte _08038A34
- .4byte _08038BCC
- .4byte _08038BE8
- .4byte _08038C04
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C58
- .4byte _08038C78
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _08038CE0
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _0803920C
- .4byte _08038D08
- .4byte _08038D24
- .4byte _08038D40
- .4byte _08038D5C
- .4byte _08038D78
- .4byte _08038D94
- .4byte _08038DB0
- .4byte _08038DCC
- .4byte _08038DE8
- .4byte _08038E04
- .4byte _08038E20
- .4byte _08038E3C
- .4byte _08038E58
- .4byte _08038E74
- .4byte _08038E90
- .4byte _08038F04
- .4byte _08038F20
- .4byte _08038F3C
- .4byte _08038F58
- .4byte _08038F74
- .4byte _08038F90
- .4byte _08038FAC
- .4byte _08038FC8
- .4byte _08038FE4
- .4byte _08039000
- .4byte _0803901C
- .4byte _08039038
- .4byte _08039054
- .4byte _08039070
- .4byte _0803908C
- .4byte _080390A8
- .4byte _080390C4
- .4byte _080390E0
- .4byte _080390FC
- .4byte _08039118
- .4byte _08039134
- .4byte _08039150
- .4byte _0803916C
- .4byte _08039188
- .4byte _080391A4
- .4byte _080391C0
- .4byte _080391DC
- .4byte _080391F8
-_08038A34:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r7, 0
- bl SetMonData
- adds r2, r7, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r7
- mov r10, r0
- adds r0, r7, 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, r7, 0x2
- str r0, [sp, 0x4]
- adds r0, r7, 0x4
- str r0, [sp, 0x8]
- adds r0, r7, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r6, r7, 0
- adds r6, 0x24
- adds r4, r7, 0
- adds r4, 0xC
-_08038A9A:
- 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, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _08038A9A
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038BC8 @ =gEnemyParty
- 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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 _0803920C
- .align 2, 0
-_08038BC8: .4byte gEnemyParty
-_08038BCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038BE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xB
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038BE4: .4byte gEnemyParty
-_08038BE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0xC
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C00: .4byte gEnemyParty
-_08038C04:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r4
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08038C54 @ =gEnemyParty
- adds r7, r1, r0
- adds r6, r4, 0
- adds r6, 0x8
-_08038C1C:
- 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 _08038C1C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C54 @ =gEnemyParty
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038C54: .4byte gEnemyParty
-_08038C58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038C70 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038C74 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _08038CF6
- .align 2, 0
-_08038C70: .4byte gEnemyParty
-_08038C74: .4byte gUnknown_02023A60
-_08038C78:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038CDC @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x11
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038CDC: .4byte gEnemyParty
-_08038CE0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D00 @ =gEnemyParty
- adds r0, r1
- ldr r3, _08038D04 @ =gUnknown_02023A60
- ldrb r2, [r6]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_08038CF6:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D00: .4byte gEnemyParty
-_08038D04: .4byte gUnknown_02023A60
-_08038D08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D20 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D20: .4byte gEnemyParty
-_08038D24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D3C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x19
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D3C: .4byte gEnemyParty
-_08038D40:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D58 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D58: .4byte gEnemyParty
-_08038D5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D74 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D74: .4byte gEnemyParty
-_08038D78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038D90 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038D90: .4byte gEnemyParty
-_08038D94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DAC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DAC: .4byte gEnemyParty
-_08038DB0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DC8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DC8: .4byte gEnemyParty
-_08038DCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038DE4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x1F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038DE4: .4byte gEnemyParty
-_08038DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E00 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x20
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E00: .4byte gEnemyParty
-_08038E04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x22
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E1C: .4byte gEnemyParty
-_08038E20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x23
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E38: .4byte gEnemyParty
-_08038E3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x24
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E54: .4byte gEnemyParty
-_08038E58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x25
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E70: .4byte gEnemyParty
-_08038E74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038E8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x26
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038E8C: .4byte gEnemyParty
-_08038E90:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08038F00 @ =gEnemyParty
- adds r4, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- adds r0, r4, 0
- movs r1, 0x27
- str r3, [sp, 0x34]
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r6]
- lsls r2, 9
- ldr r3, [sp, 0x34]
- adds r0, r3, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08038F9E
- .align 2, 0
-_08038F00: .4byte gEnemyParty
-_08038F04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F1C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x27
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F1C: .4byte gEnemyParty
-_08038F20:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F38 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x28
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F38: .4byte gEnemyParty
-_08038F3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F54 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x29
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F54: .4byte gEnemyParty
-_08038F58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F70 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F70: .4byte gEnemyParty
-_08038F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038F8C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038F8C: .4byte gEnemyParty
-_08038F90:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FA8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
-_08038F9E:
- movs r1, 0x2C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FA8: .4byte gEnemyParty
-_08038FAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FC4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FC4: .4byte gEnemyParty
-_08038FC8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FE0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x9
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FE0: .4byte gEnemyParty
-_08038FE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08038FFC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x37
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08038FFC: .4byte gEnemyParty
-_08039000:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039018 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x38
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039018: .4byte gEnemyParty
-_0803901C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039034 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x39
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039034: .4byte gEnemyParty
-_08039038:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039050 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3A
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039050: .4byte gEnemyParty
-_08039054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803906C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3B
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803906C: .4byte gEnemyParty
-_08039070:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039088 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3C
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039088: .4byte gEnemyParty
-_0803908C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390A4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3D
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390A4: .4byte gEnemyParty
-_080390A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390C0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3E
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390C0: .4byte gEnemyParty
-_080390C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390DC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x3F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390DC: .4byte gEnemyParty
-_080390E0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080390F8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x16
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080390F8: .4byte gEnemyParty
-_080390FC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039114 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x17
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039114: .4byte gEnemyParty
-_08039118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039130 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x18
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039130: .4byte gEnemyParty
-_08039134:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803914C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x21
- bl SetMonData
- b _0803920C
- .align 2, 0
-_0803914C: .4byte gEnemyParty
-_08039150:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039168 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x2F
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039168: .4byte gEnemyParty
-_0803916C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08039184 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x30
- bl SetMonData
- b _0803920C
- .align 2, 0
-_08039184: .4byte gEnemyParty
-_08039188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391A0 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x32
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391A0: .4byte gEnemyParty
-_080391A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391BC @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x33
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391BC: .4byte gEnemyParty
-_080391C0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391D8 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x34
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391D8: .4byte gEnemyParty
-_080391DC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _080391F4 @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x35
- bl SetMonData
- b _0803920C
- .align 2, 0
-_080391F4: .4byte gEnemyParty
-_080391F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0803921C @ =gEnemyParty
- adds r0, r1
- ldrb r2, [r6]
- lsls r2, 9
- adds r2, r3
- movs r1, 0x36
- bl SetMonData
-_0803920C:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803921C: .4byte gEnemyParty
- thumb_func_end sub_8038900
-
- thumb_func_start sub_8039220
-sub_8039220: @ 8039220
- push {r4-r7,lr}
- ldr r1, _08039284 @ =gUnknown_02024A6A
- ldr r7, _08039288 @ =gUnknown_02024A60
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0803928C @ =gUnknown_02023A60
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _08039290 @ =gEnemyParty
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _08039278
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_08039256:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _08039256
-_08039278:
- bl dp01_tbl4_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08039284: .4byte gUnknown_02024A6A
-_08039288: .4byte gUnknown_02024A60
-_0803928C: .4byte gUnknown_02023A60
-_08039290: .4byte gEnemyParty
- thumb_func_end sub_8039220
-
- thumb_func_start sub_8039294
-sub_8039294: @ 8039294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r7, _080393BC @ =gUnknown_02024A6A
- ldr r6, _080393C0 @ =gUnknown_02024A60
- ldrb r0, [r6]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r1, 0x64
- mov r10, r1
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _080393C4 @ =gEnemyParty
- mov r9, r1
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r2, r10
- muls r2, r0
- adds r0, r2, 0
- add r0, r9
- bl sub_8031794
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _080393C8 @ =gUnknown_02024E8C
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080393CC @ =gUnknown_02024BE0
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _080393D0 @ =gSprites
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D4 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _080393D8 @ =gUnknown_02024E84
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldrb r4, [r6]
- lsls r0, r4, 1
- adds r0, r7
- ldrh r0, [r0]
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- add r0, r9
- movs r1, 0xB
- bl GetMonData
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_8032984
- ldr r1, _080393DC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080393E0 @ =sub_8037A74
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080393BC: .4byte gUnknown_02024A6A
-_080393C0: .4byte gUnknown_02024A60
-_080393C4: .4byte gEnemyParty
-_080393C8: .4byte gUnknown_02024E8C
-_080393CC: .4byte gUnknown_02024BE0
-_080393D0: .4byte gSprites
-_080393D4: .4byte 0x0000ff10
-_080393D8: .4byte gUnknown_02024E84
-_080393DC: .4byte gUnknown_03004330
-_080393E0: .4byte sub_8037A74
- thumb_func_end sub_8039294
-
- thumb_func_start sub_80393E4
-sub_80393E4: @ 80393E4
- push {r4,lr}
- ldr r1, _0803941C @ =gUnknown_02024A6A
- ldr r4, _08039420 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r2, r0, 1
- adds r2, r1
- ldr r3, _08039424 @ =gUnknown_02023A60
- lsls r0, 9
- adds r1, r3, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- lsls r1, r0, 9
- adds r3, 0x2
- adds r1, r3
- ldrb r1, [r1]
- bl sub_8039430
- ldr r1, _08039428 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803942C @ =sub_8037E30
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803941C: .4byte gUnknown_02024A6A
-_08039420: .4byte gUnknown_02024A60
-_08039424: .4byte gUnknown_02023A60
-_08039428: .4byte gUnknown_03004330
-_0803942C: .4byte sub_8037E30
- thumb_func_end sub_80393E4
-
- thumb_func_start sub_8039430
-sub_8039430: @ 8039430
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0803958C @ =gUnknown_02024A6A
- lsls r4, r6, 1
- adds r4, r0
- ldr r0, _08039590 @ =gUnknown_02023A60
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r4]
- ldrh r0, [r4]
- movs r1, 0x64
- mov r9, r1
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- ldr r5, _08039594 @ =gEnemyParty
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08039598 @ =sub_80312F0
- bl object_new_hidden_with_callback
- ldr r1, _0803959C @ =gUnknown_0300434C
- mov r10, r1
- add r10, r6
- mov r1, r10
- strb r0, [r1]
- ldrh r0, [r4]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- adds r0, r5
- adds r1, r6, 0
- bl sub_8031794
- 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, _080395A0 @ =gUnknown_02024E8C
- mov r9, 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, r9
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _080395A4 @ =gUnknown_02024BE0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _080395A8 @ =gSprites
- mov r0, r10
- 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, _080395AC @ =gUnknown_02024E84
- 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, _080395B0 @ =SpriteCallbackDummy
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFE
- bl sub_8046400
- mov r1, r10
- 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
-_0803958C: .4byte gUnknown_02024A6A
-_08039590: .4byte gUnknown_02023A60
-_08039594: .4byte gEnemyParty
-_08039598: .4byte sub_80312F0
-_0803959C: .4byte gUnknown_0300434C
-_080395A0: .4byte gUnknown_02024E8C
-_080395A4: .4byte gUnknown_02024BE0
-_080395A8: .4byte gSprites
-_080395AC: .4byte gUnknown_02024E84
-_080395B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8039430
-
- thumb_func_start sub_80395B4
-sub_80395B4: @ 80395B4
- push {r4-r6,lr}
- ldr r1, _080395E4 @ =gUnknown_02023A60
- ldr r6, _080395E8 @ =gUnknown_02024A60
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _080395F8
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _080395EC @ =0x02017810
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _080395F0 @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080395F4 @ =sub_8039648
- str r1, [r0]
- b _08039634
- .align 2, 0
-_080395E4: .4byte gUnknown_02023A60
-_080395E8: .4byte gUnknown_02024A60
-_080395EC: .4byte 0x02017810
-_080395F0: .4byte gUnknown_03004330
-_080395F4: .4byte sub_8039648
-_080395F8:
- ldr r5, _0803963C @ =gUnknown_02024BE0
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08039640 @ =gSprites
- 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
- ldrb r0, [r6]
- bl sub_8032A08
- ldr r1, _08039644 @ =gUnknown_03004340
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl4_exec_completed
-_08039634:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803963C: .4byte gUnknown_02024BE0
-_08039640: .4byte gSprites
-_08039644: .4byte gUnknown_03004340
- thumb_func_end sub_80395B4
-
- thumb_func_start sub_8039648
-sub_8039648: @ 8039648
- push {r4,r5,lr}
- ldr r5, _08039664 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _08039668 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0803966C
- cmp r0, 0x1
- beq _08039698
- b _080396C0
- .align 2, 0
-_08039664: .4byte gUnknown_02024A60
-_08039668: .4byte 0x02017810
-_0803966C:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039688
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039688:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _080396C0
-_08039698:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080396C0
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x2
- bl move_anim_start_t4
- ldr r1, _080396C8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080396CC @ =sub_8037BBC
- str r1, [r0]
-_080396C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080396C8: .4byte gUnknown_03004330
-_080396CC: .4byte sub_8037BBC
- thumb_func_end sub_8039648
-
- thumb_func_start sub_80396D0
-sub_80396D0: @ 80396D0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r0, _08039704 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08039714
- ldr r6, _08039708 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- movs r5, 0x10
- cmp r1, 0
- beq _080396F8
- ldr r5, _0803970C @ =0x0000fff0
-_080396F8:
- ldr r4, _08039710 @ =gLinkPlayers
- ldrb r0, [r6]
- bl sub_803FC34
- b _08039724
- .align 2, 0
-_08039704: .4byte gUnknown_020239F8
-_08039708: .4byte gUnknown_02024A60
-_0803970C: .4byte 0x0000fff0
-_08039710: .4byte gLinkPlayers
-_08039714:
- movs r5, 0
- ldr r4, _0803986C @ =gLinkPlayers
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_08039724:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x13]
- mov r9, r0
- ldr r0, _08039870 @ =gUnknown_02024A60
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r9
- bl sub_8031A6C
- mov r1, r8
- ldrb r0, [r1]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- bl GetMonSpriteTemplate_803C5A0
- ldr r6, _08039874 @ =gUnknown_02024E8C
- lsls r5, 16
- movs r2, 0xB0
- lsls r2, 16
- adds r5, r2
- asrs r5, 16
- ldr r1, _08039878 @ =gTrainerFrontPicCoords
- mov r2, r9
- lsls r0, r2, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 14
- adds r4, r0
- asrs r4, 16
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0803987C @ =gUnknown_02024BE0
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _08039880 @ =gSprites
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08039884 @ =0x0000ff10
- strh r1, [r0, 0x24]
- ldrb r0, [r2]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
- mov r1, r9
- lsls r6, r1, 3
- adds r0, r6, r0
- ldrh r0, [r0, 0x4]
- bl IndexOfSpritePaletteTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r4
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x4]
- lsls r0, 22
- lsrs r0, 22
- strh r0, [r1, 0x38]
- ldr r0, _0803988C @ =gTrainerFrontPicTable
- adds r6, r0
- ldrh r0, [r6, 0x6]
- bl GetSpriteTileStartByTag
- mov r2, r8
- ldrb r1, [r2]
- adds r1, r5
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldr r2, _08039890 @ =0x000003ff
- ands r2, r0
- ldrh r3, [r1, 0x4]
- ldr r0, _08039894 @ =0xfffffc00
- ands r0, r3
- orrs r0, r2
- strh r0, [r1, 0x4]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r2, r9
- strh r2, [r0, 0x6]
- mov r1, r8
- ldrb r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _08039898 @ =sub_80313A0
- str r1, [r0]
- ldr r1, _0803989C @ =gUnknown_03004330
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080398A0 @ =sub_803757C
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803986C: .4byte gLinkPlayers
-_08039870: .4byte gUnknown_02024A60
-_08039874: .4byte gUnknown_02024E8C
-_08039878: .4byte gTrainerFrontPicCoords
-_0803987C: .4byte gUnknown_02024BE0
-_08039880: .4byte gSprites
-_08039884: .4byte 0x0000ff10
-_08039888: .4byte gTrainerFrontPicPaletteTable
-_0803988C: .4byte gTrainerFrontPicTable
-_08039890: .4byte 0x000003ff
-_08039894: .4byte 0xfffffc00
-_08039898: .4byte sub_80313A0
-_0803989C: .4byte gUnknown_03004330
-_080398A0: .4byte sub_803757C
- thumb_func_end sub_80396D0
-
- thumb_func_start sub_80398A4
-sub_80398A4: @ 80398A4
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_80398A4
-
- thumb_func_start sub_80398B0
-sub_80398B0: @ 80398B0
- push {r4-r6,lr}
- ldr r6, _08039940 @ =gUnknown_02024BE0
- ldr r4, _08039944 @ =gUnknown_02024A60
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08039948 @ =gSprites
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803994C @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08039950 @ =SpriteCallbackDummy
- bl oamt_set_x3A_32
- ldr r1, _08039954 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039958 @ =sub_80375B4
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039940: .4byte gUnknown_02024BE0
-_08039944: .4byte gUnknown_02024A60
-_08039948: .4byte gSprites
-_0803994C: .4byte sub_8078B34
-_08039950: .4byte SpriteCallbackDummy
-_08039954: .4byte gUnknown_03004330
-_08039958: .4byte sub_80375B4
- thumb_func_end sub_80398B0
-
- thumb_func_start sub_803995C
-sub_803995C: @ 803995C
- push {r4,r5,lr}
- ldr r5, _080399A0 @ =gUnknown_02024A60
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _080399A4 @ =0x02017810
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _080399A8
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0803998E
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0803998E:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _080399E4
- .align 2, 0
-_080399A0: .4byte gUnknown_02024A60
-_080399A4: .4byte 0x02017810
-_080399A8:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _080399E4
- strb r0, [r3, 0x4]
- movs r0, 0x10
- movs r1, 0x3F
- bl PlaySE12WithPanning
- ldr r2, _080399EC @ =gSprites
- ldr r1, _080399F0 @ =gUnknown_02024BE0
- ldrb r0, [r5]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _080399F4 @ =sub_8010384
- str r1, [r0]
- ldr r1, _080399F8 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _080399FC @ =sub_8037B78
- str r1, [r0]
-_080399E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080399EC: .4byte gSprites
-_080399F0: .4byte gUnknown_02024BE0
-_080399F4: .4byte sub_8010384
-_080399F8: .4byte gUnknown_03004330
-_080399FC: .4byte sub_8037B78
- thumb_func_end sub_803995C
-
- thumb_func_start sub_8039A00
-sub_8039A00: @ 8039A00
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A00
-
- thumb_func_start sub_8039A0C
-sub_8039A0C: @ 8039A0C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A0C
-
- thumb_func_start sub_8039A18
-sub_8039A18: @ 8039A18
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A18
-
- thumb_func_start sub_8039A24
-sub_8039A24: @ 8039A24
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039A24
-
- thumb_func_start sub_8039A30
-sub_8039A30: @ 8039A30
- push {r4-r6,lr}
- ldr r6, _08039B14 @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _08039A42
- b _08039B52
-_08039A42:
- ldr r0, _08039B18 @ =gUnknown_02023A60
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08039B1C @ =gUnknown_0202F7C4
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _08039B20 @ =gUnknown_0202F7BC
- 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, _08039B24 @ =gUnknown_0202F7B8
- 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, _08039B28 @ =gUnknown_0202F7BE
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08039B2C @ =gUnknown_0202F7C0
- 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, _08039B30 @ =gUnknown_0202F7B4
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _08039B34 @ =gUnknown_02024E70
- 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 _08039B38
- bl dp01_tbl4_exec_completed
- b _08039B52
- .align 2, 0
-_08039B14: .4byte gUnknown_02024A60
-_08039B18: .4byte gUnknown_02023A60
-_08039B1C: .4byte gUnknown_0202F7C4
-_08039B20: .4byte gUnknown_0202F7BC
-_08039B24: .4byte gUnknown_0202F7B8
-_08039B28: .4byte gUnknown_0202F7BE
-_08039B2C: .4byte gUnknown_0202F7C0
-_08039B30: .4byte gUnknown_0202F7B4
-_08039B34: .4byte gUnknown_02024E70
-_08039B38:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039B58 @ =0x02017810
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _08039B5C @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039B60 @ =sub_8039B64
- str r1, [r0]
-_08039B52:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08039B58: .4byte 0x02017810
-_08039B5C: .4byte gUnknown_03004330
-_08039B60: .4byte sub_8039B64
- thumb_func_end sub_8039A30
-
- thumb_func_start sub_8039B64
-sub_8039B64: @ 8039B64
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _08039BA8 @ =gUnknown_02023A60
- ldr r5, _08039BAC @ =gUnknown_02024A60
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08039BB0 @ =0x02017810
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08039BF2
- cmp r2, 0x1
- bgt _08039BB4
- cmp r2, 0
- beq _08039BBE
- b _08039CBC
- .align 2, 0
-_08039BA8: .4byte gUnknown_02023A60
-_08039BAC: .4byte gUnknown_02024A60
-_08039BB0: .4byte 0x02017810
-_08039BB4:
- cmp r2, 0x2
- beq _08039C18
- cmp r2, 0x3
- beq _08039C84
- b _08039CBC
-_08039BBE:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _08039BE2
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08039BE2:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08039CBC
-_08039BF2:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08039CBC
- 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 _08039CBC
-_08039C18:
- ldr r0, _08039C74 @ =gUnknown_0202F7AC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08039C78 @ =gUnknown_0202F7B1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08039CBC
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08039C60
- cmp r7, 0x1
- bhi _08039C60
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_08039C60:
- ldr r0, _08039C7C @ =gUnknown_02024A60
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08039C80 @ =0x02017810
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08039CBC
- .align 2, 0
-_08039C74: .4byte gUnknown_0202F7AC
-_08039C78: .4byte gUnknown_0202F7B1
-_08039C7C: .4byte gUnknown_02024A60
-_08039C80: .4byte 0x02017810
-_08039C84:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08039CBC
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl4_exec_completed
-_08039CBC:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8039B64
-
- thumb_func_start sub_8039CC8
-sub_8039CC8: @ 8039CC8
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08039D0C @ =gUnknown_030042A4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08039D10 @ =gUnknown_030042A0
- strh r1, [r0]
- ldr r4, _08039D14 @ =gUnknown_02024A60
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _08039D18 @ =gUnknown_02023A62
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _08039D1C @ =gUnknown_03004210
- ldr r1, _08039D20 @ =gUnknown_020238CC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08039D24 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039D28 @ =sub_8037C2C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039D0C: .4byte gUnknown_030042A4
-_08039D10: .4byte gUnknown_030042A0
-_08039D14: .4byte gUnknown_02024A60
-_08039D18: .4byte gUnknown_02023A62
-_08039D1C: .4byte gUnknown_03004210
-_08039D20: .4byte gUnknown_020238CC
-_08039D24: .4byte gUnknown_03004330
-_08039D28: .4byte sub_8037C2C
- thumb_func_end sub_8039CC8
-
- thumb_func_start sub_8039D2C
-sub_8039D2C: @ 8039D2C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D2C
-
- thumb_func_start sub_8039D38
-sub_8039D38: @ 8039D38
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D38
-
- thumb_func_start sub_8039D44
-sub_8039D44: @ 8039D44
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D44
-
- thumb_func_start sub_8039D50
-sub_8039D50: @ 8039D50
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D50
-
- thumb_func_start sub_8039D5C
-sub_8039D5C: @ 8039D5C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D5C
-
- thumb_func_start sub_8039D68
-sub_8039D68: @ 8039D68
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D68
-
- thumb_func_start sub_8039D74
-sub_8039D74: @ 8039D74
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039D74
-
- thumb_func_start sub_8039D80
-sub_8039D80: @ 8039D80
- 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, _08039DF8 @ =gUnknown_02023A60
- ldr r0, _08039DFC @ =gUnknown_02024A60
- 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, _08039E00 @ =0x00007fff
- cmp r7, r0
- beq _08039E10
- ldr r6, _08039E04 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _08039E08 @ =gEnemyParty
- 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, _08039E0C @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08039E3A
- .align 2, 0
-_08039DF8: .4byte gUnknown_02023A60
-_08039DFC: .4byte gUnknown_02024A60
-_08039E00: .4byte 0x00007fff
-_08039E04: .4byte gUnknown_02024A6A
-_08039E08: .4byte gEnemyParty
-_08039E0C: .4byte gUnknown_03004340
-_08039E10:
- ldr r1, _08039E58 @ =gUnknown_02024A6A
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08039E5C @ =gEnemyParty
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _08039E60 @ =gUnknown_03004340
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08039E3A:
- ldr r1, _08039E64 @ =gUnknown_03004330
- ldr r0, _08039E68 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039E6C @ =sub_8037B24
- 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
-_08039E58: .4byte gUnknown_02024A6A
-_08039E5C: .4byte gEnemyParty
-_08039E60: .4byte gUnknown_03004340
-_08039E64: .4byte gUnknown_03004330
-_08039E68: .4byte gUnknown_02024A60
-_08039E6C: .4byte sub_8037B24
- thumb_func_end sub_8039D80
-
- thumb_func_start sub_8039E70
-sub_8039E70: @ 8039E70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039E70
-
- thumb_func_start sub_8039E7C
-sub_8039E7C: @ 8039E7C
- push {r4,lr}
- ldr r4, _08039ED4 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039ECC
- ldr r0, _08039ED8 @ =gUnknown_03004340
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _08039EDC @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08039EE0 @ =gEnemyParty
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _08039EE4 @ =0x02017810
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _08039EE8 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039EEC @ =sub_8037FAC
- str r1, [r0]
-_08039ECC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08039ED4: .4byte gUnknown_02024A60
-_08039ED8: .4byte gUnknown_03004340
-_08039EDC: .4byte gUnknown_02024A6A
-_08039EE0: .4byte gEnemyParty
-_08039EE4: .4byte 0x02017810
-_08039EE8: .4byte gUnknown_03004330
-_08039EEC: .4byte sub_8037FAC
- thumb_func_end sub_8039E7C
-
- thumb_func_start sub_8039EF0
-sub_8039EF0: @ 8039EF0
- push {r4,r5,lr}
- ldr r5, _08039F48 @ =gUnknown_02024A60
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08039F40
- ldr r4, _08039F4C @ =gUnknown_02023A60
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _08039F50 @ =gUnknown_03004330
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08039F54 @ =sub_8037FAC
- str r1, [r0]
-_08039F40:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08039F48: .4byte gUnknown_02024A60
-_08039F4C: .4byte gUnknown_02023A60
-_08039F50: .4byte gUnknown_03004330
-_08039F54: .4byte sub_8037FAC
- thumb_func_end sub_8039EF0
-
- thumb_func_start sub_8039F58
-sub_8039F58: @ 8039F58
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F58
-
- thumb_func_start sub_8039F64
-sub_8039F64: @ 8039F64
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F64
-
- thumb_func_start sub_8039F70
-sub_8039F70: @ 8039F70
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F70
-
- thumb_func_start sub_8039F7C
-sub_8039F7C: @ 8039F7C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F7C
-
- thumb_func_start sub_8039F88
-sub_8039F88: @ 8039F88
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F88
-
- thumb_func_start sub_8039F94
-sub_8039F94: @ 8039F94
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039F94
-
- thumb_func_start sub_8039FA0
-sub_8039FA0: @ 8039FA0
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FA0
-
- thumb_func_start sub_8039FAC
-sub_8039FAC: @ 8039FAC
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FAC
-
- thumb_func_start sub_8039FB8
-sub_8039FB8: @ 8039FB8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8039FB8
-
- thumb_func_start sub_8039FC4
-sub_8039FC4: @ 8039FC4
- push {lr}
- ldr r2, _08039FDC @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08039FDC: .4byte gUnknown_020238C8
- thumb_func_end sub_8039FC4
-
- thumb_func_start sub_8039FE0
-sub_8039FE0: @ 8039FE0
- push {lr}
- ldr r3, _0803A00C @ =gUnknown_020238C8
- ldr r1, _0803A010 @ =gUnknown_02023A60
- ldr r0, _0803A014 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A00C: .4byte gUnknown_020238C8
-_0803A010: .4byte gUnknown_02023A60
-_0803A014: .4byte gUnknown_02024A60
- thumb_func_end sub_8039FE0
-
- thumb_func_start sub_803A018
-sub_803A018: @ 803A018
- push {lr}
- ldr r2, _0803A02C @ =gUnknown_020238C8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A02C: .4byte gUnknown_020238C8
- thumb_func_end sub_803A018
-
- thumb_func_start sub_803A030
-sub_803A030: @ 803A030
- push {lr}
- ldr r3, _0803A054 @ =gUnknown_020238C8
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A054: .4byte gUnknown_020238C8
- thumb_func_end sub_803A030
-
- thumb_func_start dp01t_29_4_blink
-dp01t_29_4_blink: @ 803A058
- push {r4,lr}
- ldr r3, _0803A080 @ =gSprites
- ldr r2, _0803A084 @ =gUnknown_02024BE0
- ldr r4, _0803A088 @ =gUnknown_02024A60
- 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 _0803A08C
- bl dp01_tbl4_exec_completed
- b _0803A0B6
- .align 2, 0
-_0803A080: .4byte gSprites
-_0803A084: .4byte gUnknown_02024BE0
-_0803A088: .4byte gUnknown_02024A60
-_0803A08C:
- ldr r1, _0803A0BC @ =gUnknown_02024E6D
- 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, _0803A0C0 @ =gUnknown_03004330
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
- str r1, [r0]
-_0803A0B6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A0BC: .4byte gUnknown_02024E6D
-_0803A0C0: .4byte gUnknown_03004330
-_0803A0C4: .4byte dp01t_0F_4_move_anim
- thumb_func_end dp01t_29_4_blink
-
- thumb_func_start sub_803A0C8
-sub_803A0C8: @ 803A0C8
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A0C8
-
- thumb_func_start sub_803A0D4
-sub_803A0D4: @ 803A0D4
- push {r4,lr}
- ldr r4, _0803A110 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0803A0E8
- movs r3, 0xC0
-_0803A0E8:
- ldr r2, _0803A114 @ =gUnknown_02023A60
- 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_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A110: .4byte gUnknown_02024A60
-_0803A114: .4byte gUnknown_02023A60
- thumb_func_end sub_803A0D4
-
- thumb_func_start sub_803A118
-sub_803A118: @ 803A118
- push {lr}
- ldr r2, _0803A140 @ =gUnknown_02023A60
- ldr r0, _0803A144 @ =gUnknown_02024A60
- 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_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A140: .4byte gUnknown_02023A60
-_0803A144: .4byte gUnknown_02024A60
- thumb_func_end sub_803A118
-
- thumb_func_start sub_803A148
-sub_803A148: @ 803A148
- push {lr}
- ldr r1, _0803A178 @ =gUnknown_02024A6A
- ldr r0, _0803A17C @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0803A180 @ =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A178: .4byte gUnknown_02024A6A
-_0803A17C: .4byte gUnknown_02024A60
-_0803A180: .4byte gEnemyParty
- thumb_func_end sub_803A148
-
- thumb_func_start dp01t_2E_4_battle_intro
-dp01t_2E_4_battle_intro: @ 803A184
- push {lr}
- ldr r1, _0803A1AC @ =gUnknown_02023A60
- ldr r0, _0803A1B0 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0803A1B4 @ =gUnknown_02024DE8
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A1AC: .4byte gUnknown_02023A60
-_0803A1B0: .4byte gUnknown_02024A60
-_0803A1B4: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_4_battle_intro
-
- thumb_func_start sub_803A1B8
-sub_803A1B8: @ 803A1B8
- push {r4-r6,lr}
- ldr r5, _0803A294 @ =gUnknown_02024BE0
- ldr r6, _0803A298 @ =gUnknown_02024A60
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A29C @ =gSprites
- adds r0, r4
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8C
- lsls r1, 1
- strh r1, [r0, 0x32]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0803A2A0 @ =sub_8078B34
- str r1, [r0]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0803A2A4 @ =sub_803A3A8
- bl oamt_set_x3A_32
- ldr r0, _0803A2A8 @ =sub_803A2C4
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0803A2AC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r6]
- strh r0, [r1, 0x8]
- ldrb r3, [r6]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _0803A2B0 @ =0x02017810
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A276
- ldr r0, _0803A2B4 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _0803A2B8 @ =sub_8044CA0
- str r1, [r0]
-_0803A276:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0803A2BC @ =gUnknown_03004330
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A2C0 @ =nullsub_47
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A294: .4byte gUnknown_02024BE0
-_0803A298: .4byte gUnknown_02024A60
-_0803A29C: .4byte gSprites
-_0803A2A0: .4byte sub_8078B34
-_0803A2A4: .4byte sub_803A3A8
-_0803A2A8: .4byte sub_803A2C4
-_0803A2AC: .4byte gTasks
-_0803A2B0: .4byte 0x02017810
-_0803A2B4: .4byte gUnknown_02024E68
-_0803A2B8: .4byte sub_8044CA0
-_0803A2BC: .4byte gUnknown_03004330
-_0803A2C0: .4byte nullsub_47
- thumb_func_end sub_803A1B8
-
- thumb_func_start sub_803A2C4
-sub_803A2C4: @ 803A2C4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r7, _0803A31C @ =gUnknown_02024A60
- ldrb r0, [r7]
- mov r9, r0
- ldr r1, _0803A320 @ =gTasks
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0803A2FE
- ldr r0, _0803A324 @ =gUnknown_020239F8
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0803A330
-_0803A2FE:
- ldr r0, _0803A328 @ =gUnknown_02023A60
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _0803A32C @ =gUnknown_02024A6A
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- b _0803A370
- .align 2, 0
-_0803A31C: .4byte gUnknown_02024A60
-_0803A320: .4byte gTasks
-_0803A324: .4byte gUnknown_020239F8
-_0803A328: .4byte gUnknown_02023A60
-_0803A32C: .4byte gUnknown_02024A6A
-_0803A330:
- ldr r4, _0803A394 @ =gUnknown_02023A60
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r6, _0803A398 @ =gUnknown_02024A6A
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- movs r5, 0x2
- eors r0, r5
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_8039430
- ldrb r0, [r7]
- eors r0, r5
- strb r0, [r7]
-_0803A370:
- ldr r1, _0803A39C @ =gUnknown_03004330
- ldr r2, _0803A3A0 @ =gUnknown_02024A60
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A3A4 @ =sub_8037840
- str r1, [r0]
- mov r0, r9
- strb r0, [r2]
- mov r0, r8
- bl DestroyTask
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A394: .4byte gUnknown_02023A60
-_0803A398: .4byte gUnknown_02024A6A
-_0803A39C: .4byte gUnknown_03004330
-_0803A3A0: .4byte gUnknown_02024A60
-_0803A3A4: .4byte sub_8037840
- thumb_func_end sub_803A2C4
-
- thumb_func_start sub_803A3A8
-sub_803A3A8: @ 803A3A8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x6]
- bl sub_8031B74
- ldrh r0, [r4, 0x38]
- ldr r1, _0803A3D4 @ =0x000003ff
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _0803A3D8 @ =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A3D4: .4byte 0x000003ff
-_0803A3D8: .4byte 0xfffffc00
- thumb_func_end sub_803A3A8
-
- thumb_func_start sub_803A3DC
-sub_803A3DC: @ 803A3DC
- push {r4-r6,lr}
- ldr r1, _0803A404 @ =gUnknown_02023A60
- ldr r0, _0803A408 @ =gUnknown_02024A60
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A40C
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0803A40C
- bl dp01_tbl4_exec_completed
- b _0803A4C6
- .align 2, 0
-_0803A404: .4byte gUnknown_02023A60
-_0803A408: .4byte gUnknown_02024A60
-_0803A40C:
- ldr r3, _0803A45C @ =gUnknown_02024A60
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r4, _0803A460 @ =0x02017810
- adds r0, r4
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldr r1, _0803A464 @ =gUnknown_02023A60
- ldrb r2, [r3]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r6, r3, 0
- cmp r0, 0
- beq _0803A470
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r4
- ldrb r2, [r3, 0x1]
- lsls r1, r2, 26
- lsrs r0, r1, 27
- cmp r0, 0x1
- bhi _0803A468
- adds r0, 0x1
- movs r1, 0x1F
- ands r0, r1
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- b _0803A4C6
- .align 2, 0
-_0803A45C: .4byte gUnknown_02024A60
-_0803A460: .4byte 0x02017810
-_0803A464: .4byte gUnknown_02023A60
-_0803A468:
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- strb r0, [r3, 0x1]
-_0803A470:
- adds r5, r6, 0
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _0803A4CC @ =gUnknown_02023A64
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _0803A4D0 @ =gUnknown_02024E68
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A4D4 @ =0x02017810
- adds r0, r3
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0803A4BA
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_0803A4BA:
- ldr r0, _0803A4D8 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A4DC @ =sub_803A4E0
- str r0, [r1]
-_0803A4C6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A4CC: .4byte gUnknown_02023A64
-_0803A4D0: .4byte gUnknown_02024E68
-_0803A4D4: .4byte 0x02017810
-_0803A4D8: .4byte gUnknown_03004330
-_0803A4DC: .4byte sub_803A4E0
- thumb_func_end sub_803A3DC
-
- thumb_func_start sub_803A4E0
-sub_803A4E0: @ 803A4E0
- push {r4,lr}
- ldr r4, _0803A518 @ =gUnknown_02024A60
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0803A51C @ =0x02017810
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _0803A510
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl4_exec_completed
-_0803A510:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A518: .4byte gUnknown_02024A60
-_0803A51C: .4byte 0x02017810
- thumb_func_end sub_803A4E0
-
- thumb_func_start sub_803A520
-sub_803A520: @ 803A520
- push {lr}
- ldr r0, _0803A558 @ =gUnknown_02024A60
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0803A55C @ =0x02017810
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0803A54E
- ldr r2, _0803A560 @ =gTasks
- ldr r0, _0803A564 @ =gUnknown_02024E68
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0803A568 @ =sub_8044CA0
- str r1, [r0]
-_0803A54E:
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0803A558: .4byte gUnknown_02024A60
-_0803A55C: .4byte 0x02017810
-_0803A560: .4byte gTasks
-_0803A564: .4byte gUnknown_02024E68
-_0803A568: .4byte sub_8044CA0
- thumb_func_end sub_803A520
-
- thumb_func_start sub_803A56C
-sub_803A56C: @ 803A56C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A56C
-
- thumb_func_start sub_803A578
-sub_803A578: @ 803A578
- push {r4,lr}
- ldr r4, _0803A5C8 @ =gUnknown_02024A60
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _0803A5BE
- ldr r3, _0803A5CC @ =gSprites
- ldr r0, _0803A5D0 @ =gUnknown_02024BE0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _0803A5D4 @ =gUnknown_02023A60
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_0803A5BE:
- bl dp01_tbl4_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A5C8: .4byte gUnknown_02024A60
-_0803A5CC: .4byte gSprites
-_0803A5D0: .4byte gUnknown_02024BE0
-_0803A5D4: .4byte gUnknown_02023A60
- thumb_func_end sub_803A578
-
- thumb_func_start bx_exec_buffer_A_ch0_tbl4
-bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _0803A61C @ =gUnknown_02024A60
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0803A630
- ldr r5, _0803A620 @ =gUnknown_02023A60
- 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 _0803A624
- bl dp01_tbl4_exec_completed
- b _0803A630
- .align 2, 0
-_0803A61C: .4byte gUnknown_02024A60
-_0803A620: .4byte gUnknown_02023A60
-_0803A624:
- ldr r0, _0803A638 @ =gUnknown_03004330
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0803A63C @ =sub_8037FD8
- str r0, [r1]
-_0803A630:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0803A638: .4byte gUnknown_03004330
-_0803A63C: .4byte sub_8037FD8
- thumb_func_end bx_exec_buffer_A_ch0_tbl4
-
- thumb_func_start sub_803A640
-sub_803A640: @ 803A640
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A640
-
- thumb_func_start sub_803A64C
-sub_803A64C: @ 803A64C
- push {lr}
- bl dp01_tbl4_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_803A64C
-
- thumb_func_start sub_803A658
-sub_803A658: @ 803A658
- push {lr}
- ldr r1, _0803A674 @ =gUnknown_02023A60
- ldr r0, _0803A678 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0x3
- bne _0803A680
- ldr r0, _0803A67C @ =gUnknown_02024D26
- strb r2, [r0]
- b _0803A688
- .align 2, 0
-_0803A674: .4byte gUnknown_02023A60
-_0803A678: .4byte gUnknown_02024A60
-_0803A67C: .4byte gUnknown_02024D26
-_0803A680:
- ldr r0, _0803A6AC @ =gUnknown_02024D26
- movs r1, 0x3
- eors r1, r2
- strb r1, [r0]
-_0803A688:
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl4_exec_completed
- ldr r1, _0803A6B0 @ =gUnknown_03004330
- ldr r0, _0803A6B4 @ =gUnknown_02024A60
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0803A6B8 @ =sub_8037F34
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0803A6AC: .4byte gUnknown_02024D26
-_0803A6B0: .4byte gUnknown_03004330
-_0803A6B4: .4byte gUnknown_02024A60
-_0803A6B8: .4byte sub_8037F34
- thumb_func_end sub_803A658
-
- thumb_func_start nullsub_48
-nullsub_48: @ 803A6BC
- bx lr
- thumb_func_end nullsub_48
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s
new file mode 100644
index 000000000..65b0279ed
--- /dev/null
+++ b/asm/rom_800D42C.s
@@ -0,0 +1,88931 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start unref_sub_800D42C
+unref_sub_800D42C: @ 800D42C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ mov r9, r0
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ adds r5, r3, 0
+ movs r0, 0x1
+ mov r1, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0800D44C
+ b _0800D5E4
+_0800D44C:
+ asrs r0, r1, 1
+ adds r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ movs r0, 0
+ ldr r2, [sp]
+ cmp r0, r2
+ blt _0800D460
+ b _0800D674
+_0800D460:
+ movs r4, 0x8
+ subs r1, r4, r1
+ str r1, [sp, 0x10]
+_0800D466:
+ movs r7, 0
+ adds r0, 0x1
+ str r0, [sp, 0x14]
+ ldr r0, [sp, 0x10]
+ cmp r7, r0
+ bge _0800D4E2
+ ldr r1, [sp, 0x8]
+ lsls r1, 8
+ str r1, [sp, 0x18]
+ movs r2, 0
+ mov r10, r2
+ mov r0, r9
+ movs r4, 0x8
+ subs r0, r4, r0
+ str r0, [sp, 0xC]
+_0800D484:
+ movs r3, 0
+ asrs r0, r7, 1
+ adds r1, r7, 0
+ movs r2, 0x1
+ ands r1, r2
+ str r1, [sp, 0x20]
+ lsls r0, 8
+ mov r8, r0
+ mov r12, r5
+_0800D496:
+ lsls r1, r3, 5
+ ldr r4, [sp, 0x18]
+ adds r0, r5, r4
+ adds r0, r1
+ mov r1, r8
+ adds r2, r0, r1
+ mov r1, r12
+ add r1, r8
+ movs r6, 0xF
+_0800D4A8:
+ ldr r4, [sp, 0x20]
+ cmp r4, 0
+ bne _0800D4B8
+ strb r4, [r1]
+ add r4, sp, 0x20
+ ldrb r4, [r4]
+ strb r4, [r2, 0x10]
+ b _0800D4C6
+_0800D4B8:
+ mov r0, r10
+ strb r0, [r1, 0x10]
+ movs r4, 0x80
+ lsls r4, 1
+ adds r4, r2, r4
+ str r4, [sp, 0x1C]
+ strb r0, [r4]
+_0800D4C6:
+ adds r2, 0x1
+ adds r1, 0x1
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0800D4A8
+ movs r0, 0x20
+ add r12, r0
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _0800D496
+ adds r7, 0x1
+ ldr r1, [sp, 0xC]
+ cmp r7, r1
+ blt _0800D484
+_0800D4E2:
+ movs r7, 0
+ movs r2, 0
+_0800D4E6:
+ movs r6, 0
+ adds r4, r7, 0x1
+ mov r8, r4
+ lsls r4, r7, 5
+_0800D4EE:
+ adds r0, r6, 0x1
+ mov r10, r0
+ lsls r1, r6, 8
+ adds r0, r1, 0
+ adds r0, 0xC0
+ adds r0, r5, r0
+ adds r0, r4
+ adds r1, r5, r1
+ adds r1, r4
+ movs r3, 0x1F
+_0800D502:
+ strb r2, [r1]
+ strb r2, [r0]
+ adds r0, 0x1
+ adds r1, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D502
+ mov r6, r10
+ cmp r6, 0x7
+ ble _0800D4EE
+ mov r7, r8
+ cmp r7, 0x1
+ ble _0800D4E6
+ mov r1, r9
+ cmp r1, 0x5
+ bne _0800D528
+ movs r2, 0x90
+ lsls r2, 1
+ adds r5, r2
+_0800D528:
+ movs r7, 0
+ cmp r7, r9
+ bge _0800D5BE
+_0800D52E:
+ movs r3, 0
+ adds r7, 0x1
+ mov r8, r7
+ cmp r3, r9
+ bge _0800D59E
+_0800D538:
+ adds r3, 0x1
+ mov r10, r3
+ ldr r4, [sp, 0x4]
+ adds r4, 0x20
+ adds r7, r5, 0
+ adds r7, 0x20
+ movs r0, 0x12
+ adds r0, r5
+ mov r12, r0
+ ldr r2, [sp, 0x4]
+ adds r3, r5, 0
+ movs r6, 0x3
+_0800D550:
+ ldrb r0, [r2]
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r0, [r2, 0x1]
+ strb r0, [r1, 0x1]
+ ldrb r0, [r2, 0x2]
+ strb r0, [r1, 0x1E]
+ ldrb r0, [r2, 0x3]
+ strb r0, [r1, 0x1F]
+ movs r0, 0x81
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x10]
+ strb r0, [r1]
+ ldr r0, _0800D5A8 @ =0x00000103
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x11]
+ strb r0, [r1]
+ movs r0, 0x90
+ lsls r0, 1
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x12]
+ strb r0, [r1]
+ ldr r0, _0800D5AC @ =0x00000121
+ adds r1, r3, r0
+ ldrb r0, [r2, 0x13]
+ strb r0, [r1]
+ movs r1, 0x4
+ add r12, r1
+ adds r2, 0x4
+ adds r3, 0x4
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0800D550
+ str r4, [sp, 0x4]
+ adds r5, r7, 0
+ mov r3, r10
+ cmp r3, r9
+ blt _0800D538
+_0800D59E:
+ mov r2, r9
+ cmp r2, 0x7
+ bne _0800D5B0
+ adds r5, 0x20
+ b _0800D5B8
+ .align 2, 0
+_0800D5A8: .4byte 0x00000103
+_0800D5AC: .4byte 0x00000121
+_0800D5B0:
+ mov r4, r9
+ cmp r4, 0x5
+ bne _0800D5B8
+ adds r5, 0x60
+_0800D5B8:
+ mov r7, r8
+ cmp r7, r9
+ blt _0800D52E
+_0800D5BE:
+ mov r0, r9
+ cmp r0, 0x7
+ bne _0800D5CC
+ movs r1, 0x80
+ lsls r1, 1
+ adds r5, r1
+ b _0800D5D8
+_0800D5CC:
+ mov r2, r9
+ cmp r2, 0x5
+ bne _0800D5D8
+ movs r4, 0xF0
+ lsls r4, 1
+ adds r5, r4
+_0800D5D8:
+ ldr r0, [sp, 0x14]
+ ldr r1, [sp]
+ cmp r0, r1
+ bge _0800D5E2
+ b _0800D466
+_0800D5E2:
+ b _0800D674
+_0800D5E4:
+ movs r6, 0
+ ldr r2, [sp]
+ cmp r6, r2
+ bge _0800D674
+_0800D5EC:
+ adds r6, 0x1
+ mov r10, r6
+ mov r4, r9
+ cmp r4, 0x6
+ bne _0800D604
+ movs r0, 0
+ movs r3, 0xFF
+_0800D5FA:
+ strb r0, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D5FA
+_0800D604:
+ movs r7, 0
+ cmp r7, r9
+ bge _0800D658
+_0800D60A:
+ adds r7, 0x1
+ mov r8, r7
+ mov r1, r9
+ lsls r0, r1, 5
+ cmp r1, 0x6
+ bne _0800D624
+ movs r1, 0
+ movs r3, 0x1F
+_0800D61A:
+ strb r1, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D61A
+_0800D624:
+ adds r1, r0, 0
+ cmp r1, 0
+ ble _0800D63E
+ adds r3, r1, 0
+_0800D62C:
+ ldr r2, [sp, 0x4]
+ ldrb r0, [r2]
+ strb r0, [r5]
+ adds r2, 0x1
+ str r2, [sp, 0x4]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bne _0800D62C
+_0800D63E:
+ mov r4, r9
+ cmp r4, 0x6
+ bne _0800D652
+ movs r0, 0
+ movs r3, 0x1F
+_0800D648:
+ strb r0, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D648
+_0800D652:
+ mov r7, r8
+ cmp r7, r9
+ blt _0800D60A
+_0800D658:
+ mov r0, r9
+ cmp r0, 0x6
+ bne _0800D66C
+ movs r0, 0
+ movs r3, 0xFF
+_0800D662:
+ strb r0, [r5]
+ adds r5, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0800D662
+_0800D66C:
+ mov r6, r10
+ ldr r1, [sp]
+ cmp r6, r1
+ blt _0800D5EC
+_0800D674:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_800D42C
+
+ thumb_func_start unref_sub_800D684
+unref_sub_800D684: @ 800D684
+ push {lr}
+ bl ResetSpriteData
+ ldr r0, _0800D6B8 @ =gSpriteTemplate_81F96D0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0800D6BC @ =gSprites
+ 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]
+ ldr r0, _0800D6C0 @ =sub_800D6C4
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D6B8: .4byte gSpriteTemplate_81F96D0
+_0800D6BC: .4byte gSprites
+_0800D6C0: .4byte sub_800D6C4
+ thumb_func_end unref_sub_800D684
+
+ thumb_func_start sub_800D6C4
+sub_800D6C4: @ 800D6C4
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800D6C4
+
+ thumb_func_start sub_800D6D4
+sub_800D6D4: @ 800D6D4
+ push {r4,r5,lr}
+ ldr r3, _0800D72C @ =0x04000208
+ ldrh r2, [r3]
+ movs r5, 0
+ strh r5, [r3]
+ ldr r4, _0800D730 @ =0x04000200
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r1, _0800D734 @ =REG_DISPSTAT
+ movs r0, 0x8
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r2, 0x98
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0800D738 @ =0x00009c04
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0800D73C @ =0x00005e05
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0800D740 @ =0x00005a0b
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0800D744 @ =REG_BLDCNT
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r1, 0xE
+ ldr r2, _0800D748 @ =0x0000bf40
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D72C: .4byte 0x04000208
+_0800D730: .4byte 0x04000200
+_0800D734: .4byte REG_DISPSTAT
+_0800D738: .4byte 0x00009c04
+_0800D73C: .4byte 0x00005e05
+_0800D740: .4byte 0x00005a0b
+_0800D744: .4byte REG_BLDCNT
+_0800D748: .4byte 0x0000bf40
+ thumb_func_end sub_800D6D4
+
+ thumb_func_start sub_800D74C
+sub_800D74C: @ 800D74C
+ push {r4,lr}
+ movs r0, 0x12
+ bl SetTextWindowBaseTileNum
+ ldr r4, _0800D79C @ =gUnknown_03004210
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl LoadTextWindowGraphics_OverridePalSlot
+ movs r0, 0x22
+ bl SetTextWindowBaseTileNum
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl LoadTextWindowGraphics_OverridePalSlot
+ ldr r3, _0800D7A0 @ =gPlttBufferUnfaded
+ adds r0, r3, 0
+ adds r0, 0xB8
+ ldr r1, _0800D7A4 @ =0x00007fe0
+ strh r1, [r0]
+ adds r2, r3, 0
+ adds r2, 0xBA
+ ldr r1, _0800D7A8 @ =0x00002529
+ strh r1, [r2]
+ adds r2, 0x2
+ ldr r1, _0800D7AC @ =0x00007fff
+ strh r1, [r2]
+ adds r2, 0x2
+ ldr r1, _0800D7B0 @ =0x0000675a
+ strh r1, [r2]
+ ldr r1, _0800D7B4 @ =gPlttBufferFaded + 0xB8
+ movs r2, 0x4
+ bl CpuSet
+ bl sub_8032A38
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800D79C: .4byte gUnknown_03004210
+_0800D7A0: .4byte gPlttBufferUnfaded
+_0800D7A4: .4byte 0x00007fe0
+_0800D7A8: .4byte 0x00002529
+_0800D7AC: .4byte 0x00007fff
+_0800D7B0: .4byte 0x0000675a
+_0800D7B4: .4byte gPlttBufferFaded + 0xB8
+ thumb_func_end sub_800D74C
+
+ thumb_func_start sub_800D7B8
+sub_800D7B8: @ 800D7B8
+ push {r4,r5,lr}
+ ldr r0, _0800D7DC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800D7E0 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800D7F8
+ ldr r0, _0800D7E4 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800D7E8 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D7EC @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800D7F0 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower
+ b _0800DA66
+ .align 2, 0
+_0800D7DC: .4byte gUnknown_020239F8
+_0800D7E0: .4byte 0x00000902
+_0800D7E4: .4byte gBattleTerrainTiles_Building
+_0800D7E8: .4byte 0x06008000
+_0800D7EC: .4byte gBattleTerrainTilemap_Building
+_0800D7F0: .4byte 0x0600d000
+_0800D7F4: .4byte gBattleTerrainPalette_BattleTower
+_0800D7F8:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800D860
+ ldr r0, _0800D820 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800D838
+ ldr r0, _0800D824 @ =gBattleTerrainTiles_Cave
+ ldr r1, _0800D828 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D82C @ =gBattleTerrainTilemap_Cave
+ ldr r1, _0800D830 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D834 @ =gBattleTerrainPalette_Groudon
+ b _0800DA66
+ .align 2, 0
+_0800D820: .4byte gGameVersion
+_0800D824: .4byte gBattleTerrainTiles_Cave
+_0800D828: .4byte 0x06008000
+_0800D82C: .4byte gBattleTerrainTilemap_Cave
+_0800D830: .4byte 0x0600d000
+_0800D834: .4byte gBattleTerrainPalette_Groudon
+_0800D838:
+ ldr r0, _0800D84C @ =gBattleTerrainTiles_Water
+ ldr r1, _0800D850 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D854 @ =gBattleTerrainTilemap_Water
+ ldr r1, _0800D858 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D85C @ =gBattleTerrainPalette_Kyogre
+ b _0800DA66
+ .align 2, 0
+_0800D84C: .4byte gBattleTerrainTiles_Water
+_0800D850: .4byte 0x06008000
+_0800D854: .4byte gBattleTerrainTilemap_Water
+_0800D858: .4byte 0x0600d000
+_0800D85C: .4byte gBattleTerrainPalette_Kyogre
+_0800D860:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800D8D8
+ ldr r2, _0800D890 @ =gTrainers
+ ldr r0, _0800D894 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ bne _0800D8AC
+ ldr r0, _0800D898 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800D89C @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D8A0 @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800D8A4 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D8A8 @ =gBattleTerrainPalette_BuildingLeader
+ b _0800DA66
+ .align 2, 0
+_0800D890: .4byte gTrainers
+_0800D894: .4byte gTrainerBattleOpponent
+_0800D898: .4byte gBattleTerrainTiles_Building
+_0800D89C: .4byte 0x06008000
+_0800D8A0: .4byte gBattleTerrainTilemap_Building
+_0800D8A4: .4byte 0x0600d000
+_0800D8A8: .4byte gBattleTerrainPalette_BuildingLeader
+_0800D8AC:
+ cmp r0, 0x20
+ bne _0800D8D8
+ ldr r0, _0800D8C4 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D8C8 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D8CC @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D8D0 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D8D4 @ =gBattleTerrainPalette_StadiumSteven
+ b _0800DA66
+ .align 2, 0
+_0800D8C4: .4byte gBattleTerrainTiles_Stadium
+_0800D8C8: .4byte 0x06008000
+_0800D8CC: .4byte gBattleTerrainTilemap_Stadium
+_0800D8D0: .4byte 0x0600d000
+_0800D8D4: .4byte gBattleTerrainPalette_StadiumSteven
+_0800D8D8:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _0800D8E6
+ b _0800DA9E
+_0800D8E6:
+ lsls r0, 2
+ ldr r1, _0800D8F0 @ =_0800D8F4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800D8F0: .4byte _0800D8F4
+ .align 2, 0
+_0800D8F4:
+ .4byte _0800D918
+ .4byte _0800D964
+ .4byte _0800D98C
+ .4byte _0800D9B4
+ .4byte _0800D9DC
+ .4byte _0800DA04
+ .4byte _0800DA2C
+ .4byte _0800DA54
+ .4byte _0800DA84
+_0800D918:
+ ldr r4, _0800D954 @ =gBattleTerrainTable
+ ldr r5, _0800D958 @ =gUnknown_0300428C
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldr r1, _0800D95C @ =0x06008000
+ bl LZDecompressVram
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0800D960 @ =0x0600d000
+ bl LZDecompressVram
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x10
+ adds r0, r4
+ ldr r0, [r0]
+ b _0800DA66
+ .align 2, 0
+_0800D954: .4byte gBattleTerrainTable
+_0800D958: .4byte gUnknown_0300428C
+_0800D95C: .4byte 0x06008000
+_0800D960: .4byte 0x0600d000
+_0800D964:
+ ldr r0, _0800D978 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800D97C @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D980 @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800D984 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D988 @ =gBattleTerrainPalette_BuildingGym
+ b _0800DA66
+ .align 2, 0
+_0800D978: .4byte gBattleTerrainTiles_Building
+_0800D97C: .4byte 0x06008000
+_0800D980: .4byte gBattleTerrainTilemap_Building
+_0800D984: .4byte 0x0600d000
+_0800D988: .4byte gBattleTerrainPalette_BuildingGym
+_0800D98C:
+ ldr r0, _0800D9A0 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D9A4 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D9A8 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D9AC @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D9B0 @ =gBattleTerrainPalette_StadiumMagma
+ b _0800DA66
+ .align 2, 0
+_0800D9A0: .4byte gBattleTerrainTiles_Stadium
+_0800D9A4: .4byte 0x06008000
+_0800D9A8: .4byte gBattleTerrainTilemap_Stadium
+_0800D9AC: .4byte 0x0600d000
+_0800D9B0: .4byte gBattleTerrainPalette_StadiumMagma
+_0800D9B4:
+ ldr r0, _0800D9C8 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D9CC @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D9D0 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D9D4 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800D9D8 @ =gBattleTerrainPalette_StadiumAqua
+ b _0800DA66
+ .align 2, 0
+_0800D9C8: .4byte gBattleTerrainTiles_Stadium
+_0800D9CC: .4byte 0x06008000
+_0800D9D0: .4byte gBattleTerrainTilemap_Stadium
+_0800D9D4: .4byte 0x0600d000
+_0800D9D8: .4byte gBattleTerrainPalette_StadiumAqua
+_0800D9DC:
+ ldr r0, _0800D9F0 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800D9F4 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800D9F8 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800D9FC @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA00 @ =gBattleTerrainPalette_StadiumSidney
+ b _0800DA66
+ .align 2, 0
+_0800D9F0: .4byte gBattleTerrainTiles_Stadium
+_0800D9F4: .4byte 0x06008000
+_0800D9F8: .4byte gBattleTerrainTilemap_Stadium
+_0800D9FC: .4byte 0x0600d000
+_0800DA00: .4byte gBattleTerrainPalette_StadiumSidney
+_0800DA04:
+ ldr r0, _0800DA18 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800DA1C @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DA20 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800DA24 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA28 @ =gBattleTerrainPalette_StadiumPhoebe
+ b _0800DA66
+ .align 2, 0
+_0800DA18: .4byte gBattleTerrainTiles_Stadium
+_0800DA1C: .4byte 0x06008000
+_0800DA20: .4byte gBattleTerrainTilemap_Stadium
+_0800DA24: .4byte 0x0600d000
+_0800DA28: .4byte gBattleTerrainPalette_StadiumPhoebe
+_0800DA2C:
+ ldr r0, _0800DA40 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800DA44 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DA48 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800DA4C @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA50 @ =gBattleTerrainPalette_StadiumGlacia
+ b _0800DA66
+ .align 2, 0
+_0800DA40: .4byte gBattleTerrainTiles_Stadium
+_0800DA44: .4byte 0x06008000
+_0800DA48: .4byte gBattleTerrainTilemap_Stadium
+_0800DA4C: .4byte 0x0600d000
+_0800DA50: .4byte gBattleTerrainPalette_StadiumGlacia
+_0800DA54:
+ ldr r0, _0800DA70 @ =gBattleTerrainTiles_Stadium
+ ldr r1, _0800DA74 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DA78 @ =gBattleTerrainTilemap_Stadium
+ ldr r1, _0800DA7C @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DA80 @ =gBattleTerrainPalette_StadiumDrake
+_0800DA66:
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ b _0800DA9E
+ .align 2, 0
+_0800DA70: .4byte gBattleTerrainTiles_Stadium
+_0800DA74: .4byte 0x06008000
+_0800DA78: .4byte gBattleTerrainTilemap_Stadium
+_0800DA7C: .4byte 0x0600d000
+_0800DA80: .4byte gBattleTerrainPalette_StadiumDrake
+_0800DA84:
+ ldr r0, _0800DAA4 @ =gBattleTerrainTiles_Building
+ ldr r1, _0800DAA8 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0800DAAC @ =gBattleTerrainTilemap_Building
+ ldr r1, _0800DAB0 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0800DAB4 @ =gBattleTerrainPalette_BattleTower
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+_0800DA9E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DAA4: .4byte gBattleTerrainTiles_Building
+_0800DAA8: .4byte 0x06008000
+_0800DAAC: .4byte gBattleTerrainTilemap_Building
+_0800DAB0: .4byte 0x0600d000
+_0800DAB4: .4byte gBattleTerrainPalette_BattleTower
+ thumb_func_end sub_800D7B8
+
+ thumb_func_start sub_800DAB8
+sub_800DAB8: @ 800DAB8
+ push {lr}
+ ldr r0, _0800DAE8 @ =gUnknown_08D00000
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ ldr r0, _0800DAEC @ =gUnknown_08D00524
+ ldr r1, _0800DAF0 @ =0x0600c000
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuSet
+ ldr r0, _0800DAF4 @ =gUnknown_08D004E0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ bl sub_800D74C
+ bl sub_800D7B8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DAE8: .4byte gUnknown_08D00000
+_0800DAEC: .4byte gUnknown_08D00524
+_0800DAF0: .4byte 0x0600c000
+_0800DAF4: .4byte gUnknown_08D004E0
+ thumb_func_end sub_800DAB8
+
+ thumb_func_start sub_800DAF8
+sub_800DAF8: @ 800DAF8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ adds r7, r2, 0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ movs r4, 0
+ ldr r0, _0800DB38 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800DBB4
+ ldr r0, _0800DB3C @ =gTasks
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0800DB52
+ cmp r3, 0x1
+ beq _0800DB7A
+ cmp r3, 0x1
+ bgt _0800DB40
+ cmp r3, 0
+ beq _0800DB4A
+ b _0800DB84
+ .align 2, 0
+_0800DB38: .4byte gUnknown_020239F8
+_0800DB3C: .4byte gTasks
+_0800DB40:
+ cmp r3, 0x2
+ beq _0800DB4E
+ cmp r3, 0x3
+ beq _0800DB6E
+ b _0800DB84
+_0800DB4A:
+ ldrh r0, [r1, 0xE]
+ b _0800DB70
+_0800DB4E:
+ ldrh r1, [r1, 0xE]
+ b _0800DB7C
+_0800DB52:
+ cmp r3, 0x1
+ beq _0800DB6E
+ cmp r3, 0x1
+ bgt _0800DB60
+ cmp r3, 0
+ beq _0800DB6A
+ b _0800DB84
+_0800DB60:
+ cmp r3, 0x2
+ beq _0800DB76
+ cmp r3, 0x3
+ beq _0800DB7A
+ b _0800DB84
+_0800DB6A:
+ ldrh r0, [r1, 0xE]
+ b _0800DB70
+_0800DB6E:
+ ldrh r0, [r1, 0x10]
+_0800DB70:
+ movs r4, 0x3F
+ ands r4, r0
+ b _0800DB84
+_0800DB76:
+ ldrh r1, [r1, 0xE]
+ b _0800DB7C
+_0800DB7A:
+ ldrh r1, [r1, 0x10]
+_0800DB7C:
+ movs r0, 0xFC
+ lsls r0, 4
+ ands r0, r1
+ lsrs r4, r0, 6
+_0800DB84:
+ movs r3, 0
+ movs r6, 0x3
+ ldr r0, _0800DBB0 @ =0x00006001
+ adds r5, r0, 0
+ mov r2, sp
+_0800DB8E:
+ lsls r1, r3, 1
+ adds r0, r6, 0
+ lsls r0, r1
+ ands r0, r4
+ asrs r0, r1
+ adds r0, r5
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _0800DB8E
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x3
+ bl CpuSet
+ b _0800DC12
+ .align 2, 0
+_0800DBB0: .4byte 0x00006001
+_0800DBB4:
+ ldr r0, _0800DBD0 @ =0x02000000
+ ldr r1, _0800DBD4 @ =0x000160cb
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r3, r0
+ bne _0800DBDC
+ ldr r1, _0800DBD8 @ =gTasks
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrh r4, [r0, 0xE]
+ b _0800DBE8
+ .align 2, 0
+_0800DBD0: .4byte 0x02000000
+_0800DBD4: .4byte 0x000160cb
+_0800DBD8: .4byte gTasks
+_0800DBDC:
+ ldr r1, _0800DC1C @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r4, [r0, 0x10]
+_0800DBE8:
+ movs r3, 0
+ movs r6, 0x3
+ ldr r2, _0800DC20 @ =0x00006001
+ adds r5, r2, 0
+ mov r2, sp
+_0800DBF2:
+ lsls r1, r3, 1
+ adds r0, r6, 0
+ lsls r0, r1
+ ands r0, r4
+ asrs r0, r1
+ adds r0, r5
+ strh r0, [r2]
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x5
+ ble _0800DBF2
+ mov r0, sp
+ adds r1, r7, 0
+ movs r2, 0x6
+ bl CpuSet
+_0800DC12:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DC1C: .4byte gTasks
+_0800DC20: .4byte 0x00006001
+ thumb_func_end sub_800DAF8
+
+ thumb_func_start sub_800DC24
+sub_800DC24: @ 800DC24
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _0800DC40 @ =gUnknown_02024D26
+ ldrb r2, [r0]
+ cmp r2, 0x3
+ bne _0800DC4C
+ ldr r4, _0800DC44 @ =gUnknown_03004210
+ ldr r1, _0800DC48 @ =gUnknown_08400E57
+ movs r0, 0x2
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0xD
+ b _0800DDCA
+ .align 2, 0
+_0800DC40: .4byte gUnknown_02024D26
+_0800DC44: .4byte gUnknown_03004210
+_0800DC48: .4byte gUnknown_08400E57
+_0800DC4C:
+ ldr r0, _0800DC80 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800DD38
+ cmp r2, 0x1
+ bne _0800DCCC
+ ldr r2, _0800DC84 @ =gLinkPlayers
+ ldr r0, _0800DC88 @ =0x02000000
+ ldr r1, _0800DC8C @ =0x000160cb
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x1
+ beq _0800DC9C
+ cmp r0, 0x1
+ bgt _0800DC90
+ cmp r0, 0
+ bne _0800DC7E
+ b _0800DDA8
+_0800DC7E:
+ b _0800DE1C
+ .align 2, 0
+_0800DC80: .4byte gUnknown_020239F8
+_0800DC84: .4byte gLinkPlayers
+_0800DC88: .4byte 0x02000000
+_0800DC8C: .4byte 0x000160cb
+_0800DC90:
+ cmp r0, 0x2
+ bne _0800DC96
+ b _0800DDA8
+_0800DC96:
+ cmp r0, 0x3
+ beq _0800DC9C
+ b _0800DE1C
+_0800DC9C:
+ ldr r4, _0800DCC0 @ =gUnknown_03004210
+ ldr r1, _0800DCC4 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x15
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DCC8 @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x6
+ b _0800DDCA
+ .align 2, 0
+_0800DCC0: .4byte gUnknown_03004210
+_0800DCC4: .4byte gUnknown_08400E48
+_0800DCC8: .4byte gUnknown_08400E4F
+_0800DCCC:
+ ldr r2, _0800DCF0 @ =gLinkPlayers
+ ldr r0, _0800DCF4 @ =0x02000000
+ ldr r1, _0800DCF8 @ =0x000160cb
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x1
+ beq _0800DDA8
+ cmp r0, 0x1
+ bgt _0800DCFC
+ cmp r0, 0
+ beq _0800DD08
+ b _0800DE1C
+ .align 2, 0
+_0800DCF0: .4byte gLinkPlayers
+_0800DCF4: .4byte 0x02000000
+_0800DCF8: .4byte 0x000160cb
+_0800DCFC:
+ cmp r0, 0x2
+ beq _0800DD08
+ cmp r0, 0x3
+ beq _0800DD06
+ b _0800DE1C
+_0800DD06:
+ b _0800DDA8
+_0800DD08:
+ ldr r4, _0800DD2C @ =gUnknown_03004210
+ ldr r1, _0800DD30 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x15
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DD34 @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x6
+ b _0800DDCA
+ .align 2, 0
+_0800DD2C: .4byte gUnknown_03004210
+_0800DD30: .4byte gUnknown_08400E48
+_0800DD34: .4byte gUnknown_08400E4F
+_0800DD38:
+ cmp r2, 0x1
+ bne _0800DD90
+ ldr r2, _0800DD78 @ =gLinkPlayers
+ ldr r0, _0800DD7C @ =0x02000000
+ ldr r1, _0800DD80 @ =0x000160cb
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0
+ beq _0800DDA8
+ ldr r4, _0800DD84 @ =gUnknown_03004210
+ ldr r1, _0800DD88 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x15
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DD8C @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x6
+ b _0800DDCA
+ .align 2, 0
+_0800DD78: .4byte gLinkPlayers
+_0800DD7C: .4byte 0x02000000
+_0800DD80: .4byte 0x000160cb
+_0800DD84: .4byte gUnknown_03004210
+_0800DD88: .4byte gUnknown_08400E48
+_0800DD8C: .4byte gUnknown_08400E4F
+_0800DD90:
+ ldr r2, _0800DDD8 @ =gLinkPlayers
+ ldr r0, _0800DDDC @ =0x02000000
+ ldr r1, _0800DDE0 @ =0x000160cb
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0
+ beq _0800DDF0
+_0800DDA8:
+ ldr r4, _0800DDE4 @ =gUnknown_03004210
+ ldr r1, _0800DDE8 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x6
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DDEC @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x15
+_0800DDCA:
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ b _0800DE1C
+ .align 2, 0
+_0800DDD8: .4byte gLinkPlayers
+_0800DDDC: .4byte 0x02000000
+_0800DDE0: .4byte 0x000160cb
+_0800DDE4: .4byte gUnknown_03004210
+_0800DDE8: .4byte gUnknown_08400E48
+_0800DDEC: .4byte gUnknown_08400E4F
+_0800DDF0:
+ ldr r4, _0800DE24 @ =gUnknown_03004210
+ ldr r1, _0800DE28 @ =gUnknown_08400E48
+ movs r5, 0x2
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA0
+ movs r3, 0x15
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0800DE2C @ =gUnknown_08400E4F
+ str r5, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA8
+ movs r3, 0x6
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+_0800DE1C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800DE24: .4byte gUnknown_03004210
+_0800DE28: .4byte gUnknown_08400E48
+_0800DE2C: .4byte gUnknown_08400E4F
+ thumb_func_end sub_800DC24
+
+ thumb_func_start sub_800DE30
+sub_800DE30: @ 800DE30
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _0800DE64 @ =gTasks
+ lsls r0, 2
+ mov r10, r0
+ add r0, r9
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _0800DE58
+ b _0800DF9C
+_0800DE58:
+ cmp r0, 0x1
+ bgt _0800DE68
+ cmp r0, 0
+ beq _0800DE70
+ b _0800E212
+ .align 2, 0
+_0800DE64: .4byte gTasks
+_0800DE68:
+ cmp r0, 0x2
+ bne _0800DE6E
+ b _0800E03C
+_0800DE6E:
+ b _0800E212
+_0800DE70:
+ ldr r0, _0800DED0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800DEE0
+ ldr r0, _0800DED4 @ =gLinkPlayers
+ ldr r2, _0800DED8 @ =gUnknown_081F9680
+ mov r8, r2
+ adds r7, r0, 0
+ adds r7, 0x8
+ movs r5, 0x3
+_0800DE88:
+ ldrb r0, [r7, 0x10]
+ movs r1, 0x3
+ ands r1, r0
+ str r1, [sp, 0x8]
+ lsls r4, r1, 1
+ adds r4, r1
+ lsls r4, 2
+ mov r2, r8
+ adds r0, r4, r2
+ ldr r1, [r0]
+ str r1, [sp, 0xC]
+ ldrh r2, [r0, 0x4]
+ ldrb r3, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r1, 0
+ adds r1, r7, 0
+ bl sub_8002E4C
+ ldr r0, [sp, 0xC]
+ bl sub_8002F44
+ ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8
+ adds r4, r2
+ ldr r2, [r4]
+ mov r0, r9
+ ldr r1, [sp, 0x8]
+ bl sub_800DAF8
+ adds r7, 0x1C
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0800DE88
+ b _0800DF70
+ .align 2, 0
+_0800DED0: .4byte gUnknown_020239F8
+_0800DED4: .4byte gLinkPlayers
+_0800DED8: .4byte gUnknown_081F9680
+_0800DEDC: .4byte gUnknown_081F9680 + 0x8
+_0800DEE0:
+ ldr r0, _0800DF84 @ =0x02000000
+ ldr r5, _0800DF88 @ =0x000160cb
+ adds r0, r5
+ ldrb r7, [r0]
+ movs r0, 0x1
+ adds r6, r7, 0
+ eors r6, r0
+ adds r1, r6, 0
+ ldr r2, _0800DF8C @ =gLinkPlayers
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0
+ beq _0800DF04
+ adds r6, r7, 0
+ adds r7, r1, 0
+_0800DF04:
+ ldr r0, _0800DF90 @ =gUnknown_081F9680
+ mov r8, r0
+ adds r0, 0x30
+ mov r1, r8
+ ldr r4, [r1, 0x30]
+ lsls r1, r7, 3
+ subs r1, r7
+ lsls r1, 2
+ ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ ldrh r2, [r0, 0x4]
+ ldrb r3, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ movs r5, 0x1
+ str r5, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_8002E4C
+ adds r0, r4, 0
+ bl sub_8002F44
+ mov r0, r8
+ ldr r2, [r0, 0x38]
+ mov r0, r9
+ adds r1, r7, 0
+ bl sub_800DAF8
+ mov r0, r8
+ adds r0, 0x3C
+ mov r1, r8
+ ldr r4, [r1, 0x3C]
+ lsls r1, r6, 3
+ subs r1, r6
+ lsls r1, 2
+ ldr r2, _0800DF94 @ =gLinkPlayers + 0x8
+ adds r1, r2
+ ldrh r2, [r0, 0x4]
+ ldrb r3, [r0, 0x6]
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_8002E4C
+ adds r0, r4, 0
+ bl sub_8002F44
+ mov r5, r8
+ ldr r2, [r5, 0x44]
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_800DAF8
+_0800DF70:
+ ldr r0, _0800DF98 @ =gTasks
+ mov r1, r10
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0800E212
+ .align 2, 0
+_0800DF84: .4byte 0x02000000
+_0800DF88: .4byte 0x000160cb
+_0800DF8C: .4byte gLinkPlayers
+_0800DF90: .4byte gUnknown_081F9680
+_0800DF94: .4byte gLinkPlayers + 0x8
+_0800DF98: .4byte gTasks
+_0800DF9C:
+ ldr r0, _0800E010 @ =0x00002710
+ bl AllocSpritePalette
+ lsls r0, 24
+ ldr r2, _0800E014 @ =gPlttBufferUnfaded
+ lsrs r0, 19
+ ldr r1, _0800E018 @ =0x0000021e
+ adds r0, r1
+ adds r2, r0, r2
+ ldr r1, _0800E01C @ =gPlttBufferFaded
+ adds r0, r1
+ ldr r1, _0800E020 @ =0x00007fff
+ strh r1, [r0]
+ strh r1, [r2]
+ ldr r0, _0800E024 @ =gSpriteTemplate_81F9574
+ movs r1, 0x6C
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _0800E028 @ =0x02000000
+ ldr r2, _0800E02C @ =0x0001608a
+ adds r7, r4, r2
+ strb r0, [r7]
+ ldr r0, _0800E030 @ =gSpriteTemplate_81F958C
+ movs r1, 0x84
+ movs r2, 0x50
+ movs r3, 0
+ bl CreateSprite
+ ldr r5, _0800E034 @ =0x0001608b
+ adds r4, r5
+ strb r0, [r4]
+ ldr r3, _0800E038 @ =gSprites
+ ldrb r1, [r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0800E212
+ .align 2, 0
+_0800E010: .4byte 0x00002710
+_0800E014: .4byte gPlttBufferUnfaded
+_0800E018: .4byte 0x0000021e
+_0800E01C: .4byte gPlttBufferFaded
+_0800E020: .4byte 0x00007fff
+_0800E024: .4byte gSpriteTemplate_81F9574
+_0800E028: .4byte 0x02000000
+_0800E02C: .4byte 0x0001608a
+_0800E030: .4byte gSpriteTemplate_81F958C
+_0800E034: .4byte 0x0001608b
+_0800E038: .4byte gSprites
+_0800E03C:
+ movs r1, 0x12
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ beq _0800E0A4
+ ldr r4, _0800E090 @ =gUnknown_030042C0
+ ldrh r0, [r6, 0xA]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E056
+ adds r0, 0x1F
+_0800E056:
+ asrs r1, r0, 5
+ movs r2, 0x14
+ negs r2, r2
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, _0800E094 @ =gUnknown_03004288
+ ldrh r0, [r6, 0xC]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E074
+ adds r0, 0x1F
+_0800E074:
+ asrs r1, r0, 5
+ movs r5, 0x8C
+ negs r5, r5
+ adds r0, r5, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r0, _0800E098 @ =gUnknown_030041B4
+ ldr r2, _0800E09C @ =0x0000ffdc
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _0800E0A0 @ =gUnknown_03004280
+ strh r1, [r0]
+ b _0800E110
+ .align 2, 0
+_0800E090: .4byte gUnknown_030042C0
+_0800E094: .4byte gUnknown_03004288
+_0800E098: .4byte gUnknown_030041B4
+_0800E09C: .4byte 0x0000ffdc
+_0800E0A0: .4byte gUnknown_03004280
+_0800E0A4:
+ ldr r4, _0800E134 @ =gUnknown_030042C0
+ ldrh r0, [r6, 0xA]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E0B6
+ adds r0, 0x1F
+_0800E0B6:
+ asrs r1, r0, 5
+ movs r5, 0x14
+ negs r5, r5
+ adds r0, r5, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, _0800E138 @ =gUnknown_030041B4
+ ldrh r0, [r6, 0xA]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E0D4
+ adds r0, 0x1F
+_0800E0D4:
+ asrs r0, 5
+ subs r0, 0xA4
+ strh r0, [r4]
+ ldr r4, _0800E13C @ =gUnknown_03004288
+ ldrh r0, [r6, 0xC]
+ bl Sin2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E0EC
+ adds r0, 0x1F
+_0800E0EC:
+ asrs r1, r0, 5
+ movs r2, 0x8C
+ negs r2, r2
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r4]
+ ldr r4, _0800E140 @ =gUnknown_03004280
+ ldrh r0, [r6, 0xC]
+ bl Cos2
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0800E10A
+ adds r0, 0x1F
+_0800E10A:
+ asrs r0, 5
+ subs r0, 0xA4
+ strh r0, [r4]
+_0800E110:
+ ldr r1, _0800E144 @ =gTasks
+ mov r5, r9
+ lsls r0, r5, 2
+ add r0, r9
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0xC]
+ movs r2, 0xC
+ ldrsh r7, [r1, r2]
+ cmp r7, 0
+ beq _0800E148
+ subs r0, 0x2
+ strh r0, [r1, 0xC]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x2
+ strh r0, [r1, 0xA]
+ b _0800E212
+ .align 2, 0
+_0800E134: .4byte gUnknown_030042C0
+_0800E138: .4byte gUnknown_030041B4
+_0800E13C: .4byte gUnknown_03004288
+_0800E140: .4byte gUnknown_03004280
+_0800E144: .4byte gTasks
+_0800E148:
+ movs r5, 0x12
+ ldrsh r0, [r1, r5]
+ cmp r0, 0
+ beq _0800E154
+ bl sub_800DC24
+_0800E154:
+ movs r0, 0x78
+ bl PlaySE
+ mov r0, r9
+ bl DestroyTask
+ ldr r4, _0800E224 @ =gSprites
+ ldr r0, _0800E228 @ =0x02000000
+ mov r8, r0
+ ldr r1, _0800E22C @ =0x0001608a
+ add r1, r8
+ mov r9, r1
+ ldrb r0, [r1]
+ 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 r5, _0800E230 @ =0x0001608b
+ add r8, r5
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x40
+ ldr r5, _0800E234 @ =0x000003ff
+ adds r0, r5, 0
+ ands r1, r0
+ ldr r0, _0800E238 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x2E]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ mov r5, r9
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x20]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x32]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r7, [r0, 0x32]
+_0800E212:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E224: .4byte gSprites
+_0800E228: .4byte 0x02000000
+_0800E22C: .4byte 0x0001608a
+_0800E230: .4byte 0x0001608b
+_0800E234: .4byte 0x000003ff
+_0800E238: .4byte 0xfffffc00
+ thumb_func_end sub_800DE30
+
+ thumb_func_start sub_800E23C
+sub_800E23C: @ 800E23C
+ push {r4,r5,lr}
+ ldr r0, _0800E29C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E2DC
+ ldr r0, _0800E2A0 @ =gVersusFrameGfx
+ ldr r1, _0800E2A4 @ =0x06004000
+ bl LZDecompressVram
+ ldr r4, _0800E2A8 @ =gVersusFrameTilemap
+ ldr r1, _0800E2AC @ =0x0600e000
+ adds r0, r4, 0
+ bl LZDecompressVram
+ ldr r1, _0800E2B0 @ =0x0600f000
+ adds r0, r4, 0
+ bl LZDecompressVram
+ ldr r0, _0800E2B4 @ =gUnknown_08E5DC2C
+ ldr r1, _0800E2B8 @ =0x06010000
+ bl LZDecompressVram
+ ldr r0, _0800E2BC @ =gVersusFramePal
+ movs r1, 0x60
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _0800E2C0 @ =REG_BG1CNT
+ ldr r2, _0800E2C4 @ =0x00005c04
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0800E2C8 @ =REG_WININ
+ movs r1, 0x36
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r0, _0800E2CC @ =gUnknown_030041B4
+ ldr r2, _0800E2D0 @ =0x0000ff5c
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _0800E2D4 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r0, _0800E2D8 @ =gUnknown_081F95A4
+ bl LoadCompressedObjectPic
+ b _0800E3FC
+ .align 2, 0
+_0800E29C: .4byte gUnknown_020239F8
+_0800E2A0: .4byte gVersusFrameGfx
+_0800E2A4: .4byte 0x06004000
+_0800E2A8: .4byte gVersusFrameTilemap
+_0800E2AC: .4byte 0x0600e000
+_0800E2B0: .4byte 0x0600f000
+_0800E2B4: .4byte gUnknown_08E5DC2C
+_0800E2B8: .4byte 0x06010000
+_0800E2BC: .4byte gVersusFramePal
+_0800E2C0: .4byte REG_BG1CNT
+_0800E2C4: .4byte 0x00005c04
+_0800E2C8: .4byte REG_WININ
+_0800E2CC: .4byte gUnknown_030041B4
+_0800E2D0: .4byte 0x0000ff5c
+_0800E2D4: .4byte gUnknown_03004280
+_0800E2D8: .4byte gUnknown_081F95A4
+_0800E2DC:
+ ldr r0, _0800E2F0 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E300
+ ldr r0, _0800E2F4 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E2F8 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E2FC @ =gBattleTerrainAnimTilemap_Building
+ b _0800E3D2
+ .align 2, 0
+_0800E2F0: .4byte 0x00000902
+_0800E2F4: .4byte gBattleTerrainAnimTiles_Building
+_0800E2F8: .4byte 0x06004000
+_0800E2FC: .4byte gBattleTerrainAnimTilemap_Building
+_0800E300:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E348
+ ldr r0, _0800E320 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E330
+ ldr r0, _0800E324 @ =gBattleTerrainAnimTiles_Cave
+ ldr r1, _0800E328 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E32C @ =gBattleTerrainAnimTilemap_Cave
+ b _0800E3D2
+ .align 2, 0
+_0800E320: .4byte gGameVersion
+_0800E324: .4byte gBattleTerrainAnimTiles_Cave
+_0800E328: .4byte 0x06004000
+_0800E32C: .4byte gBattleTerrainAnimTilemap_Cave
+_0800E330:
+ ldr r0, _0800E33C @ =gBattleTerrainAnimTiles_Underwater
+ ldr r1, _0800E340 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E344 @ =gBattleTerrainAnimTilemap_Underwater
+ b _0800E3D2
+ .align 2, 0
+_0800E33C: .4byte gBattleTerrainAnimTiles_Underwater
+_0800E340: .4byte 0x06004000
+_0800E344: .4byte gBattleTerrainAnimTilemap_Underwater
+_0800E348:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E3A0
+ ldr r2, _0800E370 @ =gTrainers
+ ldr r0, _0800E374 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ bne _0800E384
+ ldr r0, _0800E378 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E37C @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E380 @ =gBattleTerrainAnimTilemap_Building
+ b _0800E3D2
+ .align 2, 0
+_0800E370: .4byte gTrainers
+_0800E374: .4byte gTrainerBattleOpponent
+_0800E378: .4byte gBattleTerrainAnimTiles_Building
+_0800E37C: .4byte 0x06004000
+_0800E380: .4byte gBattleTerrainAnimTilemap_Building
+_0800E384:
+ cmp r0, 0x20
+ bne _0800E3A0
+ ldr r0, _0800E394 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E398 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E39C @ =gBattleTerrainAnimTilemap_Building
+ b _0800E3D2
+ .align 2, 0
+_0800E394: .4byte gBattleTerrainAnimTiles_Building
+_0800E398: .4byte 0x06004000
+_0800E39C: .4byte gBattleTerrainAnimTilemap_Building
+_0800E3A0:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800E3EC
+ ldr r4, _0800E3DC @ =gBattleTerrainTable
+ ldr r5, _0800E3E0 @ =gUnknown_0300428C
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0800E3E4 @ =0x06004000
+ bl LZDecompressVram
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+_0800E3D2:
+ ldr r1, _0800E3E8 @ =0x0600e000
+ bl LZDecompressVram
+ b _0800E3FC
+ .align 2, 0
+_0800E3DC: .4byte gBattleTerrainTable
+_0800E3E0: .4byte gUnknown_0300428C
+_0800E3E4: .4byte 0x06004000
+_0800E3E8: .4byte 0x0600e000
+_0800E3EC:
+ ldr r0, _0800E404 @ =gBattleTerrainAnimTiles_Building
+ ldr r1, _0800E408 @ =0x06004000
+ bl LZDecompressVram
+ ldr r0, _0800E40C @ =gBattleTerrainAnimTilemap_Building
+ ldr r1, _0800E410 @ =0x0600e000
+ bl LZDecompressVram
+_0800E3FC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E404: .4byte gBattleTerrainAnimTiles_Building
+_0800E408: .4byte 0x06004000
+_0800E40C: .4byte gBattleTerrainAnimTilemap_Building
+_0800E410: .4byte 0x0600e000
+ thumb_func_end sub_800E23C
+
+ thumb_func_start sub_800E414
+sub_800E414: @ 800E414
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ cmp r0, 0x6
+ bls _0800E422
+ b _0800E7BA
+_0800E422:
+ lsls r0, 2
+ ldr r1, _0800E42C @ =_0800E430
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E42C: .4byte _0800E430
+ .align 2, 0
+_0800E430:
+ .4byte _0800E44C
+ .4byte _0800E45C
+ .4byte _0800E474
+ .4byte _0800E484
+ .4byte _0800E590
+ .4byte _0800E69C
+ .4byte _0800E7B4
+_0800E44C:
+ ldr r0, _0800E458 @ =gUnknown_08D00000
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _0800E7BC
+ .align 2, 0
+_0800E458: .4byte gUnknown_08D00000
+_0800E45C:
+ ldr r0, _0800E46C @ =gUnknown_08D00524
+ ldr r1, _0800E470 @ =0x0600c000
+ movs r2, 0x80
+ lsls r2, 4
+ bl CpuSet
+ b _0800E7BC
+ .align 2, 0
+_0800E46C: .4byte gUnknown_08D00524
+_0800E470: .4byte 0x0600c000
+_0800E474:
+ ldr r0, _0800E480 @ =gUnknown_08D004E0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ b _0800E7BC
+ .align 2, 0
+_0800E480: .4byte gUnknown_08D004E0
+_0800E484:
+ ldr r0, _0800E4A8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800E4AC @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E492
+ b _0800E57C
+_0800E492:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E4C0
+ ldr r0, _0800E4B0 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E4B8
+ ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave
+ b _0800E57E
+ .align 2, 0
+_0800E4A8: .4byte gUnknown_020239F8
+_0800E4AC: .4byte 0x00000902
+_0800E4B0: .4byte gGameVersion
+_0800E4B4: .4byte gBattleTerrainTiles_Cave
+_0800E4B8:
+ ldr r0, _0800E4BC @ =gBattleTerrainTiles_Water
+ b _0800E57E
+ .align 2, 0
+_0800E4BC: .4byte gBattleTerrainTiles_Water
+_0800E4C0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E4F0
+ ldr r2, _0800E4E4 @ =gTrainers
+ ldr r0, _0800E4E8 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ beq _0800E57C
+ cmp r0, 0x20
+ bne _0800E4F0
+ ldr r0, _0800E4EC @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E4E4: .4byte gTrainers
+_0800E4E8: .4byte gTrainerBattleOpponent
+_0800E4EC: .4byte gBattleTerrainTiles_Stadium
+_0800E4F0:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _0800E4FE
+ b _0800E7BC
+_0800E4FE:
+ lsls r0, 2
+ ldr r1, _0800E508 @ =_0800E50C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E508: .4byte _0800E50C
+ .align 2, 0
+_0800E50C:
+ .4byte _0800E530
+ .4byte _0800E57C
+ .4byte _0800E54C
+ .4byte _0800E554
+ .4byte _0800E55C
+ .4byte _0800E564
+ .4byte _0800E56C
+ .4byte _0800E574
+ .4byte _0800E57C
+_0800E530:
+ ldr r2, _0800E544 @ =gBattleTerrainTable
+ ldr r0, _0800E548 @ =gUnknown_0300428C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ b _0800E57E
+ .align 2, 0
+_0800E544: .4byte gBattleTerrainTable
+_0800E548: .4byte gUnknown_0300428C
+_0800E54C:
+ ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E550: .4byte gBattleTerrainTiles_Stadium
+_0800E554:
+ ldr r0, _0800E558 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E558: .4byte gBattleTerrainTiles_Stadium
+_0800E55C:
+ ldr r0, _0800E560 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E560: .4byte gBattleTerrainTiles_Stadium
+_0800E564:
+ ldr r0, _0800E568 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E568: .4byte gBattleTerrainTiles_Stadium
+_0800E56C:
+ ldr r0, _0800E570 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E570: .4byte gBattleTerrainTiles_Stadium
+_0800E574:
+ ldr r0, _0800E578 @ =gBattleTerrainTiles_Stadium
+ b _0800E57E
+ .align 2, 0
+_0800E578: .4byte gBattleTerrainTiles_Stadium
+_0800E57C:
+ ldr r0, _0800E588 @ =gBattleTerrainTiles_Building
+_0800E57E:
+ ldr r1, _0800E58C @ =0x06008000
+ bl LZDecompressVram
+ b _0800E7BC
+ .align 2, 0
+_0800E588: .4byte gBattleTerrainTiles_Building
+_0800E58C: .4byte 0x06008000
+_0800E590:
+ ldr r0, _0800E5B4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800E5B8 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E59E
+ b _0800E688
+_0800E59E:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E5CC
+ ldr r0, _0800E5BC @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E5C4
+ ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave
+ b _0800E68A
+ .align 2, 0
+_0800E5B4: .4byte gUnknown_020239F8
+_0800E5B8: .4byte 0x00000902
+_0800E5BC: .4byte gGameVersion
+_0800E5C0: .4byte gBattleTerrainTilemap_Cave
+_0800E5C4:
+ ldr r0, _0800E5C8 @ =gBattleTerrainTilemap_Water
+ b _0800E68A
+ .align 2, 0
+_0800E5C8: .4byte gBattleTerrainTilemap_Water
+_0800E5CC:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E5FC
+ ldr r2, _0800E5F0 @ =gTrainers
+ ldr r0, _0800E5F4 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ beq _0800E688
+ cmp r0, 0x20
+ bne _0800E5FC
+ ldr r0, _0800E5F8 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E5F0: .4byte gTrainers
+_0800E5F4: .4byte gTrainerBattleOpponent
+_0800E5F8: .4byte gBattleTerrainTilemap_Stadium
+_0800E5FC:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _0800E60A
+ b _0800E7BC
+_0800E60A:
+ lsls r0, 2
+ ldr r1, _0800E614 @ =_0800E618
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E614: .4byte _0800E618
+ .align 2, 0
+_0800E618:
+ .4byte _0800E63C
+ .4byte _0800E688
+ .4byte _0800E658
+ .4byte _0800E660
+ .4byte _0800E668
+ .4byte _0800E670
+ .4byte _0800E678
+ .4byte _0800E680
+ .4byte _0800E688
+_0800E63C:
+ ldr r2, _0800E650 @ =gBattleTerrainTable
+ ldr r0, _0800E654 @ =gUnknown_0300428C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r0, [r0]
+ b _0800E68A
+ .align 2, 0
+_0800E650: .4byte gBattleTerrainTable
+_0800E654: .4byte gUnknown_0300428C
+_0800E658:
+ ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E65C: .4byte gBattleTerrainTilemap_Stadium
+_0800E660:
+ ldr r0, _0800E664 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E664: .4byte gBattleTerrainTilemap_Stadium
+_0800E668:
+ ldr r0, _0800E66C @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E66C: .4byte gBattleTerrainTilemap_Stadium
+_0800E670:
+ ldr r0, _0800E674 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E674: .4byte gBattleTerrainTilemap_Stadium
+_0800E678:
+ ldr r0, _0800E67C @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E67C: .4byte gBattleTerrainTilemap_Stadium
+_0800E680:
+ ldr r0, _0800E684 @ =gBattleTerrainTilemap_Stadium
+ b _0800E68A
+ .align 2, 0
+_0800E684: .4byte gBattleTerrainTilemap_Stadium
+_0800E688:
+ ldr r0, _0800E694 @ =gBattleTerrainTilemap_Building
+_0800E68A:
+ ldr r1, _0800E698 @ =0x0600d000
+ bl LZDecompressVram
+ b _0800E7BC
+ .align 2, 0
+_0800E694: .4byte gBattleTerrainTilemap_Building
+_0800E698: .4byte 0x0600d000
+_0800E69C:
+ ldr r0, _0800E6C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800E6C4 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E6AA
+ b _0800E7A4
+_0800E6AA:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E6D8
+ ldr r0, _0800E6C8 @ =gGameVersion
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0800E6D0
+ ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon
+ b _0800E7A6
+ .align 2, 0
+_0800E6C0: .4byte gUnknown_020239F8
+_0800E6C4: .4byte 0x00000902
+_0800E6C8: .4byte gGameVersion
+_0800E6CC: .4byte gBattleTerrainPalette_Groudon
+_0800E6D0:
+ ldr r0, _0800E6D4 @ =gBattleTerrainPalette_Kyogre
+ b _0800E7A6
+ .align 2, 0
+_0800E6D4: .4byte gBattleTerrainPalette_Kyogre
+_0800E6D8:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E710
+ ldr r2, _0800E6F8 @ =gTrainers
+ ldr r0, _0800E6FC @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x19
+ bne _0800E704
+ ldr r0, _0800E700 @ =gBattleTerrainPalette_BuildingLeader
+ b _0800E7A6
+ .align 2, 0
+_0800E6F8: .4byte gTrainers
+_0800E6FC: .4byte gTrainerBattleOpponent
+_0800E700: .4byte gBattleTerrainPalette_BuildingLeader
+_0800E704:
+ cmp r0, 0x20
+ bne _0800E710
+ ldr r0, _0800E70C @ =gBattleTerrainPalette_StadiumSteven
+ b _0800E7A6
+ .align 2, 0
+_0800E70C: .4byte gBattleTerrainPalette_StadiumSteven
+_0800E710:
+ bl sav1_map_get_battletype
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bhi _0800E7BC
+ lsls r0, 2
+ ldr r1, _0800E728 @ =_0800E72C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800E728: .4byte _0800E72C
+ .align 2, 0
+_0800E72C:
+ .4byte _0800E750
+ .4byte _0800E76C
+ .4byte _0800E774
+ .4byte _0800E77C
+ .4byte _0800E784
+ .4byte _0800E78C
+ .4byte _0800E794
+ .4byte _0800E79C
+ .4byte _0800E7A4
+_0800E750:
+ ldr r2, _0800E764 @ =gBattleTerrainTable
+ ldr r0, _0800E768 @ =gUnknown_0300428C
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x10
+ adds r0, r2
+ ldr r0, [r0]
+ b _0800E7A6
+ .align 2, 0
+_0800E764: .4byte gBattleTerrainTable
+_0800E768: .4byte gUnknown_0300428C
+_0800E76C:
+ ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym
+ b _0800E7A6
+ .align 2, 0
+_0800E770: .4byte gBattleTerrainPalette_BuildingGym
+_0800E774:
+ ldr r0, _0800E778 @ =gBattleTerrainPalette_StadiumMagma
+ b _0800E7A6
+ .align 2, 0
+_0800E778: .4byte gBattleTerrainPalette_StadiumMagma
+_0800E77C:
+ ldr r0, _0800E780 @ =gBattleTerrainPalette_StadiumAqua
+ b _0800E7A6
+ .align 2, 0
+_0800E780: .4byte gBattleTerrainPalette_StadiumAqua
+_0800E784:
+ ldr r0, _0800E788 @ =gBattleTerrainPalette_StadiumSidney
+ b _0800E7A6
+ .align 2, 0
+_0800E788: .4byte gBattleTerrainPalette_StadiumSidney
+_0800E78C:
+ ldr r0, _0800E790 @ =gBattleTerrainPalette_StadiumPhoebe
+ b _0800E7A6
+ .align 2, 0
+_0800E790: .4byte gBattleTerrainPalette_StadiumPhoebe
+_0800E794:
+ ldr r0, _0800E798 @ =gBattleTerrainPalette_StadiumGlacia
+ b _0800E7A6
+ .align 2, 0
+_0800E798: .4byte gBattleTerrainPalette_StadiumGlacia
+_0800E79C:
+ ldr r0, _0800E7A0 @ =gBattleTerrainPalette_StadiumDrake
+ b _0800E7A6
+ .align 2, 0
+_0800E7A0: .4byte gBattleTerrainPalette_StadiumDrake
+_0800E7A4:
+ ldr r0, _0800E7B0 @ =gBattleTerrainPalette_BattleTower
+_0800E7A6:
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ b _0800E7BC
+ .align 2, 0
+_0800E7B0: .4byte gBattleTerrainPalette_BattleTower
+_0800E7B4:
+ bl sub_800D74C
+ b _0800E7BC
+_0800E7BA:
+ movs r4, 0x1
+_0800E7BC:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_800E414
+
+ thumb_func_start sub_800E7C4
+sub_800E7C4: @ 800E7C4
+ push {lr}
+ ldr r0, _0800E7E4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E7F0
+ bl sub_800B858
+ ldr r0, _0800E7E8 @ =sub_800F104
+ bl SetMainCallback2
+ ldr r1, _0800E7EC @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1]
+ b _0800E7F4
+ .align 2, 0
+_0800E7E4: .4byte gUnknown_020239F8
+_0800E7E8: .4byte sub_800F104
+_0800E7EC: .4byte gUnknown_02024D1E
+_0800E7F0:
+ bl sub_800E7F8
+_0800E7F4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_800E7C4
+
+ thumb_func_start sub_800E7F8
+sub_800E7F8: @ 800E7F8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _0800E90C @ =0x05006000
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _0800E910 @ =REG_MOSAIC
+ strh r4, [r0]
+ subs r0, 0xC
+ movs r2, 0xF0
+ strh r2, [r0]
+ adds r0, 0x4
+ ldr r3, _0800E914 @ =0x00005051
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r0, _0800E918 @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _0800E91C @ =gUnknown_03004240
+ strh r1, [r0]
+ bl dp12_8087EA4
+ ldr r0, _0800E920 @ =gUnknown_03004DE0
+ movs r3, 0xF0
+ movs r5, 0xF0
+ lsls r5, 3
+ adds r2, r0, r5
+ movs r1, 0x4F
+_0800E84A:
+ strh r3, [r0]
+ strh r3, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0800E84A
+ movs r1, 0x50
+ ldr r4, _0800E924 @ =gUnknown_081F9674
+ ldr r0, _0800E920 @ =gUnknown_03004DE0
+ ldr r3, _0800E928 @ =0x0000ff10
+ movs r5, 0x82
+ lsls r5, 4
+ adds r2, r0, r5
+ adds r0, 0xA0
+_0800E868:
+ strh r3, [r0]
+ strh r3, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ adds r1, 0x1
+ cmp r1, 0x9F
+ ble _0800E868
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ ldr r2, [r4, 0x8]
+ bl sub_80895F8
+ ldr r4, _0800E92C @ =gWindowConfig_81E6C58
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _0800E930 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0800E934 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r0, _0800E938 @ =gUnknown_030042C0
+ strh r1, [r0]
+ ldr r0, _0800E93C @ =gUnknown_030041B4
+ strh r1, [r0]
+ ldr r0, _0800E940 @ =gUnknown_03004288
+ strh r1, [r0]
+ ldr r0, _0800E944 @ =gUnknown_03004280
+ strh r1, [r0]
+ ldr r0, _0800E948 @ =gUnknown_030041B0
+ strh r1, [r0]
+ ldr r0, _0800E94C @ =gUnknown_030041B8
+ strh r1, [r0]
+ bl sub_8081D3C
+ ldr r1, _0800E950 @ =gUnknown_0300428C
+ strb r0, [r1]
+ ldr r0, _0800E954 @ =gUnknown_03004210
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r0, _0800E958 @ =gUnknown_030041D0
+ ldr r1, _0800E95C @ =gWindowConfig_81E71D0
+ bl InitWindowFromConfig
+ ldr r0, _0800E960 @ =gUnknown_03004250
+ ldr r1, _0800E964 @ =gWindowConfig_81E71EC
+ bl InitWindowFromConfig
+ bl sub_800D6D4
+ bl sub_800DAB8
+ bl ResetSpriteData
+ bl ResetTasks
+ bl sub_800E23C
+ bl FreeAllSpritePalettes
+ ldr r1, _0800E968 @ =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _0800E96C @ =sub_800FCFC
+ bl SetVBlankCallback
+ bl sub_800B884
+ ldr r0, _0800E970 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800E978
+ ldr r0, _0800E974 @ =sub_800F298
+ bl SetMainCallback2
+ b _0800E97E
+ .align 2, 0
+_0800E90C: .4byte 0x05006000
+_0800E910: .4byte REG_MOSAIC
+_0800E914: .4byte 0x00005051
+_0800E918: .4byte gUnknown_030042C4
+_0800E91C: .4byte gUnknown_03004240
+_0800E920: .4byte gUnknown_03004DE0
+_0800E924: .4byte gUnknown_081F9674
+_0800E928: .4byte 0x0000ff10
+_0800E92C: .4byte gWindowConfig_81E6C58
+_0800E930: .4byte gUnknown_030042A4
+_0800E934: .4byte gUnknown_030042A0
+_0800E938: .4byte gUnknown_030042C0
+_0800E93C: .4byte gUnknown_030041B4
+_0800E940: .4byte gUnknown_03004288
+_0800E944: .4byte gUnknown_03004280
+_0800E948: .4byte gUnknown_030041B0
+_0800E94C: .4byte gUnknown_030041B8
+_0800E950: .4byte gUnknown_0300428C
+_0800E954: .4byte gUnknown_03004210
+_0800E958: .4byte gUnknown_030041D0
+_0800E95C: .4byte gWindowConfig_81E71D0
+_0800E960: .4byte gUnknown_03004250
+_0800E964: .4byte gWindowConfig_81E71EC
+_0800E968: .4byte gReservedSpritePaletteCount
+_0800E96C: .4byte sub_800FCFC
+_0800E970: .4byte gUnknown_020239F8
+_0800E974: .4byte sub_800F298
+_0800E978:
+ ldr r0, _0800E9CC @ =sub_800EC9C
+ bl SetMainCallback2
+_0800E97E:
+ ldr r0, _0800E9D0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0800E998
+ ldr r0, _0800E9D4 @ =gEnemyParty
+ ldr r1, _0800E9D8 @ =gTrainerBattleOpponent
+ ldrh r1, [r1]
+ bl sub_800F8E8
+ bl sub_8040C38
+_0800E998:
+ ldr r0, _0800E9DC @ =gMain
+ ldr r1, _0800E9E0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r4, _0800E9E4 @ =gPlayerParty
+ movs r3, 0xFA
+ lsls r3, 1
+ adds r5, r4, r3
+_0800E9AE:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl AdjustFriendship
+ adds r4, 0x64
+ cmp r4, r5
+ ble _0800E9AE
+ movs r1, 0
+ ldr r0, _0800E9E8 @ =gUnknown_02024D1E
+ strb r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800E9CC: .4byte sub_800EC9C
+_0800E9D0: .4byte gUnknown_020239F8
+_0800E9D4: .4byte gEnemyParty
+_0800E9D8: .4byte gTrainerBattleOpponent
+_0800E9DC: .4byte gMain
+_0800E9E0: .4byte 0x0000043d
+_0800E9E4: .4byte gPlayerParty
+_0800E9E8: .4byte gUnknown_02024D1E
+ thumb_func_end sub_800E7F8
+
+ thumb_func_start sub_800E9EC
+sub_800E9EC: @ 800E9EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ mov r9, r6
+ movs r0, 0xCE
+ lsls r0, 1
+ mov r10, r0
+ mov r8, r6
+_0800EA02:
+ movs r0, 0x64
+ mov r4, r9
+ muls r4, r0
+ ldr r0, _0800EAA4 @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r5, 0
+ beq _0800EA7E
+ cmp r5, r10
+ beq _0800EA4A
+ cmp r7, 0
+ beq _0800EA4A
+ cmp r1, 0
+ bne _0800EA4A
+ movs r0, 0x1
+ mov r2, r8
+ lsls r0, r2
+ orrs r6, r0
+ lsls r0, r6, 16
+ lsrs r6, r0, 16
+_0800EA4A:
+ cmp r5, 0
+ beq _0800EA7E
+ cmp r7, 0
+ beq _0800EA66
+ cmp r5, r10
+ beq _0800EA5A
+ cmp r1, 0
+ beq _0800EA66
+_0800EA5A:
+ movs r0, 0x2
+ mov r1, r8
+ lsls r0, r1
+ orrs r6, r0
+ lsls r0, r6, 16
+ lsrs r6, r0, 16
+_0800EA66:
+ cmp r5, 0
+ beq _0800EA7E
+ cmp r5, r10
+ beq _0800EA7E
+ cmp r7, 0
+ bne _0800EA7E
+ movs r0, 0x3
+ mov r2, r8
+ lsls r0, r2
+ orrs r6, r0
+ lsls r0, r6, 16
+ lsrs r6, r0, 16
+_0800EA7E:
+ movs r0, 0x2
+ add r8, r0
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x5
+ ble _0800EA02
+ ldr r1, _0800EAA8 @ =0x02000000
+ strb r6, [r1, 0x2]
+ lsrs r0, r6, 8
+ strb r0, [r1, 0x3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800EAA4: .4byte gPlayerParty
+_0800EAA8: .4byte 0x02000000
+ thumb_func_end sub_800E9EC
+
+ thumb_func_start sub_800EAAC
+sub_800EAAC: @ 800EAAC
+ push {r4-r6,lr}
+ ldr r4, _0800EAF4 @ =0x02000004
+ movs r2, 0
+ ldr r6, _0800EAF8 @ =gSaveBlock1
+ ldr r0, _0800EAFC @ =0x00003160
+ adds r3, r6, r0
+_0800EAB8:
+ adds r0, r4, r2
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _0800EAB8
+ movs r2, 0
+ adds r3, r4, 0
+ adds r3, 0x8
+ ldr r5, _0800EB00 @ =gSaveBlock1 + 0x3676
+_0800EACE:
+ adds r0, r3, r2
+ adds r1, r2, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x11
+ ble _0800EACE
+ ldr r1, _0800EB04 @ =0x00003688
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ strb r0, [r4, 0x7]
+ adds r1, 0x1
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ strb r0, [r4, 0x1A]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800EAF4: .4byte 0x02000004
+_0800EAF8: .4byte gSaveBlock1
+_0800EAFC: .4byte 0x00003160
+_0800EB00: .4byte gSaveBlock1 + 0x3676
+_0800EB04: .4byte 0x00003688
+ thumb_func_end sub_800EAAC
+
+ thumb_func_start sub_800EB08
+sub_800EB08: @ 800EB08
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0800EB84 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0800EBA4
+ movs r3, 0
+ ldr r5, _0800EB88 @ =gEnigmaBerries
+ ldr r0, _0800EB8C @ =gSaveBlock1
+ mov r12, r0
+ adds r7, r5, 0
+ ldr r6, _0800EB90 @ =0x00003160
+ add r6, r12
+ adds r4, r5, 0
+ adds r4, 0x38
+_0800EB30:
+ adds r1, r3, r7
+ adds r2, r3, r6
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r1, r3, r4
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _0800EB30
+ movs r3, 0
+ ldr r4, _0800EB94 @ =gUnknown_02024DF8
+ ldr r7, _0800EB98 @ =gSaveBlock1 + 0x3676
+ adds r6, r4, 0
+ adds r6, 0x38
+_0800EB4E:
+ adds r1, r3, r4
+ adds r2, r3, r7
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r1, r3, r6
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r3, 0x1
+ cmp r3, 0x11
+ ble _0800EB4E
+ ldr r1, _0800EB9C @ =0x00003688
+ add r1, r12
+ ldrb r0, [r1]
+ strb r0, [r5, 0x7]
+ ldrb r0, [r1]
+ adds r1, r5, 0
+ adds r1, 0x3F
+ strb r0, [r1]
+ ldr r1, _0800EBA0 @ =0x00003689
+ add r1, r12
+ ldrb r0, [r1]
+ strb r0, [r5, 0x1A]
+ ldrb r1, [r1]
+ adds r0, r5, 0
+ adds r0, 0x52
+ strb r1, [r0]
+ b _0800EC28
+ .align 2, 0
+_0800EB84: .4byte gUnknown_020239F8
+_0800EB88: .4byte gEnigmaBerries
+_0800EB8C: .4byte gSaveBlock1
+_0800EB90: .4byte 0x00003160
+_0800EB94: .4byte gUnknown_02024DF8
+_0800EB98: .4byte gSaveBlock1 + 0x3676
+_0800EB9C: .4byte 0x00003688
+_0800EBA0: .4byte 0x00003689
+_0800EBA4:
+ movs r0, 0x40
+ ands r0, r1
+ movs r1, 0x2
+ mov r8, r1
+ cmp r0, 0
+ beq _0800EBB4
+ movs r0, 0x4
+ mov r8, r0
+_0800EBB4:
+ movs r3, 0
+ cmp r3, r8
+ bge _0800EC28
+ ldr r1, _0800EC38 @ =gEnigmaBerries
+ mov r12, r1
+ ldr r0, _0800EC3C @ =gBlockRecvBuffer + 0x4
+ mov r10, r0
+ movs r1, 0x8
+ add r1, r12
+ mov r9, r1
+_0800EBC8:
+ lsls r0, r3, 8
+ mov r1, r10
+ adds r5, r0, r1
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ ldr r1, _0800EC40 @ =gLinkPlayers
+ adds r0, r1
+ ldrb r4, [r0, 0x18]
+ movs r2, 0
+ adds r7, r3, 0x1
+ lsls r1, r4, 3
+ subs r0, r1, r4
+ adds r6, r1, 0
+ lsls r0, 2
+ mov r1, r12
+ adds r3, r0, r1
+_0800EBEA:
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _0800EBEA
+ movs r2, 0
+ subs r0, r6, r4
+ lsls r0, 2
+ mov r1, r9
+ adds r3, r0, r1
+ adds r1, r5, 0
+ adds r1, 0x8
+_0800EC06:
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r2, 0x1
+ cmp r2, 0x11
+ ble _0800EC06
+ subs r0, r6, r4
+ lsls r0, 2
+ add r0, r12
+ ldrb r1, [r5, 0x7]
+ strb r1, [r0, 0x7]
+ ldrb r1, [r5, 0x1A]
+ strb r1, [r0, 0x1A]
+ adds r3, r7, 0
+ cmp r3, r8
+ blt _0800EBC8
+_0800EC28:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800EC38: .4byte gEnigmaBerries
+_0800EC3C: .4byte gBlockRecvBuffer + 0x4
+_0800EC40: .4byte gLinkPlayers
+ thumb_func_end sub_800EB08
+
+ thumb_func_start shedinja_something
+shedinja_something: @ 800EC44
+ push {r4,r5,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ add r5, sp, 0xC
+ movs r0, 0x1
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _0800EC94 @ =0x0000012f
+ cmp r0, r1
+ bne _0800EC8C
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetMonData
+ ldrb r1, [r5]
+ cmp r0, r1
+ beq _0800EC8C
+ adds r0, r4, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ ldr r1, _0800EC98 @ =gUnknown_081F96C8
+ mov r0, sp
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _0800EC8C
+ adds r0, r4, 0
+ movs r1, 0x3
+ adds r2, r5, 0
+ bl SetMonData
+_0800EC8C:
+ add sp, 0x10
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800EC94: .4byte 0x0000012f
+_0800EC98: .4byte gUnknown_081F96C8
+ thumb_func_end shedinja_something
+
+ thumb_func_start sub_800EC9C
+sub_800EC9C: @ 800EC9C
+ push {r4-r7,lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0800ECD4 @ =0x02000000
+ ldr r1, _0800ECD8 @ =0x000160cb
+ adds r0, r1
+ strb r4, [r0]
+ movs r0, 0x1
+ adds r5, r4, 0
+ eors r5, r0
+ ldr r0, _0800ECDC @ =gUnknown_02024D1E
+ ldrb r0, [r0]
+ cmp r0, 0x9
+ bls _0800ECCA
+ b _0800F008
+_0800ECCA:
+ lsls r0, 2
+ ldr r1, _0800ECE0 @ =_0800ECE4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800ECD4: .4byte 0x02000000
+_0800ECD8: .4byte 0x000160cb
+_0800ECDC: .4byte gUnknown_02024D1E
+_0800ECE0: .4byte _0800ECE4
+ .align 2, 0
+_0800ECE4:
+ .4byte _0800ED0C
+ .4byte _0800ED7C
+ .4byte _0800EE88
+ .4byte _0800EEAC
+ .4byte _0800EED8
+ .4byte _0800EEFC
+ .4byte _0800EF28
+ .4byte _0800EF48
+ .4byte _0800EFB4
+ .4byte _0800EFCC
+_0800ED0C:
+ ldr r2, _0800ED54 @ =gUnknown_020239F8
+ ldrh r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0800ED64
+ ldr r0, _0800ED58 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0800ED22
+ b _0800F008
+_0800ED22:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800ED2E
+ b _0800F008
+_0800ED2E:
+ ldr r4, _0800ED5C @ =0x02000000
+ movs r5, 0x1
+ strb r5, [r4]
+ strb r5, [r4, 0x1]
+ bl sub_800E9EC
+ bl sub_800EAAC
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl SendBlock
+ ldr r0, _0800ED60 @ =gUnknown_02024D1E
+ strb r5, [r0]
+ b _0800F008
+ .align 2, 0
+_0800ED54: .4byte gUnknown_020239F8
+_0800ED58: .4byte gReceivedRemoteLinkPlayers
+_0800ED5C: .4byte 0x02000000
+_0800ED60: .4byte gUnknown_02024D1E
+_0800ED64:
+ movs r0, 0x4
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0800ED78 @ =gUnknown_02024D1E
+ movs r0, 0x8
+ strb r0, [r1]
+ bl sub_800EB08
+ b _0800F008
+ .align 2, 0
+_0800ED78: .4byte gUnknown_02024D1E
+_0800ED7C:
+ bl GetBlockRecievedStatus
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ beq _0800ED8A
+ b _0800F008
+_0800ED8A:
+ bl ResetBlockReceivedFlags
+ movs r3, 0
+ ldr r0, _0800EDA8 @ =gBlockRecvBuffer
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bne _0800EDBC
+ cmp r4, 0
+ bne _0800EDB0
+ ldr r0, _0800EDAC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0xC
+ b _0800EDB6
+ .align 2, 0
+_0800EDA8: .4byte gBlockRecvBuffer
+_0800EDAC: .4byte gUnknown_020239F8
+_0800EDB0:
+ ldr r0, _0800EDE0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x8
+_0800EDB6:
+ orrs r1, r2
+ strh r1, [r0]
+ adds r3, 0x1
+_0800EDBC:
+ lsls r7, r5, 8
+ cmp r3, 0
+ bne _0800EE38
+ ldr r0, _0800EDE4 @ =gBlockRecvBuffer
+ movs r1, 0x80
+ lsls r1, 1
+ adds r2, r0, r1
+ ldrh r1, [r0]
+ adds r6, r0, 0
+ ldrh r2, [r2]
+ cmp r1, r2
+ bne _0800EDF4
+ cmp r4, 0
+ bne _0800EDE8
+ ldr r0, _0800EDE0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0xC
+ b _0800EDEE
+ .align 2, 0
+_0800EDE0: .4byte gUnknown_020239F8
+_0800EDE4: .4byte gBlockRecvBuffer
+_0800EDE8:
+ ldr r0, _0800EE04 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x8
+_0800EDEE:
+ orrs r1, r2
+ strh r1, [r0]
+ adds r3, 0x1
+_0800EDF4:
+ lsls r7, r5, 8
+ cmp r3, 0
+ bne _0800EE38
+ ldrh r1, [r6]
+ ldr r0, _0800EE08 @ =0x00000101
+ ldr r2, _0800EE04 @ =gUnknown_020239F8
+ b _0800EE1A
+ .align 2, 0
+_0800EE04: .4byte gUnknown_020239F8
+_0800EE08: .4byte 0x00000101
+_0800EE0C:
+ adds r3, 0x1
+ cmp r3, 0x1
+ bgt _0800EE22
+ lsls r0, r3, 8
+ adds r0, r6
+ ldrh r1, [r0]
+ ldr r0, _0800EE2C @ =0x00000101
+_0800EE1A:
+ cmp r1, r0
+ bls _0800EE0C
+ cmp r3, r4
+ beq _0800EE0C
+_0800EE22:
+ cmp r3, 0x2
+ bne _0800EE30
+ ldrh r0, [r2]
+ movs r1, 0xC
+ b _0800EE34
+ .align 2, 0
+_0800EE2C: .4byte 0x00000101
+_0800EE30:
+ ldrh r0, [r2]
+ movs r1, 0x8
+_0800EE34:
+ orrs r0, r1
+ strh r0, [r2]
+_0800EE38:
+ bl sub_800EB08
+ ldr r0, _0800EE78 @ =sub_800DE30
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800EE7C @ =gTasks
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r1
+ movs r1, 0
+ movs r0, 0x87
+ lsls r0, 1
+ strh r0, [r2, 0xA]
+ movs r0, 0x5A
+ strh r0, [r2, 0xC]
+ strh r1, [r2, 0x12]
+ ldr r0, _0800EE80 @ =0x02000000
+ ldrb r1, [r0, 0x2]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2, 0xE]
+ ldr r0, _0800EE84 @ =gBlockRecvBuffer
+ adds r0, 0x2
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ b _0800EF96
+ .align 2, 0
+_0800EE78: .4byte sub_800DE30
+_0800EE7C: .4byte gTasks
+_0800EE80: .4byte 0x02000000
+_0800EE84: .4byte gBlockRecvBuffer
+_0800EE88:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800EE94
+ b _0800F008
+_0800EE94:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800EEA8 @ =gPlayerParty
+ movs r2, 0xC8
+ bl SendBlock
+ b _0800EF96
+ .align 2, 0
+_0800EEA8: .4byte gPlayerParty
+_0800EEAC:
+ bl GetBlockRecievedStatus
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ beq _0800EEBA
+ b _0800F008
+_0800EEBA:
+ bl ResetBlockReceivedFlags
+ ldr r0, _0800EED0 @ =gEnemyParty
+ lsls r1, r5, 8
+ ldr r2, _0800EED4 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0xC8
+ bl memcpy
+ b _0800EF96
+ .align 2, 0
+_0800EED0: .4byte gEnemyParty
+_0800EED4: .4byte gBlockRecvBuffer
+_0800EED8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800EEE4
+ b _0800F008
+_0800EEE4:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800EEF8 @ =gUnknown_03004428
+ movs r2, 0xC8
+ bl SendBlock
+ b _0800EF96
+ .align 2, 0
+_0800EEF8: .4byte gUnknown_03004428
+_0800EEFC:
+ bl GetBlockRecievedStatus
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ beq _0800EF0A
+ b _0800F008
+_0800EF0A:
+ bl ResetBlockReceivedFlags
+ ldr r0, _0800EF20 @ =gUnknown_03004688
+ lsls r1, r5, 8
+ ldr r2, _0800EF24 @ =gBlockRecvBuffer
+ adds r1, r2
+ movs r2, 0xC8
+ bl memcpy
+ b _0800EF96
+ .align 2, 0
+_0800EF20: .4byte gUnknown_03004688
+_0800EF24: .4byte gBlockRecvBuffer
+_0800EF28:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800F008
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800EF44 @ =gUnknown_030044F0
+ movs r2, 0xC8
+ bl SendBlock
+ b _0800EF96
+ .align 2, 0
+_0800EF44: .4byte gUnknown_030044F0
+_0800EF48:
+ bl GetBlockRecievedStatus
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x3
+ bne _0800F008
+ bl ResetBlockReceivedFlags
+ ldr r4, _0800EFA0 @ =gUnknown_03004750
+ lsls r1, r5, 8
+ ldr r0, _0800EFA4 @ =gBlockRecvBuffer
+ adds r1, r0
+ adds r0, r4, 0
+ movs r2, 0xC8
+ bl memcpy
+ ldr r1, _0800EFA8 @ =0xfffffe70
+ adds r0, r4, r1
+ bl shedinja_something
+ ldr r1, _0800EFAC @ =0xfffffed4
+ adds r0, r4, r1
+ bl shedinja_something
+ adds r0, r4, 0
+ subs r0, 0xC8
+ bl shedinja_something
+ adds r0, r4, 0
+ subs r0, 0x64
+ bl shedinja_something
+ adds r0, r4, 0
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0x64
+ bl shedinja_something
+_0800EF96:
+ ldr r1, _0800EFB0 @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0800F008
+ .align 2, 0
+_0800EFA0: .4byte gUnknown_03004750
+_0800EFA4: .4byte gBlockRecvBuffer
+_0800EFA8: .4byte 0xfffffe70
+_0800EFAC: .4byte 0xfffffed4
+_0800EFB0: .4byte gUnknown_02024D1E
+_0800EFB4:
+ bl sub_800B950
+ ldr r0, _0800EFC8 @ =gUnknown_02024D1E
+ ldrb r1, [r0]
+ adds r1, 0x1
+ movs r2, 0
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ strb r2, [r0, 0x2]
+ b _0800F008
+ .align 2, 0
+_0800EFC8: .4byte gUnknown_02024D1E
+_0800EFCC:
+ ldr r0, _0800F010 @ =gUnknown_02024D1F
+ adds r1, r0, 0x1
+ bl battle_load_something
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800F008
+ ldr r2, _0800F014 @ =gUnknown_030042D0
+ ldr r1, _0800F018 @ =gMain
+ ldr r0, [r1]
+ str r0, [r2]
+ ldr r0, _0800F01C @ =sub_8010824
+ str r0, [r1]
+ ldr r0, _0800F020 @ =sub_800F808
+ bl SetMainCallback2
+ ldr r3, _0800F024 @ =gUnknown_020239F8
+ ldrh r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0800F008
+ ldr r1, _0800F028 @ =gTrainerBattleOpponent
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r0, 0x20
+ orrs r0, r2
+ strh r0, [r3]
+_0800F008:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F010: .4byte gUnknown_02024D1F
+_0800F014: .4byte gUnknown_030042D0
+_0800F018: .4byte gMain
+_0800F01C: .4byte sub_8010824
+_0800F020: .4byte sub_800F808
+_0800F024: .4byte gUnknown_020239F8
+_0800F028: .4byte gTrainerBattleOpponent
+ thumb_func_end sub_800EC9C
+
+ thumb_func_start sub_800F02C
+sub_800F02C: @ 800F02C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r7, _0800F0F8 @ =gUnknown_02023A04
+ mov r10, r7
+_0800F03E:
+ mov r1, r8
+ lsls r6, r1, 5
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ ldr r0, _0800F0FC @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ movs r1, 0x4
+ negs r1, r1
+ add r1, r10
+ mov r9, r1
+ adds r5, r6, r1
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ strh r0, [r5, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2
+ adds r2, r7, 0
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ strb r0, [r5, 0xF]
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r5, 0x12]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ mov r1, r10
+ adds r1, 0x10
+ adds r6, r1
+ str r0, [r6]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r7, 0x14]
+ adds r0, r4, 0
+ bl GetMonGender
+ strb r0, [r5, 0x1C]
+ adds r0, r7, 0
+ bl StripExtCtrlCodes
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl GetMonData
+ strb r0, [r5, 0x1D]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0800F0D4
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_814A518
+_0800F0D4:
+ adds r7, 0x20
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x2
+ ble _0800F03E
+ ldr r0, _0800F100 @ =0x02000000
+ mov r1, r9
+ movs r2, 0x60
+ bl memcpy
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F0F8: .4byte gUnknown_02023A04
+_0800F0FC: .4byte gPlayerParty
+_0800F100: .4byte 0x02000000
+ thumb_func_end sub_800F02C
+
+ thumb_func_start sub_800F104
+sub_800F104: @ 800F104
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r4, _0800F148 @ =0x02000000
+ ldr r1, _0800F14C @ =0x000160cb
+ adds r0, r4, r1
+ strb r6, [r0]
+ ldr r2, _0800F150 @ =0x000160c4
+ adds r2, r4
+ mov r9, r2
+ ldr r0, _0800F154 @ =0x000160c2
+ adds r0, r4
+ mov r8, r0
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r5, _0800F158 @ =gUnknown_02024D1E
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _0800F1A0
+ cmp r0, 0x1
+ bgt _0800F15C
+ cmp r0, 0
+ beq _0800F168
+ b _0800F27A
+ .align 2, 0
+_0800F148: .4byte 0x02000000
+_0800F14C: .4byte 0x000160cb
+_0800F150: .4byte 0x000160c4
+_0800F154: .4byte 0x000160c2
+_0800F158: .4byte gUnknown_02024D1E
+_0800F15C:
+ cmp r0, 0x2
+ beq _0800F240
+ cmp r0, 0x3
+ bne _0800F166
+ b _0800F25C
+_0800F166:
+ b _0800F27A
+_0800F168:
+ ldr r0, _0800F19C @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0800F172
+ b _0800F27A
+_0800F172:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800F17E
+ b _0800F27A
+_0800F17E:
+ bl sub_800F02C
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0x60
+ bl SendBlock
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0800F27A
+ .align 2, 0
+_0800F19C: .4byte gReceivedRemoteLinkPlayers
+_0800F1A0:
+ bl GetBlockRecievedStatus
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0xF
+ bne _0800F27A
+ bl ResetBlockReceivedFlags
+ movs r4, 0
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r5, r0, 2
+ movs r7, 0
+_0800F1BA:
+ cmp r4, r6
+ beq _0800F1FA
+ ldr r2, _0800F1DC @ =gLinkPlayers
+ adds r0, r7, r2
+ ldrh r1, [r0, 0x18]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0800F1E0
+ adds r0, r5, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F1EC
+ b _0800F1FA
+ .align 2, 0
+_0800F1DC: .4byte gLinkPlayers
+_0800F1E0:
+ adds r0, r5, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F1FA
+_0800F1EC:
+ lsls r1, r4, 8
+ ldr r0, _0800F228 @ =gBlockRecvBuffer
+ adds r1, r0
+ ldr r0, _0800F22C @ =gUnknown_02023A00
+ movs r2, 0x60
+ bl memcpy
+_0800F1FA:
+ adds r7, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0800F1BA
+ ldr r1, _0800F230 @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0800F234 @ =gMain
+ ldr r0, [r1, 0x8]
+ mov r2, r9
+ str r0, [r2]
+ ldr r0, _0800F238 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ mov r2, r8
+ strh r0, [r2]
+ ldr r0, _0800F23C @ =sub_800F104
+ str r0, [r1, 0x8]
+ movs r0, 0x5
+ movs r1, 0
+ bl OpenPartyMenu
+ b _0800F27A
+ .align 2, 0
+_0800F228: .4byte gBlockRecvBuffer
+_0800F22C: .4byte gUnknown_02023A00
+_0800F230: .4byte gUnknown_02024D1E
+_0800F234: .4byte gMain
+_0800F238: .4byte gUnknown_020239F8
+_0800F23C: .4byte sub_800F104
+_0800F240:
+ ldr r0, _0800F258 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0800F27A
+ movs r0, 0x3
+ strb r0, [r5]
+ bl sub_800832C
+ b _0800F27A
+ .align 2, 0
+_0800F258: .4byte gPaletteFade
+_0800F25C:
+ ldr r0, _0800F288 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0800F27A
+ ldr r1, _0800F28C @ =gUnknown_020239F8
+ mov r2, r8
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r1, _0800F290 @ =gMain
+ mov r2, r9
+ ldr r0, [r2]
+ str r0, [r1, 0x8]
+ ldr r0, _0800F294 @ =sub_800E7F8
+ bl SetMainCallback2
+_0800F27A:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F288: .4byte gReceivedRemoteLinkPlayers
+_0800F28C: .4byte gUnknown_020239F8
+_0800F290: .4byte gMain
+_0800F294: .4byte sub_800E7F8
+ thumb_func_end sub_800F104
+
+ thumb_func_start sub_800F298
+sub_800F298: @ 800F298
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0800F2D0 @ =0x02000000
+ ldr r1, _0800F2D4 @ =0x000160cb
+ adds r0, r1
+ strb r6, [r0]
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _0800F2D8 @ =gUnknown_02024D1E
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _0800F2C4
+ b _0800F7E0
+_0800F2C4:
+ lsls r0, 2
+ ldr r1, _0800F2DC @ =_0800F2E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0800F2D0: .4byte 0x02000000
+_0800F2D4: .4byte 0x000160cb
+_0800F2D8: .4byte gUnknown_02024D1E
+_0800F2DC: .4byte _0800F2E0
+ .align 2, 0
+_0800F2E0:
+ .4byte _0800F300
+ .4byte _0800F340
+ .4byte _0800F4DE
+ .4byte _0800F504
+ .4byte _0800F5F8
+ .4byte _0800F61C
+ .4byte _0800F78C
+ .4byte _0800F7A4
+_0800F300:
+ ldr r0, _0800F338 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0800F30A
+ b _0800F7E0
+_0800F30A:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800F316
+ b _0800F7E0
+_0800F316:
+ ldr r4, _0800F33C @ =0x02000000
+ movs r0, 0x1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ bl sub_800E9EC
+ bl sub_800EAAC
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl SendBlock
+ b _0800F770
+ .align 2, 0
+_0800F338: .4byte gReceivedRemoteLinkPlayers
+_0800F33C: .4byte 0x02000000
+_0800F340:
+ bl GetBlockRecievedStatus
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0xF
+ beq _0800F34E
+ b _0800F7E0
+_0800F34E:
+ bl ResetBlockReceivedFlags
+ movs r4, 0
+ ldr r0, _0800F36C @ =gBlockRecvBuffer
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ cmp r1, r0
+ bne _0800F380
+ cmp r6, 0
+ bne _0800F374
+ ldr r0, _0800F370 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0xC
+ b _0800F37A
+ .align 2, 0
+_0800F36C: .4byte gBlockRecvBuffer
+_0800F370: .4byte gUnknown_020239F8
+_0800F374:
+ ldr r0, _0800F3B0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x8
+_0800F37A:
+ orrs r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+_0800F380:
+ cmp r4, 0
+ bne _0800F41C
+ movs r2, 0
+ ldr r1, _0800F3B4 @ =gBlockRecvBuffer
+ adds r5, r1, 0
+ movs r3, 0x80
+ lsls r3, 1
+_0800F38E:
+ adds r1, r3
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _0800F39E
+ ldrh r0, [r5]
+ ldrh r7, [r1]
+ cmp r0, r7
+ beq _0800F38E
+_0800F39E:
+ cmp r2, 0x4
+ bne _0800F3C4
+ cmp r6, 0
+ bne _0800F3B8
+ ldr r0, _0800F3B0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0xC
+ b _0800F3BE
+ .align 2, 0
+_0800F3B0: .4byte gUnknown_020239F8
+_0800F3B4: .4byte gBlockRecvBuffer
+_0800F3B8:
+ ldr r0, _0800F408 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x8
+_0800F3BE:
+ orrs r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+_0800F3C4:
+ cmp r4, 0
+ bne _0800F41C
+ ldr r0, _0800F40C @ =gBlockRecvBuffer
+ ldrh r2, [r0]
+ ldr r1, _0800F410 @ =0x00000101
+ adds r3, r0, 0
+ ldr r5, _0800F408 @ =gUnknown_020239F8
+ cmp r2, r1
+ beq _0800F3F6
+_0800F3D6:
+ lsls r0, r4, 8
+ adds r0, r3
+ ldrh r0, [r0]
+ ldr r1, _0800F410 @ =0x00000101
+ cmp r0, r1
+ bls _0800F3E6
+ cmp r4, r6
+ bne _0800F3FE
+_0800F3E6:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0800F3FE
+ lsls r0, r4, 8
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r1
+ bne _0800F3D6
+_0800F3F6:
+ cmp r4, r6
+ beq _0800F3D6
+ cmp r4, r6
+ bge _0800F3D6
+_0800F3FE:
+ cmp r4, 0x4
+ bne _0800F414
+ ldrh r0, [r5]
+ movs r1, 0xC
+ b _0800F418
+ .align 2, 0
+_0800F408: .4byte gUnknown_020239F8
+_0800F40C: .4byte gBlockRecvBuffer
+_0800F410: .4byte 0x00000101
+_0800F414:
+ ldrh r0, [r5]
+ movs r1, 0x8
+_0800F418:
+ orrs r0, r1
+ strh r0, [r5]
+_0800F41C:
+ bl sub_800EB08
+ ldr r0, _0800F474 @ =0x0201d000
+ ldr r1, _0800F478 @ =gPlayerParty
+ movs r2, 0x96
+ lsls r2, 1
+ bl memcpy
+ ldr r0, _0800F47C @ =sub_800DE30
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0800F480 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ movs r0, 0x87
+ lsls r0, 1
+ strh r0, [r1, 0xA]
+ movs r0, 0x5A
+ strh r0, [r1, 0xC]
+ strh r2, [r1, 0x12]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+ adds r2, r1, 0
+ ldr r0, _0800F484 @ =gBlockRecvBuffer
+ adds r3, r0, 0x2
+ ldr r6, _0800F488 @ =gLinkPlayers
+ movs r5, 0x3F
+ movs r7, 0x80
+ lsls r7, 1
+ movs r4, 0x3
+_0800F464:
+ ldrh r0, [r6, 0x18]
+ cmp r0, 0x1
+ beq _0800F49E
+ cmp r0, 0x1
+ bgt _0800F48C
+ cmp r0, 0
+ beq _0800F496
+ b _0800F4C4
+ .align 2, 0
+_0800F474: .4byte 0x0201d000
+_0800F478: .4byte gPlayerParty
+_0800F47C: .4byte sub_800DE30
+_0800F480: .4byte gTasks
+_0800F484: .4byte gBlockRecvBuffer
+_0800F488: .4byte gLinkPlayers
+_0800F48C:
+ cmp r0, 0x2
+ beq _0800F4A6
+ cmp r0, 0x3
+ beq _0800F4B6
+ b _0800F4C4
+_0800F496:
+ ldrh r0, [r3]
+ adds r1, r5, 0
+ ands r1, r0
+ b _0800F4AE
+_0800F49E:
+ ldrh r0, [r3]
+ adds r1, r5, 0
+ ands r1, r0
+ b _0800F4BE
+_0800F4A6:
+ ldrh r0, [r3]
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 6
+_0800F4AE:
+ ldrh r0, [r2, 0xE]
+ orrs r1, r0
+ strh r1, [r2, 0xE]
+ b _0800F4C4
+_0800F4B6:
+ ldrh r0, [r3]
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 6
+_0800F4BE:
+ ldrh r0, [r2, 0x10]
+ orrs r1, r0
+ strh r1, [r2, 0x10]
+_0800F4C4:
+ adds r3, r7
+ adds r6, 0x1C
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0800F464
+ bl ZeroPlayerPartyMons
+ bl ZeroEnemyPartyMons
+ ldr r1, _0800F4FC @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0800F4DE:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800F4EA
+ b _0800F7E0
+_0800F4EA:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800F500 @ =0x0201d000
+ movs r2, 0xC8
+ bl SendBlock
+ b _0800F770
+ .align 2, 0
+_0800F4FC: .4byte gUnknown_02024D1E
+_0800F500: .4byte 0x0201d000
+_0800F504:
+ bl GetBlockRecievedStatus
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0xF
+ beq _0800F512
+ b _0800F7E0
+_0800F512:
+ bl ResetBlockReceivedFlags
+ movs r4, 0
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ mov r8, r0
+ ldr r5, _0800F53C @ =gBlockRecvBuffer
+ movs r7, 0
+_0800F524:
+ cmp r4, r6
+ bne _0800F558
+ ldr r0, _0800F540 @ =gLinkPlayers
+ adds r0, r7, r0
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x2
+ bgt _0800F544
+ cmp r0, 0x1
+ bge _0800F550
+ cmp r0, 0
+ beq _0800F548
+ b _0800F5E2
+ .align 2, 0
+_0800F53C: .4byte gBlockRecvBuffer
+_0800F540: .4byte gLinkPlayers
+_0800F544:
+ cmp r0, 0x3
+ bne _0800F5E2
+_0800F548:
+ ldr r0, _0800F54C @ =gPlayerParty
+ b _0800F5C8
+ .align 2, 0
+_0800F54C: .4byte gPlayerParty
+_0800F550:
+ ldr r0, _0800F554 @ =gUnknown_0300448C
+ b _0800F5C8
+ .align 2, 0
+_0800F554: .4byte gUnknown_0300448C
+_0800F558:
+ ldr r2, _0800F578 @ =gLinkPlayers
+ adds r0, r7, r2
+ ldrh r1, [r0, 0x18]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0800F57C
+ mov r1, r8
+ adds r0, r1, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F58A
+ b _0800F5B0
+ .align 2, 0
+_0800F578: .4byte gLinkPlayers
+_0800F57C:
+ mov r1, r8
+ adds r0, r1, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F5B0
+_0800F58A:
+ adds r0, r7, r2
+ ldrh r2, [r0, 0x18]
+ cmp r2, 0x2
+ bgt _0800F59C
+ cmp r2, 0x1
+ bge _0800F5A8
+ cmp r2, 0
+ beq _0800F5A0
+ b _0800F5E2
+_0800F59C:
+ cmp r2, 0x3
+ bne _0800F5E2
+_0800F5A0:
+ ldr r0, _0800F5A4 @ =gPlayerParty
+ b _0800F5C8
+ .align 2, 0
+_0800F5A4: .4byte gPlayerParty
+_0800F5A8:
+ ldr r0, _0800F5AC @ =gUnknown_0300448C
+ b _0800F5C8
+ .align 2, 0
+_0800F5AC: .4byte gUnknown_0300448C
+_0800F5B0:
+ adds r0, r7, r2
+ ldrh r2, [r0, 0x18]
+ cmp r2, 0x2
+ bgt _0800F5C2
+ cmp r2, 0x1
+ bge _0800F5D8
+ cmp r2, 0
+ beq _0800F5C6
+ b _0800F5E2
+_0800F5C2:
+ cmp r2, 0x3
+ bne _0800F5E2
+_0800F5C6:
+ ldr r0, _0800F5D4 @ =gEnemyParty
+_0800F5C8:
+ adds r1, r5, 0
+ movs r2, 0xC8
+ bl memcpy
+ b _0800F5E2
+ .align 2, 0
+_0800F5D4: .4byte gEnemyParty
+_0800F5D8:
+ ldr r0, _0800F5F4 @ =gUnknown_030046EC
+ adds r1, r5, 0
+ movs r2, 0xC8
+ bl memcpy
+_0800F5E2:
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ adds r7, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0800F524
+ b _0800F770
+ .align 2, 0
+_0800F5F4: .4byte gUnknown_030046EC
+_0800F5F8:
+ bl sub_8007ECC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0800F604
+ b _0800F7E0
+_0800F604:
+ bl bitmask_all_link_players_but_self
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0800F618 @ =0x0201d0c8
+ movs r2, 0x64
+ bl SendBlock
+ b _0800F770
+ .align 2, 0
+_0800F618: .4byte 0x0201d0c8
+_0800F61C:
+ bl GetBlockRecievedStatus
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0xF
+ beq _0800F62A
+ b _0800F7E0
+_0800F62A:
+ bl ResetBlockReceivedFlags
+ movs r4, 0
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ mov r8, r0
+ ldr r5, _0800F654 @ =gBlockRecvBuffer
+ movs r7, 0
+_0800F63C:
+ cmp r4, r6
+ bne _0800F670
+ ldr r0, _0800F658 @ =gLinkPlayers
+ adds r0, r7, r0
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x2
+ bgt _0800F65C
+ cmp r0, 0x1
+ bge _0800F668
+ cmp r0, 0
+ beq _0800F660
+ b _0800F6FA
+ .align 2, 0
+_0800F654: .4byte gBlockRecvBuffer
+_0800F658: .4byte gLinkPlayers
+_0800F65C:
+ cmp r0, 0x3
+ bne _0800F6FA
+_0800F660:
+ ldr r0, _0800F664 @ =gUnknown_03004428
+ b _0800F6E0
+ .align 2, 0
+_0800F664: .4byte gUnknown_03004428
+_0800F668:
+ ldr r0, _0800F66C @ =gUnknown_03004554
+ b _0800F6E0
+ .align 2, 0
+_0800F66C: .4byte gUnknown_03004554
+_0800F670:
+ ldr r2, _0800F690 @ =gLinkPlayers
+ adds r0, r7, r2
+ ldrh r1, [r0, 0x18]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0800F694
+ mov r1, r8
+ adds r0, r1, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F6A2
+ b _0800F6C8
+ .align 2, 0
+_0800F690: .4byte gLinkPlayers
+_0800F694:
+ mov r1, r8
+ adds r0, r1, r2
+ ldrh r1, [r0, 0x18]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0800F6C8
+_0800F6A2:
+ adds r0, r7, r2
+ ldrh r2, [r0, 0x18]
+ cmp r2, 0x2
+ bgt _0800F6B4
+ cmp r2, 0x1
+ bge _0800F6C0
+ cmp r2, 0
+ beq _0800F6B8
+ b _0800F6FA
+_0800F6B4:
+ cmp r2, 0x3
+ bne _0800F6FA
+_0800F6B8:
+ ldr r0, _0800F6BC @ =gUnknown_03004428
+ b _0800F6E0
+ .align 2, 0
+_0800F6BC: .4byte gUnknown_03004428
+_0800F6C0:
+ ldr r0, _0800F6C4 @ =gUnknown_03004554
+ b _0800F6E0
+ .align 2, 0
+_0800F6C4: .4byte gUnknown_03004554
+_0800F6C8:
+ adds r0, r7, r2
+ ldrh r2, [r0, 0x18]
+ cmp r2, 0x2
+ bgt _0800F6DA
+ cmp r2, 0x1
+ bge _0800F6F0
+ cmp r2, 0
+ beq _0800F6DE
+ b _0800F6FA
+_0800F6DA:
+ cmp r2, 0x3
+ bne _0800F6FA
+_0800F6DE:
+ ldr r0, _0800F6EC @ =gUnknown_03004688
+_0800F6E0:
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ b _0800F6FA
+ .align 2, 0
+_0800F6EC: .4byte gUnknown_03004688
+_0800F6F0:
+ ldr r0, _0800F77C @ =gUnknown_030047B4
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+_0800F6FA:
+ movs r0, 0x80
+ lsls r0, 1
+ adds r5, r0
+ adds r7, 0x1C
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0800F63C
+ ldr r4, _0800F780 @ =gPlayerParty
+ adds r0, r4, 0
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0x64
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0xC8
+ bl shedinja_something
+ movs r1, 0x96
+ lsls r1, 1
+ adds r0, r4, r1
+ bl shedinja_something
+ movs r7, 0xC8
+ lsls r7, 1
+ adds r0, r4, r7
+ bl shedinja_something
+ movs r1, 0xFA
+ lsls r1, 1
+ adds r0, r4, r1
+ bl shedinja_something
+ ldr r4, _0800F784 @ =gEnemyParty
+ adds r0, r4, 0
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0x64
+ bl shedinja_something
+ adds r0, r4, 0
+ adds r0, 0xC8
+ bl shedinja_something
+ subs r7, 0x64
+ adds r0, r4, r7
+ bl shedinja_something
+ movs r1, 0xC8
+ lsls r1, 1
+ adds r0, r4, r1
+ bl shedinja_something
+ adds r7, 0xC8
+ adds r0, r4, r7
+ bl shedinja_something
+_0800F770:
+ ldr r1, _0800F788 @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0800F7E0
+ .align 2, 0
+_0800F77C: .4byte gUnknown_030047B4
+_0800F780: .4byte gPlayerParty
+_0800F784: .4byte gEnemyParty
+_0800F788: .4byte gUnknown_02024D1E
+_0800F78C:
+ bl sub_800B950
+ ldr r0, _0800F7A0 @ =gUnknown_02024D1E
+ ldrb r1, [r0]
+ adds r1, 0x1
+ movs r2, 0
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ strb r2, [r0, 0x2]
+ b _0800F7E0
+ .align 2, 0
+_0800F7A0: .4byte gUnknown_02024D1E
+_0800F7A4:
+ ldr r0, _0800F7EC @ =gUnknown_02024D1F
+ adds r1, r0, 0x1
+ bl battle_load_something
+ lsls r0, 24
+ cmp r0, 0
+ beq _0800F7E0
+ ldr r2, _0800F7F0 @ =gUnknown_030042D0
+ ldr r1, _0800F7F4 @ =gMain
+ ldr r0, [r1]
+ str r0, [r2]
+ ldr r0, _0800F7F8 @ =sub_8010824
+ str r0, [r1]
+ ldr r0, _0800F7FC @ =sub_800F808
+ bl SetMainCallback2
+ ldr r3, _0800F800 @ =gUnknown_020239F8
+ ldrh r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0800F7E0
+ ldr r1, _0800F804 @ =gTrainerBattleOpponent
+ movs r4, 0x80
+ lsls r4, 4
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r0, 0x20
+ orrs r0, r2
+ strh r0, [r3]
+_0800F7E0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F7EC: .4byte gUnknown_02024D1F
+_0800F7F0: .4byte gUnknown_030042D0
+_0800F7F4: .4byte gMain
+_0800F7F8: .4byte sub_8010824
+_0800F7FC: .4byte sub_800F808
+_0800F800: .4byte gUnknown_020239F8
+_0800F804: .4byte gTrainerBattleOpponent
+ thumb_func_end sub_800F298
+
+ thumb_func_start sub_800F808
+sub_800F808: @ 800F808
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _0800F824 @ =gUnknown_03004210
+ bl sub_800374C
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F824: .4byte gUnknown_03004210
+ thumb_func_end sub_800F808
+
+ thumb_func_start sub_800F828
+sub_800F828: @ 800F828
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r1, _0800F834 @ =sub_800F838
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_0800F834: .4byte sub_800F838
+ thumb_func_end sub_800F828
+
+ thumb_func_start sub_800F838
+sub_800F838: @ 800F838
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r5, _0800F850 @ =0x02000000
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _0800F86C
+ cmp r1, 0x1
+ bgt _0800F854
+ cmp r1, 0
+ beq _0800F85A
+ b _0800F8DC
+ .align 2, 0
+_0800F850: .4byte 0x02000000
+_0800F854:
+ cmp r1, 0x2
+ beq _0800F8C8
+ b _0800F8DC
+_0800F85A:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r1, [r3, 0x30]
+ ldr r0, _0800F8C4 @ =0x00000281
+ strh r0, [r3, 0x32]
+ strh r1, [r3, 0x34]
+ movs r0, 0x1
+ strh r0, [r3, 0x36]
+_0800F86C:
+ ldrh r0, [r3, 0x36]
+ subs r0, 0x1
+ strh r0, [r3, 0x36]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0800F8DC
+ movs r0, 0x2
+ strh r0, [r3, 0x36]
+ movs r4, 0x30
+ ldrsh r2, [r3, r4]
+ movs r0, 0x34
+ ldrsh r1, [r3, r0]
+ lsls r1, 5
+ adds r2, r1
+ movs r4, 0x32
+ ldrsh r0, [r3, r4]
+ subs r0, r1
+ movs r4, 0x3D
+ lsls r0, 1
+ adds r0, r5
+ lsls r2, 1
+ adds r2, r5
+ movs r1, 0x1C
+_0800F89A:
+ strh r4, [r2]
+ strh r4, [r0]
+ adds r0, 0x4
+ adds r2, 0x4
+ subs r1, 0x2
+ cmp r1, 0
+ bge _0800F89A
+ ldrh r0, [r3, 0x34]
+ adds r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _0800F8DC
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ movs r0, 0x20
+ strh r0, [r3, 0x30]
+ b _0800F8DC
+ .align 2, 0
+_0800F8C4: .4byte 0x00000281
+_0800F8C8:
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x14
+ bne _0800F8DC
+ ldr r0, _0800F8E4 @ =sub_800E7C4
+ bl SetMainCallback2
+_0800F8DC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800F8E4: .4byte sub_800E7C4
+ thumb_func_end sub_800F838
+
+ thumb_func_start sub_800F8E8
+sub_800F8E8: @ 800F8E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0x10]
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp, 0x14]
+ movs r0, 0
+ mov r9, r0
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _0800F90C
+ movs r0, 0
+ b _0800FCB4
+_0800F90C:
+ ldr r0, _0800F93C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0800F940 @ =0x00000908
+ ands r0, r1
+ ldr r1, [sp, 0x14]
+ lsls r1, 2
+ str r1, [sp, 0x20]
+ cmp r0, 0x8
+ beq _0800F920
+ b _0800FCA4
+_0800F920:
+ bl ZeroEnemyPartyMons
+ movs r2, 0
+ str r2, [sp, 0x18]
+ ldr r2, _0800F944 @ =gTrainers
+ ldr r1, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ adds r0, 0x20
+ ldr r4, [sp, 0x18]
+ b _0800FC86
+ .align 2, 0
+_0800F93C: .4byte gUnknown_020239F8
+_0800F940: .4byte 0x00000908
+_0800F944: .4byte gTrainers
+_0800F948:
+ ldr r3, [sp, 0x14]
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0x1
+ bne _0800F95C
+ movs r4, 0x80
+ mov r10, r4
+ b _0800F96E
+_0800F95C:
+ ldrb r1, [r1, 0x2]
+ movs r0, 0x80
+ ands r0, r1
+ movs r1, 0x88
+ mov r10, r1
+ cmp r0, 0
+ beq _0800F96E
+ movs r2, 0x78
+ mov r10, r2
+_0800F96E:
+ movs r6, 0
+ ldr r0, _0800F9C4 @ =gTrainers
+ ldr r2, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r1, r2, r3
+ lsls r1, 3
+ adds r3, r0, 0x4
+ adds r1, r3
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ ldr r0, [sp, 0x18]
+ adds r0, 0x1
+ str r0, [sp, 0x1C]
+ cmp r1, 0xFF
+ beq _0800F9A6
+_0800F98C:
+ ldr r0, [sp, 0x14]
+ adds r1, r2, r0
+ lsls r1, 3
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800F98C
+_0800F9A6:
+ adds r2, r4, 0
+ ldr r1, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r0, r1, r3
+ lsls r1, r0, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0800FA5C
+ cmp r0, 0x1
+ bgt _0800F9C8
+ cmp r0, 0
+ beq _0800F9D6
+ b _0800FC74
+ .align 2, 0
+_0800F9C4: .4byte gTrainers
+_0800F9C8:
+ cmp r0, 0x2
+ bne _0800F9CE
+ b _0800FB1C
+_0800F9CE:
+ cmp r0, 0x3
+ bne _0800F9D4
+ b _0800FBB0
+_0800F9D4:
+ b _0800FC74
+_0800F9D6:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r4, [r0]
+ movs r6, 0
+ ldr r0, [sp, 0x18]
+ lsls r2, r0, 3
+ adds r0, r2, r4
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _0800FA58 @ =gSpeciesNames
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r5, r2, 0
+ cmp r0, 0xFF
+ beq _0800FA18
+ adds r3, r1, 0
+ movs r7, 0xB
+_0800F9FC:
+ adds r0, r2, r4
+ ldrh r0, [r0, 0x4]
+ adds r1, r0, 0
+ muls r1, r7
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800F9FC
+_0800FA18:
+ mov r2, r9
+ lsls r0, r2, 8
+ add r10, r0
+ adds r4, r5, r4
+ ldrh r1, [r4]
+ lsls r0, r1, 5
+ subs r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, [sp, 0x18]
+ movs r1, 0x64
+ adds r0, r3, 0
+ muls r0, r1
+ ldr r2, [sp, 0x10]
+ adds r0, r2, r0
+ ldrh r1, [r4, 0x4]
+ ldrb r2, [r4, 0x2]
+ movs r3, 0x1
+ str r3, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ movs r3, 0x2
+ str r3, [sp, 0x8]
+ movs r3, 0
+ str r3, [sp, 0xC]
+ adds r3, r6, 0
+ bl CreateMon
+ b _0800FC74
+ .align 2, 0
+_0800FA58: .4byte gSpeciesNames
+_0800FA5C:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r7, [r0]
+ movs r6, 0
+ ldr r4, [sp, 0x18]
+ lsls r2, r4, 4
+ adds r0, r2, r7
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _0800FB14 @ =gSpeciesNames
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r8, r2
+ cmp r0, 0xFF
+ beq _0800FA9E
+ adds r3, r1, 0
+ movs r4, 0xB
+_0800FA82:
+ adds r0, r2, r7
+ ldrh r0, [r0, 0x4]
+ adds r1, r0, 0
+ muls r1, r4
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800FA82
+_0800FA9E:
+ mov r2, r9
+ lsls r0, r2, 8
+ add r10, r0
+ mov r3, r8
+ adds r4, r3, r7
+ ldrh r1, [r4]
+ lsls r0, r1, 5
+ subs r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x18]
+ movs r1, 0x64
+ adds r5, r0, 0
+ muls r5, r1
+ ldr r2, [sp, 0x10]
+ adds r5, r2, r5
+ ldrh r1, [r4, 0x4]
+ ldrb r2, [r4, 0x2]
+ movs r0, 0x1
+ str r0, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ movs r0, 0x2
+ str r0, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ adds r3, r6, 0
+ bl CreateMon
+ movs r6, 0
+ mov r0, r8
+ adds r0, 0x6
+ adds r4, r7, r0
+_0800FAE8:
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl SetMonData
+ adds r1, r6, 0
+ adds r1, 0x11
+ ldrh r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0800FB18 @ =gBattleMoves + 0x4 @ PP offset
+ adds r2, r0
+ adds r0, r5, 0
+ bl SetMonData
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0800FAE8
+ b _0800FC74
+ .align 2, 0
+_0800FB14: .4byte gSpeciesNames
+_0800FB18: .4byte gBattleMoves + 0x4 @ PP offset
+_0800FB1C:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r4, [r0]
+ movs r6, 0
+ ldr r0, [sp, 0x18]
+ lsls r2, r0, 3
+ adds r0, r2, r4
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _0800FBAC @ =gSpeciesNames
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r5, r2, 0
+ cmp r0, 0xFF
+ beq _0800FB5E
+ adds r3, r1, 0
+ movs r7, 0xB
+_0800FB42:
+ adds r0, r2, r4
+ ldrh r0, [r0, 0x4]
+ adds r1, r0, 0
+ muls r1, r7
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800FB42
+_0800FB5E:
+ mov r2, r9
+ lsls r0, r2, 8
+ add r10, r0
+ adds r5, r4
+ ldrh r1, [r5]
+ lsls r0, r1, 5
+ subs r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, [sp, 0x18]
+ movs r0, 0x64
+ adds r4, r3, 0
+ muls r4, r0
+ ldr r1, [sp, 0x10]
+ adds r4, r1, r4
+ ldrh r1, [r5, 0x4]
+ ldrb r2, [r5, 0x2]
+ movs r0, 0x1
+ str r0, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ movs r0, 0x2
+ str r0, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl CreateMon
+ adds r5, 0x6
+ adds r0, r4, 0
+ movs r1, 0xC
+ adds r2, r5, 0
+ bl SetMonData
+ b _0800FC74
+ .align 2, 0
+_0800FBAC: .4byte gSpeciesNames
+_0800FBB0:
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldr r7, [r0]
+ movs r6, 0
+ ldr r4, [sp, 0x18]
+ lsls r2, r4, 4
+ adds r0, r2, r7
+ ldrh r1, [r0, 0x4]
+ movs r0, 0xB
+ muls r0, r1
+ ldr r1, _0800FCC4 @ =gSpeciesNames
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r8, r2
+ cmp r0, 0xFF
+ beq _0800FBF2
+ adds r3, r1, 0
+ movs r4, 0xB
+_0800FBD6:
+ adds r0, r2, r7
+ ldrh r0, [r0, 0x4]
+ adds r1, r0, 0
+ muls r1, r4
+ adds r0, r6, r1
+ adds r0, r3
+ ldrb r0, [r0]
+ add r9, r0
+ adds r6, 0x1
+ adds r1, r6, r1
+ adds r1, r3
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0800FBD6
+_0800FBF2:
+ mov r2, r9
+ lsls r0, r2, 8
+ add r10, r0
+ mov r3, r8
+ adds r5, r3, r7
+ ldrh r1, [r5]
+ lsls r0, r1, 5
+ subs r0, r1
+ movs r1, 0xFF
+ bl __divsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp, 0x18]
+ movs r1, 0x64
+ adds r4, r0, 0
+ muls r4, r1
+ ldr r2, [sp, 0x10]
+ adds r4, r2, r4
+ ldrh r1, [r5, 0x4]
+ ldrb r2, [r5, 0x2]
+ movs r0, 0x1
+ str r0, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ movs r0, 0x2
+ str r0, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl CreateMon
+ adds r5, 0x6
+ adds r0, r4, 0
+ movs r1, 0xC
+ adds r2, r5, 0
+ bl SetMonData
+ movs r6, 0
+ adds r5, r4, 0
+ mov r0, r8
+ adds r0, 0x8
+ adds r4, r7, r0
+_0800FC4A:
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl SetMonData
+ adds r1, r6, 0
+ adds r1, 0x11
+ ldrh r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0800FCC8 @ =gBattleMoves + 0x4 @ PP offset
+ adds r2, r0
+ adds r0, r5, 0
+ bl SetMonData
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0800FC4A
+_0800FC74:
+ ldr r4, [sp, 0x1C]
+ str r4, [sp, 0x18]
+ ldr r2, _0800FCCC @ =gTrainers
+ ldr r1, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r0, r1, r3
+ lsls r0, 3
+ adds r0, r2
+ adds r0, 0x20
+_0800FC86:
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _0800FC8E
+ b _0800F948
+_0800FC8E:
+ ldr r2, _0800FCD0 @ =gUnknown_020239F8
+ ldr r1, _0800FCCC @ =gTrainers
+ ldr r4, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ adds r0, r4, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x18]
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+_0800FCA4:
+ ldr r0, _0800FCCC @ =gTrainers
+ ldr r4, [sp, 0x20]
+ ldr r2, [sp, 0x14]
+ adds r1, r4, r2
+ lsls r1, 3
+ adds r1, r0
+ adds r1, 0x20
+ ldrb r0, [r1]
+_0800FCB4:
+ add sp, 0x24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0800FCC4: .4byte gSpeciesNames
+_0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset
+_0800FCCC: .4byte gTrainers
+_0800FCD0: .4byte gUnknown_020239F8
+ thumb_func_end sub_800F8E8
+
+ thumb_func_start sub_800FCD4
+sub_800FCD4: @ 800FCD4
+ push {lr}
+ ldr r0, _0800FCF4 @ =REG_VCOUNT
+ ldrh r0, [r0]
+ subs r0, 0x6F
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x30
+ bhi _0800FCEE
+ ldr r1, _0800FCF8 @ =REG_BG0CNT
+ movs r2, 0x98
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+_0800FCEE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FCF4: .4byte REG_VCOUNT
+_0800FCF8: .4byte REG_BG0CNT
+ thumb_func_end sub_800FCD4
+
+ thumb_func_start sub_800FCFC
+sub_800FCFC: @ 800FCFC
+ push {lr}
+ bl Random
+ ldr r1, _0800FD78 @ =REG_BG0HOFS
+ ldr r0, _0800FD7C @ =gUnknown_030042A4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD80 @ =gUnknown_030042A0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD84 @ =gUnknown_030042C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD88 @ =gUnknown_030041B4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD8C @ =gUnknown_03004288
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD90 @ =gUnknown_03004280
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD94 @ =gUnknown_030041B0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0800FD98 @ =gUnknown_030041B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x22
+ ldr r0, _0800FD9C @ =gUnknown_030042C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0800FDA0 @ =gUnknown_03004240
+ ldrh r0, [r0]
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r0, _0800FDA4 @ =gUnknown_03004200
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0800FDA8 @ =gUnknown_03004244
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FD78: .4byte REG_BG0HOFS
+_0800FD7C: .4byte gUnknown_030042A4
+_0800FD80: .4byte gUnknown_030042A0
+_0800FD84: .4byte gUnknown_030042C0
+_0800FD88: .4byte gUnknown_030041B4
+_0800FD8C: .4byte gUnknown_03004288
+_0800FD90: .4byte gUnknown_03004280
+_0800FD94: .4byte gUnknown_030041B0
+_0800FD98: .4byte gUnknown_030041B8
+_0800FD9C: .4byte gUnknown_030042C4
+_0800FDA0: .4byte gUnknown_03004240
+_0800FDA4: .4byte gUnknown_03004200
+_0800FDA8: .4byte gUnknown_03004244
+ thumb_func_end sub_800FCFC
+
+ thumb_func_start nullsub_36
+nullsub_36: @ 800FDAC
+ bx lr
+ thumb_func_end nullsub_36
+
+ thumb_func_start sub_800FDB0
+sub_800FDB0: @ 800FDB0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0800FDD0
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ lsrs r0, 8
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ b _0800FDE2
+_0800FDD0:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ movs r1, 0xFF
+ lsls r1, 8
+ ands r0, r1
+ asrs r0, 8
+ ldrh r1, [r5, 0x30]
+ subs r1, r0
+ strh r1, [r5, 0x20]
+_0800FDE2:
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r1, [r5, 0x32]
+ adds r0, r1
+ strh r0, [r5, 0x32]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0800FE16
+ ldr r4, _0800FE1C @ =0x00002710
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ adds r0, r5, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r5, 0
+ bl DestroySprite
+_0800FE16:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FE1C: .4byte 0x00002710
+ thumb_func_end sub_800FDB0
+
+ thumb_func_start sub_800FE20
+sub_800FE20: @ 800FE20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _0800FE3C @ =sub_800FDB0
+ str r0, [r4, 0x1C]
+ movs r0, 0x68
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0800FE3C: .4byte sub_800FDB0
+ thumb_func_end sub_800FE20
+
+ thumb_func_start sub_800FE40
+sub_800FE40: @ 800FE40
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0
+ str r1, [sp, 0x8]
+ ldr r0, _0800FE88 @ =0x02000000
+ ldr r2, _0800FE8C @ =0x000160cb
+ adds r0, r2
+ ldrb r2, [r0]
+ ldr r0, _0800FE90 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0800FEB4
+ ldr r1, _0800FE94 @ =gLinkPlayers
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x18]
+ cmp r0, 0x1
+ beq _0800FEA0
+ cmp r0, 0x1
+ bgt _0800FE98
+ cmp r0, 0
+ beq _0800FEB4
+ b _0800FEBC
+ .align 2, 0
+_0800FE88: .4byte 0x02000000
+_0800FE8C: .4byte 0x000160cb
+_0800FE90: .4byte gUnknown_020239F8
+_0800FE94: .4byte gLinkPlayers
+_0800FE98:
+ cmp r0, 0x2
+ beq _0800FEB4
+ cmp r0, 0x3
+ bne _0800FEBC
+_0800FEA0:
+ ldr r1, _0800FEAC @ =gEnemyParty
+ str r1, [sp, 0x4]
+ ldr r2, _0800FEB0 @ =gPlayerParty
+ str r2, [sp, 0x8]
+ b _0800FEBC
+ .align 2, 0
+_0800FEAC: .4byte gEnemyParty
+_0800FEB0: .4byte gPlayerParty
+_0800FEB4:
+ ldr r3, _08010008 @ =gPlayerParty
+ str r3, [sp, 0x4]
+ ldr r0, _0801000C @ =gEnemyParty
+ str r0, [sp, 0x8]
+_0800FEBC:
+ movs r7, 0
+ movs r1, 0
+ mov r8, r1
+ ldr r2, [sp]
+ lsls r2, 2
+ str r2, [sp, 0xC]
+ movs r3, 0xCE
+ lsls r3, 1
+ mov r10, r3
+ mov r9, r1
+_0800FED0:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ ldr r0, [sp, 0x4]
+ adds r4, r0, r4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r5, 0
+ beq _0800FF40
+ cmp r5, r10
+ beq _0800FF14
+ cmp r6, 0
+ beq _0800FF14
+ cmp r1, 0
+ bne _0800FF14
+ movs r0, 0x1
+ mov r2, r9
+ lsls r0, r2
+ orrs r7, r0
+_0800FF14:
+ cmp r5, 0
+ beq _0800FF40
+ cmp r6, 0
+ beq _0800FF2C
+ cmp r5, r10
+ beq _0800FF24
+ cmp r1, 0
+ beq _0800FF2C
+_0800FF24:
+ movs r0, 0x2
+ mov r3, r9
+ lsls r0, r3
+ orrs r7, r0
+_0800FF2C:
+ cmp r5, 0
+ beq _0800FF40
+ cmp r5, r10
+ beq _0800FF40
+ cmp r6, 0
+ bne _0800FF40
+ movs r0, 0x3
+ mov r1, r9
+ lsls r0, r1
+ orrs r7, r0
+_0800FF40:
+ movs r2, 0x2
+ add r9, r2
+ movs r3, 0x1
+ add r8, r3
+ mov r0, r8
+ cmp r0, 0x5
+ ble _0800FED0
+ ldr r1, _08010010 @ =gTasks
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp]
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r0, r1
+ strh r7, [r0, 0xE]
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0xCE
+ lsls r1, 1
+ mov r10, r1
+ mov r9, r0
+_0800FF6A:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ ldr r2, [sp, 0x8]
+ adds r4, r2, r4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ adds r1, r0, 0
+ cmp r5, 0
+ beq _0800FFDA
+ cmp r5, r10
+ beq _0800FFAE
+ cmp r6, 0
+ beq _0800FFAE
+ cmp r1, 0
+ bne _0800FFAE
+ movs r0, 0x1
+ mov r3, r9
+ lsls r0, r3
+ orrs r7, r0
+_0800FFAE:
+ cmp r5, 0
+ beq _0800FFDA
+ cmp r6, 0
+ beq _0800FFC6
+ cmp r5, r10
+ beq _0800FFBE
+ cmp r1, 0
+ beq _0800FFC6
+_0800FFBE:
+ movs r0, 0x2
+ mov r1, r9
+ lsls r0, r1
+ orrs r7, r0
+_0800FFC6:
+ cmp r5, 0
+ beq _0800FFDA
+ cmp r5, r10
+ beq _0800FFDA
+ cmp r6, 0
+ bne _0800FFDA
+ movs r0, 0x3
+ mov r2, r9
+ lsls r0, r2
+ orrs r7, r0
+_0800FFDA:
+ movs r3, 0x2
+ add r9, r3
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x5
+ ble _0800FF6A
+ ldr r1, _08010010 @ =gTasks
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp]
+ adds r0, r2, r3
+ lsls r0, 3
+ adds r0, r1
+ strh r7, [r0, 0x10]
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010008: .4byte gPlayerParty
+_0801000C: .4byte gEnemyParty
+_08010010: .4byte gTasks
+ thumb_func_end sub_800FE40
+
+ thumb_func_start c2_8011A1C
+c2_8011A1C: @ 8010014
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _08010144 @ =0x05006000
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _08010148 @ =REG_MOSAIC
+ strh r4, [r0]
+ subs r0, 0xC
+ movs r2, 0xF0
+ strh r2, [r0]
+ adds r0, 0x4
+ ldr r3, _0801014C @ =0x00005051
+ adds r1, r3, 0
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r0, _08010150 @ =gUnknown_030042C4
+ strh r2, [r0]
+ ldr r0, _08010154 @ =gUnknown_03004240
+ strh r1, [r0]
+ bl dp12_8087EA4
+ ldr r0, _08010158 @ =gUnknown_03004DE0
+ movs r3, 0xF0
+ movs r4, 0xF0
+ lsls r4, 3
+ adds r2, r0, r4
+ movs r1, 0x4F
+_08010066:
+ strh r3, [r0]
+ strh r3, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08010066
+ movs r1, 0x50
+ ldr r5, _0801015C @ =gWindowConfig_81E6C58
+ ldr r0, _08010158 @ =gUnknown_03004DE0
+ ldr r3, _08010160 @ =0x0000ff10
+ movs r4, 0x82
+ lsls r4, 4
+ adds r2, r0, r4
+ adds r0, 0xA0
+_08010084:
+ strh r3, [r0]
+ strh r3, [r2]
+ adds r2, 0x2
+ adds r0, 0x2
+ adds r1, 0x1
+ cmp r1, 0x9F
+ ble _08010084
+ adds r0, r5, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _08010164 @ =gUnknown_030042A4
+ movs r4, 0
+ strh r4, [r0]
+ ldr r0, _08010168 @ =gUnknown_030042A0
+ strh r4, [r0]
+ ldr r0, _0801016C @ =gUnknown_030042C0
+ strh r4, [r0]
+ ldr r0, _08010170 @ =gUnknown_030041B4
+ strh r4, [r0]
+ ldr r0, _08010174 @ =gUnknown_03004288
+ strh r4, [r0]
+ ldr r0, _08010178 @ =gUnknown_03004280
+ strh r4, [r0]
+ ldr r0, _0801017C @ =gUnknown_030041B0
+ strh r4, [r0]
+ ldr r0, _08010180 @ =gUnknown_030041B8
+ strh r4, [r0]
+ ldr r0, _08010184 @ =gUnknown_03004210
+ adds r1, r5, 0
+ bl InitWindowFromConfig
+ ldr r0, _08010188 @ =gUnknown_030041D0
+ ldr r1, _0801018C @ =gWindowConfig_81E71D0
+ bl InitWindowFromConfig
+ ldr r0, _08010190 @ =gUnknown_03004250
+ ldr r1, _08010194 @ =gWindowConfig_81E71EC
+ bl InitWindowFromConfig
+ bl sub_800D6D4
+ ldr r0, _08010198 @ =gUnknown_08D004E0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadCompressedPalette
+ bl sub_800D74C
+ bl ResetSpriteData
+ bl ResetTasks
+ bl sub_800E23C
+ ldr r1, _0801019C @ =REG_WINOUT
+ movs r0, 0x37
+ strh r0, [r1]
+ bl FreeAllSpritePalettes
+ ldr r1, _080101A0 @ =gReservedSpritePaletteCount
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _080101A4 @ =sub_800FCFC
+ bl SetVBlankCallback
+ ldr r0, _080101A8 @ =sub_800DE30
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080101AC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x87
+ lsls r2, 1
+ strh r2, [r1, 0xA]
+ movs r2, 0x5A
+ strh r2, [r1, 0xC]
+ movs r2, 0x1
+ strh r2, [r1, 0x12]
+ bl sub_800FE40
+ ldr r0, _080101B0 @ =sub_80101B8
+ bl SetMainCallback2
+ ldr r0, _080101B4 @ =gUnknown_02024D1E
+ strb r4, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010144: .4byte 0x05006000
+_08010148: .4byte REG_MOSAIC
+_0801014C: .4byte 0x00005051
+_08010150: .4byte gUnknown_030042C4
+_08010154: .4byte gUnknown_03004240
+_08010158: .4byte gUnknown_03004DE0
+_0801015C: .4byte gWindowConfig_81E6C58
+_08010160: .4byte 0x0000ff10
+_08010164: .4byte gUnknown_030042A4
+_08010168: .4byte gUnknown_030042A0
+_0801016C: .4byte gUnknown_030042C0
+_08010170: .4byte gUnknown_030041B4
+_08010174: .4byte gUnknown_03004288
+_08010178: .4byte gUnknown_03004280
+_0801017C: .4byte gUnknown_030041B0
+_08010180: .4byte gUnknown_030041B8
+_08010184: .4byte gUnknown_03004210
+_08010188: .4byte gUnknown_030041D0
+_0801018C: .4byte gWindowConfig_81E71D0
+_08010190: .4byte gUnknown_03004250
+_08010194: .4byte gWindowConfig_81E71EC
+_08010198: .4byte gUnknown_08D004E0
+_0801019C: .4byte REG_WINOUT
+_080101A0: .4byte gReservedSpritePaletteCount
+_080101A4: .4byte sub_800FCFC
+_080101A8: .4byte sub_800DE30
+_080101AC: .4byte gTasks
+_080101B0: .4byte sub_80101B8
+_080101B4: .4byte gUnknown_02024D1E
+ thumb_func_end c2_8011A1C
+
+ thumb_func_start sub_80101B8
+sub_80101B8: @ 80101B8
+ push {lr}
+ bl c2_081284E0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80101B8
+
+ thumb_func_start c2_081284E0
+c2_081284E0: @ 80101D4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080101EC @ =gUnknown_02024D1E
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _080101FC
+ cmp r0, 0x1
+ bgt _080101F0
+ cmp r0, 0
+ beq _080101F6
+ b _08010236
+ .align 2, 0
+_080101EC: .4byte gUnknown_02024D1E
+_080101F0:
+ cmp r0, 0x2
+ beq _08010222
+ b _08010236
+_080101F6:
+ movs r0, 0xFF
+ strb r0, [r4, 0x1]
+ b _0801021A
+_080101FC:
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ strb r0, [r4, 0x1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08010236
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0801021A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08010236
+_08010222:
+ ldr r0, _08010240 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08010236
+ ldr r0, _08010244 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_08010236:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010240: .4byte gPaletteFade
+_08010244: .4byte gMain
+ thumb_func_end c2_081284E0
+
+ thumb_func_start oac_poke_opponent
+oac_poke_opponent: @ 8010248
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _08010270 @ =sub_8010278
+ str r1, [r0, 0x1C]
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ movs r0, 0x80
+ lsls r0, 10
+ ldr r1, _08010274 @ =0x00003def
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0xA
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010270: .4byte sub_8010278
+_08010274: .4byte 0x00003def
+ thumb_func_end oac_poke_opponent
+
+ thumb_func_start sub_8010278
+sub_8010278: @ 8010278
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080102A4 @ =gUnknown_02024DE8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080102A0
+ ldrh r0, [r2, 0x24]
+ adds r0, 0x2
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080102A0
+ ldr r0, _080102A8 @ =sub_80102AC
+ str r0, [r2, 0x1C]
+ ldrh r0, [r2, 0x32]
+ movs r1, 0x19
+ bl PlayCry1
+_080102A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080102A4: .4byte gUnknown_02024DE8
+_080102A8: .4byte sub_80102AC
+ thumb_func_end sub_8010278
+
+ thumb_func_start sub_80102AC
+sub_80102AC: @ 80102AC
+ 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
+ beq _080102F4
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_804777C
+ ldr r1, _080102FC @ =gUnknown_03004340
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldr r0, _08010300 @ =nullsub_37
+ str r0, [r4, 0x1C]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ movs r0, 0x80
+ lsls r0, 10
+ ldr r1, _08010304 @ =0x00003def
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_080102F4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080102FC: .4byte gUnknown_03004340
+_08010300: .4byte nullsub_37
+_08010304: .4byte 0x00003def
+ thumb_func_end sub_80102AC
+
+ thumb_func_start nullsub_37
+nullsub_37: @ 8010308
+ bx lr
+ thumb_func_end nullsub_37
+
+ thumb_func_start unref_sub_801030C
+unref_sub_801030C: @ 801030C
+ movs r1, 0x6
+ strh r1, [r0, 0x34]
+ movs r1, 0x1
+ strh r1, [r0, 0x36]
+ ldr r1, _0801031C @ =sub_8010320
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_0801031C: .4byte sub_8010320
+ thumb_func_end unref_sub_801030C
+
+ thumb_func_start sub_8010320
+sub_8010320: @ 8010320
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x36]
+ subs r0, 0x1
+ strh r0, [r3, 0x36]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08010374
+ movs r0, 0x8
+ strh r0, [r3, 0x36]
+ 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 r4, 0x5
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bne _08010374
+ ldrb r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r0, _0801037C @ =nullsub_37
+ str r0, [r3, 0x1C]
+ ldr r0, _08010380 @ =gUnknown_03004284
+ str r2, [r0]
+_08010374:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801037C: .4byte nullsub_37
+_08010380: .4byte gUnknown_03004284
+ thumb_func_end sub_8010320
+
+ thumb_func_start sub_8010384
+sub_8010384: @ 8010384
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, r6, 2
+ ldr r0, _080103A4 @ =0x02017800
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080103A8
+ adds r4, r0, 0
+ b _080103AC
+ .align 2, 0
+_080103A4: .4byte 0x02017800
+_080103A8:
+ mov r0, r9
+ ldrh r4, [r0, 0x32]
+_080103AC:
+ ldr r1, _08010414 @ =gUnknown_02024A6A
+ lsls r0, r6, 1
+ adds r5, r0, r1
+ ldrh r0, [r5]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r7, _08010418 @ =gEnemyParty
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ cmp r4, SPECIES_UNOWN
+ bne _08010430
+ ldrh r0, [r5]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ adds r2, r0, 0
+ movs r0, 0xC0
+ lsls r0, 18
+ ands r0, r2
+ lsrs r0, 18
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r2
+ lsrs r1, 12
+ orrs r0, r1
+ movs r1, 0xC0
+ lsls r1, 2
+ ands r1, r2
+ lsrs r1, 6
+ orrs r0, r1
+ movs r1, 0x3
+ ands r1, r2
+ orrs r0, r1
+ movs r1, 0x1C
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ bne _0801041C
+ movs r0, SPECIES_UNOWN
+ b _08010426
+ .align 2, 0
+_08010414: .4byte gUnknown_02024A6A
+_08010418: .4byte gEnemyParty
+_0801041C:
+ movs r1, 0xCE
+ lsls r1, 1
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+_08010426:
+ ldr r1, _0801042C @ =gMonFrontPicCoords
+ lsls r0, 2
+ b _08010468
+ .align 2, 0
+_0801042C: .4byte gMonFrontPicCoords
+_08010430:
+ ldr r0, _08010448 @ =SPECIES_CASTFORM
+ cmp r4, r0 @ Check if pokemon species is Castform
+ bne _08010454
+ ldr r0, _0801044C @ =gUnknownCastformCoords_0837F598
+ ldr r1, _08010450 @ =gUnknown_02024E84
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ b _0801046C
+ .align 2, 0
+_08010448: .4byte SPECIES_CASTFORM
+_0801044C: .4byte gUnknownCastformCoords_0837F598
+_08010450: .4byte gUnknown_02024E84
+_08010454:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bls _08010464
+ ldr r0, _08010460 @ =gMonFrontPicCoords
+ b _0801046A
+ .align 2, 0
+_08010460: .4byte gMonFrontPicCoords
+_08010464:
+ ldr r1, _0801048C @ =gMonFrontPicCoords
+ lsls r0, r4, 2
+_08010468:
+ adds r0, r1
+_0801046A:
+ ldrb r0, [r0, 0x1]
+_0801046C:
+ lsrs r1, r0, 3
+ movs r0, 0x8
+ subs r0, r1
+ mov r1, r9
+ strh r0, [r1, 0x34]
+ movs r0, 0x1
+ strh r0, [r1, 0x36]
+ ldr r0, _08010490 @ =sub_8010494
+ str r0, [r1, 0x1C]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801048C: .4byte gMonFrontPicCoords
+_08010490: .4byte sub_8010494
+ thumb_func_end sub_8010384
+
+ thumb_func_start sub_8010494
+sub_8010494: @ 8010494
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x36]
+ subs r0, 0x1
+ strh r0, [r4, 0x36]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08010510
+ movs r0, 0x2
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x8
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bge _080104C8
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ b _08010510
+_080104C8:
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ ldr r1, _08010518 @ =gUnknown_081FAF4C
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r1
+ ldr r2, _0801051C @ =gUnknown_02024E84
+ movs r3, 0x2E
+ ldrsh r1, [r4, r3]
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 11
+ ldr r2, [r0]
+ adds r2, r1
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ lsls r0, 8
+ adds r2, r0
+ movs r1, 0
+ movs r0, 0xFF
+_080104F6:
+ strb r1, [r2]
+ adds r2, 0x1
+ subs r0, 0x1
+ cmp r0, 0
+ bge _080104F6
+ ldr r0, _0801051C @ =gUnknown_02024E84
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ adds r1, r0
+ ldrb r1, [r1]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+_08010510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010518: .4byte gUnknown_081FAF4C
+_0801051C: .4byte gUnknown_02024E84
+ thumb_func_end sub_8010494
+
+ thumb_func_start sub_8010520
+sub_8010520: @ 8010520
+ movs r1, 0x8
+ strh r1, [r0, 0x34]
+ adds r1, r0, 0
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r0, 0x36]
+ ldr r1, _08010538 @ =sub_801053C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_08010538: .4byte sub_801053C
+ thumb_func_end sub_8010520
+
+ thumb_func_start sub_801053C
+sub_801053C: @ 801053C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0801056E
+ 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, 0x8
+ strh r0, [r3, 0x34]
+_0801056E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801053C
+
+ thumb_func_start sub_8010574
+sub_8010574: @ 8010574
+ movs r1, 0x3E
+ adds r1, r0
+ mov r12, r1
+ movs r1, 0x1
+ ldrh r2, [r0, 0x36]
+ ands r2, r1
+ lsls r2, 2
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0
+ strh r1, [r0, 0x36]
+ ldr r1, _0801059C @ =nullsub_37
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_0801059C: .4byte nullsub_37
+ thumb_func_end sub_8010574
+
+ thumb_func_start sub_80105A0
+sub_80105A0: @ 80105A0
+ ldr r1, _080105A8 @ =oac_poke_ally_
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080105A8: .4byte oac_poke_ally_
+ thumb_func_end sub_80105A0
+
+ thumb_func_start oac_poke_ally_
+oac_poke_ally_: @ 80105AC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080105D4 @ =gUnknown_02024DE8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080105D0
+ ldrh r0, [r2, 0x24]
+ subs r0, 0x2
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _080105D0
+ ldr r0, _080105D8 @ =nullsub_86
+ str r0, [r2, 0x1C]
+ strh r1, [r2, 0x30]
+_080105D0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080105D4: .4byte gUnknown_02024DE8
+_080105D8: .4byte nullsub_86
+ thumb_func_end oac_poke_ally_
+
+ thumb_func_start sub_80105DC
+sub_80105DC: @ 80105DC
+ ldr r1, _080105E4 @ =nullsub_86
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_080105E4: .4byte nullsub_86
+ thumb_func_end sub_80105DC
+
+ thumb_func_start nullsub_86
+nullsub_86: @ 80105E8
+ bx lr
+ thumb_func_end nullsub_86
+
+ thumb_func_start sub_80105EC
+sub_80105EC: @ 80105EC
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08010610 @ =gUnknown_02024DE8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801060C
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x26]
+ adds r0, r1
+ strh r0, [r2, 0x26]
+_0801060C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010610: .4byte gUnknown_02024DE8
+ thumb_func_end sub_80105EC
+
+ thumb_func_start dp11b_obj_instanciate
+dp11b_obj_instanciate: @ 8010614
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r10, r3
+ cmp r1, 0
+ beq _0801064C
+ lsls r2, r4, 1
+ adds r0, r2, r4
+ lsls r0, 2
+ ldr r1, _08010648 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ b _0801065A
+ .align 2, 0
+_08010648: .4byte 0x02017810
+_0801064C:
+ lsls r2, r4, 1
+ adds r0, r2, r4
+ lsls r0, 2
+ ldr r1, _08010698 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+_0801065A:
+ ands r0, r1
+ adds r6, r2, 0
+ cmp r0, 0
+ bne _080106FA
+ ldr r0, _0801069C @ =objc_dp11b_pingpong
+ bl object_new_hidden_with_callback
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ cmp r0, 0x1
+ bne _080106A8
+ ldr r0, _080106A0 @ =gUnknown_03004340
+ adds r0, r4, r0
+ ldrb r7, [r0]
+ adds r0, r6, r4
+ lsls r0, 2
+ ldr r1, _08010698 @ =0x02017810
+ adds r0, r1
+ strb r5, [r0, 0x2]
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r2, _080106A4 @ =gSprites
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x80
+ b _080106CC
+ .align 2, 0
+_08010698: .4byte 0x02017810
+_0801069C: .4byte objc_dp11b_pingpong
+_080106A0: .4byte gUnknown_03004340
+_080106A4: .4byte gSprites
+_080106A8:
+ ldr r0, _08010708 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r7, [r0]
+ adds r0, r6, r4
+ lsls r0, 2
+ ldr r1, _0801070C @ =0x02017810
+ adds r0, r1
+ strb r5, [r0, 0x3]
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r2, _08010710 @ =gSprites
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0xC0
+_080106CC:
+ strh r1, [r0, 0x2E]
+ adds r4, r2, 0
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r4
+ mov r2, r9
+ lsls r0, r2, 24
+ asrs r0, 24
+ movs r2, 0
+ strh r0, [r1, 0x30]
+ mov r3, r10
+ lsls r0, r3, 24
+ asrs r0, 24
+ strh r0, [r1, 0x32]
+ strh r7, [r1, 0x34]
+ mov r0, r8
+ strh r0, [r1, 0x36]
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x24]
+ strh r2, [r0, 0x26]
+_080106FA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010708: .4byte gUnknown_02024BE0
+_0801070C: .4byte 0x02017810
+_08010710: .4byte gSprites
+ thumb_func_end dp11b_obj_instanciate
+
+ thumb_func_start dp11b_obj_free
+dp11b_obj_free: @ 8010714
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x1
+ bne _0801075C
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08010754 @ =0x02017810
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080107A0
+ ldr r2, _08010758 @ =gSprites
+ ldrb r1, [r5, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x34]
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl DestroySprite
+ ldrb r1, [r5]
+ movs r0, 0x3
+ negs r0, r0
+ b _0801078C
+ .align 2, 0
+_08010754: .4byte 0x02017810
+_08010758: .4byte gSprites
+_0801075C:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080107A8 @ =0x02017810
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080107A0
+ ldr r2, _080107AC @ =gSprites
+ ldrb r1, [r5, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x34]
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl DestroySprite
+ ldrb r1, [r5]
+ movs r0, 0x5
+ negs r0, r0
+_0801078C:
+ ands r0, r1
+ strb r0, [r5]
+ ldr r0, _080107AC @ =gSprites
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ strh r0, [r1, 0x26]
+_080107A0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080107A8: .4byte 0x02017810
+_080107AC: .4byte gSprites
+ thumb_func_end dp11b_obj_free
+
+ thumb_func_start objc_dp11b_pingpong
+objc_dp11b_pingpong: @ 80107B0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _080107C8
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ b _080107CC
+_080107C8:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+_080107CC:
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Sin
+ ldr r2, _080107F8 @ =gSprites
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r1, 0x26]
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080107F8: .4byte gSprites
+ thumb_func_end objc_dp11b_pingpong
+
+ thumb_func_start nullsub_41
+nullsub_41: @ 80107FC
+ bx lr
+ thumb_func_end nullsub_41
+
+ thumb_func_start sub_8010800
+sub_8010800: @ 8010800
+ push {lr}
+ bl sub_8010874
+ ldr r1, _08010818 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x1]
+ ldr r1, _0801081C @ =gUnknown_030042D4
+ ldr r0, _08010820 @ =bc_8012FAC
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010818: .4byte gUnknown_02024D1E
+_0801081C: .4byte gUnknown_030042D4
+_08010820: .4byte bc_8012FAC
+ thumb_func_end sub_8010800
+
+ thumb_func_start sub_8010824
+sub_8010824: @ 8010824
+ push {r4,r5,lr}
+ ldr r0, _08010864 @ =gUnknown_030042D4
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r1, _08010868 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0801086C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801085E
+ ldr r5, _08010870 @ =gUnknown_03004330
+ adds r4, r1, 0
+_08010840:
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _0801086C @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08010840
+_0801085E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010864: .4byte gUnknown_030042D4
+_08010868: .4byte gUnknown_02024A60
+_0801086C: .4byte gUnknown_02024A68
+_08010870: .4byte gUnknown_03004330
+ thumb_func_end sub_8010824
+
+ thumb_func_start sub_8010874
+sub_8010874: @ 8010874
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ bl sub_801365C
+ bl sub_801377C
+ movs r2, 0
+ movs r3, 0
+ ldr r0, _08010AC8 @ =gUnknown_02024C4C
+ mov r10, r0
+ ldr r1, _08010ACC @ =gUnknown_02024C44
+ mov r9, r1
+ ldr r4, _08010AD0 @ =gUnknown_02024C3C
+ mov r8, r4
+ ldr r0, _08010AD4 @ =gUnknown_02024C34
+ mov r12, r0
+ ldr r4, _08010AD8 @ =gUnknown_02024CA8
+ movs r5, 0
+ ldr r7, _08010ADC @ =gUnknown_02024C2C
+ ldr r6, _08010AE0 @ =gUnknown_02024C54
+_080108A4:
+ ldr r0, _08010AE4 @ =gUnknown_02024C98
+ adds r0, r5, r0
+ str r3, [r0]
+ movs r1, 0
+_080108AC:
+ adds r0, r4, r1
+ strb r3, [r0]
+ adds r1, 0x1
+ cmp r1, 0x1B
+ bls _080108AC
+ movs r0, 0x2
+ strb r0, [r4, 0x16]
+ ldr r1, _08010AE8 @ =gUnknown_02024C70
+ adds r0, r2, r1
+ strb r3, [r0]
+ mov r0, r12
+ strh r3, [r0]
+ mov r1, r8
+ strh r3, [r1]
+ mov r0, r9
+ strh r3, [r0]
+ mov r1, r10
+ strh r3, [r1]
+ ldr r0, _08010AEC @ =gUnknown_02024C5C
+ adds r1, r2, r0
+ movs r0, 0xFF
+ strb r0, [r1]
+ strh r3, [r6]
+ strh r3, [r7]
+ ldr r1, _08010AF0 @ =0x02017100
+ adds r0, r5, r1
+ str r3, [r0]
+ movs r0, 0x2
+ add r10, r0
+ add r9, r0
+ add r8, r0
+ add r12, r0
+ adds r4, 0x1C
+ adds r5, 0x4
+ adds r7, 0x2
+ adds r6, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080108A4
+ movs r5, 0
+ ldr r3, _08010AF4 @ =gUnknown_02024C80
+ ldr r4, _08010AF8 @ =gUnknown_02024C7A
+ movs r2, 0x1
+_08010902:
+ strh r5, [r4]
+ movs r1, 0
+_08010906:
+ adds r0, r3, r1
+ strb r5, [r0]
+ adds r1, 0x1
+ cmp r1, 0xB
+ bls _08010906
+ adds r3, 0xC
+ adds r4, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08010902
+ movs r1, 0
+ ldr r2, _08010AFC @ =gUnknown_02024C07
+ strb r1, [r2]
+ ldr r3, _08010B00 @ =gUnknown_02024C08
+ strb r1, [r3]
+ ldr r4, _08010B04 @ =word_2024DB8
+ strh r1, [r4]
+ ldr r1, _08010B08 @ =gUnknown_02024DBC
+ movs r2, 0
+ movs r3, 0
+_0801092E:
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2B
+ bls _0801092E
+ movs r0, 0
+ ldr r1, _08010B0C @ =gUnknown_02024C6C
+ str r0, [r1]
+ ldr r2, _08010B10 @ =gUnknown_020239F8
+ ldrh r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801095C
+ ldr r3, _08010B14 @ =gSaveBlock2
+ ldrb r1, [r3, 0x15]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801095C
+ movs r0, 0x80
+ ldr r4, _08010B0C @ =gUnknown_02024C6C
+ str r0, [r4]
+_0801095C:
+ ldr r1, _08010B14 @ =gSaveBlock2
+ ldrb r0, [r1, 0x15]
+ lsls r0, 30
+ lsrs r0, 31
+ ldr r3, _08010B18 @ =0x02000000
+ ldr r4, _08010B1C @ =0x00016084
+ adds r2, r3, r4
+ movs r1, 0
+ strb r0, [r2]
+ ldr r0, _08010B20 @ =gUnknown_02024C0E
+ strb r1, [r0]
+ ldr r2, _08010B24 @ =gUnknown_02024D26
+ strb r1, [r2]
+ ldr r3, _08010B28 @ =gUnknown_02024A64
+ str r1, [r3]
+ movs r2, 0
+ ldr r4, _08010B2C @ =gUnknown_02024D1A
+ strh r1, [r4]
+ ldr r1, _08010B18 @ =0x02000000
+ ldr r3, _08010B30 @ =0x00017130
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r4, _08010B34 @ =0x00017160
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldr r1, _08010B38 @ =gUnknown_02024D1E
+ movs r2, 0
+ adds r0, r1, 0x7
+_08010994:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08010994
+ movs r5, 0
+ ldr r0, _08010B3C @ =gUnknown_02024D18
+ strh r5, [r0]
+ movs r0, 0
+ ldr r1, _08010B40 @ =gUnknown_02024BEC
+ str r0, [r1]
+ ldr r2, _08010B44 @ =gUnknown_02024DE8
+ strh r0, [r2]
+ ldr r4, _08010B18 @ =0x02000000
+ ldr r3, _08010B48 @ =0x00016002
+ adds r0, r4, r3
+ strb r5, [r0]
+ ldr r1, _08010B4C @ =0x000160a1
+ adds r0, r4, r1
+ strb r5, [r0]
+ ldr r2, _08010B50 @ =gUnknown_03004324
+ strb r5, [r2]
+ ldr r3, _08010B54 @ =gUnknown_02024C0C
+ strb r5, [r3]
+ subs r1, 0x29
+ adds r0, r4, r1
+ strb r5, [r0]
+ ldr r2, _08010B58 @ =0x00016086
+ adds r0, r4, r2
+ strb r5, [r0]
+ ldr r3, _08010B5C @ =0x00016087
+ adds r0, r4, r3
+ strb r5, [r0]
+ ldr r0, _08010B60 @ =gEnemyParty
+ movs r1, 0xB
+ bl GetMonData
+ ldr r2, _08010B64 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x8]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08010B68 @ =0x000004fb
+ bl __divsi3
+ ldr r2, _08010B6C @ =0x00016089
+ adds r1, r4, r2
+ strb r0, [r1]
+ ldr r3, _08010B70 @ =0x00016088
+ adds r1, r4, r3
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r1, _08010B74 @ =0x0001601b
+ adds r0, r4, r1
+ strb r5, [r0]
+ subs r2, 0x33
+ adds r1, r4, r2
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r2, 0
+ movs r1, 0
+_08010A12:
+ ldr r3, _08010B78 @ =0x000160ac
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x20
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x1C
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x8
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x10
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r3, 0x8
+ adds r0, r2, r3
+ adds r0, r4
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08010A12
+ ldr r4, _08010B18 @ =0x02000000
+ ldr r1, _08010B7C @ =0x000160c8
+ adds r0, r4, r1
+ movs r2, 0
+ movs r1, 0x6
+ strb r1, [r0]
+ subs r3, 0x3F
+ adds r0, r4, r3
+ strb r1, [r0]
+ ldr r1, _08010B80 @ =0x00016113
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r3, _08010B84 @ =gUnknown_030042E0
+ movs r1, 0
+ movs r2, 0xA
+ adds r0, r3, 0
+ adds r0, 0x40
+_08010A6A:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08010A6A
+ movs r1, 0
+ strb r1, [r3, 0x13]
+ strb r1, [r3]
+ strb r1, [r3, 0x1]
+ strb r1, [r3, 0x2]
+ strb r1, [r3, 0x3]
+ strb r1, [r3, 0x4]
+ ldrb r2, [r3, 0x5]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x3
+ negs r2, r2
+ ands r0, r2
+ strb r0, [r3, 0x5]
+ strh r1, [r3, 0x20]
+ strh r1, [r3, 0x22]
+ strh r1, [r3, 0x24]
+ strh r1, [r3, 0x6]
+ strh r1, [r3, 0x26]
+ strh r1, [r3, 0x28]
+ movs r2, 0
+ adds r5, r3, 0
+ adds r5, 0x8
+ movs r4, 0
+ adds r1, r3, 0
+ adds r1, 0x14
+_08010AAA:
+ adds r0, r2, r5
+ strb r4, [r0]
+ strb r4, [r1]
+ strb r4, [r1, 0x16]
+ adds r1, 0x1
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _08010AAA
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08010AC8: .4byte gUnknown_02024C4C
+_08010ACC: .4byte gUnknown_02024C44
+_08010AD0: .4byte gUnknown_02024C3C
+_08010AD4: .4byte gUnknown_02024C34
+_08010AD8: .4byte gUnknown_02024CA8
+_08010ADC: .4byte gUnknown_02024C2C
+_08010AE0: .4byte gUnknown_02024C54
+_08010AE4: .4byte gUnknown_02024C98
+_08010AE8: .4byte gUnknown_02024C70
+_08010AEC: .4byte gUnknown_02024C5C
+_08010AF0: .4byte 0x02017100
+_08010AF4: .4byte gUnknown_02024C80
+_08010AF8: .4byte gUnknown_02024C7A
+_08010AFC: .4byte gUnknown_02024C07
+_08010B00: .4byte gUnknown_02024C08
+_08010B04: .4byte word_2024DB8
+_08010B08: .4byte gUnknown_02024DBC
+_08010B0C: .4byte gUnknown_02024C6C
+_08010B10: .4byte gUnknown_020239F8
+_08010B14: .4byte gSaveBlock2
+_08010B18: .4byte 0x02000000
+_08010B1C: .4byte 0x00016084
+_08010B20: .4byte gUnknown_02024C0E
+_08010B24: .4byte gUnknown_02024D26
+_08010B28: .4byte gUnknown_02024A64
+_08010B2C: .4byte gUnknown_02024D1A
+_08010B30: .4byte 0x00017130
+_08010B34: .4byte 0x00017160
+_08010B38: .4byte gUnknown_02024D1E
+_08010B3C: .4byte gUnknown_02024D18
+_08010B40: .4byte gUnknown_02024BEC
+_08010B44: .4byte gUnknown_02024DE8
+_08010B48: .4byte 0x00016002
+_08010B4C: .4byte 0x000160a1
+_08010B50: .4byte gUnknown_03004324
+_08010B54: .4byte gUnknown_02024C0C
+_08010B58: .4byte 0x00016086
+_08010B5C: .4byte 0x00016087
+_08010B60: .4byte gEnemyParty
+_08010B64: .4byte gBaseStats
+_08010B68: .4byte 0x000004fb
+_08010B6C: .4byte 0x00016089
+_08010B70: .4byte 0x00016088
+_08010B74: .4byte 0x0001601b
+_08010B78: .4byte 0x000160ac
+_08010B7C: .4byte 0x000160c8
+_08010B80: .4byte 0x00016113
+_08010B84: .4byte gUnknown_030042E0
+ thumb_func_end sub_8010874
+
+ thumb_func_start sub_8010B88
+sub_8010B88: @ 8010B88
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r4, _08010CEC @ =gUnknown_02024CA8
+ ldr r5, _08010CF0 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r1, sp
+ adds r0, r4
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, _08010CF4 @ =gBattleMoves
+ ldr r3, _08010CF8 @ =gUnknown_02024BE6
+ ldrh r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r10, r4
+ adds r7, r5, 0
+ ldr r1, _08010CFC @ =gBattleMons
+ mov r8, r1
+ ldr r2, _08010D00 @ =gUnknown_02024C98
+ mov r12, r2
+ cmp r0, 0x7F
+ beq _08010C66
+ movs r5, 0
+ adds r4, r7, 0
+ movs r3, 0x58
+ mov r2, r8
+ adds r2, 0x18
+ movs r1, 0x6
+_08010BDC:
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r0, r5, r0
+ adds r0, r2
+ strb r1, [r0]
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _08010BDC
+ movs r5, 0
+ ldr r3, _08010D04 @ =gUnknown_02024A68
+ ldrb r3, [r3]
+ cmp r5, r3
+ bge _08010C52
+ ldr r6, _08010D08 @ =gUnknown_02024AD0
+ mov r9, r6
+ ldr r3, _08010CEC @ =gUnknown_02024CA8
+ ldr r4, _08010D00 @ =gUnknown_02024C98
+_08010BFE:
+ movs r0, 0x58
+ muls r0, r5
+ add r0, r9
+ str r0, [sp, 0x20]
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 19
+ ands r0, r1
+ cmp r0, 0
+ beq _08010C24
+ ldrb r0, [r3, 0x14]
+ ldr r2, _08010CF0 @ =gUnknown_02024A60
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _08010C24
+ ldr r0, _08010D0C @ =0xfbffffff
+ ands r1, r0
+ ldr r6, [sp, 0x20]
+ str r1, [r6]
+_08010C24:
+ ldr r1, [r4]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08010C44
+ ldrb r0, [r3, 0x15]
+ ldr r2, _08010CF0 @ =gUnknown_02024A60
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _08010C44
+ movs r0, 0x19
+ negs r0, r0
+ ands r1, r0
+ str r1, [r4]
+ movs r0, 0
+ strb r0, [r3, 0x15]
+_08010C44:
+ adds r3, 0x1C
+ adds r4, 0x4
+ adds r5, 0x1
+ ldr r6, _08010D04 @ =gUnknown_02024A68
+ ldrb r6, [r6]
+ cmp r5, r6
+ blt _08010BFE
+_08010C52:
+ ldr r1, _08010CF8 @ =gUnknown_02024BE6
+ ldrh r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08010CF4 @ =gBattleMoves
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0x7F
+ bne _08010D18
+_08010C66:
+ ldrb r1, [r7]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08010D10 @ =0x15100007
+ ands r0, r1
+ str r0, [r2]
+ ldrb r1, [r7]
+ lsls r1, 2
+ add r1, r12
+ ldr r0, [r1]
+ ldr r2, _08010D14 @ =0x0003043f
+ ands r0, r2
+ str r0, [r1]
+ movs r5, 0
+ ldr r3, _08010D04 @ =gUnknown_02024A68
+ ldrb r3, [r3]
+ cmp r5, r3
+ bge _08010D30
+ movs r6, 0
+_08010C96:
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _08010CD6
+ ldr r1, _08010D00 @ =gUnknown_02024C98
+ lsls r0, r5, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08010CD6
+ ldr r0, _08010CEC @ =gUnknown_02024CA8
+ adds r0, r6, r0
+ ldrb r0, [r0, 0x15]
+ ldrb r3, [r7]
+ cmp r0, r3
+ bne _08010CD6
+ movs r0, 0x19
+ negs r0, r0
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ str r1, [r2]
+_08010CD6:
+ adds r6, 0x1C
+ adds r5, 0x1
+ ldr r0, _08010D04 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _08010C96
+ ldr r6, _08010CEC @ =gUnknown_02024CA8
+ mov r10, r6
+ ldr r7, _08010CF0 @ =gUnknown_02024A60
+ b _08010D30
+ .align 2, 0
+_08010CEC: .4byte gUnknown_02024CA8
+_08010CF0: .4byte gUnknown_02024A60
+_08010CF4: .4byte gBattleMoves
+_08010CF8: .4byte gUnknown_02024BE6
+_08010CFC: .4byte gBattleMons
+_08010D00: .4byte gUnknown_02024C98
+_08010D04: .4byte gUnknown_02024A68
+_08010D08: .4byte gUnknown_02024AD0
+_08010D0C: .4byte 0xfbffffff
+_08010D10: .4byte 0x15100007
+_08010D14: .4byte 0x0003043f
+_08010D18:
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r8
+ adds r1, 0x50
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ add r0, r12
+ str r1, [r0]
+_08010D30:
+ movs r5, 0
+ ldr r6, _08010EFC @ =0x02000000
+ ldr r0, _08010F00 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _08010D92
+ ldr r1, _08010F04 @ =gUnknown_02024AD0
+ mov r9, r1
+ ldr r2, _08010F08 @ =gBitTable
+ mov r8, r2
+ ldr r4, _08010F0C @ =gUnknown_02024A60
+ mov r12, r6
+_08010D48:
+ movs r0, 0x58
+ muls r0, r5
+ mov r1, r9
+ adds r3, r0, r1
+ ldrb r0, [r4]
+ lsls r0, 2
+ add r0, r8
+ ldr r0, [r0]
+ lsls r2, r0, 16
+ ldr r1, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08010D68
+ bics r1, r2
+ str r1, [r3]
+_08010D68:
+ ldr r1, [r3]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08010D88
+ ldr r2, _08010F10 @ =0x00016020
+ adds r0, r5, r2
+ add r0, r12
+ ldrb r0, [r0]
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _08010D88
+ ldr r0, _08010F14 @ =0xffff1fff
+ ands r1, r0
+ str r1, [r3]
+_08010D88:
+ adds r5, 0x1
+ ldr r3, _08010F00 @ =gUnknown_02024A68
+ ldrb r3, [r3]
+ cmp r5, r3
+ blt _08010D48
+_08010D92:
+ ldrb r0, [r7]
+ ldr r1, _08010F18 @ =gUnknown_02024E60
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r0, [r7]
+ ldr r2, _08010F1C @ =gUnknown_02024E64
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r3, r10
+ adds r1, r0, r3
+ movs r5, 0
+ movs r2, 0
+_08010DB4:
+ adds r0, r1, r5
+ strb r2, [r0]
+ adds r5, 0x1
+ cmp r5, 0x1B
+ bls _08010DB4
+ ldr r1, _08010F20 @ =gUnknown_02024BE6
+ ldrh r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08010F24 @ =gBattleMoves
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0x7F
+ bne _08010E2C
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r10
+ mov r1, sp
+ ldrb r1, [r1, 0xA]
+ strb r1, [r0, 0xA]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r10
+ mov r1, sp
+ ldrb r1, [r1, 0x15]
+ strb r1, [r0, 0x15]
+ ldrb r0, [r7]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r10
+ mov r0, sp
+ ldrb r2, [r0, 0xF]
+ lsls r2, 28
+ movs r4, 0xF
+ lsrs r2, 28
+ ldrb r3, [r1, 0xF]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xF]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r10
+ mov r1, sp
+ ldrb r1, [r1, 0xF]
+ lsrs r1, 4
+ lsls r1, 4
+ ldrb r2, [r0, 0xF]
+ ands r4, r2
+ orrs r4, r1
+ strb r4, [r0, 0xF]
+_08010E2C:
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r10
+ movs r3, 0
+ movs r1, 0x2
+ strb r1, [r0, 0x16]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F28 @ =gUnknown_02024C34
+ adds r0, r1
+ movs r2, 0
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F2C @ =gUnknown_02024C3C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F30 @ =gUnknown_02024C44
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F34 @ =gUnknown_02024C4C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F38 @ =gUnknown_02024C2C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ ldr r1, _08010F3C @ =gUnknown_02024C5C
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _08010F40 @ =0x000160ac
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x53
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ subs r1, 0x1B
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r0, r6
+ strb r2, [r0]
+ ldr r2, _08010F44 @ =0x00017100
+ adds r1, r6, r2
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ str r3, [r0]
+ ldr r6, _08010F20 @ =gUnknown_02024BE6
+ strh r3, [r6]
+ 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
+_08010EFC: .4byte 0x02000000
+_08010F00: .4byte gUnknown_02024A68
+_08010F04: .4byte gUnknown_02024AD0
+_08010F08: .4byte gBitTable
+_08010F0C: .4byte gUnknown_02024A60
+_08010F10: .4byte 0x00016020
+_08010F14: .4byte 0xffff1fff
+_08010F18: .4byte gUnknown_02024E60
+_08010F1C: .4byte gUnknown_02024E64
+_08010F20: .4byte gUnknown_02024BE6
+_08010F24: .4byte gBattleMoves
+_08010F28: .4byte gUnknown_02024C34
+_08010F2C: .4byte gUnknown_02024C3C
+_08010F30: .4byte gUnknown_02024C44
+_08010F34: .4byte gUnknown_02024C4C
+_08010F38: .4byte gUnknown_02024C2C
+_08010F3C: .4byte gUnknown_02024C5C
+_08010F40: .4byte 0x000160ac
+_08010F44: .4byte 0x00017100
+ thumb_func_end sub_8010B88
+
+ thumb_func_start sub_8010F48
+sub_8010F48: @ 8010F48
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r4, 0
+ ldr r7, _08011268 @ =gUnknown_02024A60
+ ldr r0, _0801126C @ =gUnknown_02024C98
+ mov r9, r0
+ ldr r1, _08011270 @ =gUnknown_02024A68
+ mov r8, r1
+ ldr r2, _08011274 @ =0x02000000
+ mov r12, r2
+ ldr r6, _08011278 @ =gUnknown_02024D28
+ adds r5, r7, 0
+ movs r3, 0x58
+ ldr r2, _0801127C @ =gBattleMons
+ adds r2, 0x18
+ movs r1, 0x6
+_08010F70:
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r4, r0
+ adds r0, r2
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x7
+ ble _08010F70
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r2, _0801127C @ =gBattleMons
+ adds r2, 0x50
+ adds r0, r2
+ movs r1, 0
+ str r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ add r0, r9
+ str r1, [r0]
+ movs r4, 0
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08011012
+ adds r3, r2, 0
+ movs r5, 0
+ ldr r1, _08011280 @ =gBitTable
+ mov r10, r1
+ ldr r2, _08011274 @ =0x02000000
+ mov r9, r2
+_08010FAE:
+ ldr r1, [r3]
+ movs r0, 0x80
+ lsls r0, 19
+ ands r0, r1
+ cmp r0, 0
+ beq _08010FCC
+ ldr r2, _08011284 @ =gUnknown_02024CA8
+ adds r0, r5, r2
+ ldrb r0, [r0, 0x14]
+ ldrb r2, [r7]
+ cmp r0, r2
+ bne _08010FCC
+ ldr r0, _08011288 @ =0xfbffffff
+ ands r1, r0
+ str r1, [r3]
+_08010FCC:
+ ldrb r0, [r7]
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ lsls r2, r0, 16
+ ldr r1, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08010FE4
+ bics r1, r2
+ str r1, [r3]
+_08010FE4:
+ ldr r1, [r3]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08011004
+ ldr r2, _0801128C @ =0x00016020
+ adds r0, r4, r2
+ add r0, r9
+ ldrb r0, [r0]
+ ldrb r2, [r7]
+ cmp r0, r2
+ bne _08011004
+ ldr r0, _08011290 @ =0xffff1fff
+ ands r1, r0
+ str r1, [r3]
+_08011004:
+ adds r3, 0x58
+ adds r5, 0x1C
+ adds r4, 0x1
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08010FAE
+_08011012:
+ ldrb r0, [r7]
+ ldr r1, _08011294 @ =gUnknown_02024E60
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r0, [r7]
+ ldr r2, _08011298 @ =gUnknown_02024E64
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r2, _08011284 @ =gUnknown_02024CA8
+ adds r1, r0, r2
+ movs r4, 0
+ movs r2, 0
+_08011034:
+ adds r0, r1, r4
+ strb r2, [r0]
+ adds r4, 0x1
+ cmp r4, 0x1B
+ bls _08011034
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ mov r9, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ mov r8, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ mov r10, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r5, 0x21
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r4, 0x41
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ mov r0, r9
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ mov r0, r8
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r1, [r7]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ ands r5, r1
+ strb r5, [r0, 0x1]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ ands r3, r1
+ strb r3, [r0, 0x1]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x2]
+ mov r2, r9
+ ands r2, r1
+ strb r2, [r0, 0x2]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x2]
+ mov r2, r8
+ ands r2, r1
+ strb r2, [r0, 0x2]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x2]
+ movs r2, 0x5
+ negs r2, r2
+ ands r2, r1
+ strb r2, [r0, 0x2]
+ ldrb r0, [r7]
+ lsls r0, 4
+ adds r0, r6
+ ldrb r1, [r0, 0x2]
+ mov r2, r10
+ ands r2, r1
+ strb r2, [r0, 0x2]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _08011284 @ =gUnknown_02024CA8
+ adds r0, r1
+ movs r3, 0
+ movs r1, 0x2
+ strb r1, [r0, 0x16]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r2, _0801129C @ =gUnknown_02024C34
+ adds r0, r2
+ movs r2, 0
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112A0 @ =gUnknown_02024C3C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112A4 @ =gUnknown_02024C44
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112A8 @ =gUnknown_02024C4C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112AC @ =gUnknown_02024C2C
+ adds r0, r1
+ strh r3, [r0]
+ ldrb r0, [r7]
+ ldr r1, _080112B0 @ =gUnknown_02024C5C
+ adds r0, r1
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _080112B4 @ =0x000160e8
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ subs r1, 0x3D
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x53
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r1, 0x1
+ adds r0, r1
+ add r0, r12
+ strb r2, [r0]
+ ldr r1, _080112B8 @ =0x00017100
+ add r1, r12
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ str r3, [r0]
+ ldrb r0, [r7]
+ movs r3, 0x58
+ adds r1, r0, 0
+ muls r1, r3
+ ldr r2, _0801127C @ =gBattleMons
+ adds r1, r2
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ ldr r2, _080112BC @ =gBaseStats
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ adds r1, 0x21
+ strb r0, [r1]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r3
+ ldr r0, _0801127C @ =gBattleMons
+ adds r1, r0
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ ldr r2, _080112BC @ =gBaseStats
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ adds r1, 0x22
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011268: .4byte gUnknown_02024A60
+_0801126C: .4byte gUnknown_02024C98
+_08011270: .4byte gUnknown_02024A68
+_08011274: .4byte 0x02000000
+_08011278: .4byte gUnknown_02024D28
+_0801127C: .4byte gBattleMons
+_08011280: .4byte gBitTable
+_08011284: .4byte gUnknown_02024CA8
+_08011288: .4byte 0xfbffffff
+_0801128C: .4byte 0x00016020
+_08011290: .4byte 0xffff1fff
+_08011294: .4byte gUnknown_02024E60
+_08011298: .4byte gUnknown_02024E64
+_0801129C: .4byte gUnknown_02024C34
+_080112A0: .4byte gUnknown_02024C3C
+_080112A4: .4byte gUnknown_02024C44
+_080112A8: .4byte gUnknown_02024C4C
+_080112AC: .4byte gUnknown_02024C2C
+_080112B0: .4byte gUnknown_02024C5C
+_080112B4: .4byte 0x000160e8
+_080112B8: .4byte 0x00017100
+_080112BC: .4byte gBaseStats
+ thumb_func_end sub_8010F48
+
+ thumb_func_start bc_8012FAC
+bc_8012FAC: @ 80112C0
+ push {r4,r5,lr}
+ ldr r5, _080112D0 @ =gUnknown_02024D1E
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080112D4
+ cmp r0, 0x1
+ beq _080112F8
+ b _0801132E
+ .align 2, 0
+_080112D0: .4byte gUnknown_02024D1E
+_080112D4:
+ ldr r4, _080112F4 @ =gUnknown_02024A60
+ ldrb r0, [r5, 0x1]
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x00_a_b_0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0801132E
+ .align 2, 0
+_080112F4: .4byte gUnknown_02024A60
+_080112F8:
+ ldr r0, _0801131C @ =gUnknown_02024A64
+ ldr r2, [r0]
+ cmp r2, 0
+ bne _0801132E
+ ldrb r0, [r5, 0x1]
+ adds r0, 0x1
+ strb r0, [r5, 0x1]
+ ldr r1, _08011320 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801132C
+ ldr r1, _08011324 @ =gUnknown_030042D4
+ ldr r0, _08011328 @ =bc_load_battlefield
+ str r0, [r1]
+ b _0801132E
+ .align 2, 0
+_0801131C: .4byte gUnknown_02024A64
+_08011320: .4byte gUnknown_02024A68
+_08011324: .4byte gUnknown_030042D4
+_08011328: .4byte bc_load_battlefield
+_0801132C:
+ strb r2, [r5]
+_0801132E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end bc_8012FAC
+
+ thumb_func_start bc_load_battlefield
+bc_load_battlefield: @ 8011334
+ push {r4,r5,lr}
+ ldr r0, _0801136C @ =gUnknown_02024A64
+ ldr r5, [r0]
+ cmp r5, 0
+ bne _08011364
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r4, _08011370 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r0, _08011374 @ =gUnknown_0300428C
+ ldrb r1, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2E_a
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08011378 @ =gUnknown_030042D4
+ ldr r0, _0801137C @ =sub_8011384
+ str r0, [r1]
+ ldr r0, _08011380 @ =gUnknown_02024D1E
+ strb r5, [r0]
+ strb r5, [r0, 0x1]
+_08011364:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801136C: .4byte gUnknown_02024A64
+_08011370: .4byte gUnknown_02024A60
+_08011374: .4byte gUnknown_0300428C
+_08011378: .4byte gUnknown_030042D4
+_0801137C: .4byte sub_8011384
+_08011380: .4byte gUnknown_02024D1E
+ thumb_func_end bc_load_battlefield
+
+ thumb_func_start sub_8011384
+sub_8011384: @ 8011384
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080113E0 @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _08011396
+ b _080115DA
+_08011396:
+ ldr r2, _080113E4 @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _080113E8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _080113A4
+ b _080115D4
+_080113A4:
+ movs r7, 0x58
+ ldr r0, _080113EC @ =gBattleMons
+ mov r9, r0
+ mov r8, r2
+_080113AC:
+ ldr r0, _080113F0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080113F4
+ ldr r4, _080113E4 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080113F4
+ ldrb r0, [r4]
+ muls r0, r7
+ mov r1, r9
+ adds r3, r0, r1
+ movs r2, 0
+ movs r1, 0
+_080113D2:
+ adds r0, r3, r2
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x57
+ bls _080113D2
+ b _080114BE
+ .align 2, 0
+_080113E0: .4byte gUnknown_02024A64
+_080113E4: .4byte gUnknown_02024A60
+_080113E8: .4byte gUnknown_02024A68
+_080113EC: .4byte gBattleMons
+_080113F0: .4byte gUnknown_020239F8
+_080113F4:
+ mov r2, r8
+ ldrb r0, [r2]
+ muls r0, r7
+ mov r1, r9
+ adds r3, r0, r1
+ movs r2, 0
+ ldr r6, _08011530 @ =gBaseStats
+ ldr r5, _08011534 @ =gUnknown_02024260
+ ldr r4, _08011538 @ =gUnknown_02024A60
+_08011406:
+ adds r0, r3, r2
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r1, 0x4
+ adds r1, r2, r1
+ adds r1, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x57
+ bls _08011406
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r2, r0, 0
+ muls r2, r7
+ add r2, r9
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x6]
+ adds r2, 0x21
+ strb r0, [r2]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r2, r0, 0
+ muls r2, r7
+ add r2, r9
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x7]
+ adds r2, 0x22
+ strb r0, [r2]
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r1, r0, 0
+ muls r1, r7
+ add r1, r9
+ ldrh r0, [r1]
+ ldrb r1, [r1, 0x17]
+ lsrs r1, 7
+ bl GetAbilityBySpecies
+ mov r2, r8
+ ldrb r1, [r2]
+ muls r1, r7
+ add r1, r9
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r1, _0801153C @ =0x020160bc
+ adds r0, r1
+ mov r2, r8
+ ldrb r1, [r2]
+ muls r1, r7
+ add r1, r9
+ ldrh r1, [r1, 0x28]
+ strh r1, [r0]
+ movs r2, 0
+ ldr r4, _08011538 @ =gUnknown_02024A60
+ movs r5, 0x58
+ ldr r1, _08011540 @ =gUnknown_02024A98
+ adds r6, r4, 0
+ movs r0, 0x18
+ negs r0, r0
+ adds r0, r1
+ mov r12, r0
+ movs r3, 0x6
+_0801149E:
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r2, r0
+ adds r0, r1
+ strb r3, [r0]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _0801149E
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r7
+ mov r0, r12
+ adds r0, 0x50
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1]
+_080114BE:
+ ldr r4, _08011538 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080114D8
+ movs r0, 0
+ bl dp01_build_cmdbuf_x07_7_7_7
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080114D8:
+ ldr r5, _08011544 @ =gUnknown_020239F8
+ ldrh r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801154C
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080114FE
+ movs r0, 0
+ bl dp01_build_cmdbuf_x07_7_7_7
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080114FE:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08011588
+ ldrh r1, [r5]
+ ldr r2, _08011548 @ =0x00000902
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08011588
+ ldrb r0, [r4]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ b _08011588
+ .align 2, 0
+_08011530: .4byte gBaseStats
+_08011534: .4byte gUnknown_02024260
+_08011538: .4byte gUnknown_02024A60
+_0801153C: .4byte 0x020160bc
+_08011540: .4byte gUnknown_02024A98
+_08011544: .4byte gUnknown_020239F8
+_08011548: .4byte 0x00000902
+_0801154C:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08011588
+ ldrh r1, [r5]
+ ldr r2, _080115E8 @ =0x00000902
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08011588
+ ldrb r0, [r4]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ movs r0, 0
+ bl dp01_build_cmdbuf_x04_4_4_4
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08011588:
+ ldr r0, _080115EC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080115BE
+ ldr r4, _080115F0 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _080115B2
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _080115BE
+_080115B2:
+ movs r0, 0
+ bl dp01_build_cmdbuf_x07_7_7_7
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080115BE:
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080115F4 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080115D4
+ b _080113AC
+_080115D4:
+ ldr r1, _080115F8 @ =gUnknown_030042D4
+ ldr r0, _080115FC @ =bc_801333C
+ str r0, [r1]
+_080115DA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080115E8: .4byte 0x00000902
+_080115EC: .4byte gUnknown_020239F8
+_080115F0: .4byte gUnknown_02024A60
+_080115F4: .4byte gUnknown_02024A68
+_080115F8: .4byte gUnknown_030042D4
+_080115FC: .4byte bc_801333C
+ thumb_func_end sub_8011384
+
+ thumb_func_start bc_801333C
+bc_801333C: @ 8011600
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x30
+ ldr r0, _08011658 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08011612
+ b _0801178C
+_08011612:
+ ldr r0, _0801165C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08011620
+ b _0801172C
+_08011620:
+ movs r7, 0
+ add r0, sp, 0x4
+ mov r8, r0
+ mov r6, r8
+ mov r5, sp
+_0801162A:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08011660 @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08011650
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _08011668
+_08011650:
+ ldr r0, _08011664 @ =0x0000ffff
+ strh r0, [r5]
+ movs r0, 0
+ b _0801167A
+ .align 2, 0
+_08011658: .4byte gUnknown_02024A64
+_0801165C: .4byte gUnknown_020239F8
+_08011660: .4byte gEnemyParty
+_08011664: .4byte 0x0000ffff
+_08011668:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+_0801167A:
+ str r0, [r6]
+ adds r6, 0x8
+ adds r5, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _0801162A
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r4, _080116D4 @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x80
+ bl dp01_build_cmdbuf_x30_TODO
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ movs r7, 0
+ mov r6, r8
+ mov r5, sp
+_080116A6:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _080116D8 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080116CC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _080116E0
+_080116CC:
+ ldr r0, _080116DC @ =0x0000ffff
+ strh r0, [r5]
+ movs r0, 0
+ b _080116F2
+ .align 2, 0
+_080116D4: .4byte gUnknown_02024A60
+_080116D8: .4byte gPlayerParty
+_080116DC: .4byte 0x0000ffff
+_080116E0:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+_080116F2:
+ str r0, [r6]
+ adds r6, 0x8
+ adds r5, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _080116A6
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r4, _08011720 @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x80
+ bl dp01_build_cmdbuf_x30_TODO
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08011724 @ =gUnknown_030042D4
+ ldr r0, _08011728 @ =bc_battle_begin_message
+ b _0801178A
+ .align 2, 0
+_08011720: .4byte gUnknown_02024A60
+_08011724: .4byte gUnknown_030042D4
+_08011728: .4byte bc_battle_begin_message
+_0801172C:
+ movs r7, 0
+ add r6, sp, 0x4
+ mov r5, sp
+_08011732:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08011760 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08011758
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _08011768
+_08011758:
+ ldr r0, _08011764 @ =0x0000ffff
+ strh r0, [r5]
+ movs r0, 0
+ b _0801177A
+ .align 2, 0
+_08011760: .4byte gPlayerParty
+_08011764: .4byte 0x0000ffff
+_08011768:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+_0801177A:
+ str r0, [r6]
+ adds r6, 0x8
+ adds r5, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08011732
+ ldr r1, _08011798 @ =gUnknown_030042D4
+ ldr r0, _0801179C @ =bc_8013568
+_0801178A:
+ str r0, [r1]
+_0801178C:
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011798: .4byte gUnknown_030042D4
+_0801179C: .4byte bc_8013568
+ thumb_func_end bc_801333C
+
+ thumb_func_start bc_battle_begin_message
+bc_battle_begin_message: @ 80117A0
+ push {lr}
+ ldr r0, _080117C8 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080117C2
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _080117CC @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0
+ bl b_std_message
+ ldr r1, _080117D0 @ =gUnknown_030042D4
+ ldr r0, _080117D4 @ =sub_8011800
+ str r0, [r1]
+_080117C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080117C8: .4byte gUnknown_02024A64
+_080117CC: .4byte gUnknown_02024A60
+_080117D0: .4byte gUnknown_030042D4
+_080117D4: .4byte sub_8011800
+ thumb_func_end bc_battle_begin_message
+
+ thumb_func_start bc_8013568
+bc_8013568: @ 80117D8
+ push {lr}
+ ldr r0, _080117F4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080117F0
+ ldr r1, _080117F8 @ =gUnknown_030042D4
+ ldr r0, _080117FC @ =sub_8011970
+ str r0, [r1]
+ movs r0, 0
+ movs r1, 0
+ bl b_std_message
+_080117F0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080117F4: .4byte gUnknown_02024A64
+_080117F8: .4byte gUnknown_030042D4
+_080117FC: .4byte sub_8011970
+ thumb_func_end bc_8013568
+
+ thumb_func_start sub_8011800
+sub_8011800: @ 8011800
+ push {lr}
+ ldr r0, _08011828 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08011822
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl b_std_message
+ ldr r1, _0801182C @ =gUnknown_030042D4
+ ldr r0, _08011830 @ =sub_8011834
+ str r0, [r1]
+_08011822:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011828: .4byte gUnknown_02024A64
+_0801182C: .4byte gUnknown_030042D4
+_08011830: .4byte sub_8011834
+ thumb_func_end sub_8011800
+
+ thumb_func_start sub_8011834
+sub_8011834: @ 8011834
+ push {r4,lr}
+ ldr r0, _080118AC @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _080118A4
+ ldr r2, _080118B0 @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _080118B4 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _0801189E
+ adds r4, r2, 0
+_0801184C:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08011866
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2F_2F_2F_2F
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08011866:
+ ldr r0, _080118B8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801188C
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0801188C
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2F_2F_2F_2F
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0801188C:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080118B4 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0801184C
+_0801189E:
+ ldr r1, _080118BC @ =gUnknown_030042D4
+ ldr r0, _080118C0 @ =bc_801362C
+ str r0, [r1]
+_080118A4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080118AC: .4byte gUnknown_02024A64
+_080118B0: .4byte gUnknown_02024A60
+_080118B4: .4byte gUnknown_02024A68
+_080118B8: .4byte gUnknown_020239F8
+_080118BC: .4byte gUnknown_030042D4
+_080118C0: .4byte bc_801362C
+ thumb_func_end sub_8011834
+
+ thumb_func_start bc_801362C
+bc_801362C: @ 80118C4
+ push {r4,r5,lr}
+ ldr r0, _08011930 @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _0801192A
+ ldr r2, _08011934 @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _08011938 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08011924
+ adds r4, r2, 0
+ ldr r5, _0801193C @ =gBattleMons
+_080118DE:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08011912
+ ldr r0, _08011940 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r2, _08011944 @ =0x00000902
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08011912
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r5
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+_08011912:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08011938 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080118DE
+_08011924:
+ ldr r1, _08011948 @ =gUnknown_030042D4
+ ldr r0, _0801194C @ =sub_8011970
+ str r0, [r1]
+_0801192A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011930: .4byte gUnknown_02024A64
+_08011934: .4byte gUnknown_02024A60
+_08011938: .4byte gUnknown_02024A68
+_0801193C: .4byte gBattleMons
+_08011940: .4byte gUnknown_020239F8
+_08011944: .4byte 0x00000902
+_08011948: .4byte gUnknown_030042D4
+_0801194C: .4byte sub_8011970
+ thumb_func_end bc_801362C
+
+ thumb_func_start unref_sub_8011950
+unref_sub_8011950: @ 8011950
+ push {lr}
+ ldr r0, _08011964 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08011960
+ ldr r1, _08011968 @ =gUnknown_030042D4
+ ldr r0, _0801196C @ =sub_8011970
+ str r0, [r1]
+_08011960:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011964: .4byte gUnknown_02024A64
+_08011968: .4byte gUnknown_030042D4
+_0801196C: .4byte sub_8011970
+ thumb_func_end unref_sub_8011950
+
+ thumb_func_start sub_8011970
+sub_8011970: @ 8011970
+ push {lr}
+ ldr r0, _080119A4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801199E
+ ldr r0, _080119A8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08011998
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl b_std_message
+_08011998:
+ ldr r1, _080119AC @ =gUnknown_030042D4
+ ldr r0, _080119B0 @ =sub_80119B4
+ str r0, [r1]
+_0801199E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080119A4: .4byte gUnknown_02024A64
+_080119A8: .4byte gUnknown_020239F8
+_080119AC: .4byte gUnknown_030042D4
+_080119B0: .4byte sub_80119B4
+ thumb_func_end sub_8011970
+
+ thumb_func_start sub_80119B4
+sub_80119B4: @ 80119B4
+ push {r4,lr}
+ ldr r0, _08011A40 @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08011A38
+ ldr r2, _08011A44 @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _08011A48 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08011A1C
+ adds r4, r2, 0
+_080119CC:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _080119E4
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2F_2F_2F_2F
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080119E4:
+ ldr r0, _08011A4C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08011A0A
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08011A0A
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2F_2F_2F_2F
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08011A0A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08011A48 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080119CC
+_08011A1C:
+ ldr r1, _08011A50 @ =0x02000000
+ ldr r2, _08011A54 @ =0x00016058
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _08011A58 @ =0x000160f9
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08011A5C @ =0x000160e6
+ adds r1, r0
+ strb r2, [r1]
+ ldr r1, _08011A60 @ =gUnknown_030042D4
+ ldr r0, _08011A64 @ =sub_8011B00
+ str r0, [r1]
+_08011A38:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011A40: .4byte gUnknown_02024A64
+_08011A44: .4byte gUnknown_02024A60
+_08011A48: .4byte gUnknown_02024A68
+_08011A4C: .4byte gUnknown_020239F8
+_08011A50: .4byte 0x02000000
+_08011A54: .4byte 0x00016058
+_08011A58: .4byte 0x000160f9
+_08011A5C: .4byte 0x000160e6
+_08011A60: .4byte gUnknown_030042D4
+_08011A64: .4byte sub_8011B00
+ thumb_func_end sub_80119B4
+
+ thumb_func_start unref_sub_8011A68
+unref_sub_8011A68: @ 8011A68
+ push {r4,r5,lr}
+ ldr r0, _08011AD8 @ =gUnknown_02024A64
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _08011AD2
+ ldr r2, _08011ADC @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _08011AE0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08011AB6
+ adds r4, r2, 0
+ ldr r5, _08011AE4 @ =gUnknown_02024A6A
+_08011A82:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08011AA4
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ bl sub_800C704
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08011AA4:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08011AE0 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08011A82
+_08011AB6:
+ ldr r1, _08011AE8 @ =0x02000000
+ ldr r2, _08011AEC @ =0x00016058
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _08011AF0 @ =0x000160f9
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08011AF4 @ =0x000160e6
+ adds r1, r0
+ strb r2, [r1]
+ ldr r1, _08011AF8 @ =gUnknown_030042D4
+ ldr r0, _08011AFC @ =sub_8011B00
+ str r0, [r1]
+_08011AD2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011AD8: .4byte gUnknown_02024A64
+_08011ADC: .4byte gUnknown_02024A60
+_08011AE0: .4byte gUnknown_02024A68
+_08011AE4: .4byte gUnknown_02024A6A
+_08011AE8: .4byte 0x02000000
+_08011AEC: .4byte 0x00016058
+_08011AF0: .4byte 0x000160f9
+_08011AF4: .4byte 0x000160e6
+_08011AF8: .4byte gUnknown_030042D4
+_08011AFC: .4byte sub_8011B00
+ thumb_func_end unref_sub_8011A68
+
+ thumb_func_start sub_8011B00
+sub_8011B00: @ 8011B00
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r9, r0
+ ldr r0, _08011B44 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08011B18
+ b _08011D6E
+_08011B18:
+ ldr r0, _08011B48 @ =0x02000000
+ ldr r1, _08011B4C @ =0x00016058
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08011BA2
+ movs r5, 0
+ ldr r1, _08011B50 @ =gUnknown_02024A68
+ adds r3, r1, 0
+ ldrb r2, [r1]
+ cmp r5, r2
+ bge _08011B3E
+ ldr r2, _08011B54 @ =gUnknown_02024A7A
+_08011B32:
+ adds r0, r5, r2
+ strb r5, [r0]
+ adds r5, 0x1
+ ldrb r0, [r1]
+ cmp r5, r0
+ blt _08011B32
+_08011B3E:
+ movs r5, 0
+ b _08011B98
+ .align 2, 0
+_08011B44: .4byte gUnknown_02024A64
+_08011B48: .4byte 0x02000000
+_08011B4C: .4byte 0x00016058
+_08011B50: .4byte gUnknown_02024A68
+_08011B54: .4byte gUnknown_02024A7A
+_08011B58:
+ adds r4, r5, 0x1
+ mov r8, r4
+ ldrb r1, [r1]
+ cmp r8, r1
+ bge _08011B96
+ ldr r6, _08011BC8 @ =gUnknown_02024A7A
+ ldr r3, _08011BCC @ =gUnknown_02024A68
+ lsls r7, r5, 24
+_08011B68:
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ adds r1, r4, r6
+ ldrb r1, [r1]
+ movs r2, 0x1
+ str r3, [sp, 0x4]
+ bl b_first_side
+ lsls r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r0, 0
+ beq _08011B8C
+ lsls r1, r4, 24
+ lsrs r1, 24
+ lsrs r0, r7, 24
+ bl sub_8012FBC
+ ldr r3, [sp, 0x4]
+_08011B8C:
+ adds r4, 0x1
+ ldr r0, _08011BCC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08011B68
+_08011B96:
+ mov r5, r8
+_08011B98:
+ adds r1, r3, 0
+ ldrb r0, [r3]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _08011B58
+_08011BA2:
+ ldr r0, _08011BD0 @ =0x02000000
+ ldr r1, _08011BD4 @ =0x000160e6
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08011BD8
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xFF
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011BD8
+ movs r0, 0x1
+ strb r0, [r4]
+ b _08011D6E
+ .align 2, 0
+_08011BC8: .4byte gUnknown_02024A7A
+_08011BCC: .4byte gUnknown_02024A68
+_08011BD0: .4byte 0x02000000
+_08011BD4: .4byte 0x000160e6
+_08011BD8:
+ ldr r0, _08011D7C @ =0x02000000
+ ldr r3, _08011D80 @ =0x00016058
+ adds r2, r0, r3
+ ldr r1, _08011D84 @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08011C28
+ ldr r5, _08011D88 @ =gUnknown_02024A7A
+ adds r4, r2, 0
+_08011BEC:
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011C0E
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08011C0E:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ mov r1, r9
+ cmp r1, 0
+ beq _08011C1C
+ b _08011D6E
+_08011C1C:
+ ldr r1, _08011D84 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08011BEC
+_08011C28:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08011C42
+ b _08011D6E
+_08011C42:
+ str r0, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011C58
+ b _08011D6E
+_08011C58:
+ ldr r0, _08011D7C @ =0x02000000
+ ldr r3, _08011D8C @ =0x000160f9
+ adds r2, r0, r3
+ ldr r0, _08011D84 @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ adds r3, r0, 0
+ ldrb r0, [r3]
+ cmp r1, r0
+ bcs _08011CA8
+ ldr r5, _08011D88 @ =gUnknown_02024A7A
+ adds r4, r2, 0
+_08011C6E:
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0
+ str r3, [sp, 0x4]
+ bl sub_801A02C
+ lsls r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r0, 0
+ beq _08011C90
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08011C90:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ mov r1, r9
+ cmp r1, 0
+ bne _08011D6E
+ ldr r1, _08011D84 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08011C6E
+_08011CA8:
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _08011CB6
+ adds r5, r0, 0
+_08011CB0:
+ subs r5, 0x1
+ cmp r5, 0
+ bne _08011CB0
+_08011CB6:
+ movs r5, 0
+ ldr r0, _08011D7C @ =0x02000000
+ mov r8, r5
+ ldr r3, _08011D90 @ =gUnknown_02024C60
+ ldr r1, _08011D94 @ =0x00016068
+ adds r2, r0, r1
+ movs r7, 0x6
+ ldr r6, _08011D98 @ =gUnknown_02024C18
+ movs r4, 0xFF
+_08011CC8:
+ strb r7, [r2]
+ adds r1, r5, r6
+ ldrb r0, [r1]
+ orrs r0, r4
+ strb r0, [r1]
+ mov r0, r8
+ strh r0, [r3]
+ adds r3, 0x2
+ adds r2, 0x1
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08011CC8
+ movs r0, 0
+ bl sub_801365C
+ bl sub_801377C
+ ldr r0, _08011D7C @ =0x02000000
+ ldr r1, _08011D9C @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _08011DA0 @ =0x000160a6
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _08011DA4 @ =gUnknown_030042D4
+ ldr r0, _08011DA8 @ =sub_8012324
+ str r0, [r1]
+ bl sub_80156DC
+ ldr r1, _08011DAC @ =gUnknown_02024D1E
+ movs r2, 0
+ adds r0, r1, 0x7
+_08011D06:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08011D06
+ movs r5, 0
+ ldr r3, _08011D84 @ =gUnknown_02024A68
+ ldr r2, _08011D7C @ =0x02000000
+ ldr r6, _08011DB0 @ =gUnknown_02024C68
+ ldrb r0, [r3]
+ cmp r5, r0
+ bge _08011D36
+ ldr r0, _08011DB4 @ =gBattleMons
+ movs r4, 0x9
+ negs r4, r4
+ adds r1, r0, 0
+ adds r1, 0x50
+_08011D26:
+ ldr r0, [r1]
+ ands r0, r4
+ str r0, [r1]
+ adds r1, 0x58
+ adds r5, 0x1
+ ldrb r0, [r3]
+ cmp r5, r0
+ blt _08011D26
+_08011D36:
+ movs r1, 0xB0
+ lsls r1, 9
+ adds r0, r2, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r3, _08011DB8 @ =0x00016001
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _08011DBC @ =0x00016110
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x1
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _08011DC0 @ =0x0001600c
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x4D
+ adds r0, r2, r3
+ strb r1, [r0]
+ subs r3, 0x4B
+ adds r0, r2, r3
+ strb r1, [r0]
+ strb r1, [r6]
+ bl Random
+ ldr r1, _08011DC4 @ =gUnknown_02024D1C
+ strh r0, [r1]
+_08011D6E:
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011D7C: .4byte 0x02000000
+_08011D80: .4byte 0x00016058
+_08011D84: .4byte gUnknown_02024A68
+_08011D88: .4byte gUnknown_02024A7A
+_08011D8C: .4byte 0x000160f9
+_08011D90: .4byte gUnknown_02024C60
+_08011D94: .4byte 0x00016068
+_08011D98: .4byte gUnknown_02024C18
+_08011D9C: .4byte gUnknown_02024C0C
+_08011DA0: .4byte 0x000160a6
+_08011DA4: .4byte gUnknown_030042D4
+_08011DA8: .4byte sub_8012324
+_08011DAC: .4byte gUnknown_02024D1E
+_08011DB0: .4byte gUnknown_02024C68
+_08011DB4: .4byte gBattleMons
+_08011DB8: .4byte 0x00016001
+_08011DBC: .4byte 0x00016110
+_08011DC0: .4byte 0x0001600c
+_08011DC4: .4byte gUnknown_02024D1C
+ thumb_func_end sub_8011B00
+
+ thumb_func_start bc_8013B1C
+bc_8013B1C: @ 8011DC8
+ push {r4-r6,lr}
+ ldr r0, _08011E60 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08011E5A
+ ldr r1, _08011E64 @ =gUnknown_030042D4
+ ldr r0, _08011E68 @ =sub_8011E8C
+ str r0, [r1]
+ ldr r3, _08011E6C @ =gUnknown_02024A68
+ ldr r1, _08011E70 @ =gUnknown_02024D1E
+ movs r2, 0
+ adds r0, r1, 0x7
+_08011DE0:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08011DE0
+ movs r4, 0
+ ldrb r3, [r3]
+ cmp r4, r3
+ bge _08011E32
+ ldr r5, _08011E74 @ =gBattleMons
+ adds r6, r5, 0
+ adds r6, 0x4C
+_08011DF6:
+ movs r0, 0x58
+ adds r2, r4, 0
+ muls r2, r0
+ adds r1, r5, 0
+ adds r1, 0x50
+ adds r1, r2, r1
+ ldr r3, [r1]
+ subs r0, 0x61
+ ands r3, r0
+ str r3, [r1]
+ adds r2, r6
+ ldr r0, [r2]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08011E28
+ movs r0, 0x80
+ lsls r0, 5
+ ands r3, r0
+ cmp r3, 0
+ beq _08011E28
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl b_cancel_multi_turn_move_maybe
+_08011E28:
+ adds r4, 0x1
+ ldr r0, _08011E6C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08011DF6
+_08011E32:
+ ldr r0, _08011E78 @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r3, _08011E7C @ =0x00016001
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r3, _08011E80 @ =0x00016110
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _08011E84 @ =0x0001600e
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, _08011E88 @ =gUnknown_02024C68
+ strb r2, [r0]
+_08011E5A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011E60: .4byte gUnknown_02024A64
+_08011E64: .4byte gUnknown_030042D4
+_08011E68: .4byte sub_8011E8C
+_08011E6C: .4byte gUnknown_02024A68
+_08011E70: .4byte gUnknown_02024D1E
+_08011E74: .4byte gBattleMons
+_08011E78: .4byte 0x02000000
+_08011E7C: .4byte 0x00016001
+_08011E80: .4byte 0x00016110
+_08011E84: .4byte 0x0001600e
+_08011E88: .4byte gUnknown_02024C68
+ thumb_func_end bc_8013B1C
+
+ thumb_func_start sub_8011E8C
+sub_8011E8C: @ 8011E8C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0x1
+ bl sub_801365C
+ ldr r0, _08011F3C @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08011EBC
+ bl sub_8015DFC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011EB0
+ b _08011FEE
+_08011EB0:
+ bl sub_8016558
+ lsls r0, 24
+ cmp r0, 0
+ beq _08011EBC
+ b _08011FEE
+_08011EBC:
+ bl sub_80173A4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08011ECA
+ b _08011FEE
+_08011ECA:
+ ldr r5, _08011F40 @ =0x02000000
+ ldr r2, _08011F44 @ =0x00016059
+ adds r0, r5, r2
+ strb r1, [r0]
+ bl sub_80170DC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08011EE0
+ b _08011FEE
+_08011EE0:
+ movs r0, 0
+ bl sub_801365C
+ ldr r2, _08011F48 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08011F4C @ =0xfffffdff
+ ands r0, r1
+ ldr r1, _08011F50 @ =0xfff7ffff
+ ands r0, r1
+ ldr r1, _08011F54 @ =0xffbfffff
+ ands r0, r1
+ ldr r1, _08011F58 @ =0xffefffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08011F5C @ =0x00016002
+ adds r0, r5, r3
+ strb r4, [r0]
+ ldr r1, _08011F60 @ =0x000160a1
+ adds r0, r5, r1
+ strb r4, [r0]
+ ldr r2, _08011F64 @ =0x0001600c
+ adds r0, r5, r2
+ strb r4, [r0]
+ ldr r0, _08011F68 @ =gUnknown_02024BEC
+ str r4, [r0]
+ ldr r0, _08011F6C @ =gUnknown_02024C68
+ strb r4, [r0]
+ ldr r1, _08011F70 @ =gUnknown_02024D1E
+ movs r2, 0
+ adds r0, r1, 0x4
+_08011F1C:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08011F1C
+ ldr r0, _08011F3C @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08011F80
+ ldr r1, _08011F74 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r1, _08011F78 @ =gUnknown_030042D4
+ ldr r0, _08011F7C @ =sub_80138F0
+ str r0, [r1]
+ b _08011FEE
+ .align 2, 0
+_08011F3C: .4byte gUnknown_02024D26
+_08011F40: .4byte 0x02000000
+_08011F44: .4byte 0x00016059
+_08011F48: .4byte gUnknown_02024C6C
+_08011F4C: .4byte 0xfffffdff
+_08011F50: .4byte 0xfff7ffff
+_08011F54: .4byte 0xffbfffff
+_08011F58: .4byte 0xffefffff
+_08011F5C: .4byte 0x00016002
+_08011F60: .4byte 0x000160a1
+_08011F64: .4byte 0x0001600c
+_08011F68: .4byte gUnknown_02024BEC
+_08011F6C: .4byte gUnknown_02024C68
+_08011F70: .4byte gUnknown_02024D1E
+_08011F74: .4byte gUnknown_02024A7F
+_08011F78: .4byte gUnknown_030042D4
+_08011F7C: .4byte sub_80138F0
+_08011F80:
+ ldr r1, _08011FFC @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x13]
+ cmp r0, 0xFE
+ bhi _08011F8C
+ adds r0, 0x1
+ strb r0, [r1, 0x13]
+_08011F8C:
+ movs r2, 0
+ ldr r4, _08012000 @ =gUnknown_02024A68
+ ldr r3, _08012004 @ =0x02000000
+ mov r9, r3
+ ldr r0, _08012008 @ =gUnknown_030042D4
+ mov r10, r0
+ ldr r1, _0801200C @ =gUnknown_02024C0C
+ mov r12, r1
+ ldr r3, _08012010 @ =sub_8012324
+ mov r8, r3
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08011FC2
+ ldr r7, _08012014 @ =gUnknown_02024C18
+ movs r6, 0xFF
+ movs r5, 0
+ ldr r3, _08012018 @ =gUnknown_02024C60
+_08011FAE:
+ adds r1, r2, r7
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ strh r5, [r3]
+ adds r3, 0x2
+ adds r2, 0x1
+ ldrb r1, [r4]
+ cmp r2, r1
+ blt _08011FAE
+_08011FC2:
+ ldr r0, _08012004 @ =0x02000000
+ movs r1, 0x6
+ movs r2, 0x3
+ ldr r3, _0801201C @ =0x0001606b
+ adds r0, r3
+_08011FCC:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08011FCC
+ mov r0, r12
+ ldrb r1, [r0]
+ ldr r0, _08012020 @ =0x000160a6
+ add r0, r9
+ strb r1, [r0]
+ mov r1, r8
+ mov r2, r10
+ str r1, [r2]
+ bl Random
+ ldr r1, _08012024 @ =gUnknown_02024D1C
+ strh r0, [r1]
+_08011FEE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08011FFC: .4byte gUnknown_030042E0
+_08012000: .4byte gUnknown_02024A68
+_08012004: .4byte 0x02000000
+_08012008: .4byte gUnknown_030042D4
+_0801200C: .4byte gUnknown_02024C0C
+_08012010: .4byte sub_8012324
+_08012014: .4byte gUnknown_02024C18
+_08012018: .4byte gUnknown_02024C60
+_0801201C: .4byte 0x0001606b
+_08012020: .4byte 0x000160a6
+_08012024: .4byte gUnknown_02024D1C
+ thumb_func_end sub_8011E8C
+
+ thumb_func_start sub_8012028
+sub_8012028: @ 8012028
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _0801204C @ =gBattleMons
+ ldr r0, _08012050 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08012058
+ ldr r1, _08012054 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0, 0x7]
+ b _08012062
+ .align 2, 0
+_0801204C: .4byte gBattleMons
+_08012050: .4byte gUnknown_02024A60
+_08012054: .4byte gEnigmaBerries
+_08012058:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r2, r0, 24
+_08012062:
+ ldr r1, _0801217C @ =gUnknown_02024C0B
+ ldr r3, _08012180 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ strb r0, [r1]
+ cmp r2, 0x25
+ bne _08012070
+ b _080121F4
+_08012070:
+ ldr r0, _08012184 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801207E
+ b _080121F4
+_0801207E:
+ ldr r1, _08012188 @ =gBattleMons
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x32
+ bne _08012092
+ b _080121F4
+_08012092:
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r0, _0801218C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _08012126
+ movs r7, 0
+_080120A8:
+ lsrs r4, r7, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _080120CC
+ ldr r1, _08012188 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r5
+ adds r0, r1
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ cmp r0, 0x17
+ bne _080120CC
+ b _080121FC
+_080120CC:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _08012116
+ ldr r3, _08012188 @ =gBattleMons
+ ldr r0, _08012180 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ movs r2, 0x58
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ beq _08012116
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08012116
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08012116
+ adds r0, r5, 0
+ muls r0, r2
+ adds r0, r3
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ cmp r0, 0x47
+ bne _08012116
+ b _08012220
+_08012116:
+ movs r0, 0x80
+ lsls r0, 17
+ adds r7, r0
+ adds r5, 0x1
+ ldr r0, _0801218C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _080120A8
+_08012126:
+ ldr r4, _08012180 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xF
+ movs r2, 0x2A
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _080121A0
+ ldr r6, _08012188 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r3, 0x58
+ muls r0, r3
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ beq _0801215E
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080121A0
+_0801215E:
+ ldr r0, _08012190 @ =0x02000000
+ subs r1, r5, 0x1
+ ldr r2, _08012194 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, _08012198 @ =byte_2024C06
+ adds r0, r1, 0
+ muls r0, r3
+ adds r0, r6
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r1, _0801219C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _08012248
+ .align 2, 0
+_0801217C: .4byte gUnknown_02024C0B
+_08012180: .4byte gUnknown_02024A60
+_08012184: .4byte gUnknown_020239F8
+_08012188: .4byte gBattleMons
+_0801218C: .4byte gUnknown_02024A68
+_08012190: .4byte 0x02000000
+_08012194: .4byte 0x00016003
+_08012198: .4byte byte_2024C06
+_0801219C: .4byte gUnknown_02024D1E
+_080121A0:
+ ldr r1, _080121D4 @ =gBattleMons
+ ldr r0, _080121D8 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080121DC @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ bne _080121CA
+ ldr r1, _080121E0 @ =gUnknown_02024C98
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _080121E8
+_080121CA:
+ ldr r1, _080121E4 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ movs r0, 0x1
+ b _0801224A
+ .align 2, 0
+_080121D4: .4byte gBattleMons
+_080121D8: .4byte gUnknown_02024A60
+_080121DC: .4byte 0x0400e000
+_080121E0: .4byte gUnknown_02024C98
+_080121E4: .4byte gUnknown_02024D1E
+_080121E8:
+ ldr r0, _080121F8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08012244
+_080121F4:
+ movs r0, 0
+ b _0801224A
+ .align 2, 0
+_080121F8: .4byte gUnknown_020239F8
+_080121FC:
+ ldr r0, _08012210 @ =0x02000000
+ ldr r1, _08012214 @ =0x00016003
+ adds r0, r1
+ strb r5, [r0]
+ ldr r1, _08012218 @ =byte_2024C06
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldr r1, _0801221C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _08012248
+ .align 2, 0
+_08012210: .4byte 0x02000000
+_08012214: .4byte 0x00016003
+_08012218: .4byte byte_2024C06
+_0801221C: .4byte gUnknown_02024D1E
+_08012220:
+ ldr r0, _08012234 @ =0x02000000
+ ldr r1, _08012238 @ =0x00016003
+ adds r0, r1
+ strb r5, [r0]
+ ldr r1, _0801223C @ =byte_2024C06
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldr r1, _08012240 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _08012248
+ .align 2, 0
+_08012234: .4byte 0x02000000
+_08012238: .4byte 0x00016003
+_0801223C: .4byte byte_2024C06
+_08012240: .4byte gUnknown_02024D1E
+_08012244:
+ ldr r1, _08012254 @ =gUnknown_02024D1E
+ movs r0, 0x1
+_08012248:
+ strb r0, [r1, 0x5]
+_0801224A:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08012254: .4byte gUnknown_02024D1E
+ thumb_func_end sub_8012028
+
+ thumb_func_start sub_8012258
+sub_8012258: @ 8012258
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r7, _080122E4 @ =gUnknown_02024A6A
+ ldr r4, _080122E8 @ =gUnknown_02038470
+ ldr r1, _080122EC @ =0x02000000
+ lsls r6, r5, 1
+ ldr r2, _080122F0 @ =0x0001606c
+ adds r0, r5, r2
+ adds r0, r6, r0
+ adds r2, r0, r1
+_08012270:
+ adds r1, r3, r4
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _08012270
+ adds r0, r6, r7
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r7, _080122EC @ =0x02000000
+ ldr r1, _080122F4 @ =0x00016068
+ adds r0, r5, r1
+ adds r0, r7
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_8094C98
+ ldr r0, _080122F8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080122FC
+ movs r3, 0
+ ldr r2, _080122F0 @ =0x0001606c
+ movs r0, 0x2
+ adds r1, r5, 0
+ eors r1, r0
+ adds r0, r5, r2
+ adds r0, r6, r0
+ adds r4, r0, r7
+ ldr r5, _080122E8 @ =gUnknown_02038470
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, r2
+ adds r2, r0, r7
+_080122CC:
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ strb r1, [r4]
+ ldrb r0, [r0]
+ strb r0, [r2]
+ adds r4, 0x1
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _080122CC
+ b _08012316
+ .align 2, 0
+_080122E4: .4byte gUnknown_02024A6A
+_080122E8: .4byte gUnknown_02038470
+_080122EC: .4byte 0x02000000
+_080122F0: .4byte 0x0001606c
+_080122F4: .4byte 0x00016068
+_080122F8: .4byte gUnknown_020239F8
+_080122FC:
+ movs r3, 0
+ ldr r2, _0801231C @ =0x0001606c
+ adds r0, r5, r2
+ adds r0, r6, r0
+ adds r1, r0, r7
+ ldr r2, _08012320 @ =gUnknown_02038470
+_08012308:
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r1, 0x1
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _08012308
+_08012316:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801231C: .4byte 0x0001606c
+_08012320: .4byte gUnknown_02038470
+ thumb_func_end sub_8012258
+
+ thumb_func_start sub_8012324
+sub_8012324: @ 8012324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _08012340 @ =gUnknown_02024D1E
+ movs r1, 0
+ strb r1, [r0, 0x4]
+ ldr r0, _08012344 @ =gUnknown_02024A60
+ strb r1, [r0]
+ ldr r0, _08012348 @ =gUnknown_02024A68
+ bl _08012F74
+ .align 2, 0
+_08012340: .4byte gUnknown_02024D1E
+_08012344: .4byte gUnknown_02024A60
+_08012348: .4byte gUnknown_02024A68
+_0801234C:
+ ldr r4, _08012374 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08012378 @ =gUnknown_02024D1E
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _08012368
+ bl _08012F66
+_08012368:
+ lsls r0, 2
+ ldr r1, _0801237C @ =_08012380
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012374: .4byte gUnknown_02024A60
+_08012378: .4byte gUnknown_02024D1E
+_0801237C: .4byte _08012380
+ .align 2, 0
+_08012380:
+ .4byte _0801239C
+ .4byte _080124C8
+ .4byte _08012A28
+ .4byte _08012DA8
+ .4byte _08012E50
+ .4byte _08012E94
+ .4byte _08012F38
+_0801239C:
+ ldr r4, _08012434 @ =0x02000000
+ ldr r0, _08012438 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ ldr r1, _0801243C @ =0x00016068
+ adds r0, r1
+ adds r0, r4
+ movs r1, 0x6
+ strb r1, [r0]
+ ldr r0, _08012440 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080123F8
+ movs r1, 0x2
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _080123F8
+ eors r5, r1
+ adds r0, r5, 0
+ bl battle_get_side_with_given_state
+ ldr r2, _08012444 @ =0x000160a6
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ ldr r2, _08012448 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080123F8
+ ldr r4, _0801244C @ =gUnknown_02024D1E
+ adds r0, r5, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _080123F8
+ bl _08012F66
+_080123F8:
+ ldr r0, _08012434 @ =0x02000000
+ ldr r3, _08012444 @ =0x000160a6
+ adds r0, r3
+ ldrb r3, [r0]
+ ldr r1, _08012448 @ =gBitTable
+ ldr r4, _08012438 @ =gUnknown_02024A60
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r3, r0
+ cmp r3, 0
+ beq _08012468
+ ldr r0, _08012450 @ =gUnknown_02024C18
+ adds r0, r2, r0
+ movs r1, 0xD
+ strb r1, [r0]
+ ldr r0, _08012440 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08012454
+ ldr r0, _0801244C @ =gUnknown_02024D1E
+ ldrb r1, [r4]
+ adds r1, r0
+ movs r0, 0x4
+ strb r0, [r1]
+ bl _08012F66
+ .align 2, 0
+_08012434: .4byte 0x02000000
+_08012438: .4byte gUnknown_02024A60
+_0801243C: .4byte 0x00016068
+_08012440: .4byte gUnknown_020239F8
+_08012444: .4byte 0x000160a6
+_08012448: .4byte gBitTable
+_0801244C: .4byte gUnknown_02024D1E
+_08012450: .4byte gUnknown_02024C18
+_08012454:
+ ldr r0, _08012464 @ =gUnknown_02024D1E
+ ldrb r1, [r4]
+ adds r1, r0
+ movs r0, 0x3
+ strb r0, [r1]
+ bl _08012F66
+ .align 2, 0
+_08012464: .4byte gUnknown_02024D1E
+_08012468:
+ ldr r1, _0801249C @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _08012488
+ movs r0, 0x80
+ lsls r0, 15
+ ands r1, r0
+ cmp r1, 0
+ beq _080124A8
+_08012488:
+ ldr r0, _080124A0 @ =gUnknown_02024C18
+ adds r0, r2, r0
+ strb r3, [r0]
+ ldr r1, _080124A4 @ =gUnknown_02024D1E
+ ldrb r0, [r4]
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ bl _08012F66
+ .align 2, 0
+_0801249C: .4byte gBattleMons
+_080124A0: .4byte gUnknown_02024C18
+_080124A4: .4byte gUnknown_02024D1E
+_080124A8:
+ ldr r0, _080124C0 @ =gUnknown_02024C18
+ ldrb r1, [r0]
+ ldr r0, _080124C4 @ =gUnknown_02024260
+ ldrb r2, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ movs r0, 0
+ bl dp01_build_cmdbuf_x12_a_bb
+ bl _08012E32
+ .align 2, 0
+_080124C0: .4byte gUnknown_02024C18
+_080124C4: .4byte gUnknown_02024260
+_080124C8:
+ ldr r4, _08012520 @ =gUnknown_02024A64
+ ldr r1, _08012524 @ =gBitTable
+ ldr r3, _08012528 @ =gUnknown_02024A60
+ ldrb r5, [r3]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r2, 4
+ movs r1, 0xF0
+ lsls r1, 24
+ orrs r0, r1
+ orrs r0, r2
+ lsls r1, r2, 8
+ orrs r0, r1
+ lsls r2, 12
+ orrs r0, r2
+ ldr r1, [r4]
+ ands r1, r0
+ mov r8, r3
+ cmp r1, 0
+ beq _080124F6
+ bl _08012F66
+_080124F6:
+ ldr r2, _0801252C @ =gUnknown_02024C18
+ adds r2, r5, r2
+ ldr r1, _08012530 @ =gUnknown_02024260
+ lsls r0, r5, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bls _08012514
+ b _08012968
+_08012514:
+ lsls r0, 2
+ ldr r1, _08012534 @ =_08012538
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012520: .4byte gUnknown_02024A64
+_08012524: .4byte gBitTable
+_08012528: .4byte gUnknown_02024A60
+_0801252C: .4byte gUnknown_02024C18
+_08012530: .4byte gUnknown_02024260
+_08012534: .4byte _08012538
+ .align 2, 0
+_08012538:
+ .4byte _0801256C
+ .4byte _080126B4
+ .4byte _080126E0
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _080128B0
+ .4byte _08012908
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _08012968
+ .4byte _0801292C
+_0801256C:
+ bl sub_8015C90
+ lsls r0, 24
+ cmp r0, 0
+ beq _080125D0
+ ldr r0, _080125B4 @ =gUnknown_02024D1E
+ ldr r2, _080125B8 @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ adds r1, r0
+ movs r4, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r3, _080125BC @ =0x02000000
+ ldrb r0, [r2]
+ ldr r1, _080125C0 @ =0x00016060
+ adds r0, r1
+ adds r0, r3
+ strb r4, [r0]
+ ldrb r0, [r2]
+ ldr r4, _080125C4 @ =0x00016094
+ adds r0, r4
+ adds r0, r3
+ movs r1, 0x3
+ strb r1, [r0]
+ ldrb r1, [r2]
+ ldr r0, _080125C8 @ =0x00016010
+ adds r2, r1, r0
+ adds r2, r3
+ ldr r0, _080125CC @ =gUnknown_02024260
+ lsls r1, 9
+ adds r0, 0x3
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ bl _08012F90
+ .align 2, 0
+_080125B4: .4byte gUnknown_02024D1E
+_080125B8: .4byte gUnknown_02024A60
+_080125BC: .4byte 0x02000000
+_080125C0: .4byte 0x00016060
+_080125C4: .4byte 0x00016094
+_080125C8: .4byte 0x00016010
+_080125CC: .4byte gUnknown_02024260
+_080125D0:
+ ldr r1, _080125FC @ =gUnknown_02024CA8
+ ldr r5, _08012600 @ =gUnknown_02024A60
+ ldrb r4, [r5]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r2, [r0, 0x6]
+ cmp r2, 0
+ beq _0801260C
+ ldr r1, _08012604 @ =gUnknown_02024C60
+ lsls r0, r4, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r1, _08012608 @ =gUnknown_02024D1E
+ ldrb r0, [r5]
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ bl _08012F90
+ .align 2, 0
+_080125FC: .4byte gUnknown_02024CA8
+_08012600: .4byte gUnknown_02024A60
+_08012604: .4byte gUnknown_02024C60
+_08012608: .4byte gUnknown_02024D1E
+_0801260C:
+ add r2, sp, 0x4
+ ldr r3, _080126AC @ =gBattleMons
+ movs r1, 0x58
+ adds r0, r4, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r2, 0x10]
+ ldrb r0, [r5]
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x21
+ ldrb r0, [r0]
+ strb r0, [r2, 0x12]
+ ldrb r0, [r5]
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x22
+ ldrb r0, [r0]
+ strb r0, [r2, 0x13]
+ movs r4, 0
+ mov r1, sp
+ adds r1, 0xC
+ str r1, [sp, 0x18]
+ add r2, sp, 0x10
+ mov r10, r2
+ mov r8, r3
+ adds r7, r5, 0
+ movs r6, 0x58
+ movs r3, 0xC
+ add r3, r8
+ mov r9, r3
+ add r5, sp, 0x4
+_0801264E:
+ lsls r2, r4, 1
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r2, r0
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r5]
+ ldr r0, [sp, 0x18]
+ adds r3, r0, r4
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r4, r0
+ mov r1, r8
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r2, r1
+ add r2, r9
+ ldrh r0, [r2]
+ add r1, r8
+ adds r1, 0x3B
+ ldrb r1, [r1]
+ lsls r2, r4, 24
+ lsrs r2, 24
+ bl CalculatePPWithBonus
+ mov r2, r10
+ adds r1, r2, r4
+ strb r0, [r1]
+ adds r5, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0801264E
+ ldr r0, _080126B0 @ =gUnknown_020239F8
+ ldrb r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ movs r0, 0
+ movs r2, 0
+ add r3, sp, 0x4
+ bl sub_800CBA4
+ b _0801289E
+ .align 2, 0
+_080126AC: .4byte gBattleMons
+_080126B0: .4byte gUnknown_020239F8
+_080126B4:
+ ldr r0, _080126D0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _080126D4 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _080126C2
+ b _08012908
+_080126C2:
+ ldr r1, _080126D8 @ =gUnknown_02024C1C
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080126DC @ =gUnknown_081D9B29
+ b _080129CC
+ .align 2, 0
+_080126D0: .4byte gUnknown_020239F8
+_080126D4: .4byte 0x00000902
+_080126D8: .4byte gUnknown_02024C1C
+_080126DC: .4byte gUnknown_081D9B29
+_080126E0:
+ ldr r3, _08012738 @ =0x02000000
+ ldr r5, _0801273C @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r4, _08012740 @ =0x00016064
+ adds r1, r0, r4
+ adds r1, r3
+ ldr r2, _08012744 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r7, _08012748 @ =gBattleMons
+ ldrb r2, [r5]
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0801274C @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ bne _08012722
+ ldr r0, _08012750 @ =gUnknown_02024C98
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r1, r0
+ cmp r1, 0
+ beq _08012758
+_08012722:
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r2, _08012754 @ =0x0001606c
+ adds r1, r3, r2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0x6
+ b _0801286C
+ .align 2, 0
+_08012738: .4byte 0x02000000
+_0801273C: .4byte gUnknown_02024A60
+_08012740: .4byte 0x00016064
+_08012744: .4byte gUnknown_02024A6A
+_08012748: .4byte gBattleMons
+_0801274C: .4byte 0x0400e000
+_08012750: .4byte gUnknown_02024C98
+_08012754: .4byte 0x0001606c
+_08012758:
+ str r1, [sp]
+ movs r0, 0xC
+ adds r1, r2, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080127E0
+ ldrb r1, [r5]
+ str r4, [sp]
+ movs r0, 0xC
+ movs r2, 0x47
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080127A8
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r1, r0, r7
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080127A8
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080127A8
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ bne _080127E0
+_080127A8:
+ ldr r5, _08012808 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xF
+ movs r2, 0x2A
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08012818
+ ldr r2, _0801280C @ =gBattleMons
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ beq _080127E0
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _08012818
+_080127E0:
+ subs r1, r4, 0x1
+ lsls r1, 4
+ movs r0, 0x4
+ orrs r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08012810 @ =byte_2024C06
+ ldrb r3, [r0]
+ ldr r0, _08012808 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r2, _08012814 @ =0x0201606c
+ adds r0, r2
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0x6
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ b _0801289E
+ .align 2, 0
+_08012808: .4byte gUnknown_02024A60
+_0801280C: .4byte gBattleMons
+_08012810: .4byte byte_2024C06
+_08012814: .4byte 0x0201606c
+_08012818:
+ ldr r0, _08012830 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ mov r8, r0
+ cmp r1, 0x2
+ bne _08012840
+ ldr r0, _08012834 @ =gUnknown_02024C18
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08012840
+ ldr r3, _08012838 @ =0x02000000
+ ldr r4, _0801283C @ =0x00016068
+ b _08012854
+ .align 2, 0
+_08012830: .4byte gUnknown_02024A60
+_08012834: .4byte gUnknown_02024C18
+_08012838: .4byte 0x02000000
+_0801283C: .4byte 0x00016068
+_08012840:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0x3
+ bne _08012884
+ ldr r0, _08012874 @ =gUnknown_02024C18
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x2
+ bne _08012884
+ ldr r3, _08012878 @ =0x02000000
+ ldr r4, _0801287C @ =0x00016069
+_08012854:
+ adds r0, r3, r4
+ ldrb r2, [r0]
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _08012880 @ =0x0001606c
+ adds r3, r1
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+_0801286C:
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ b _0801289E
+ .align 2, 0
+_08012874: .4byte gUnknown_02024C18
+_08012878: .4byte 0x02000000
+_0801287C: .4byte 0x00016069
+_08012880: .4byte 0x0001606c
+_08012884:
+ ldr r0, _080128A8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _080128AC @ =0x0201606c
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x6
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+_0801289E:
+ ldr r0, _080128A8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08012968
+ .align 2, 0
+_080128A8: .4byte gUnknown_02024A60
+_080128AC: .4byte 0x0201606c
+_080128B0:
+ bl PlayerPartyAndPokemonStorageFull
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012968
+ ldr r1, _080128EC @ =gUnknown_02024C1C
+ ldr r2, _080128F0 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080128F4 @ =gUnknown_081D8E4A
+ str r1, [r0]
+ ldr r0, _080128F8 @ =gUnknown_02024D1E
+ ldrb r1, [r2]
+ adds r1, r0
+ movs r3, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r1, _080128FC @ =0x02000000
+ ldrb r0, [r2]
+ ldr r4, _08012900 @ =0x00016060
+ adds r0, r4
+ adds r0, r1
+ strb r3, [r0]
+ ldrb r0, [r2]
+ ldr r2, _08012904 @ =0x00016094
+ adds r0, r2
+ adds r0, r1
+ strb r3, [r0]
+ b _08012F90
+ .align 2, 0
+_080128EC: .4byte gUnknown_02024C1C
+_080128F0: .4byte gUnknown_02024A60
+_080128F4: .4byte gUnknown_081D8E4A
+_080128F8: .4byte gUnknown_02024D1E
+_080128FC: .4byte 0x02000000
+_08012900: .4byte 0x00016060
+_08012904: .4byte 0x00016094
+_08012908:
+ ldr r4, _08012924 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, _08012928 @ =0x0201606c
+ adds r1, r0
+ movs r0, 0
+ bl sub_800CBE0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08012968
+ .align 2, 0
+_08012924: .4byte gUnknown_02024A60
+_08012928: .4byte 0x0201606c
+_0801292C:
+ ldr r4, _08012964 @ =gUnknown_02024D1E
+ mov r3, r8
+ ldrb r1, [r3]
+ adds r1, r4
+ movs r5, 0
+ movs r0, 0x6
+ strb r0, [r1]
+ ldrb r0, [r3]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ strb r5, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x32_32_32_32
+ mov r4, r8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08012F90
+ .align 2, 0
+_08012964: .4byte gUnknown_02024D1E
+_08012968:
+ ldr r0, _08012994 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0xA
+ ands r0, r1
+ cmp r0, 0x8
+ bne _080129A8
+ ldr r0, _08012998 @ =gUnknown_02024260
+ ldr r4, _0801299C @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bne _080129A8
+ ldr r0, _080129A0 @ =gUnknown_081D8E37
+ bl b_call_bc_move_exec
+ ldr r1, _080129A4 @ =gUnknown_02024D1E
+ ldrb r0, [r4]
+ adds r0, r1
+ b _08012BFE
+ .align 2, 0
+_08012994: .4byte gUnknown_020239F8
+_08012998: .4byte gUnknown_02024260
+_0801299C: .4byte gUnknown_02024A60
+_080129A0: .4byte gUnknown_081D8E37
+_080129A4: .4byte gUnknown_02024D1E
+_080129A8:
+ bl sub_8012028
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012A14
+ ldr r0, _080129F4 @ =gUnknown_02024260
+ ldr r3, _080129F8 @ =gUnknown_02024A60
+ ldrb r2, [r3]
+ lsls r1, r2, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bne _08012A14
+ ldr r1, _080129FC @ =gUnknown_02024C1C
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, _08012A00 @ =gUnknown_081D8E44
+_080129CC:
+ str r1, [r0]
+ ldr r0, _08012A04 @ =gUnknown_02024D1E
+ ldrb r1, [r3]
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r1, _08012A08 @ =0x02000000
+ ldrb r0, [r3]
+ ldr r4, _08012A0C @ =0x00016060
+ adds r0, r4
+ adds r0, r1
+ strb r2, [r0]
+ ldrb r0, [r3]
+ ldr r3, _08012A10 @ =0x00016094
+ adds r0, r3
+ adds r0, r1
+ strb r2, [r0]
+ b _08012F90
+ .align 2, 0
+_080129F4: .4byte gUnknown_02024260
+_080129F8: .4byte gUnknown_02024A60
+_080129FC: .4byte gUnknown_02024C1C
+_08012A00: .4byte gUnknown_081D8E44
+_08012A04: .4byte gUnknown_02024D1E
+_08012A08: .4byte 0x02000000
+_08012A0C: .4byte 0x00016060
+_08012A10: .4byte 0x00016094
+_08012A14:
+ ldr r2, _08012A20 @ =gUnknown_02024D1E
+ ldr r0, _08012A24 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012A20: .4byte gUnknown_02024D1E
+_08012A24: .4byte gUnknown_02024A60
+_08012A28:
+ ldr r4, _08012A6C @ =gUnknown_02024A64
+ ldr r1, _08012A70 @ =gBitTable
+ ldr r3, _08012A74 @ =gUnknown_02024A60
+ ldrb r5, [r3]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r2, 4
+ movs r1, 0xF0
+ lsls r1, 24
+ orrs r0, r1
+ orrs r0, r2
+ lsls r1, r2, 8
+ orrs r0, r1
+ lsls r2, 12
+ orrs r0, r2
+ ldr r1, [r4]
+ ands r1, r0
+ mov r8, r3
+ cmp r1, 0
+ beq _08012A54
+ b _08012F66
+_08012A54:
+ ldr r1, _08012A78 @ =gUnknown_02024C18
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x9
+ bls _08012A62
+ b _08012F66
+_08012A62:
+ lsls r0, 2
+ ldr r1, _08012A7C @ =_08012A80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08012A6C: .4byte gUnknown_02024A64
+_08012A70: .4byte gBitTable
+_08012A74: .4byte gUnknown_02024A60
+_08012A78: .4byte gUnknown_02024C18
+_08012A7C: .4byte _08012A80
+ .align 2, 0
+_08012A80:
+ .4byte _08012AA8
+ .4byte _08012BB0
+ .4byte _08012BE8
+ .4byte _08012CE0
+ .4byte _08012D04
+ .4byte _08012D18
+ .4byte _08012D2C
+ .4byte _08012D5C
+ .4byte _08012D70
+ .4byte _08012D94
+_08012AA8:
+ ldr r0, _08012AC8 @ =gUnknown_02024260
+ mov r1, r8
+ ldrb r4, [r1]
+ lsls r1, r4, 9
+ adds r2, r0, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ cmp r1, 0x9
+ bgt _08012ACC
+ cmp r1, 0x3
+ blt _08012ACC
+ adds r0, r4, r3
+ strb r1, [r0]
+ b _08012F90
+ .align 2, 0
+_08012AC8: .4byte gUnknown_02024260
+_08012ACC:
+ adds r3, r6, 0
+ mov r5, r8
+ ldrb r4, [r5]
+ lsls r1, r4, 9
+ adds r7, r3, 0x2
+ adds r0, r1, r7
+ ldrb r2, [r0]
+ adds r3, 0x3
+ mov r9, r3
+ add r1, r9
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r2, r0
+ ldr r0, _08012AF4 @ =0x0000ffff
+ cmp r2, r0
+ bne _08012AFC
+ ldr r0, _08012AF8 @ =gUnknown_02024D1E
+ adds r0, r4, r0
+ b _08012BFE
+ .align 2, 0
+_08012AF4: .4byte 0x0000ffff
+_08012AF8: .4byte gUnknown_02024D1E
+_08012AFC:
+ bl sub_8015894
+ lsls r0, 24
+ cmp r0, 0
+ beq _08012B48
+ ldr r0, _08012B38 @ =gUnknown_02024D1E
+ ldrb r1, [r5]
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r3, _08012B3C @ =0x02000000
+ ldrb r0, [r5]
+ ldr r4, _08012B40 @ =0x00016060
+ adds r0, r4
+ adds r0, r3
+ strb r2, [r0]
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, r6, 0x1
+ adds r0, r1
+ strb r2, [r0]
+ ldrb r0, [r5]
+ ldr r1, _08012B44 @ =0x00016094
+ adds r0, r1
+ adds r0, r3
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08012F90
+ .align 2, 0
+_08012B38: .4byte gUnknown_02024D1E
+_08012B3C: .4byte 0x02000000
+_08012B40: .4byte 0x00016060
+_08012B44: .4byte 0x00016094
+_08012B48:
+ ldr r6, _08012B98 @ =0x02000000
+ mov r2, r8
+ ldrb r0, [r2]
+ ldr r2, _08012B9C @ =0x0001608c
+ adds r1, r0, r2
+ adds r1, r6
+ lsls r0, 9
+ adds r0, r7
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08012BA0 @ =gUnknown_02024C60
+ mov r4, r8
+ ldrb r3, [r4]
+ lsls r5, r3, 1
+ adds r5, r0
+ ldr r4, _08012BA4 @ =gBattleMons
+ adds r2, r3, r2
+ adds r2, r6
+ ldrb r0, [r2]
+ lsls r0, 1
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1
+ adds r4, 0xC
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r5]
+ mov r1, r8
+ ldrb r0, [r1]
+ ldr r2, _08012BA8 @ =0x00016010
+ adds r1, r0, r2
+ adds r1, r6
+ lsls r0, 9
+ add r0, r9
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08012BAC @ =gUnknown_02024D1E
+ mov r3, r8
+ ldrb r1, [r3]
+ b _08012E3C
+ .align 2, 0
+_08012B98: .4byte 0x02000000
+_08012B9C: .4byte 0x0001608c
+_08012BA0: .4byte gUnknown_02024C60
+_08012BA4: .4byte gBattleMons
+_08012BA8: .4byte 0x00016010
+_08012BAC: .4byte gUnknown_02024D1E
+_08012BB0:
+ ldr r2, _08012BD8 @ =gUnknown_02024260
+ ldr r5, _08012BDC @ =gUnknown_02024A60
+ ldrb r4, [r5]
+ lsls r1, r4, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ cmp r3, 0
+ bne _08012BCE
+ b _08012F60
+_08012BCE:
+ ldr r0, _08012BE0 @ =gUnknown_02024C04
+ strh r3, [r0]
+ ldr r0, _08012BE4 @ =gUnknown_02024D1E
+ ldrb r1, [r5]
+ b _08012E3C
+ .align 2, 0
+_08012BD8: .4byte gUnknown_02024260
+_08012BDC: .4byte gUnknown_02024A60
+_08012BE0: .4byte gUnknown_02024C04
+_08012BE4: .4byte gUnknown_02024D1E
+_08012BE8:
+ ldr r4, _08012C04 @ =gUnknown_02024260
+ ldr r7, _08012C08 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 9
+ adds r1, r4, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0x6
+ bne _08012C10
+ ldr r0, _08012C0C @ =gUnknown_02024D1E
+ adds r0, r2, r0
+_08012BFE:
+ movs r1, 0
+ strb r1, [r0]
+ b _08012F66
+ .align 2, 0
+_08012C04: .4byte gUnknown_02024260
+_08012C08: .4byte gUnknown_02024A60
+_08012C0C: .4byte gUnknown_02024D1E
+_08012C10:
+ ldr r0, _08012CC4 @ =0x02000000
+ mov r12, r0
+ ldr r3, _08012CC8 @ =0x00016068
+ adds r0, r2, r3
+ add r0, r12
+ strb r1, [r0]
+ ldr r0, _08012CCC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08012CBE
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r5, _08012CD0 @ =0x0001606c
+ adds r1, r5
+ add r1, r12
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r2, r0, 1
+ adds r2, r0
+ adds r2, r5
+ add r2, r12
+ lsls r0, 9
+ adds r6, r4, 0x2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r3, 0xF0
+ adds r0, r3, 0
+ ands r0, r1
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r2, _08012CD4 @ =0x0001606d
+ adds r1, r2
+ add r1, r12
+ lsls r0, 9
+ adds r4, 0x3
+ mov r8, r4
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r4, 0x2
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ add r1, r12
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ add r1, r12
+ ldrb r0, [r7]
+ lsls r0, 9
+ adds r0, r6
+ ldrb r0, [r0]
+ ands r3, r0
+ lsrs r3, 4
+ ldrb r0, [r1]
+ orrs r3, r0
+ strb r3, [r1]
+ ldrb r0, [r7]
+ eors r4, r0
+ lsls r1, r4, 1
+ adds r1, r4
+ ldr r3, _08012CD8 @ =0x0001606e
+ adds r1, r3
+ add r1, r12
+ ldrb r0, [r7]
+ lsls r0, 9
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+_08012CBE:
+ ldr r0, _08012CDC @ =gUnknown_02024D1E
+ ldrb r1, [r7]
+ b _08012E3C
+ .align 2, 0
+_08012CC4: .4byte 0x02000000
+_08012CC8: .4byte 0x00016068
+_08012CCC: .4byte gUnknown_020239F8
+_08012CD0: .4byte 0x0001606c
+_08012CD4: .4byte 0x0001606d
+_08012CD8: .4byte 0x0001606e
+_08012CDC: .4byte gUnknown_02024D1E
+_08012CE0:
+ ldr r2, _08012CF8 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 8
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _08012CFC @ =gUnknown_02024D1E
+ ldr r0, _08012D00 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012CF8: .4byte gUnknown_02024C6C
+_08012CFC: .4byte gUnknown_02024D1E
+_08012D00: .4byte gUnknown_02024A60
+_08012D04:
+ ldr r2, _08012D10 @ =gUnknown_02024D1E
+ ldr r0, _08012D14 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D10: .4byte gUnknown_02024D1E
+_08012D14: .4byte gUnknown_02024A60
+_08012D18:
+ ldr r2, _08012D24 @ =gUnknown_02024D1E
+ ldr r0, _08012D28 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D24: .4byte gUnknown_02024D1E
+_08012D28: .4byte gUnknown_02024A60
+_08012D2C:
+ ldr r2, _08012D50 @ =gUnknown_02024260
+ ldr r0, _08012D54 @ =gUnknown_02024A60
+ ldrb r4, [r0]
+ lsls r1, r4, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ cmp r3, 0
+ bne _08012D4A
+ b _08012F60
+_08012D4A:
+ ldr r1, _08012D58 @ =gUnknown_02024D1E
+ adds r1, r4, r1
+ b _08012E3E
+ .align 2, 0
+_08012D50: .4byte gUnknown_02024260
+_08012D54: .4byte gUnknown_02024A60
+_08012D58: .4byte gUnknown_02024D1E
+_08012D5C:
+ ldr r2, _08012D68 @ =gUnknown_02024D1E
+ ldr r0, _08012D6C @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D68: .4byte gUnknown_02024D1E
+_08012D6C: .4byte gUnknown_02024A60
+_08012D70:
+ ldr r2, _08012D88 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 8
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _08012D8C @ =gUnknown_02024D1E
+ ldr r0, _08012D90 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012D88: .4byte gUnknown_02024C6C
+_08012D8C: .4byte gUnknown_02024D1E
+_08012D90: .4byte gUnknown_02024A60
+_08012D94:
+ ldr r2, _08012DA0 @ =gUnknown_02024D1E
+ ldr r0, _08012DA4 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, r2
+ b _08012E3E
+ .align 2, 0
+_08012DA0: .4byte gUnknown_02024D1E
+_08012DA4: .4byte gUnknown_02024A60
+_08012DA8:
+ ldr r3, _08012E10 @ =gUnknown_02024A64
+ ldr r4, _08012E14 @ =gBitTable
+ ldr r0, _08012E18 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldr r2, [r0]
+ lsls r1, r2, 4
+ movs r0, 0xF0
+ lsls r0, 24
+ orrs r1, r0
+ orrs r1, r2
+ lsls r0, r2, 8
+ orrs r1, r0
+ lsls r2, 12
+ orrs r1, r2
+ ldr r0, [r3]
+ ands r0, r1
+ cmp r0, 0
+ beq _08012DD2
+ b _08012F66
+_08012DD2:
+ ldr r0, _08012E1C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x41
+ ands r0, r1
+ cmp r0, 0x1
+ bne _08012E06
+ movs r1, 0x2
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ bne _08012E06
+ adds r0, r5, 0
+ eors r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _08012E20 @ =0x02000000
+ ldr r2, _08012E24 @ =0x000160a6
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08012E28
+_08012E06:
+ movs r0, 0
+ movs r1, 0
+ bl sub_800D1D8
+ b _08012E30
+ .align 2, 0
+_08012E10: .4byte gUnknown_02024A64
+_08012E14: .4byte gBitTable
+_08012E18: .4byte gUnknown_02024A60
+_08012E1C: .4byte gUnknown_020239F8
+_08012E20: .4byte 0x02000000
+_08012E24: .4byte 0x000160a6
+_08012E28:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_800D1D8
+_08012E30:
+ ldr r4, _08012E48 @ =gUnknown_02024A60
+_08012E32:
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _08012E4C @ =gUnknown_02024D1E
+ ldrb r1, [r4]
+_08012E3C:
+ adds r1, r0
+_08012E3E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08012F66
+ .align 2, 0
+_08012E48: .4byte gUnknown_02024A60
+_08012E4C: .4byte gUnknown_02024D1E
+_08012E50:
+ ldr r3, _08012E84 @ =gUnknown_02024A64
+ ldr r1, _08012E88 @ =gBitTable
+ ldr r0, _08012E8C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r1, r2, 4
+ movs r0, 0xF0
+ lsls r0, 24
+ orrs r1, r0
+ orrs r1, r2
+ lsls r0, r2, 8
+ orrs r1, r0
+ lsls r2, 12
+ orrs r1, r2
+ ldr r0, [r3]
+ ands r0, r1
+ cmp r0, 0
+ bne _08012F66
+ ldr r1, _08012E90 @ =gUnknown_02024D1E
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08012F66
+ .align 2, 0
+_08012E84: .4byte gUnknown_02024A64
+_08012E88: .4byte gBitTable
+_08012E8C: .4byte gUnknown_02024A60
+_08012E90: .4byte gUnknown_02024D1E
+_08012E94:
+ ldr r2, _08012EB8 @ =0x02000000
+ ldr r5, _08012EBC @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ ldr r3, _08012EC0 @ =0x00016060
+ adds r0, r1, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08012ECC
+ ldr r0, _08012EC4 @ =gUnknown_02024D1E
+ adds r0, r1, r0
+ ldr r4, _08012EC8 @ =0x00016094
+ adds r1, r4
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08012F66
+ .align 2, 0
+_08012EB8: .4byte 0x02000000
+_08012EBC: .4byte gUnknown_02024A60
+_08012EC0: .4byte 0x00016060
+_08012EC4: .4byte gUnknown_02024D1E
+_08012EC8: .4byte 0x00016094
+_08012ECC:
+ ldr r0, _08012F20 @ =gUnknown_02024C07
+ strb r1, [r0]
+ ldr r7, _08012F24 @ =gUnknown_02024C10
+ ldr r6, _08012F28 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r6
+ ldr r4, [r0]
+ str r4, [r7]
+ ldr r3, _08012F2C @ =gUnknown_02024A64
+ ldr r1, _08012F30 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r1, r2, 4
+ movs r0, 0xF0
+ lsls r0, 24
+ orrs r1, r0
+ orrs r1, r2
+ lsls r0, r2, 8
+ orrs r1, r0
+ lsls r2, 12
+ orrs r1, r2
+ ldr r0, [r3]
+ ands r0, r1
+ cmp r0, 0
+ bne _08012F12
+ ldr r0, _08012F34 @ =gUnknown_081FA73C
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+_08012F12:
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r7]
+ str r1, [r0]
+ b _08012F66
+ .align 2, 0
+_08012F20: .4byte gUnknown_02024C07
+_08012F24: .4byte gUnknown_02024C10
+_08012F28: .4byte gUnknown_02024C1C
+_08012F2C: .4byte gUnknown_02024A64
+_08012F30: .4byte gBitTable
+_08012F34: .4byte gUnknown_081FA73C
+_08012F38:
+ ldr r3, _08012FA0 @ =gUnknown_02024A64
+ ldr r1, _08012FA4 @ =gBitTable
+ ldr r0, _08012FA8 @ =gUnknown_02024A60
+ ldrb r4, [r0]
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r2, [r0]
+ lsls r0, r2, 4
+ movs r1, 0xF0
+ lsls r1, 24
+ orrs r0, r1
+ orrs r0, r2
+ lsls r1, r2, 8
+ orrs r0, r1
+ lsls r2, 12
+ orrs r0, r2
+ ldr r3, [r3]
+ ands r3, r0
+ cmp r3, 0
+ bne _08012F66
+_08012F60:
+ ldr r0, _08012FAC @ =gUnknown_02024D1E
+ adds r0, r4, r0
+ strb r3, [r0]
+_08012F66:
+ ldr r0, _08012FA8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08012FB0 @ =gUnknown_02024A68
+ lsls r1, 24
+ lsrs r1, 24
+_08012F74:
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bcs _08012F80
+ bl _0801234C
+_08012F80:
+ ldr r0, _08012FAC @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x4]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bne _08012F90
+ ldr r1, _08012FB4 @ =gUnknown_030042D4
+ ldr r0, _08012FB8 @ =sub_80133C8
+ str r0, [r1]
+_08012F90:
+ 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
+_08012FA0: .4byte gUnknown_02024A64
+_08012FA4: .4byte gBitTable
+_08012FA8: .4byte gUnknown_02024A60
+_08012FAC: .4byte gUnknown_02024D1E
+_08012FB0: .4byte gUnknown_02024A68
+_08012FB4: .4byte gUnknown_030042D4
+_08012FB8: .4byte sub_80133C8
+ thumb_func_end sub_8012324
+
+ thumb_func_start sub_8012FBC
+sub_8012FBC: @ 8012FBC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08012FE8 @ =gUnknown_02024A76
+ adds r4, r0, r2
+ ldrb r5, [r4]
+ adds r2, r1, r2
+ ldrb r3, [r2]
+ strb r3, [r4]
+ strb r5, [r2]
+ ldr r2, _08012FEC @ =gUnknown_02024A7A
+ adds r0, r2
+ ldrb r5, [r0]
+ adds r1, r2
+ ldrb r2, [r1]
+ strb r2, [r0]
+ strb r5, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08012FE8: .4byte gUnknown_02024A76
+_08012FEC: .4byte gUnknown_02024A7A
+ thumb_func_end sub_8012FBC
+
+ thumb_func_start b_first_side
+b_first_side: @ 8012FF0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _080130B8
+ ldr r1, [sp, 0x8]
+ str r1, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _080130B8
+ ldr r1, _08013070 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r3, [r0]
+ cmp r3, 0x21
+ bne _0801305C
+ ldr r0, _08013074 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801306C
+_0801305C:
+ cmp r3, 0x22
+ bne _08013078
+ ldr r0, _08013074 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08013078
+_0801306C:
+ movs r3, 0x2
+ b _0801307A
+ .align 2, 0
+_08013070: .4byte gBattleMons
+_08013074: .4byte word_2024DB8
+_08013078:
+ movs r3, 0x1
+_0801307A:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r2, _080130B0 @ =gBattleMons
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0x21
+ bne _0801309A
+ ldr r0, _080130B4 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _080130AA
+_0801309A:
+ cmp r2, 0x22
+ bne _080130BA
+ ldr r0, _080130B4 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _080130BA
+_080130AA:
+ movs r7, 0x2
+ b _080130BC
+ .align 2, 0
+_080130B0: .4byte gBattleMons
+_080130B4: .4byte word_2024DB8
+_080130B8:
+ movs r3, 0x1
+_080130BA:
+ movs r7, 0x1
+_080130BC:
+ ldr r1, _08013100 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x6]
+ muls r3, r0
+ ldr r2, _08013104 @ =gStatStageRatios
+ movs r1, 0x1B
+ ldrsb r1, [r4, r1]
+ lsls r1, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ muls r0, r3
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl __divsi3
+ mov r8, r0
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0xAF
+ bne _0801310C
+ ldr r1, _08013108 @ =gEnigmaBerries
+ mov r3, r9
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x7]
+ ldrb r5, [r0, 0x1A]
+ b _08013120
+ .align 2, 0
+_08013100: .4byte gBattleMons
+_08013104: .4byte gStatStageRatios
+_08013108: .4byte gEnigmaBerries
+_0801310C:
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08013120:
+ ldr r0, _080131DC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08013154
+ ldr r0, _080131E0 @ =0x00000809
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08013154
+ mov r0, r9
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013154
+ movs r0, 0x6E
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0x64
+ bl __udivsi3
+ mov r8, r0
+_08013154:
+ cmp r6, 0x18
+ bne _0801315E
+ mov r2, r8
+ lsrs r2, 1
+ mov r8, r2
+_0801315E:
+ ldr r1, _080131E4 @ =gBattleMons
+ movs r0, 0x58
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801317C
+ mov r0, r8
+ lsrs r0, 2
+ mov r8, r0
+_0801317C:
+ cmp r6, 0x1A
+ bne _08013198
+ ldr r0, _080131E8 @ =gUnknown_02024D1C
+ ldrh r4, [r0]
+ lsls r0, r5, 16
+ subs r0, r5
+ movs r1, 0x64
+ bl __divsi3
+ cmp r4, r0
+ bge _08013198
+ movs r1, 0x1
+ negs r1, r1
+ mov r8, r1
+_08013198:
+ ldr r1, _080131E4 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x6]
+ adds r3, r0, 0
+ muls r3, r7
+ ldr r2, _080131EC @ =gStatStageRatios
+ movs r1, 0x1B
+ ldrsb r1, [r4, r1]
+ lsls r1, 1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ muls r0, r3
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ bl __divsi3
+ adds r7, r0, 0
+ ldrh r0, [r4, 0x2E]
+ cmp r0, 0xAF
+ bne _080131F4
+ ldr r1, _080131F0 @ =gEnigmaBerries
+ mov r3, r10
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x7]
+ ldrb r5, [r0, 0x1A]
+ b _08013208
+ .align 2, 0
+_080131DC: .4byte gUnknown_020239F8
+_080131E0: .4byte 0x00000809
+_080131E4: .4byte gBattleMons
+_080131E8: .4byte gUnknown_02024D1C
+_080131EC: .4byte gStatStageRatios
+_080131F0: .4byte gEnigmaBerries
+_080131F4:
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r4, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08013208:
+ ldr r0, _08013280 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08013238
+ ldr r0, _08013284 @ =0x00000809
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08013238
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013238
+ movs r0, 0x6E
+ muls r0, r7
+ movs r1, 0x64
+ bl __udivsi3
+ adds r7, r0, 0
+_08013238:
+ cmp r6, 0x18
+ bne _0801323E
+ lsrs r7, 1
+_0801323E:
+ ldr r2, _08013288 @ =gBattleMons
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801325A
+ lsrs r7, 2
+_0801325A:
+ cmp r6, 0x1A
+ bne _08013274
+ ldr r0, _0801328C @ =gUnknown_02024D1C
+ ldrh r4, [r0]
+ lsls r0, r5, 16
+ subs r0, r5
+ movs r1, 0x64
+ bl __divsi3
+ cmp r4, r0
+ bge _08013274
+ movs r7, 0x1
+ negs r7, r7
+_08013274:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0
+ beq _08013290
+ movs r3, 0
+ b _08013334
+ .align 2, 0
+_08013280: .4byte gUnknown_020239F8
+_08013284: .4byte 0x00000809
+_08013288: .4byte gBattleMons
+_0801328C: .4byte gUnknown_02024D1C
+_08013290:
+ ldr r0, _080132B0 @ =gUnknown_02024C18
+ mov r3, r9
+ adds r1, r3, r0
+ ldrb r1, [r1]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _080132E4
+ ldr r0, _080132B4 @ =gUnknown_02024D28
+ lsls r1, r3, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ bge _080132B8
+ movs r3, 0xA5
+ b _080132E6
+ .align 2, 0
+_080132B0: .4byte gUnknown_02024C18
+_080132B4: .4byte gUnknown_02024D28
+_080132B8:
+ ldr r1, _080132D8 @ =0x02000000
+ ldr r0, _080132DC @ =0x0001608c
+ add r0, r9
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ mov r3, r9
+ muls r3, r1
+ adds r1, r3, 0
+ adds r0, r1
+ ldr r1, _080132E0 @ =gBattleMons
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r3, [r0]
+ b _080132E6
+ .align 2, 0
+_080132D8: .4byte 0x02000000
+_080132DC: .4byte 0x0001608c
+_080132E0: .4byte gBattleMons
+_080132E4:
+ movs r3, 0
+_080132E6:
+ mov r1, r10
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08013334
+ ldr r0, _08013304 @ =gUnknown_02024D28
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08013308
+ movs r2, 0xA5
+ b _08013336
+ .align 2, 0
+_08013304: .4byte gUnknown_02024D28
+_08013308:
+ ldr r1, _08013328 @ =0x02000000
+ ldr r0, _0801332C @ =0x0001608c
+ add r0, r10
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ mov r2, r10
+ muls r2, r1
+ adds r1, r2, 0
+ adds r0, r1
+ ldr r1, _08013330 @ =gBattleMons
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r2, [r0]
+ b _08013336
+ .align 2, 0
+_08013328: .4byte 0x02000000
+_0801332C: .4byte 0x0001608c
+_08013330: .4byte gBattleMons
+_08013334:
+ movs r2, 0
+_08013336:
+ ldr r4, _08013380 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x7
+ ldrsb r1, [r0, r1]
+ lsls r3, r2, 1
+ cmp r1, 0
+ bne _0801335A
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x7]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _08013398
+_0801335A:
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x7]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r1, r0
+ bne _0801338E
+ cmp r8, r7
+ bne _08013384
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08013384
+ movs r3, 0x2
+ b _080133B4
+ .align 2, 0
+_08013380: .4byte gBattleMoves
+_08013384:
+ cmp r8, r7
+ bcs _080133B6
+ movs r0, 0x1
+ str r0, [sp, 0x8]
+ b _080133B6
+_0801338E:
+ cmp r1, r0
+ bge _080133B6
+ movs r1, 0x1
+ str r1, [sp, 0x8]
+ b _080133B6
+_08013398:
+ cmp r8, r7
+ bne _080133AE
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080133AE
+ movs r2, 0x2
+ str r2, [sp, 0x8]
+ b _080133B6
+_080133AE:
+ cmp r8, r7
+ bcs _080133B6
+ movs r3, 0x1
+_080133B4:
+ str r3, [sp, 0x8]
+_080133B6:
+ ldr r0, [sp, 0x8]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end b_first_side
+
+ thumb_func_start sub_80133C8
+sub_80133C8: @ 80133C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r3, 0
+ ldr r0, _0801341C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08013434
+ ldr r0, _08013420 @ =gUnknown_02024A60
+ strb r3, [r0]
+ ldr r4, _08013424 @ =gUnknown_02024A68
+ mov r8, r0
+ ldrb r0, [r4]
+ cmp r3, r0
+ bcc _080133F0
+ b _08013622
+_080133F0:
+ ldr r7, _08013428 @ =gUnknown_02024A76
+ ldr r6, _0801342C @ =gUnknown_02024C18
+ mov r2, r8
+ ldr r5, _08013430 @ =gUnknown_02024A7A
+_080133F8:
+ adds r1, r3, r7
+ ldrb r0, [r2]
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r1, r3, r5
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r3, 0x1
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4]
+ cmp r0, r1
+ bcc _080133F8
+ b _08013622
+ .align 2, 0
+_0801341C: .4byte gUnknown_020239F8
+_08013420: .4byte gUnknown_02024A60
+_08013424: .4byte gUnknown_02024A68
+_08013428: .4byte gUnknown_02024A76
+_0801342C: .4byte gUnknown_02024C18
+_08013430: .4byte gUnknown_02024A7A
+_08013434:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08013484
+ ldr r0, _08013478 @ =gUnknown_02024A60
+ strb r3, [r0]
+ ldr r1, _0801347C @ =gUnknown_02024A68
+ mov r8, r0
+ adds r2, r1, 0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _08013494
+ ldr r0, _08013480 @ =gUnknown_02024C18
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x3
+ beq _08013492
+_08013456:
+ mov r7, r8
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0801347C @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08013494
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08013456
+ b _08013492
+ .align 2, 0
+_08013478: .4byte gUnknown_02024A60
+_0801347C: .4byte gUnknown_02024A68
+_08013480: .4byte gUnknown_02024C18
+_08013484:
+ ldr r0, _080134FC @ =gUnknown_02024C18
+ ldrb r0, [r0]
+ ldr r2, _08013500 @ =gUnknown_02024A60
+ mov r8, r2
+ cmp r0, 0x3
+ bne _08013494
+ strb r3, [r2]
+_08013492:
+ movs r3, 0x5
+_08013494:
+ cmp r3, 0x5
+ bne _08013520
+ ldr r6, _08013504 @ =gUnknown_02024A76
+ ldr r1, _080134FC @ =gUnknown_02024C18
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r6]
+ ldr r2, _08013508 @ =gUnknown_02024A7A
+ ldrb r0, [r3]
+ strb r0, [r2]
+ movs r3, 0x1
+ movs r5, 0
+ adds r4, r1, 0
+ ldr r7, _0801350C @ =gUnknown_030042D4
+ mov r9, r7
+ ldr r0, _08013510 @ =bc_80154A0
+ mov r12, r0
+ ldr r1, _08013514 @ =0x02000000
+ mov r10, r1
+ ldr r7, _08013518 @ =gUnknown_02024A68
+ ldrb r7, [r7]
+ cmp r5, r7
+ bge _080134EC
+ adds r7, r6, 0
+ adds r6, r4, 0
+ adds r4, r2, 0
+ ldr r2, _08013518 @ =gUnknown_02024A68
+_080134CE:
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _080134E4
+ adds r1, r3, r7
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, r4
+ strb r5, [r0]
+ adds r3, 0x1
+_080134E4:
+ adds r5, 0x1
+ ldrb r1, [r2]
+ cmp r5, r1
+ blt _080134CE
+_080134EC:
+ mov r2, r12
+ mov r3, r9
+ str r2, [r3]
+ ldr r1, _0801351C @ =0x0001601d
+ add r1, r10
+ movs r0, 0
+ strb r0, [r1]
+ b _08013632
+ .align 2, 0
+_080134FC: .4byte gUnknown_02024C18
+_08013500: .4byte gUnknown_02024A60
+_08013504: .4byte gUnknown_02024A76
+_08013508: .4byte gUnknown_02024A7A
+_0801350C: .4byte gUnknown_030042D4
+_08013510: .4byte bc_80154A0
+_08013514: .4byte 0x02000000
+_08013518: .4byte gUnknown_02024A68
+_0801351C: .4byte 0x0001601d
+_08013520:
+ movs r0, 0
+ mov r7, r8
+ strb r0, [r7]
+ ldr r1, _080135B0 @ =gUnknown_02024A68
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08013566
+ ldr r6, _080135B4 @ =gUnknown_02024C18
+ mov r2, r8
+ ldr r5, _080135B8 @ =gUnknown_02024A76
+ ldr r4, _080135BC @ =gUnknown_02024A7A
+_08013536:
+ ldrb r0, [r2]
+ adds r0, r6
+ ldrb r1, [r0]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08013554
+ adds r0, r3, r5
+ strb r1, [r0]
+ adds r1, r3, r4
+ mov r7, r8
+ ldrb r0, [r7]
+ strb r0, [r1]
+ adds r3, 0x1
+_08013554:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080135B0 @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08013536
+_08013566:
+ movs r0, 0
+ mov r2, r8
+ strb r0, [r2]
+ ldr r7, _080135B0 @ =gUnknown_02024A68
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _080135AA
+ ldr r6, _080135B4 @ =gUnknown_02024C18
+ ldr r5, _080135B8 @ =gUnknown_02024A76
+ ldr r4, _080135BC @ =gUnknown_02024A7A
+_0801357A:
+ ldrb r0, [r2]
+ adds r0, r6
+ ldrb r1, [r0]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08013598
+ adds r0, r3, r5
+ strb r1, [r0]
+ adds r1, r3, r4
+ mov r7, r8
+ ldrb r0, [r7]
+ strb r0, [r1]
+ adds r3, 0x1
+_08013598:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080135B0 @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0801357A
+_080135AA:
+ movs r5, 0
+ b _08013618
+ .align 2, 0
+_080135B0: .4byte gUnknown_02024A68
+_080135B4: .4byte gUnknown_02024C18
+_080135B8: .4byte gUnknown_02024A76
+_080135BC: .4byte gUnknown_02024A7A
+_080135C0:
+ adds r4, r5, 0x1
+ adds r7, r4, 0
+ ldrb r1, [r1]
+ cmp r7, r1
+ bge _08013616
+ ldr r6, _08013640 @ =gUnknown_02024A76
+ lsls r2, r5, 24
+ mov r8, r2
+_080135D0:
+ ldr r0, _08013644 @ =gUnknown_02024A7A
+ adds r1, r5, r0
+ ldrb r3, [r1]
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ adds r0, r5, r6
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _0801360C
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0801360C
+ cmp r2, 0x2
+ beq _0801360C
+ cmp r0, 0x2
+ beq _0801360C
+ adds r0, r3, 0
+ movs r2, 0
+ bl b_first_side
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801360C
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r3, r8
+ lsrs r0, r3, 24
+ bl sub_8012FBC
+_0801360C:
+ adds r4, 0x1
+ ldr r0, _08013648 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _080135D0
+_08013616:
+ adds r5, r7, 0
+_08013618:
+ ldr r1, _08013648 @ =gUnknown_02024A68
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _080135C0
+_08013622:
+ ldr r1, _0801364C @ =gUnknown_030042D4
+ ldr r0, _08013650 @ =bc_80154A0
+ str r0, [r1]
+ ldr r0, _08013654 @ =0x02000000
+ ldr r7, _08013658 @ =0x0001601d
+ adds r0, r7
+ movs r1, 0
+ strb r1, [r0]
+_08013632:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013640: .4byte gUnknown_02024A76
+_08013644: .4byte gUnknown_02024A7A
+_08013648: .4byte gUnknown_02024A68
+_0801364C: .4byte gUnknown_030042D4
+_08013650: .4byte bc_80154A0
+_08013654: .4byte 0x02000000
+_08013658: .4byte 0x0001601d
+ thumb_func_end sub_80133C8
+
+ thumb_func_start sub_801365C
+sub_801365C: @ 801365C
+ 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
+ ldr r1, _080136B4 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080136B8 @ =gUnknown_02024A68
+ ldrb r2, [r0]
+ adds r5, r1, 0
+ cmp r2, 0
+ beq _08013754
+ ldr r7, _080136BC @ =gUnknown_02024D28
+ adds r6, r5, 0
+ ldr r0, _080136C0 @ =gUnknown_02024AD0
+ mov r12, r0
+ ldr r1, _080136C4 @ =gUnknown_02024CA8
+ mov r8, r1
+ mov r10, r8
+_0801368A:
+ mov r2, r9
+ cmp r2, 0
+ beq _080136C8
+ ldrb r1, [r6]
+ lsls r1, 4
+ adds r1, r7
+ ldrb r2, [r1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r6]
+ lsls r1, 4
+ adds r1, r7
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _08013724
+ .align 2, 0
+_080136B4: .4byte gUnknown_02024A60
+_080136B8: .4byte gUnknown_02024A68
+_080136BC: .4byte gUnknown_02024D28
+_080136C0: .4byte gUnknown_02024AD0
+_080136C4: .4byte gUnknown_02024CA8
+_080136C8:
+ ldrb r0, [r6]
+ lsls r0, 4
+ adds r2, r0, r7
+ movs r1, 0
+ mov r4, r10
+ movs r3, 0
+_080136D4:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r1, 0x1
+ cmp r1, 0xF
+ bls _080136D4
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrb r0, [r1, 0x16]
+ cmp r0, 0
+ beq _080136F2
+ subs r0, 0x1
+ strb r0, [r1, 0x16]
+_080136F2:
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrb r0, [r1, 0x19]
+ cmp r0, 0
+ beq _08013724
+ subs r0, 0x1
+ strb r0, [r1, 0x19]
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x19]
+ cmp r0, 0
+ bne _08013724
+ movs r0, 0x58
+ muls r2, r0
+ add r2, r12
+ ldr r0, [r2]
+ ldr r1, _0801376C @ =0xffbfffff
+ ands r0, r1
+ str r0, [r2]
+_08013724:
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ bne _08013742
+ movs r0, 0x58
+ muls r2, r0
+ add r2, r12
+ ldr r0, [r2]
+ ldr r1, _08013770 @ =0xfeffffff
+ ands r0, r1
+ str r0, [r2]
+_08013742:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08013774 @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0801368A
+_08013754:
+ movs r0, 0
+ ldr r2, _08013778 @ =gUnknown_02024C80
+ strb r0, [r2, 0x8]
+ strb r0, [r2, 0x14]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801376C: .4byte 0xffbfffff
+_08013770: .4byte 0xfeffffff
+_08013774: .4byte gUnknown_02024A68
+_08013778: .4byte gUnknown_02024C80
+ thumb_func_end sub_801365C
+
+ thumb_func_start sub_801377C
+sub_801377C: @ 801377C
+ push {r4-r6,lr}
+ ldr r2, _080137C0 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r2]
+ ldr r0, _080137C4 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _080137BA
+ adds r3, r2, 0
+ movs r4, 0
+ ldr r5, _080137C8 @ =gUnknown_02024D68
+_08013794:
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r5
+ movs r1, 0
+_080137A0:
+ adds r0, r2, r1
+ strb r4, [r0]
+ adds r1, 0x1
+ cmp r1, 0x13
+ bls _080137A0
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r6]
+ cmp r0, r1
+ bcc _08013794
+_080137BA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080137C0: .4byte gUnknown_02024A60
+_080137C4: .4byte gUnknown_02024A68
+_080137C8: .4byte gUnknown_02024D68
+ thumb_func_end sub_801377C
+
+ thumb_func_start bc_80154A0
+bc_80154A0: @ 80137CC
+ push {r4-r7,lr}
+ ldr r0, _08013850 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _08013884
+ ldr r0, _08013854 @ =0x02000000
+ ldr r1, _08013858 @ =0x0001601d
+ adds r2, r0, r1
+ ldr r0, _0801385C @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ adds r7, r0, 0
+ ldrb r0, [r7]
+ cmp r1, r0
+ bcs _08013884
+ ldr r6, _08013860 @ =gUnknown_02024A60
+ ldr r5, _08013864 @ =gUnknown_02024C07
+ adds r4, r2, 0
+ movs r1, 0x84
+ lsls r1, 1
+ mov r12, r1
+_080137FA:
+ ldrb r0, [r4]
+ strb r0, [r5]
+ strb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08013868 @ =gUnknown_02024C60
+ ldrb r3, [r6]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r12
+ bne _0801387C
+ ldr r1, _0801386C @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801387C
+ ldr r2, _08013870 @ =gUnknown_02024CA8
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0801387C
+ ldr r0, _08013874 @ =gUnknown_02024D28
+ lsls r1, r3, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 29
+ cmp r0, 0
+ blt _0801387C
+ ldr r0, _08013878 @ =gUnknown_081D94DA
+ bl b_call_bc_move_exec
+ b _080138BE
+ .align 2, 0
+_08013850: .4byte gUnknown_02024C6C
+_08013854: .4byte 0x02000000
+_08013858: .4byte 0x0001601d
+_0801385C: .4byte gUnknown_02024A68
+_08013860: .4byte gUnknown_02024A60
+_08013864: .4byte gUnknown_02024C07
+_08013868: .4byte gUnknown_02024C60
+_0801386C: .4byte gBattleMons
+_08013870: .4byte gUnknown_02024CA8
+_08013874: .4byte gUnknown_02024D28
+_08013878: .4byte gUnknown_081D94DA
+_0801387C:
+ ldrb r0, [r4]
+ ldrb r2, [r7]
+ cmp r0, r2
+ bcc _080137FA
+_08013884:
+ bl b_clear_atk_up_if_hit_flag_unless_enraged
+ ldr r1, _080138C4 @ =gUnknown_02024A7E
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080138C8 @ =gUnknown_02024A7F
+ ldr r0, _080138CC @ =gUnknown_02024A76
+ movs r2, 0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _080138D0 @ =gUnknown_02024DEC
+ movs r3, 0
+ strh r2, [r0]
+ ldr r1, _080138D4 @ =0x02000000
+ ldr r2, _080138D8 @ =0x0001601c
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r2, _080138DC @ =gUnknown_030042D4
+ ldr r0, _080138E0 @ =sub_80138F0
+ str r0, [r2]
+ ldr r0, _080138E4 @ =gUnknown_02024D1E
+ strb r3, [r0, 0x3]
+ strb r3, [r0, 0x4]
+ ldr r2, _080138E8 @ =0x00016112
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r0, _080138EC @ =0x00017130
+ adds r1, r0
+ strb r3, [r1]
+_080138BE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080138C4: .4byte gUnknown_02024A7E
+_080138C8: .4byte gUnknown_02024A7F
+_080138CC: .4byte gUnknown_02024A76
+_080138D0: .4byte gUnknown_02024DEC
+_080138D4: .4byte 0x02000000
+_080138D8: .4byte 0x0001601c
+_080138DC: .4byte gUnknown_030042D4
+_080138E0: .4byte sub_80138F0
+_080138E4: .4byte gUnknown_02024D1E
+_080138E8: .4byte 0x00016112
+_080138EC: .4byte 0x00017130
+ thumb_func_end bc_80154A0
+
+ thumb_func_start sub_80138F0
+sub_80138F0: @ 80138F0
+ push {r4-r6,lr}
+ ldr r6, _08013944 @ =gUnknown_02024D26
+ ldrb r0, [r6]
+ ldr r2, _08013948 @ =gUnknown_02024A7F
+ cmp r0, 0
+ beq _08013900
+ movs r0, 0xC
+ strb r0, [r2]
+_08013900:
+ ldr r1, _0801394C @ =0x02000000
+ ldr r4, _08013950 @ =gUnknown_02024A7E
+ ldrb r0, [r4]
+ ldr r3, _08013954 @ =0x00016057
+ adds r5, r1, r3
+ strb r0, [r5]
+ ldr r1, _08013958 @ =gUnknown_081FA640
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0801395C @ =gUnknown_02024A68
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _08013970
+ ldr r2, _08013960 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08013964 @ =0xffefffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08013968 @ =gUnknown_030042D4
+ ldr r2, _0801396C @ =gUnknown_081FA678
+ ldrb r1, [r6]
+ movs r0, 0x7F
+ ands r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ b _08013984
+ .align 2, 0
+_08013944: .4byte gUnknown_02024D26
+_08013948: .4byte gUnknown_02024A7F
+_0801394C: .4byte 0x02000000
+_08013950: .4byte gUnknown_02024A7E
+_08013954: .4byte 0x00016057
+_08013958: .4byte gUnknown_081FA640
+_0801395C: .4byte gUnknown_02024A68
+_08013960: .4byte gUnknown_02024C6C
+_08013964: .4byte 0xffefffff
+_08013968: .4byte gUnknown_030042D4
+_0801396C: .4byte gUnknown_081FA678
+_08013970:
+ ldrb r0, [r5]
+ cmp r0, r1
+ beq _08013984
+ ldr r2, _0801398C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08013990 @ =0xfffffdff
+ ands r0, r1
+ ldr r1, _08013994 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+_08013984:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801398C: .4byte gUnknown_02024C6C
+_08013990: .4byte 0xfffffdff
+_08013994: .4byte 0xfff7ffff
+ thumb_func_end sub_80138F0
+
+ thumb_func_start sub_8013998
+sub_8013998: @ 8013998
+ push {r4,lr}
+ ldr r1, _080139D0 @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080139D4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080139EC
+ ldr r1, _080139D8 @ =gUnknown_030041C0
+ ldr r4, _080139DC @ =gUnknown_02024D26
+ ldrb r0, [r4]
+ strb r0, [r1]
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _080139E0 @ =gUnknown_02024C07
+ strb r0, [r1]
+ ldr r1, _080139E4 @ =gUnknown_02024C10
+ ldr r0, _080139E8 @ =gUnknown_081D8E02
+ str r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4]
+ b _08013B48
+ .align 2, 0
+_080139D0: .4byte gUnknown_02024A7F
+_080139D4: .4byte gUnknown_020239F8
+_080139D8: .4byte gUnknown_030041C0
+_080139DC: .4byte gUnknown_02024D26
+_080139E0: .4byte gUnknown_02024C07
+_080139E4: .4byte gUnknown_02024C10
+_080139E8: .4byte gUnknown_081D8E02
+_080139EC:
+ movs r0, 0x90
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08013A04
+ ldr r1, _080139FC @ =gUnknown_02024C10
+ ldr r0, _08013A00 @ =gUnknown_081D8E0D
+ b _08013B46
+ .align 2, 0
+_080139FC: .4byte gUnknown_02024C10
+_08013A00: .4byte gUnknown_081D8E0D
+_08013A04:
+ movs r0, 0xA
+ ands r0, r1
+ cmp r0, 0x8
+ beq _08013A0E
+ b _08013B42
+_08013A0E:
+ bl sub_80325B8
+ ldr r1, _08013A3C @ =gUnknown_02024C10
+ ldr r0, _08013A40 @ =gUnknown_081D8DBE
+ str r0, [r1]
+ ldr r2, _08013A44 @ =gTrainers
+ ldr r0, _08013A48 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ subs r0, 0x2
+ cmp r0, 0x31
+ bls _08013A30
+ b _08013B38
+_08013A30:
+ lsls r0, 2
+ ldr r1, _08013A4C @ =_08013A50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08013A3C: .4byte gUnknown_02024C10
+_08013A40: .4byte gUnknown_081D8DBE
+_08013A44: .4byte gTrainers
+_08013A48: .4byte gTrainerBattleOpponent
+_08013A4C: .4byte _08013A50
+ .align 2, 0
+_08013A50:
+ .4byte _08013B24
+ .4byte _08013B24
+ .4byte _08013B24
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B18
+ .4byte _08013B2E
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B18
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B38
+ .4byte _08013B24
+ .4byte _08013B24
+ .4byte _08013B24
+_08013B18:
+ ldr r0, _08013B20 @ =0x00000163
+ bl PlayBGM
+ b _08013B48
+ .align 2, 0
+_08013B20: .4byte 0x00000163
+_08013B24:
+ movs r0, 0xD4
+ lsls r0, 1
+ bl PlayBGM
+ b _08013B48
+_08013B2E:
+ movs r0, 0xB1
+ lsls r0, 1
+ bl PlayBGM
+ b _08013B48
+_08013B38:
+ movs r0, 0xCE
+ lsls r0, 1
+ bl PlayBGM
+ b _08013B48
+_08013B42:
+ ldr r1, _08013B54 @ =gUnknown_02024C10
+ ldr r0, _08013B58 @ =gUnknown_081D8DCE
+_08013B46:
+ str r0, [r1]
+_08013B48:
+ ldr r1, _08013B5C @ =gUnknown_030042D4
+ ldr r0, _08013B60 @ =sub_8013C9C
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013B54: .4byte gUnknown_02024C10
+_08013B58: .4byte gUnknown_081D8DCE
+_08013B5C: .4byte gUnknown_030042D4
+_08013B60: .4byte sub_8013C9C
+ thumb_func_end sub_8013998
+
+ thumb_func_start sub_8013B64
+sub_8013B64: @ 8013B64
+ push {r4,lr}
+ ldr r1, _08013B9C @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08013BA0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08013BB8
+ ldr r1, _08013BA4 @ =gUnknown_030041C0
+ ldr r4, _08013BA8 @ =gUnknown_02024D26
+ ldrb r0, [r4]
+ strb r0, [r1]
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08013BAC @ =gUnknown_02024C07
+ strb r0, [r1]
+ ldr r1, _08013BB0 @ =gUnknown_02024C10
+ ldr r0, _08013BB4 @ =gUnknown_081D8E02
+ str r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4]
+ b _08013BBE
+ .align 2, 0
+_08013B9C: .4byte gUnknown_02024A7F
+_08013BA0: .4byte gUnknown_020239F8
+_08013BA4: .4byte gUnknown_030041C0
+_08013BA8: .4byte gUnknown_02024D26
+_08013BAC: .4byte gUnknown_02024C07
+_08013BB0: .4byte gUnknown_02024C10
+_08013BB4: .4byte gUnknown_081D8E02
+_08013BB8:
+ ldr r1, _08013BCC @ =gUnknown_02024C10
+ ldr r0, _08013BD0 @ =gUnknown_081D8DD1
+ str r0, [r1]
+_08013BBE:
+ ldr r1, _08013BD4 @ =gUnknown_030042D4
+ ldr r0, _08013BD8 @ =sub_8013C9C
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013BCC: .4byte gUnknown_02024C10
+_08013BD0: .4byte gUnknown_081D8DD1
+_08013BD4: .4byte gUnknown_030042D4
+_08013BD8: .4byte sub_8013C9C
+ thumb_func_end sub_8013B64
+
+ thumb_func_start sub_8013BDC
+sub_8013BDC: @ 8013BDC
+ push {lr}
+ ldr r1, _08013C04 @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08013C08 @ =gUnknown_02024D28
+ ldr r0, _08013C0C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 27
+ lsrs r0, 30
+ cmp r0, 0x1
+ beq _08013C18
+ cmp r0, 0x2
+ beq _08013C28
+ ldr r1, _08013C10 @ =gUnknown_02024C10
+ ldr r0, _08013C14 @ =gUnknown_081D8E29
+ b _08013C2C
+ .align 2, 0
+_08013C04: .4byte gUnknown_02024A7F
+_08013C08: .4byte gUnknown_02024D28
+_08013C0C: .4byte gUnknown_02024C07
+_08013C10: .4byte gUnknown_02024C10
+_08013C14: .4byte gUnknown_081D8E29
+_08013C18:
+ ldr r1, _08013C20 @ =gUnknown_02024C10
+ ldr r0, _08013C24 @ =gUnknown_081D8E14
+ b _08013C2C
+ .align 2, 0
+_08013C20: .4byte gUnknown_02024C10
+_08013C24: .4byte gUnknown_081D8E14
+_08013C28:
+ ldr r1, _08013C38 @ =gUnknown_02024C10
+ ldr r0, _08013C3C @ =gUnknown_081D8E22
+_08013C2C:
+ str r0, [r1]
+ ldr r1, _08013C40 @ =gUnknown_030042D4
+ ldr r0, _08013C44 @ =sub_8013C9C
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013C38: .4byte gUnknown_02024C10
+_08013C3C: .4byte gUnknown_081D8E22
+_08013C40: .4byte gUnknown_030042D4
+_08013C44: .4byte sub_8013C9C
+ thumb_func_end sub_8013BDC
+
+ thumb_func_start sub_8013C48
+sub_8013C48: @ 8013C48
+ ldr r1, _08013C7C @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08013C80 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ ldr r2, _08013C84 @ =gUnknown_02024C07
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _08013C88 @ =gUnknown_02024A6A
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08013C8C @ =gUnknown_02024C10
+ ldr r0, _08013C90 @ =gUnknown_081D8E30
+ str r0, [r1]
+ ldr r1, _08013C94 @ =gUnknown_030042D4
+ ldr r0, _08013C98 @ =sub_8013C9C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08013C7C: .4byte gUnknown_02024A7F
+_08013C80: .4byte gUnknown_030041C0
+_08013C84: .4byte gUnknown_02024C07
+_08013C88: .4byte gUnknown_02024A6A
+_08013C8C: .4byte gUnknown_02024C10
+_08013C90: .4byte gUnknown_081D8E30
+_08013C94: .4byte gUnknown_030042D4
+_08013C98: .4byte sub_8013C9C
+ thumb_func_end sub_8013C48
+
+ thumb_func_start sub_8013C9C
+sub_8013C9C: @ 8013C9C
+ push {r4-r7,lr}
+ ldr r0, _08013D00 @ =gUnknown_02024A7F
+ ldrb r0, [r0]
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08013D7C
+ ldr r0, _08013D04 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ ldr r1, _08013D08 @ =0x00000b92
+ ands r1, r0
+ cmp r1, 0
+ bne _08013D4C
+ ldr r2, _08013D0C @ =gUnknown_02024A60
+ strb r1, [r2]
+ ldr r0, _08013D10 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08013D48
+ adds r4, r2, 0
+ ldr r6, _08013D14 @ =gBattleMons
+ movs r5, 0x58
+ adds r7, r6, 0
+ adds r7, 0x30
+_08013CCE:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08013D36
+ ldr r2, _08013D18 @ =gUnknown_030042E0
+ ldrh r0, [r2, 0x6]
+ cmp r0, 0
+ bne _08013D1C
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r2, 0x6]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r7
+ adds r0, r2, 0
+ adds r0, 0x8
+ bl StringCopy
+ b _08013D36
+ .align 2, 0
+_08013D00: .4byte gUnknown_02024A7F
+_08013D04: .4byte gUnknown_020239F8
+_08013D08: .4byte 0x00000b92
+_08013D0C: .4byte gUnknown_02024A60
+_08013D10: .4byte gUnknown_02024A68
+_08013D14: .4byte gBattleMons
+_08013D18: .4byte gUnknown_030042E0
+_08013D1C:
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r2, 0x26]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r7
+ adds r0, r2, 0
+ adds r0, 0x14
+ bl StringCopy
+_08013D36:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08013D68 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08013CCE
+_08013D48:
+ bl sub_80BDEC8
+_08013D4C:
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ ldr r1, _08013D6C @ =gUnknown_030042D4
+ ldr r0, _08013D70 @ =sub_8013DA8
+ str r0, [r1]
+ ldr r1, _08013D74 @ =gUnknown_03005E94
+ ldr r0, _08013D78 @ =sub_800F808
+ str r0, [r1]
+ b _08013D96
+ .align 2, 0
+_08013D68: .4byte gUnknown_02024A68
+_08013D6C: .4byte gUnknown_030042D4
+_08013D70: .4byte sub_8013DA8
+_08013D74: .4byte gUnknown_03005E94
+_08013D78: .4byte sub_800F808
+_08013D7C:
+ ldr r0, _08013D9C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08013D96
+ ldr r1, _08013DA0 @ =gUnknown_081FA73C
+ ldr r0, _08013DA4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08013D96:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013D9C: .4byte gUnknown_02024A64
+_08013DA0: .4byte gUnknown_081FA73C
+_08013DA4: .4byte gUnknown_02024C10
+ thumb_func_end sub_8013C9C
+
+ thumb_func_start sub_8013DA8
+sub_8013DA8: @ 8013DA8
+ push {lr}
+ ldr r0, _08013DD0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08013DEA
+ bl ResetSpriteData
+ ldr r0, _08013DD4 @ =gUnknown_03004324
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08013DCA
+ ldr r0, _08013DD8 @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08013DE4
+_08013DCA:
+ ldr r1, _08013DDC @ =gUnknown_030042D4
+ ldr r0, _08013DE0 @ =c4_overworld
+ b _08013DE8
+ .align 2, 0
+_08013DD0: .4byte gPaletteFade
+_08013DD4: .4byte gUnknown_03004324
+_08013DD8: .4byte gUnknown_02024D26
+_08013DDC: .4byte gUnknown_030042D4
+_08013DE0: .4byte c4_overworld
+_08013DE4:
+ ldr r1, _08013DF0 @ =gUnknown_030042D4
+ ldr r0, _08013DF4 @ =bc_evolution_cutscene
+_08013DE8:
+ str r0, [r1]
+_08013DEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013DF0: .4byte gUnknown_030042D4
+_08013DF4: .4byte bc_evolution_cutscene
+ thumb_func_end sub_8013DA8
+
+ thumb_func_start bc_evolution_cutscene
+bc_evolution_cutscene: @ 8013DF8
+ push {r4,r5,lr}
+ ldr r0, _08013E4C @ =gUnknown_03004324
+ ldrb r1, [r0]
+ adds r3, r0, 0
+ cmp r1, 0
+ beq _08013E6E
+_08013E04:
+ movs r5, 0
+_08013E06:
+ ldrb r2, [r3]
+ ldr r0, _08013E50 @ =gBitTable
+ lsls r1, r5, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08013E60
+ bics r2, r1
+ strb r2, [r3]
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08013E54 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08013E60
+ ldr r0, _08013E58 @ =gUnknown_030042D4
+ ldr r1, _08013E5C @ =sub_8013E88
+ str r1, [r0]
+ lsls r3, r5, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r2, 0
+ movs r2, 0x81
+ bl EvolutionScene
+ b _08013E74
+ .align 2, 0
+_08013E4C: .4byte gUnknown_03004324
+_08013E50: .4byte gBitTable
+_08013E54: .4byte gPlayerParty
+_08013E58: .4byte gUnknown_030042D4
+_08013E5C: .4byte sub_8013E88
+_08013E60:
+ adds r5, 0x1
+ ldr r3, _08013E7C @ =gUnknown_03004324
+ cmp r5, 0x5
+ ble _08013E06
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _08013E04
+_08013E6E:
+ ldr r1, _08013E80 @ =gUnknown_030042D4
+ ldr r0, _08013E84 @ =c4_overworld
+ str r0, [r1]
+_08013E74:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013E7C: .4byte gUnknown_03004324
+_08013E80: .4byte gUnknown_030042D4
+_08013E84: .4byte c4_overworld
+ thumb_func_end bc_evolution_cutscene
+
+ thumb_func_start sub_8013E88
+sub_8013E88: @ 8013E88
+ push {lr}
+ ldr r0, _08013EA0 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _08013EA4 @ =sub_800F808
+ cmp r1, r0
+ bne _08013E9A
+ ldr r1, _08013EA8 @ =gUnknown_030042D4
+ ldr r0, _08013EAC @ =bc_evolution_cutscene
+ str r0, [r1]
+_08013E9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013EA0: .4byte gMain
+_08013EA4: .4byte sub_800F808
+_08013EA8: .4byte gUnknown_030042D4
+_08013EAC: .4byte bc_evolution_cutscene
+ thumb_func_end sub_8013E88
+
+ thumb_func_start c4_overworld
+c4_overworld: @ 8013EB0
+ push {r4-r6,lr}
+ ldr r5, _08013F30 @ =gUnknown_020239F8
+ ldrh r1, [r5]
+ movs r6, 0x2
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08013ECE
+ ldr r4, _08013F34 @ =gPlayerParty
+ adds r0, r4, 0
+ bl RandomlyGivePartyPokerus
+ adds r0, r4, 0
+ bl PartySpreadPokerus
+_08013ECE:
+ ldrh r4, [r5]
+ adds r0, r6, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08013EE0
+ ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08013F2A
+_08013EE0:
+ ldr r1, _08013F3C @ =gScriptResult
+ ldr r5, _08013F40 @ =gUnknown_02024D26
+ ldrb r0, [r5]
+ strh r0, [r1]
+ ldr r3, _08013F44 @ =gMain
+ ldr r0, _08013F48 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08013F4C @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r4
+ cmp r0, 0
+ beq _08013F1C
+ ldr r0, _08013F50 @ =gEnemyParty
+ bl sub_8134504
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ beq _08013F18
+ cmp r0, 0x7
+ bne _08013F1C
+_08013F18:
+ bl sub_813452C
+_08013F1C:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r0, _08013F44 @ =gMain
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_08013F2A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013F30: .4byte gUnknown_020239F8
+_08013F34: .4byte gPlayerParty
+_08013F38: .4byte gReceivedRemoteLinkPlayers
+_08013F3C: .4byte gScriptResult
+_08013F40: .4byte gUnknown_02024D26
+_08013F44: .4byte gMain
+_08013F48: .4byte 0x0000043d
+_08013F4C: .4byte gUnknown_030042D0
+_08013F50: .4byte gEnemyParty
+ thumb_func_end c4_overworld
+
+ thumb_func_start sub_8013F54
+sub_8013F54: @ 8013F54
+ push {lr}
+ ldr r0, _08013F84 @ =gUnknown_02024A7F
+ ldrb r0, [r0]
+ subs r0, 0xB
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08013F90
+ ldr r2, _08013F88 @ =0x02017140
+ adds r1, r2, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08013F74
+ subs r0, 0x1
+ strb r0, [r1]
+_08013F74:
+ ldr r0, _08013F8C @ =gUnknown_030042D4
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ b _08013FAA
+ .align 2, 0
+_08013F84: .4byte gUnknown_02024A7F
+_08013F88: .4byte 0x02017140
+_08013F8C: .4byte gUnknown_030042D4
+_08013F90:
+ ldr r0, _08013FB0 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08013FAA
+ ldr r1, _08013FB4 @ =gUnknown_081FA73C
+ ldr r0, _08013FB8 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08013FAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013FB0: .4byte gUnknown_02024A64
+_08013FB4: .4byte gUnknown_081FA73C
+_08013FB8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8013F54
+
+ thumb_func_start sub_8013FBC
+sub_8013FBC: @ 8013FBC
+ push {lr}
+ ldr r0, _08013FDC @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08013FD8
+ ldr r1, _08013FE0 @ =gUnknown_081FA73C
+ ldr r0, _08013FE4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_08013FD8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08013FDC: .4byte gUnknown_02024A64
+_08013FE0: .4byte gUnknown_081FA73C
+_08013FE4: .4byte gUnknown_02024C10
+ thumb_func_end sub_8013FBC
+
+ thumb_func_start sub_8013FE8
+sub_8013FE8: @ 8013FE8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ movs r0, 0x4
+ str r0, [sp]
+ ldr r7, _08014028 @ =gUnknown_02024C07
+ ldr r1, _0801402C @ =gUnknown_02024A7A
+ ldr r0, _08014030 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r7]
+ ldr r1, _08014034 @ =0x02000000
+ mov r10, r1
+ ldr r0, _08014038 @ =0x000160a6
+ add r0, r10
+ ldrb r2, [r0]
+ ldr r1, _0801403C @ =gBitTable
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _08014044
+ ldr r1, _08014040 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ b _080146CC
+ .align 2, 0
+_08014028: .4byte gUnknown_02024C07
+_0801402C: .4byte gUnknown_02024A7A
+_08014030: .4byte gUnknown_02024A7E
+_08014034: .4byte 0x02000000
+_08014038: .4byte 0x000160a6
+_0801403C: .4byte gBitTable
+_08014040: .4byte gUnknown_02024A7F
+_08014044:
+ ldr r1, _080140B8 @ =gCritMultiplier
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _080140BC @ =0x0001601f
+ add r1, r10
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080140C0 @ =0x000160e7
+ add r0, r10
+ strb r2, [r0]
+ ldr r0, _080140C4 @ =gUnknown_02024C68
+ strb r2, [r0]
+ ldr r0, _080140C8 @ =gUnknown_02024C0E
+ strb r2, [r0]
+ ldr r0, _080140CC @ =gUnknown_02024D1E
+ strb r2, [r0, 0x6]
+ ldr r3, _080140D0 @ =gUnknown_02024BE4
+ ldrb r0, [r7]
+ ldr r2, _080140D4 @ =0x0001608c
+ adds r0, r2
+ add r0, r10
+ ldrb r0, [r0]
+ ldr r4, _080140D8 @ =gUnknown_02024BE5
+ strb r0, [r4]
+ strb r0, [r3]
+ ldr r1, _080140DC @ =gUnknown_02024D28
+ ldrb r2, [r7]
+ lsls r0, r2, 4
+ adds r5, r0, r1
+ ldrb r1, [r5]
+ lsls r0, r1, 29
+ adds r4, r2, 0
+ mov r8, r3
+ cmp r0, 0
+ bge _080140F0
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r5]
+ ldr r2, _080140E0 @ =gUnknown_02024BE6
+ ldr r1, _080140E4 @ =gUnknown_02024BE8
+ movs r0, 0xA5
+ strh r0, [r1]
+ strh r0, [r2]
+ ldr r2, _080140E8 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 4
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0xA5
+ movs r1, 0
+ bl sub_801B5C0
+ ldrb r1, [r7]
+ ldr r2, _080140EC @ =0x00016010
+ adds r1, r2
+ b _08014200
+ .align 2, 0
+_080140B8: .4byte gCritMultiplier
+_080140BC: .4byte 0x0001601f
+_080140C0: .4byte 0x000160e7
+_080140C4: .4byte gUnknown_02024C68
+_080140C8: .4byte gUnknown_02024C0E
+_080140CC: .4byte gUnknown_02024D1E
+_080140D0: .4byte gUnknown_02024BE4
+_080140D4: .4byte 0x0001608c
+_080140D8: .4byte gUnknown_02024BE5
+_080140DC: .4byte gUnknown_02024D28
+_080140E0: .4byte gUnknown_02024BE6
+_080140E4: .4byte gUnknown_02024BE8
+_080140E8: .4byte gUnknown_02024C6C
+_080140EC: .4byte 0x00016010
+_080140F0:
+ ldr r1, _08014128 @ =gBattleMons
+ movs r0, 0x58
+ adds r5, r4, 0
+ muls r5, r0
+ adds r0, r1, 0
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r2, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r2
+ cmp r0, 0
+ bne _08014114
+ movs r6, 0x80
+ lsls r6, 15
+ ands r6, r2
+ cmp r6, 0
+ beq _08014138
+_08014114:
+ ldr r3, _0801412C @ =gUnknown_02024BE6
+ ldr r2, _08014130 @ =gUnknown_02024BE8
+ ldr r1, _08014134 @ =gUnknown_02024C54
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ strh r0, [r3]
+ b _08014280
+ .align 2, 0
+_08014128: .4byte gBattleMons
+_0801412C: .4byte gUnknown_02024BE6
+_08014130: .4byte gUnknown_02024BE8
+_08014134: .4byte gUnknown_02024C54
+_08014138:
+ ldr r3, _08014188 @ =gUnknown_02024CA8
+ mov r12, r3
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r2, r0, r3
+ ldrh r4, [r2, 0x6]
+ adds r1, r4, 0
+ cmp r1, 0
+ beq _08014218
+ ldrb r3, [r2, 0xC]
+ lsls r0, r3, 1
+ adds r0, r5
+ str r0, [sp, 0x8]
+ ldr r0, _0801418C @ =gBattleMons
+ adds r0, 0xC
+ mov r9, r0
+ ldr r0, [sp, 0x8]
+ add r0, r9
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080141A0
+ ldr r1, _08014190 @ =gUnknown_02024BE6
+ ldr r0, _08014194 @ =gUnknown_02024BE8
+ strh r4, [r0]
+ strh r4, [r1]
+ ldrb r0, [r2, 0xC]
+ ldr r2, _08014198 @ =gUnknown_02024BE5
+ strb r0, [r2]
+ mov r3, r8
+ strb r0, [r3]
+ ldrh r0, [r1]
+ movs r1, 0
+ bl sub_801B5C0
+ ldrb r1, [r7]
+ ldr r4, _0801419C @ =0x00016010
+ adds r1, r4
+ b _08014200
+ .align 2, 0
+_08014188: .4byte gUnknown_02024CA8
+_0801418C: .4byte gBattleMons
+_08014190: .4byte gUnknown_02024BE6
+_08014194: .4byte gUnknown_02024BE8
+_08014198: .4byte gUnknown_02024BE5
+_0801419C: .4byte 0x00016010
+_080141A0:
+ cmp r1, 0
+ beq _08014218
+ cmp r1, r0
+ beq _08014218
+ ldr r0, _08014208 @ =gUnknown_02024BE5
+ strb r3, [r0]
+ mov r1, r8
+ strb r3, [r1]
+ ldr r3, _0801420C @ =gUnknown_02024BE6
+ ldr r1, _08014210 @ =gUnknown_02024BE8
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r5
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r1]
+ strh r0, [r3]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ movs r2, 0
+ strh r6, [r0, 0x6]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ strb r2, [r0, 0xC]
+ ldrb r0, [r7]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r12
+ ldrb r2, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ ldrh r0, [r3]
+ movs r1, 0
+ bl sub_801B5C0
+ ldrb r1, [r7]
+ ldr r3, _08014214 @ =0x00016010
+ adds r1, r3
+_08014200:
+ add r1, r10
+ strb r0, [r1]
+ b _08014280
+ .align 2, 0
+_08014208: .4byte gUnknown_02024BE5
+_0801420C: .4byte gUnknown_02024BE6
+_08014210: .4byte gUnknown_02024BE8
+_08014214: .4byte 0x00016010
+_08014218:
+ mov r4, r8
+ ldrb r0, [r4]
+ lsls r0, 1
+ ldr r4, _0801425C @ =gUnknown_02024C07
+ ldrb r2, [r4]
+ movs r1, 0x58
+ muls r1, r2
+ adds r0, r1
+ ldr r1, _08014260 @ =gBattleMons
+ adds r1, 0xC
+ adds r0, r1
+ ldr r1, _08014264 @ =gUnknown_02024C60
+ lsls r2, 1
+ adds r2, r1
+ ldrh r3, [r0]
+ ldrh r2, [r2]
+ cmp r3, r2
+ beq _08014278
+ ldr r1, _08014268 @ =gUnknown_02024BE6
+ ldr r0, _0801426C @ =gUnknown_02024BE8
+ strh r3, [r0]
+ strh r3, [r1]
+ ldrh r0, [r1]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r2, _08014270 @ =0x02000000
+ ldrb r1, [r4]
+ ldr r3, _08014274 @ =0x00016010
+ adds r1, r3
+ adds r1, r2
+ strb r0, [r1]
+ b _08014280
+ .align 2, 0
+_0801425C: .4byte gUnknown_02024C07
+_08014260: .4byte gBattleMons
+_08014264: .4byte gUnknown_02024C60
+_08014268: .4byte gUnknown_02024BE6
+_0801426C: .4byte gUnknown_02024BE8
+_08014270: .4byte 0x02000000
+_08014274: .4byte 0x00016010
+_08014278:
+ ldr r1, _08014298 @ =gUnknown_02024BE6
+ ldr r0, _0801429C @ =gUnknown_02024BE8
+ strh r3, [r0]
+ strh r3, [r1]
+_08014280:
+ ldr r0, _080142A0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080142A8
+ ldr r0, _080142A4 @ =gUnknown_030042E0
+ ldr r1, _08014298 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0, 0x22]
+ b _080142B0
+ .align 2, 0
+_08014298: .4byte gUnknown_02024BE6
+_0801429C: .4byte gUnknown_02024BE8
+_080142A0: .4byte gUnknown_02024C07
+_080142A4: .4byte gUnknown_030042E0
+_080142A8:
+ ldr r0, _08014314 @ =gUnknown_030042E0
+ ldr r1, _08014318 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0, 0x24]
+_080142B0:
+ ldr r4, _0801431C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08014320 @ =gUnknown_02024C80
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ ldrb r0, [r5, 0x8]
+ adds r3, r4, 0
+ cmp r0, 0
+ beq _08014330
+ ldr r2, _08014324 @ =gBattleMoves
+ ldr r0, _08014318 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ bne _08014330
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r5, 0x9]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _08014330
+ ldr r1, _08014328 @ =gBattleMons
+ ldrb r2, [r5, 0x9]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08014330
+ ldr r0, _0801432C @ =gUnknown_02024C08
+ strb r2, [r0]
+ b _080146AC
+ .align 2, 0
+_08014314: .4byte gUnknown_030042E0
+_08014318: .4byte gUnknown_02024BE6
+_0801431C: .4byte gUnknown_02024C07
+_08014320: .4byte gUnknown_02024C80
+_08014324: .4byte gBattleMoves
+_08014328: .4byte gBattleMons
+_0801432C: .4byte gUnknown_02024C08
+_08014330:
+ ldr r2, _08014454 @ =gUnknown_020239F8
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ ldr r3, _08014458 @ =gUnknown_02024C07
+ mov r9, r2
+ cmp r0, 0
+ bne _08014342
+ b _0801461C
+_08014342:
+ ldr r1, _0801445C @ =gUnknown_02024C80
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r7, [r0, 0x8]
+ cmp r7, 0
+ beq _08014354
+ b _08014570
+_08014354:
+ ldr r2, _08014460 @ =gBattleMoves
+ ldr r0, _08014464 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08014370
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0x10
+ bne _08014370
+ b _08014570
+_08014370:
+ ldr r3, _08014468 @ =gBattleMons
+ ldr r0, _0801446C @ =0x02000000
+ mov r8, r0
+ ldr r2, _08014458 @ =gUnknown_02024C07
+ ldrb r5, [r2]
+ ldr r1, _08014470 @ =0x00016010
+ adds r0, r5, r1
+ add r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r2, 0
+ cmp r0, 0x1F
+ bne _08014394
+ b _08014570
+_08014394:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0xD
+ beq _0801439C
+ b _08014570
+_0801439C:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08014474 @ =gUnknown_02024A60
+ strb r7, [r1]
+ ldr r0, _08014478 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _08014416
+ adds r4, r1, 0
+ mov r5, r8
+_080143B6:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r6, r0
+ beq _08014404
+ ldr r0, _08014458 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _08014470 @ =0x00016010
+ adds r0, r2
+ adds r0, r5
+ ldrb r0, [r0]
+ ldrb r3, [r4]
+ cmp r0, r3
+ beq _08014404
+ ldr r1, _08014468 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1F
+ bne _08014404
+ adds r0, r2, 0
+ bl sub_801E3B4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp]
+ cmp r0, r1
+ bcs _08014404
+ ldrb r0, [r4]
+ bl sub_801E3B4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_08014404:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08014478 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080143B6
+_08014416:
+ ldr r2, [sp]
+ cmp r2, 0x4
+ beq _0801441E
+ b _08014522
+_0801441E:
+ ldr r2, _08014460 @ =gBattleMoves
+ ldr r0, _0801447C @ =gUnknown_02024BE8
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ ldr r3, [sp]
+ ands r3, r0
+ cmp r3, 0
+ beq _080144A4
+ ldr r0, _08014458 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014484
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08014480
+ movs r0, 0x1
+ b _08014496
+ .align 2, 0
+_08014454: .4byte gUnknown_020239F8
+_08014458: .4byte gUnknown_02024C07
+_0801445C: .4byte gUnknown_02024C80
+_08014460: .4byte gBattleMoves
+_08014464: .4byte gUnknown_02024BE6
+_08014468: .4byte gBattleMons
+_0801446C: .4byte 0x02000000
+_08014470: .4byte 0x00016010
+_08014474: .4byte gUnknown_02024A60
+_08014478: .4byte gUnknown_02024A68
+_0801447C: .4byte gUnknown_02024BE8
+_08014480:
+ movs r0, 0x3
+ b _08014496
+_08014484:
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08014494
+ movs r0, 0
+ b _08014496
+_08014494:
+ movs r0, 0x2
+_08014496:
+ bl battle_get_side_with_given_state
+ ldr r1, _080144A0 @ =gUnknown_02024C08
+ strb r0, [r1]
+ b _080144B6
+ .align 2, 0
+_080144A0: .4byte gUnknown_02024C08
+_080144A4:
+ ldr r2, _080144EC @ =gUnknown_02024C08
+ ldr r1, _080144F0 @ =0x02000000
+ ldr r0, _080144F4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r4, _080144F8 @ =0x00016010
+ adds r0, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+_080144B6:
+ ldr r7, _080144FC @ =gUnknown_02024C0C
+ ldrb r0, [r7]
+ ldr r1, _08014500 @ =gBitTable
+ mov r8, r1
+ ldr r5, _080144EC @ =gUnknown_02024C08
+ ldrb r1, [r5]
+ lsls r1, 2
+ add r1, r8
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _080144D0
+ b _080146AC
+_080144D0:
+ ldr r6, _080144F4 @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _08014504
+ ldrb r0, [r5]
+ b _0801469A
+ .align 2, 0
+_080144EC: .4byte gUnknown_02024C08
+_080144F0: .4byte 0x02000000
+_080144F4: .4byte gUnknown_02024C07
+_080144F8: .4byte 0x00016010
+_080144FC: .4byte gUnknown_02024C0C
+_08014500: .4byte gBitTable
+_08014504:
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+ ldrb r1, [r7]
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ add r0, r8
+ b _08014690
+_08014522:
+ ldr r4, _0801455C @ =gUnknown_02024A60
+ ldr r0, _08014560 @ =gUnknown_02024A7A
+ ldr r2, [sp]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ ldr r2, _08014564 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r1, r2
+ adds r1, 0x20
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r2, _08014568 @ =gUnknown_02024D68
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _0801456C @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r1]
+ b _080146AC
+ .align 2, 0
+_0801455C: .4byte gUnknown_02024A60
+_08014560: .4byte gUnknown_02024A7A
+_08014564: .4byte gBattleMons
+_08014568: .4byte gUnknown_02024D68
+_0801456C: .4byte gUnknown_02024C08
+_08014570:
+ mov r4, r9
+ ldrh r1, [r4]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801461C
+ ldr r2, _080145B4 @ =gBattleMoves
+ ldr r0, _080145B8 @ =gUnknown_02024BE8
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801461C
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080145C0
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080145BC
+ movs r0, 0x1
+ b _080145D2
+ .align 2, 0
+_080145B4: .4byte gBattleMoves
+_080145B8: .4byte gUnknown_02024BE8
+_080145BC:
+ movs r0, 0x3
+ b _080145D2
+_080145C0:
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _080145D0
+ movs r0, 0
+ b _080145D2
+_080145D0:
+ movs r0, 0x2
+_080145D2:
+ bl battle_get_side_with_given_state
+ ldr r1, _0801460C @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r0, _08014610 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08014614 @ =gBitTable
+ ldr r5, _0801460C @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080146AC
+ ldr r0, _08014618 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080146AC
+ ldrb r0, [r5]
+ b _0801469A
+ .align 2, 0
+_0801460C: .4byte gUnknown_02024C08
+_08014610: .4byte gUnknown_02024C0C
+_08014614: .4byte gBitTable
+_08014618: .4byte gUnknown_02024C07
+_0801461C:
+ ldr r5, _08014660 @ =gUnknown_02024C08
+ ldr r1, _08014664 @ =0x02000000
+ adds r2, r3, 0
+ ldrb r0, [r2]
+ ldr r4, _08014668 @ =0x00016010
+ adds r0, r4
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r6, _0801466C @ =gUnknown_02024C0C
+ ldrb r1, [r6]
+ ldr r7, _08014670 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080146AC
+ ldrb r0, [r2]
+ str r3, [sp, 0x4]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ ldr r3, [sp, 0x4]
+ cmp r4, r0
+ beq _08014674
+ ldrb r0, [r5]
+ b _0801469A
+ .align 2, 0
+_08014660: .4byte gUnknown_02024C08
+_08014664: .4byte 0x02000000
+_08014668: .4byte 0x00016010
+_0801466C: .4byte gUnknown_02024C0C
+_08014670: .4byte gBitTable
+_08014674:
+ ldrb r0, [r3]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+ ldrb r1, [r6]
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r7
+_08014690:
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080146AC
+ adds r0, r2, 0
+_0801469A:
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+_080146AC:
+ ldr r4, _080146E0 @ =gUnknown_02024C10
+ ldr r3, _080146E4 @ =gUnknown_081D6BBC
+ ldr r2, _080146E8 @ =gBattleMoves
+ ldr r0, _080146EC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r4]
+ ldr r1, _080146F0 @ =gUnknown_02024A7F
+ movs r0, 0xA
+_080146CC:
+ strb r0, [r1]
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080146E0: .4byte gUnknown_02024C10
+_080146E4: .4byte gUnknown_081D6BBC
+_080146E8: .4byte gBattleMoves
+_080146EC: .4byte gUnknown_02024BE6
+_080146F0: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8013FE8
+
+ thumb_func_start sub_80146F4
+sub_80146F4: @ 80146F4
+ push {r4,lr}
+ ldr r3, _08014764 @ =gUnknown_02024C07
+ ldr r1, _08014768 @ =gUnknown_02024A7A
+ ldr r0, _0801476C @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldr r0, _08014770 @ =gUnknown_030042A4
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _08014774 @ =gUnknown_030042A0
+ strh r2, [r0]
+ ldr r1, _08014778 @ =gUnknown_02024E60
+ ldrb r0, [r3]
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _0801477C @ =gUnknown_02024E64
+ ldrb r0, [r3]
+ adds r0, r1
+ strb r2, [r0]
+ ldr r2, _08014780 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x7
+ strb r0, [r2, 0x1]
+ ldrb r4, [r3]
+ strb r4, [r2, 0x2]
+ ldr r1, _08014784 @ =0x02000000
+ ldrb r0, [r3]
+ ldr r3, _08014788 @ =0x00016064
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ movs r0, 0xFF
+ strb r0, [r2, 0x4]
+ ldr r0, _0801478C @ =0x00016003
+ adds r1, r0
+ strb r4, [r1]
+ ldr r1, _08014790 @ =gUnknown_02024C10
+ ldr r0, _08014794 @ =gUnknown_081D8E4E
+ str r0, [r1]
+ ldr r1, _08014798 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ ldr r1, _0801479C @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xFE
+ bhi _0801475C
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+_0801475C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014764: .4byte gUnknown_02024C07
+_08014768: .4byte gUnknown_02024A7A
+_0801476C: .4byte gUnknown_02024A7E
+_08014770: .4byte gUnknown_030042A4
+_08014774: .4byte gUnknown_030042A0
+_08014778: .4byte gUnknown_02024E60
+_0801477C: .4byte gUnknown_02024E64
+_08014780: .4byte gUnknown_030041C0
+_08014784: .4byte 0x02000000
+_08014788: .4byte 0x00016064
+_0801478C: .4byte 0x00016003
+_08014790: .4byte gUnknown_02024C10
+_08014794: .4byte gUnknown_081D8E4E
+_08014798: .4byte gUnknown_02024A7F
+_0801479C: .4byte gUnknown_030042E0
+ thumb_func_end sub_80146F4
+
+ thumb_func_start sub_80147A0
+sub_80147A0: @ 80147A0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08014804 @ =gUnknown_02024C07
+ ldr r2, _08014808 @ =gUnknown_02024C08
+ ldr r1, _0801480C @ =gUnknown_02024A7A
+ ldr r0, _08014810 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ strb r0, [r4]
+ ldr r0, _08014814 @ =gUnknown_030042A4
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _08014818 @ =gUnknown_030042A0
+ strh r2, [r0]
+ ldr r3, _0801481C @ =gUnknown_02024CA8
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strb r2, [r0, 0x10]
+ ldr r5, _08014820 @ =gUnknown_02024C04
+ ldr r2, _08014824 @ =gUnknown_02024260
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ strh r3, [r5]
+ cmp r3, 0xC
+ bhi _08014830
+ ldr r2, _08014828 @ =gUnknown_02024C10
+ ldr r1, _0801482C @ =gUnknown_081D9E48
+ ldrh r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ b _08014A8C
+ .align 2, 0
+_08014804: .4byte gUnknown_02024C07
+_08014808: .4byte gUnknown_02024C08
+_0801480C: .4byte gUnknown_02024A7A
+_08014810: .4byte gUnknown_02024A7E
+_08014814: .4byte gUnknown_030042A4
+_08014818: .4byte gUnknown_030042A0
+_0801481C: .4byte gUnknown_02024CA8
+_08014820: .4byte gUnknown_02024C04
+_08014824: .4byte gUnknown_02024260
+_08014828: .4byte gUnknown_02024C10
+_0801482C: .4byte gUnknown_081D9E48
+_08014830:
+ adds r0, r3, 0
+ subs r0, 0x50
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0801484C
+ ldr r0, _08014844 @ =gUnknown_02024C10
+ ldr r1, _08014848 @ =gUnknown_081D9E94
+ b _0801485C
+ .align 2, 0
+_08014844: .4byte gUnknown_02024C10
+_08014848: .4byte gUnknown_081D9E94
+_0801484C:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801486C
+ ldr r0, _08014864 @ =gUnknown_02024C10
+ ldr r1, _08014868 @ =gUnknown_081D9E7C
+_0801485C:
+ ldr r1, [r1]
+ str r1, [r0]
+ b _08014A8C
+ .align 2, 0
+_08014864: .4byte gUnknown_02024C10
+_08014868: .4byte gUnknown_081D9E7C
+_0801486C:
+ ldr r2, _080148A0 @ =0x02000000
+ ldrb r0, [r4]
+ ldr r3, _080148A4 @ =0x00016003
+ adds r1, r2, r3
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _080148A8 @ =0x000160d8
+ adds r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ subs r0, 0x1
+ mov r8, r4
+ ldr r3, _080148AC @ =gUnknown_02024C10
+ mov r9, r3
+ ldr r1, _080148B0 @ =gUnknown_081D9E7C
+ mov r10, r1
+ adds r7, r2, 0
+ cmp r0, 0x4
+ bls _08014896
+ b _08014A74
+_08014896:
+ lsls r0, 2
+ ldr r1, _080148B4 @ =_080148B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080148A0: .4byte 0x02000000
+_080148A4: .4byte 0x00016003
+_080148A8: .4byte 0x000160d8
+_080148AC: .4byte gUnknown_02024C10
+_080148B0: .4byte gUnknown_081D9E7C
+_080148B4: .4byte _080148B8
+ .align 2, 0
+_080148B8:
+ .4byte _08014A74
+ .4byte _08014A74
+ .4byte _080148CC
+ .4byte _08014958
+ .4byte _08014A30
+_080148CC:
+ ldr r2, _08014904 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r2, 0x5]
+ ldr r1, _08014908 @ =gUnknown_02024C07
+ ldrb r0, [r1]
+ lsrs r0, 1
+ ldr r6, _0801490C @ =0x000160da
+ adds r0, r6
+ adds r0, r7
+ ldrb r3, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ mov r8, r1
+ cmp r0, 0
+ beq _08014918
+ movs r0, 0x3E
+ ands r0, r3
+ ldr r3, _08014910 @ =gUnknown_02024C10
+ mov r9, r3
+ ldr r1, _08014914 @ =gUnknown_081D9E7C
+ mov r10, r1
+ cmp r0, 0
+ bne _080148FC
+ b _08014A74
+_080148FC:
+ movs r0, 0x5
+ strb r0, [r2, 0x5]
+ b _08014A74
+ .align 2, 0
+_08014904: .4byte gUnknown_02024D1E
+_08014908: .4byte gUnknown_02024C07
+_0801490C: .4byte 0x000160da
+_08014910: .4byte gUnknown_02024C10
+_08014914: .4byte gUnknown_081D9E7C
+_08014918:
+ ldr r3, _08014950 @ =gUnknown_02024C10
+ mov r9, r3
+ ldr r0, _08014954 @ =gUnknown_081D9E7C
+ mov r10, r0
+ adds r5, r7, 0
+ mov r4, r8
+ adds r3, r6, 0
+_08014926:
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r5
+ ldrb r1, [r0]
+ lsrs r1, 1
+ strb r1, [r0]
+ ldrb r0, [r2, 0x5]
+ adds r0, 0x1
+ strb r0, [r2, 0x5]
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08014926
+ b _08014A74
+ .align 2, 0
+_08014950: .4byte gUnknown_02024C10
+_08014954: .4byte gUnknown_081D9E7C
+_08014958:
+ ldr r3, _0801498C @ =gUnknown_02024D1E
+ movs r0, 0x4
+ strb r0, [r3, 0x5]
+ ldr r2, _08014990 @ =gUnknown_02024C07
+ ldrb r0, [r2]
+ lsrs r0, 1
+ ldr r1, _08014994 @ =0x000160da
+ mov r12, r1
+ add r0, r12
+ adds r6, r0, r7
+ ldrb r1, [r6]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r8, r2
+ cmp r5, 0
+ beq _080149A0
+ movs r0, 0x5
+ strb r0, [r3, 0x5]
+ ldr r2, _08014998 @ =gUnknown_02024C10
+ mov r9, r2
+ ldr r3, _0801499C @ =gUnknown_081D9E7C
+ mov r10, r3
+ b _08014A74
+ .align 2, 0
+_0801498C: .4byte gUnknown_02024D1E
+_08014990: .4byte gUnknown_02024C07
+_08014994: .4byte 0x000160da
+_08014998: .4byte gUnknown_02024C10
+_0801499C: .4byte gUnknown_081D9E7C
+_080149A0:
+ ldr r3, _08014A18 @ =gUnknown_030041C0
+ movs r4, 0xFD
+ strb r4, [r3]
+ movs r0, 0x5
+ strb r0, [r3, 0x1]
+ movs r2, 0x1
+ strb r2, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ ldr r1, _08014A1C @ =gUnknown_03004290
+ strb r4, [r1]
+ strb r5, [r1, 0x1]
+ movs r0, 0xD2
+ strb r0, [r1, 0x2]
+ strb r5, [r1, 0x3]
+ subs r0, 0xD3
+ strb r0, [r1, 0x4]
+ ldrb r0, [r6]
+ ands r2, r0
+ ldr r0, _08014A20 @ =gUnknown_02024C10
+ mov r9, r0
+ ldr r1, _08014A24 @ =gUnknown_081D9E7C
+ mov r10, r1
+ adds r6, r3, 0
+ cmp r2, 0
+ bne _08014A02
+ adds r3, r7, 0
+ mov r5, r8
+ mov r4, r12
+ adds r2, r6, 0
+_080149DC:
+ ldrb r0, [r5]
+ lsrs r0, 1
+ adds r0, r4
+ adds r0, r3
+ ldrb r1, [r0]
+ lsrs r1, 1
+ strb r1, [r0]
+ ldrb r0, [r2, 0x2]
+ adds r0, 0x1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r5]
+ lsrs r0, 1
+ adds r0, r4
+ adds r0, r3
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080149DC
+_08014A02:
+ ldrb r0, [r6, 0x2]
+ adds r0, 0xE
+ ldr r2, _08014A28 @ =0x000160a4
+ adds r1, r7, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldr r3, _08014A2C @ =0x000160a5
+ adds r0, r7, r3
+ strb r2, [r0]
+ b _08014A74
+ .align 2, 0
+_08014A18: .4byte gUnknown_030041C0
+_08014A1C: .4byte gUnknown_03004290
+_08014A20: .4byte gUnknown_02024C10
+_08014A24: .4byte gUnknown_081D9E7C
+_08014A28: .4byte 0x000160a4
+_08014A2C: .4byte 0x000160a5
+_08014A30:
+ ldr r0, _08014A50 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08014A64
+ ldr r1, _08014A54 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ ldr r0, _08014A58 @ =gUnknown_02024C07
+ mov r8, r0
+ ldr r1, _08014A5C @ =gUnknown_02024C10
+ mov r9, r1
+ ldr r2, _08014A60 @ =gUnknown_081D9E7C
+ mov r10, r2
+ b _08014A74
+ .align 2, 0
+_08014A50: .4byte gUnknown_020239F8
+_08014A54: .4byte gUnknown_02024D1E
+_08014A58: .4byte gUnknown_02024C07
+_08014A5C: .4byte gUnknown_02024C10
+_08014A60: .4byte gUnknown_081D9E7C
+_08014A64:
+ ldr r0, _08014AA0 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+ ldr r3, _08014AA4 @ =gUnknown_02024C07
+ mov r8, r3
+ ldr r0, _08014AA8 @ =gUnknown_02024C10
+ mov r9, r0
+ ldr r1, _08014AAC @ =gUnknown_081D9E7C
+ mov r10, r1
+_08014A74:
+ mov r2, r8
+ ldrb r0, [r2]
+ lsrs r0, 1
+ ldr r3, _08014AB0 @ =0x000160d8
+ adds r0, r3
+ adds r0, r7
+ ldrb r0, [r0]
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ mov r1, r9
+ str r0, [r1]
+_08014A8C:
+ movs r0, 0xA
+ ldr r2, _08014AB4 @ =gUnknown_02024A7F
+ strb r0, [r2]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014AA0: .4byte gUnknown_02024D1E
+_08014AA4: .4byte gUnknown_02024C07
+_08014AA8: .4byte gUnknown_02024C10
+_08014AAC: .4byte gUnknown_081D9E7C
+_08014AB0: .4byte 0x000160d8
+_08014AB4: .4byte gUnknown_02024A7F
+ thumb_func_end sub_80147A0
+
+ thumb_func_start sub_8014AB8
+sub_8014AB8: @ 8014AB8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r1, _08014ADC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08014AE4
+ ldr r1, _08014AE0 @ =gEnigmaBerries
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x7]
+ b _08014AEE
+ .align 2, 0
+_08014ADC: .4byte gBattleMons
+_08014AE0: .4byte gEnigmaBerries
+_08014AE4:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r1, r0, 24
+_08014AEE:
+ ldr r0, _08014B18 @ =gUnknown_02024C0B
+ strb r4, [r0]
+ cmp r1, 0x25
+ bne _08014B28
+ ldr r2, _08014B1C @ =gUnknown_02024C04
+ ldr r1, _08014B20 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r2]
+ ldr r0, _08014B24 @ =gUnknown_02024D28
+ lsls r2, r4, 4
+ adds r2, r0
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ b _08014B50
+ .align 2, 0
+_08014B18: .4byte gUnknown_02024C0B
+_08014B1C: .4byte gUnknown_02024C04
+_08014B20: .4byte gBattleMons
+_08014B24: .4byte gUnknown_02024D28
+_08014B28:
+ ldr r6, _08014B5C @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r4, 0
+ muls r0, r2
+ adds r3, r0, r6
+ adds r0, r3, 0
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x32
+ bne _08014B68
+ ldr r0, _08014B60 @ =byte_2024C06
+ strb r1, [r0]
+ ldr r0, _08014B64 @ =gUnknown_02024D28
+ lsls r2, r4, 4
+ adds r2, r0
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x19
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+_08014B50:
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _08014BC2
+ .align 2, 0
+_08014B5C: .4byte gBattleMons
+_08014B60: .4byte byte_2024C06
+_08014B64: .4byte gUnknown_02024D28
+_08014B68:
+ ldr r0, _08014BDC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08014BB6
+ movs r1, 0x1
+ adds r0, r4, 0
+ eors r0, r1
+ muls r0, r2
+ adds r2, r0, r6
+ ldrh r0, [r3, 0x6]
+ ldrh r1, [r2, 0x6]
+ cmp r0, r1
+ bcs _08014BB0
+ lsls r0, 7
+ ldrh r1, [r2, 0x6]
+ bl __divsi3
+ adds r4, r0, 0
+ ldr r0, _08014BE0 @ =0x02000000
+ ldr r1, _08014BE4 @ =0x00016078
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 1
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r4, r1
+ bls _08014BB6
+_08014BB0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08014BB6:
+ ldr r1, _08014BE0 @ =0x02000000
+ ldr r0, _08014BE4 @ =0x00016078
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08014BC2:
+ cmp r5, 0
+ beq _08014BD4
+ ldr r1, _08014BE8 @ =gUnknown_02024A7E
+ ldr r0, _08014BEC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08014BF0 @ =gUnknown_02024D26
+ movs r0, 0x4
+ strb r0, [r1]
+_08014BD4:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08014BDC: .4byte gUnknown_020239F8
+_08014BE0: .4byte 0x02000000
+_08014BE4: .4byte 0x00016078
+_08014BE8: .4byte gUnknown_02024A7E
+_08014BEC: .4byte gUnknown_02024A68
+_08014BF0: .4byte gUnknown_02024D26
+ thumb_func_end sub_8014AB8
+
+ thumb_func_start sub_8014BF4
+sub_8014BF4: @ 8014BF4
+ push {r4-r6,lr}
+ ldr r4, _08014C44 @ =gUnknown_02024C07
+ ldr r1, _08014C48 @ =gUnknown_02024A7A
+ ldr r5, _08014C4C @ =gUnknown_02024A7E
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r0, _08014C50 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08014C9C
+ ldr r0, _08014C54 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ strb r1, [r5]
+ ldr r2, _08014C58 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r2]
+ lsls r1, 24
+ cmp r1, 0
+ beq _08014C88
+ adds r4, r2, 0
+ ldr r6, _08014C5C @ =gUnknown_02024C18
+ ldr r5, _08014C60 @ =gUnknown_02024D26
+_08014C28:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014C64
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08014C76
+ ldrb r0, [r5]
+ movs r1, 0x2
+ b _08014C72
+ .align 2, 0
+_08014C44: .4byte gUnknown_02024C07
+_08014C48: .4byte gUnknown_02024A7A
+_08014C4C: .4byte gUnknown_02024A7E
+_08014C50: .4byte gUnknown_020239F8
+_08014C54: .4byte gUnknown_02024A68
+_08014C58: .4byte gUnknown_02024A60
+_08014C5C: .4byte gUnknown_02024C18
+_08014C60: .4byte gUnknown_02024D26
+_08014C64:
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _08014C76
+ ldrb r0, [r5]
+ movs r1, 0x1
+_08014C72:
+ orrs r0, r1
+ strb r0, [r5]
+_08014C76:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08014C94 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08014C28
+_08014C88:
+ ldr r0, _08014C98 @ =gUnknown_02024D26
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _08014D40
+ .align 2, 0
+_08014C94: .4byte gUnknown_02024A68
+_08014C98: .4byte gUnknown_02024D26
+_08014C9C:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014CF4
+ ldrb r0, [r4]
+ bl sub_8014AB8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08014D40
+ ldr r1, _08014CDC @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _08014CE0 @ =0xfdffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _08014CE4 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x5]
+ ldr r1, _08014CE8 @ =gUnknown_02024C10
+ ldr r0, _08014CEC @ =gUnknown_081D8E3B
+ str r0, [r1]
+ ldr r1, _08014CF0 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ b _08014D3E
+ .align 2, 0
+_08014CDC: .4byte gBattleMons
+_08014CE0: .4byte 0xfdffffff
+_08014CE4: .4byte gUnknown_02024D1E
+_08014CE8: .4byte gUnknown_02024C10
+_08014CEC: .4byte gUnknown_081D8E3B
+_08014CF0: .4byte gUnknown_02024A7F
+_08014CF4:
+ ldr r1, _08014D1C @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08014D20 @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ beq _08014D34
+ ldr r1, _08014D24 @ =gUnknown_02024D1E
+ movs r0, 0x4
+ strb r0, [r1, 0x5]
+ ldr r1, _08014D28 @ =gUnknown_02024C10
+ ldr r0, _08014D2C @ =gUnknown_081D8E3B
+ str r0, [r1]
+ ldr r1, _08014D30 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ b _08014D3E
+ .align 2, 0
+_08014D1C: .4byte gBattleMons
+_08014D20: .4byte 0x0400e000
+_08014D24: .4byte gUnknown_02024D1E
+_08014D28: .4byte gUnknown_02024C10
+_08014D2C: .4byte gUnknown_081D8E3B
+_08014D30: .4byte gUnknown_02024A7F
+_08014D34:
+ ldr r0, _08014D48 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r1, _08014D4C @ =gUnknown_02024D26
+ movs r0, 0x6
+_08014D3E:
+ strb r0, [r1]
+_08014D40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014D48: .4byte gUnknown_02024A68
+_08014D4C: .4byte gUnknown_02024D26
+ thumb_func_end sub_8014BF4
+
+ thumb_func_start sub_8014D50
+sub_8014D50: @ 8014D50
+ ldr r2, _08014D78 @ =gUnknown_02024C07
+ ldr r1, _08014D7C @ =gUnknown_02024A7A
+ ldr r0, _08014D80 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08014D84 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08014D88 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r1, _08014D8C @ =gUnknown_02024C10
+ ldr r0, _08014D90 @ =gUnknown_081D9E98
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r1, _08014D94 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08014D78: .4byte gUnknown_02024C07
+_08014D7C: .4byte gUnknown_02024A7A
+_08014D80: .4byte gUnknown_02024A7E
+_08014D84: .4byte gUnknown_030042A4
+_08014D88: .4byte gUnknown_030042A0
+_08014D8C: .4byte gUnknown_02024C10
+_08014D90: .4byte gUnknown_081D9E98
+_08014D94: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8014D50
+
+ thumb_func_start sub_8014D98
+sub_8014D98: @ 8014D98
+ ldr r2, _08014DD0 @ =gUnknown_02024C07
+ ldr r1, _08014DD4 @ =gUnknown_02024A7A
+ ldr r0, _08014DD8 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08014DDC @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08014DE0 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r1, _08014DE4 @ =gUnknown_02038808
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08014DE8 @ =gUnknown_02024C04
+ movs r0, 0x5
+ strh r0, [r1]
+ ldr r1, _08014DEC @ =gUnknown_02024C10
+ ldr r0, _08014DF0 @ =gUnknown_081D9E48
+ ldr r0, [r0, 0x14]
+ str r0, [r1]
+ ldr r1, _08014DF4 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08014DD0: .4byte gUnknown_02024C07
+_08014DD4: .4byte gUnknown_02024A7A
+_08014DD8: .4byte gUnknown_02024A7E
+_08014DDC: .4byte gUnknown_030042A4
+_08014DE0: .4byte gUnknown_030042A0
+_08014DE4: .4byte gUnknown_02038808
+_08014DE8: .4byte gUnknown_02024C04
+_08014DEC: .4byte gUnknown_02024C10
+_08014DF0: .4byte gUnknown_081D9E48
+_08014DF4: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8014D98
+
+ thumb_func_start sub_8014DF8
+sub_8014DF8: @ 8014DF8
+ push {r4-r6,lr}
+ ldr r3, _08014E68 @ =gUnknown_02024C07
+ ldr r1, _08014E6C @ =gUnknown_02024A7A
+ ldr r0, _08014E70 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldr r0, _08014E74 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08014E78 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r6, _08014E7C @ =gUnknown_02024D1E
+ ldr r2, _08014E80 @ =gUnknown_02024260
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ strb r0, [r6, 0x5]
+ ldr r1, _08014E84 @ =gUnknown_02024C04
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r2, 0x2
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r2, _08014E88 @ =0x02000000
+ ldr r0, _08014E8C @ =0x00016087
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08014E42
+ adds r0, 0x1
+ strb r0, [r1]
+_08014E42:
+ ldr r0, _08014E90 @ =0x00016088
+ adds r4, r2, r0
+ ldrb r5, [r4]
+ adds r3, r5, 0
+ cmp r3, 0x1
+ bls _08014E9C
+ ldr r2, _08014E94 @ =gUnknown_081FA70C
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrb r6, [r6, 0x5]
+ adds r0, r6
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _08014E98
+ movs r0, 0x1
+ b _08014E9A
+ .align 2, 0
+_08014E68: .4byte gUnknown_02024C07
+_08014E6C: .4byte gUnknown_02024A7A
+_08014E70: .4byte gUnknown_02024A7E
+_08014E74: .4byte gUnknown_030042A4
+_08014E78: .4byte gUnknown_030042A0
+_08014E7C: .4byte gUnknown_02024D1E
+_08014E80: .4byte gUnknown_02024260
+_08014E84: .4byte gUnknown_02024C04
+_08014E88: .4byte 0x02000000
+_08014E8C: .4byte 0x00016087
+_08014E90: .4byte 0x00016088
+_08014E94: .4byte gUnknown_081FA70C
+_08014E98:
+ subs r0, r5, r0
+_08014E9A:
+ strb r0, [r4]
+_08014E9C:
+ ldr r1, _08014EB0 @ =gUnknown_02024C10
+ ldr r0, _08014EB4 @ =gUnknown_081D9E98
+ ldr r0, [r0, 0x8]
+ str r0, [r1]
+ ldr r1, _08014EB8 @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014EB0: .4byte gUnknown_02024C10
+_08014EB4: .4byte gUnknown_081D9E98
+_08014EB8: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8014DF8
+
+ thumb_func_start sub_8014EBC
+sub_8014EBC: @ 8014EBC
+ push {r4,r5,lr}
+ ldr r2, _08014F28 @ =gUnknown_02024C07
+ ldr r1, _08014F2C @ =gUnknown_02024A7A
+ ldr r0, _08014F30 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _08014F34 @ =gUnknown_030042A4
+ movs r5, 0
+ strh r5, [r0]
+ ldr r0, _08014F38 @ =gUnknown_030042A0
+ strh r5, [r0]
+ ldr r3, _08014F3C @ =0x02000000
+ ldr r0, _08014F40 @ =0x00016089
+ adds r2, r3, r0
+ ldr r1, _08014F44 @ =gUnknown_081FA71B
+ subs r0, 0x3
+ adds r4, r3, r0
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrb r1, [r2]
+ adds r0, r1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ bls _08014EFA
+ movs r0, 0x14
+ strb r0, [r2]
+_08014EFA:
+ ldr r0, _08014F48 @ =0x00016088
+ adds r2, r3, r0
+ ldr r1, _08014F4C @ =gUnknown_081FA71F
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldrb r1, [r2]
+ adds r0, r1
+ strb r0, [r2]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x14
+ bls _08014F18
+ movs r0, 0x14
+ strb r0, [r2]
+_08014F18:
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bhi _08014F54
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r0, _08014F50 @ =gUnknown_02024D1E
+ strb r5, [r0, 0x5]
+ b _08014F5A
+ .align 2, 0
+_08014F28: .4byte gUnknown_02024C07
+_08014F2C: .4byte gUnknown_02024A7A
+_08014F30: .4byte gUnknown_02024A7E
+_08014F34: .4byte gUnknown_030042A4
+_08014F38: .4byte gUnknown_030042A0
+_08014F3C: .4byte 0x02000000
+_08014F40: .4byte 0x00016089
+_08014F44: .4byte gUnknown_081FA71B
+_08014F48: .4byte 0x00016088
+_08014F4C: .4byte gUnknown_081FA71F
+_08014F50: .4byte gUnknown_02024D1E
+_08014F54:
+ ldr r1, _08014F70 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_08014F5A:
+ ldr r1, _08014F74 @ =gUnknown_02024C10
+ ldr r0, _08014F78 @ =gUnknown_081D9E98
+ ldr r0, [r0, 0x4]
+ str r0, [r1]
+ ldr r1, _08014F7C @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014F70: .4byte gUnknown_02024D1E
+_08014F74: .4byte gUnknown_02024C10
+_08014F78: .4byte gUnknown_081D9E98
+_08014F7C: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8014EBC
+
+ thumb_func_start bs8_exit_by_flight
+bs8_exit_by_flight: @ 8014F80
+ push {r4,lr}
+ ldr r2, _08014FA8 @ =gUnknown_02024C07
+ ldr r1, _08014FAC @ =gUnknown_02024A7A
+ ldr r4, _08014FB0 @ =gUnknown_02024A7E
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x11
+ bl PlaySE
+ ldr r0, _08014FB4 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _08014FB8 @ =gUnknown_02024D26
+ movs r0, 0x4
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08014FA8: .4byte gUnknown_02024C07
+_08014FAC: .4byte gUnknown_02024A7A
+_08014FB0: .4byte gUnknown_02024A7E
+_08014FB4: .4byte gUnknown_02024A68
+_08014FB8: .4byte gUnknown_02024D26
+ thumb_func_end bs8_exit_by_flight
+
+ thumb_func_start sub_8014FBC
+sub_8014FBC: @ 8014FBC
+ ldr r3, _08015008 @ =gUnknown_02024C07
+ ldr r1, _0801500C @ =gUnknown_02024A7A
+ ldr r0, _08015010 @ =gUnknown_02024A7E
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ strb r2, [r3]
+ ldr r0, _08015014 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08015018 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r1, _0801501C @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ ldr r2, _08015020 @ =gUnknown_02024A6A
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08015024 @ =gUnknown_02024C10
+ ldr r0, _08015028 @ =gUnknown_081D9E98
+ ldr r0, [r0, 0xC]
+ str r0, [r1]
+ ldr r1, _0801502C @ =gUnknown_02024A7F
+ movs r0, 0xA
+ strb r0, [r1]
+ ldr r1, _08015030 @ =gUnknown_02024A76
+ movs r0, 0xC
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_08015008: .4byte gUnknown_02024C07
+_0801500C: .4byte gUnknown_02024A7A
+_08015010: .4byte gUnknown_02024A7E
+_08015014: .4byte gUnknown_030042A4
+_08015018: .4byte gUnknown_030042A0
+_0801501C: .4byte gUnknown_030041C0
+_08015020: .4byte gUnknown_02024A6A
+_08015024: .4byte gUnknown_02024C10
+_08015028: .4byte gUnknown_081D9E98
+_0801502C: .4byte gUnknown_02024A7F
+_08015030: .4byte gUnknown_02024A76
+ thumb_func_end sub_8014FBC
+
+ thumb_func_start bsB_exit_by_move
+bsB_exit_by_move: @ 8015034
+ push {lr}
+ bl sub_80173A4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08015050
+ ldr r0, _08015054 @ =0x02000000
+ ldr r2, _08015058 @ =0x00016059
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _0801505C @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+_08015050:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015054: .4byte 0x02000000
+_08015058: .4byte 0x00016059
+_0801505C: .4byte gUnknown_02024A7F
+ thumb_func_end bsB_exit_by_move
+
+ thumb_func_start sub_8015060
+sub_8015060: @ 8015060
+ ldr r1, _08015080 @ =gUnknown_02024A7E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r3, _08015084 @ =gUnknown_02024A7F
+ ldr r2, _08015088 @ =gUnknown_02024A76
+ ldrb r0, [r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ ldr r2, _0801508C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08015090 @ =0xf1e892af
+ ands r0, r1
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08015080: .4byte gUnknown_02024A7E
+_08015084: .4byte gUnknown_02024A7F
+_08015088: .4byte gUnknown_02024A76
+_0801508C: .4byte gUnknown_02024C6C
+_08015090: .4byte 0xf1e892af
+ thumb_func_end sub_8015060
+
+ thumb_func_start bsC_8016D70
+bsC_8016D70: @ 8015094
+ push {r4,r5,lr}
+ ldr r1, _0801510C @ =gUnknown_02024A7E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r3, _08015110 @ =gUnknown_02024A7F
+ ldr r2, _08015114 @ =gUnknown_02024A76
+ ldrb r0, [r1]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r3]
+ bl sub_801377C
+ ldr r2, _08015118 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0801511C @ =0xf1e892af
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _08015120 @ =gUnknown_02024BEC
+ movs r4, 0
+ str r4, [r0]
+ ldr r1, _08015124 @ =0x02000000
+ ldr r2, _08015128 @ =0x00016002
+ adds r0, r1, r2
+ strb r4, [r0]
+ ldr r3, _0801512C @ =0x000160a1
+ adds r0, r1, r3
+ strb r4, [r0]
+ ldr r2, _08015130 @ =gUnknown_02024C3C
+ ldr r5, _08015134 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ strh r4, [r0]
+ ldr r3, _08015138 @ =gUnknown_02024C44
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r3
+ strh r4, [r0]
+ ldr r3, _0801513C @ =0x0001601c
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08015140 @ =gUnknown_02024DEC
+ strh r4, [r0]
+ subs r3, 0x10
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08015144 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x3]
+ strb r2, [r0, 0x4]
+ ldr r3, _08015148 @ =0x00016112
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _0801514C @ =0x00017130
+ adds r1, r0
+ strb r2, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801510C: .4byte gUnknown_02024A7E
+_08015110: .4byte gUnknown_02024A7F
+_08015114: .4byte gUnknown_02024A76
+_08015118: .4byte gUnknown_02024C6C
+_0801511C: .4byte 0xf1e892af
+_08015120: .4byte gUnknown_02024BEC
+_08015124: .4byte 0x02000000
+_08015128: .4byte 0x00016002
+_0801512C: .4byte 0x000160a1
+_08015130: .4byte gUnknown_02024C3C
+_08015134: .4byte gUnknown_02024C07
+_08015138: .4byte gUnknown_02024C44
+_0801513C: .4byte 0x0001601c
+_08015140: .4byte gUnknown_02024DEC
+_08015144: .4byte gUnknown_02024D1E
+_08015148: .4byte 0x00016112
+_0801514C: .4byte 0x00017130
+ thumb_func_end bsC_8016D70
+
+ thumb_func_start sub_8015150
+sub_8015150: @ 8015150
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ cmp r0, 0xA
+ bhi _080151C8
+ lsls r0, 2
+ ldr r1, _08015168 @ =_0801516C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08015168: .4byte _0801516C
+ .align 2, 0
+_0801516C:
+ .4byte _08015198
+ .4byte _080151A0
+ .4byte _080151A8
+ .4byte _080151C4
+ .4byte _080151C8
+ .4byte _080151C4
+ .4byte _080151C8
+ .4byte _080151B0
+ .4byte _080151C8
+ .4byte _080151C8
+ .4byte _080151B4
+_08015198:
+ ldr r0, _0801519C @ =gUnknown_02024C08
+ b _080151C6
+ .align 2, 0
+_0801519C: .4byte gUnknown_02024C08
+_080151A0:
+ ldr r0, _080151A4 @ =gUnknown_02024C07
+ b _080151C6
+ .align 2, 0
+_080151A4: .4byte gUnknown_02024C07
+_080151A8:
+ ldr r0, _080151AC @ =gUnknown_02024C0A
+ b _080151C6
+ .align 2, 0
+_080151AC: .4byte gUnknown_02024C0A
+_080151B0:
+ movs r2, 0
+ b _080151C8
+_080151B4:
+ ldr r0, _080151BC @ =0x02000000
+ ldr r1, _080151C0 @ =0x00016003
+ adds r0, r1
+ b _080151C6
+ .align 2, 0
+_080151BC: .4byte 0x02000000
+_080151C0: .4byte 0x00016003
+_080151C4:
+ ldr r0, _080151D0 @ =gUnknown_02024C09
+_080151C6:
+ ldrb r2, [r0]
+_080151C8:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080151D0: .4byte gUnknown_02024C09
+ thumb_func_end sub_8015150
+
+ thumb_func_start sub_80151D4
+sub_80151D4: @ 80151D4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r1, _08015204 @ =gBattleMons
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r12, r1
+ cmp r0, 0x2E
+ bne _08015286
+ movs r3, 0
+ adds r0, r5, 0
+ muls r0, r4
+ adds r1, 0xC
+ adds r1, r0, r1
+ b _08015210
+ .align 2, 0
+_08015204: .4byte gBattleMons
+_08015208:
+ adds r1, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08015216
+_08015210:
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08015208
+_08015216:
+ cmp r3, 0x4
+ beq _08015286
+ movs r7, 0x58
+ adds r2, r5, 0
+ muls r2, r7
+ adds r0, r3, r2
+ mov r6, r12
+ adds r6, 0x24
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08015232
+ subs r0, 0x1
+ strb r0, [r1]
+_08015232:
+ mov r0, r12
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08015286
+ ldr r1, _08015290 @ =gUnknown_02024CA8
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08015294 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08015286
+ ldr r4, _08015298 @ =gUnknown_02024A60
+ strb r5, [r4]
+ adds r1, r3, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r7
+ adds r0, r6
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08015286:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015290: .4byte gUnknown_02024CA8
+_08015294: .4byte gBitTable
+_08015298: .4byte gUnknown_02024A60
+ thumb_func_end sub_80151D4
+
+ thumb_func_start sub_801529C
+sub_801529C: @ 801529C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x4
+ mov r8, r0
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r0, _080153BC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08015344
+ ldr r1, _080153C0 @ =gBattleMons
+ movs r0, 0x58
+ adds r7, r5, 0
+ muls r7, r0
+ adds r1, 0xC
+ mov r10, r1
+_080152D2:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r4, 0x1
+ cmp r9, r0
+ beq _0801533A
+ ldr r0, _080153C0 @ =gBattleMons
+ movs r3, 0x58
+ adds r1, r4, 0
+ muls r1, r3
+ adds r1, r0
+ adds r1, 0x20
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0x2E
+ bne _0801533A
+ movs r2, 0
+ adds r0, r5, 0
+ muls r0, r3
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r1, 0x8F
+ lsls r1, 1
+ cmp r0, r1
+ beq _08015322
+ adds r3, r1, 0
+ mov r0, r10
+ adds r1, r7, r0
+_08015314:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08015322
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _08015314
+_08015322:
+ cmp r2, 0x4
+ beq _0801533A
+ mov r8, r2
+ adds r1, r2, r7
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801533A
+ subs r0, 0x1
+ strb r0, [r1]
+_0801533A:
+ adds r4, r6, 0
+ ldr r0, _080153BC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _080152D2
+_08015344:
+ mov r1, r8
+ cmp r1, 0x4
+ beq _080153AC
+ ldr r6, _080153C0 @ =gBattleMons
+ movs r3, 0x58
+ adds r0, r5, 0
+ muls r0, r3
+ adds r1, r6, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080153AC
+ ldr r1, _080153C4 @ =gUnknown_02024CA8
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _080153C8 @ =gBitTable
+ mov r4, r8
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080153AC
+ ldr r4, _080153CC @ =gUnknown_02024A60
+ strb r5, [r4]
+ mov r1, r8
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r2, r6, 0
+ adds r2, 0x24
+ adds r0, r2
+ add r0, r8
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080153AC:
+ 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
+_080153BC: .4byte gUnknown_02024A68
+_080153C0: .4byte gBattleMons
+_080153C4: .4byte gUnknown_02024CA8
+_080153C8: .4byte gBitTable
+_080153CC: .4byte gUnknown_02024A60
+ thumb_func_end sub_801529C
+
+ thumb_func_start sub_80153D0
+sub_80153D0: @ 80153D0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r6, 0x4
+ movs r1, 0
+ ldr r0, _080154C8 @ =gUnknown_02024A68
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _08015452
+ ldr r7, _080154CC @ =gBattleMons
+ movs r2, 0x58
+ mov r12, r2
+ mov r5, r12
+ muls r5, r3
+ adds r0, r7, 0
+ adds r0, 0xC
+ adds r2, r5, r0
+ mov r10, r2
+ mov r9, r5
+_08015402:
+ mov r0, r12
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r1, 0x1
+ cmp r0, 0x2E
+ bne _08015448
+ cmp r1, r3
+ beq _08015448
+ movs r2, 0
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, 0xC3
+ beq _08015432
+ ldr r1, _080154D0 @ =gUnknown_02024A8C
+ add r1, r9
+_08015424:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08015432
+ ldrh r0, [r1]
+ cmp r0, 0xC3
+ bne _08015424
+_08015432:
+ cmp r2, 0x4
+ beq _08015448
+ adds r6, r2, 0
+ adds r0, r6, r5
+ ldr r2, _080154D4 @ =gUnknown_02024AA4
+ adds r1, r0, r2
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08015448
+ subs r0, 0x1
+ strb r0, [r1]
+_08015448:
+ adds r1, r4, 0
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r1, r0
+ blt _08015402
+_08015452:
+ cmp r6, 0x4
+ beq _080154B6
+ ldr r7, _080154CC @ =gBattleMons
+ movs r5, 0x58
+ adds r0, r3, 0
+ muls r0, r5
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080154B6
+ ldr r1, _080154D8 @ =gUnknown_02024CA8
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _080154DC @ =gBitTable
+ lsls r0, r6, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080154B6
+ ldr r4, _080154E0 @ =gUnknown_02024A60
+ strb r3, [r4]
+ adds r1, r6, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r2, r7, 0
+ adds r2, 0x24
+ adds r0, r2
+ adds r0, r6
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080154B6:
+ 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
+_080154C8: .4byte gUnknown_02024A68
+_080154CC: .4byte gBattleMons
+_080154D0: .4byte gUnknown_02024A8C
+_080154D4: .4byte gUnknown_02024AA4
+_080154D8: .4byte gUnknown_02024CA8
+_080154DC: .4byte gBitTable
+_080154E0: .4byte gUnknown_02024A60
+ thumb_func_end sub_80153D0
+
+ thumb_func_start unref_sub_80154E4
+unref_sub_80154E4: @ 80154E4
+ push {r4,r5,lr}
+ ldr r0, _08015514 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08015524
+ movs r2, 0
+ ldr r4, _08015518 @ =gUnknown_02024A68
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08015542
+ ldr r3, _0801551C @ =gUnknown_02024A64
+ ldr r5, _08015520 @ =gBitTable
+_08015500:
+ ldm r5!, {r1}
+ lsls r1, 28
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ adds r2, 0x1
+ ldrb r0, [r4]
+ cmp r2, r0
+ blt _08015500
+ b _08015542
+ .align 2, 0
+_08015514: .4byte gUnknown_020239F8
+_08015518: .4byte gUnknown_02024A68
+_0801551C: .4byte gUnknown_02024A64
+_08015520: .4byte gBitTable
+_08015524:
+ movs r2, 0
+ ldr r4, _08015548 @ =gUnknown_02024A68
+ ldrb r0, [r4]
+ cmp r2, r0
+ bge _08015542
+ ldr r3, _0801554C @ =gUnknown_02024A64
+ ldr r5, _08015550 @ =gBitTable
+_08015532:
+ ldr r0, [r3]
+ ldm r5!, {r1}
+ orrs r0, r1
+ str r0, [r3]
+ adds r2, 0x1
+ ldrb r0, [r4]
+ cmp r2, r0
+ blt _08015532
+_08015542:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015548: .4byte gUnknown_02024A68
+_0801554C: .4byte gUnknown_02024A64
+_08015550: .4byte gBitTable
+ thumb_func_end unref_sub_80154E4
+
+ thumb_func_start dp01_battle_side_mark_buffer_for_execution
+dp01_battle_side_mark_buffer_for_execution: @ 8015554
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0801557C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08015588
+ ldr r2, _08015580 @ =gUnknown_02024A64
+ ldr r1, _08015584 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ b _08015598
+ .align 2, 0
+_0801557C: .4byte gUnknown_020239F8
+_08015580: .4byte gUnknown_02024A64
+_08015584: .4byte gBitTable
+_08015588:
+ ldr r2, _0801559C @ =gUnknown_02024A64
+ ldr r1, _080155A0 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r2]
+_08015598:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801559C: .4byte gUnknown_02024A64
+_080155A0: .4byte gBitTable
+ thumb_func_end dp01_battle_side_mark_buffer_for_execution
+
+ thumb_func_start sub_80155A4
+sub_80155A4: @ 80155A4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r5, _080155B8 @ =gUnknown_02024A64
+ ldr r1, _080155BC @ =gBitTable
+ lsls r0, r7, 2
+ adds r6, r0, r1
+ b _080155CE
+ .align 2, 0
+_080155B8: .4byte gUnknown_02024A64
+_080155BC: .4byte gBitTable
+_080155C0:
+ lsls r0, r4, 2
+ ldr r1, [r6]
+ lsls r1, r0
+ ldr r0, [r5]
+ orrs r0, r1
+ str r0, [r5]
+ adds r4, 0x1
+_080155CE:
+ bl GetLinkPlayerCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ blt _080155C0
+ ldr r2, _080155F0 @ =gUnknown_02024A64
+ movs r1, 0x80
+ lsls r1, 21
+ lsls r1, r7
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080155F0: .4byte gUnknown_02024A64
+ thumb_func_end sub_80155A4
+
+ thumb_func_start b_cancel_multi_turn_move_maybe
+b_cancel_multi_turn_move_maybe: @ 80155F4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08015644 @ =gBattleMons
+ movs r2, 0x58
+ adds r3, r0, 0
+ muls r3, r2
+ adds r1, 0x50
+ adds r3, r1
+ ldr r1, [r3]
+ ldr r2, _08015648 @ =0xffffefff
+ ands r1, r2
+ ldr r2, _0801564C @ =0xfffff3ff
+ ands r1, r2
+ movs r2, 0x71
+ negs r2, r2
+ ands r1, r2
+ ldr r2, _08015650 @ =0xfffffcff
+ ands r1, r2
+ str r1, [r3]
+ ldr r1, _08015654 @ =gUnknown_02024C98
+ lsls r2, r0, 2
+ adds r2, r1
+ ldr r1, [r2]
+ ldr r3, _08015658 @ =0xfffbff3f
+ ands r1, r3
+ str r1, [r2]
+ ldr r2, _0801565C @ =gUnknown_02024CA8
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x11]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x11]
+ movs r0, 0
+ strb r0, [r1, 0x10]
+ bx lr
+ .align 2, 0
+_08015644: .4byte gBattleMons
+_08015648: .4byte 0xffffefff
+_0801564C: .4byte 0xfffff3ff
+_08015650: .4byte 0xfffffcff
+_08015654: .4byte gUnknown_02024C98
+_08015658: .4byte 0xfffbff3f
+_0801565C: .4byte gUnknown_02024CA8
+ thumb_func_end b_cancel_multi_turn_move_maybe
+
+ thumb_func_start sub_8015660
+sub_8015660: @ 8015660
+ push {lr}
+ lsls r0, 24
+ ldr r1, _080156AC @ =gUnknown_02024D28
+ lsrs r0, 20
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ bne _080156A6
+ ldrb r2, [r1, 0x1]
+ lsls r0, r2, 30
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r2, 26
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r2, 25
+ cmp r0, 0
+ blt _080156A6
+ lsrs r0, r2, 7
+ cmp r0, 0
+ bne _080156A6
+ ldrb r1, [r1, 0x2]
+ lsls r0, r1, 31
+ cmp r0, 0
+ bne _080156A6
+ lsls r0, r1, 30
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r1, 29
+ cmp r0, 0
+ blt _080156A6
+ lsls r0, r2, 31
+ cmp r0, 0
+ beq _080156B0
+_080156A6:
+ movs r0, 0x1
+ b _080156B2
+ .align 2, 0
+_080156AC: .4byte gUnknown_02024D28
+_080156B0:
+ movs r0, 0
+_080156B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8015660
+
+ thumb_func_start b_std_message
+b_std_message: @ 80156B8
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _080156D8 @ =gUnknown_02024A60
+ strb r1, [r4]
+ movs r0, 0
+ adds r1, r2, 0
+ bl dp01_build_cmdbuf_x10_TODO
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080156D8: .4byte gUnknown_02024A60
+ thumb_func_end b_std_message
+
+ thumb_func_start sub_80156DC
+sub_80156DC: @ 80156DC
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _08015730 @ =gUnknown_02024DEA
+ strb r3, [r0]
+ strb r3, [r0, 0x1]
+ movs r1, 0
+ ldr r0, _08015734 @ =gUnknown_02024A68
+ ldrb r2, [r0]
+ adds r6, r0, 0
+ cmp r1, r2
+ bge _0801570A
+ ldr r5, _08015738 @ =gBitTable
+ adds r4, r2, 0
+ ldr r2, _0801573C @ =gUnknown_02024A6A
+_080156F8:
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r5
+ ldr r0, [r0]
+ orrs r3, r0
+ adds r2, 0x4
+ adds r1, 0x2
+ cmp r1, r4
+ blt _080156F8
+_0801570A:
+ movs r1, 0x1
+ adds r2, r6, 0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bge _0801572A
+ ldr r5, _08015730 @ =gUnknown_02024DEA
+ movs r4, 0x2
+_08015718:
+ adds r0, r1, 0
+ ands r0, r4
+ asrs r0, 1
+ adds r0, r5
+ strb r3, [r0]
+ adds r1, 0x2
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _08015718
+_0801572A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015730: .4byte gUnknown_02024DEA
+_08015734: .4byte gUnknown_02024A68
+_08015738: .4byte gBitTable
+_0801573C: .4byte gUnknown_02024A6A
+ thumb_func_end sub_80156DC
+
+ thumb_func_start sub_8015740
+sub_8015740: @ 8015740
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080157A4
+ movs r0, 0x2
+ ands r0, r5
+ lsls r0, 24
+ lsrs r0, 25
+ mov r12, r0
+ ldr r1, _080157B0 @ =gUnknown_02024DEA
+ adds r0, r1
+ strb r4, [r0]
+ adds r5, r4, 0
+ ldr r0, _080157B4 @ =gUnknown_02024A68
+ ldrb r2, [r0]
+ mov r8, r1
+ cmp r4, r2
+ bge _0801579E
+ ldr r0, _080157B8 @ =gUnknown_02024C0C
+ ldrb r7, [r0]
+ ldr r1, _080157BC @ =gBitTable
+ adds r6, r2, 0
+ ldr r3, _080157C0 @ =gUnknown_02024A6A
+ adds r2, r1, 0
+_08015782:
+ ldr r0, [r2]
+ ands r0, r7
+ cmp r0, 0
+ bne _08015794
+ ldrh r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ orrs r4, r0
+_08015794:
+ adds r3, 0x4
+ adds r2, 0x8
+ adds r5, 0x2
+ cmp r5, r6
+ blt _08015782
+_0801579E:
+ mov r0, r12
+ add r0, r8
+ strb r4, [r0]
+_080157A4:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080157B0: .4byte gUnknown_02024DEA
+_080157B4: .4byte gUnknown_02024A68
+_080157B8: .4byte gUnknown_02024C0C
+_080157BC: .4byte gBitTable
+_080157C0: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8015740
+
+ thumb_func_start sub_80157C4
+sub_80157C4: @ 80157C4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080157E0
+ adds r0, r4, 0
+ bl sub_8015740
+ b _08015816
+_080157E0:
+ movs r3, 0x1
+ ldr r5, _0801581C @ =gUnknown_02024A68
+ ldrb r0, [r5]
+ cmp r3, r0
+ bge _08015816
+ ldr r0, _08015820 @ =gUnknown_02024DEA
+ mov r12, r0
+ movs r7, 0x2
+ ldr r6, _08015824 @ =gBitTable
+ ldr r1, _08015828 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r4, r0, r1
+_080157F8:
+ adds r2, r3, 0
+ ands r2, r7
+ asrs r2, 1
+ add r2, r12
+ ldrh r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r3, 0x1
+ ldrb r0, [r5]
+ cmp r3, r0
+ blt _080157F8
+_08015816:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801581C: .4byte gUnknown_02024A68
+_08015820: .4byte gUnknown_02024DEA
+_08015824: .4byte gBitTable
+_08015828: .4byte gUnknown_02024A6A
+ thumb_func_end sub_80157C4
+
+ thumb_func_start b_movescr_stack_push
+b_movescr_stack_push: @ 801582C
+ push {r4,lr}
+ ldr r4, _08015848 @ =0x02017110
+ adds r3, r4, 0
+ adds r3, 0x20
+ ldrb r1, [r3]
+ adds r2, r1, 0x1
+ strb r2, [r3]
+ lsls r1, 24
+ lsrs r1, 22
+ adds r1, r4
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08015848: .4byte 0x02017110
+ thumb_func_end b_movescr_stack_push
+
+ thumb_func_start b_movescr_stack_push_cursor
+b_movescr_stack_push_cursor: @ 801584C
+ ldr r3, _08015868 @ =0x02017110
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r1, _0801586C @ =gUnknown_02024C10
+ ldr r1, [r1]
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08015868: .4byte 0x02017110
+_0801586C: .4byte gUnknown_02024C10
+ thumb_func_end b_movescr_stack_push_cursor
+
+ thumb_func_start b_movescr_stack_pop_cursor
+b_movescr_stack_pop_cursor: @ 8015870
+ ldr r3, _0801588C @ =gUnknown_02024C10
+ ldr r2, _08015890 @ =0x02017110
+ adds r1, r2, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0801588C: .4byte gUnknown_02024C10
+_08015890: .4byte 0x02017110
+ thumb_func_end b_movescr_stack_pop_cursor
+
+ thumb_func_start sub_8015894
+sub_8015894: @ 8015894
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r2, _080159AC @ =gBattleMons
+ ldr r1, _080159B0 @ =gUnknown_02024260
+ ldr r5, _080159B4 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r0, r3, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r4, [r0]
+ lsls r0, r3, 1
+ ldr r2, _080159B8 @ =0x020160e8
+ adds r0, r2
+ mov r8, r0
+ ldr r1, _080159BC @ =gUnknown_02024CA8
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ cmp r0, r4
+ bne _080158EE
+ cmp r4, 0
+ beq _080158EE
+ adds r0, r2, 0
+ subs r0, 0xE5
+ strb r3, [r0]
+ ldr r0, _080159C0 @ =gUnknown_02024BE6
+ strh r4, [r0]
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159C8 @ =gUnknown_081D9144
+ str r1, [r0]
+ movs r6, 0x1
+_080158EE:
+ ldr r1, _080159CC @ =gUnknown_02024C34
+ ldr r5, _080159B4 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0801592A
+ cmp r4, 0xA5
+ beq _0801592A
+ ldr r1, _080159AC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _0801592A
+ adds r0, r2, 0
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159D0 @ =gUnknown_081D937C
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801592A:
+ ldr r2, _080159BC @ =gUnknown_02024CA8
+ ldr r3, _080159B4 @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08015966
+ ldr r0, _080159D4 @ =gBattleMoves
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08015966
+ ldr r0, _080159C0 @ =gUnknown_02024BE6
+ strh r4, [r0]
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159D8 @ =gUnknown_081D938B
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015966:
+ ldr r5, _080159B4 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ bl sub_8015D5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801598C
+ ldr r0, _080159C0 @ =gUnknown_02024BE6
+ strh r4, [r0]
+ ldr r1, _080159C4 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080159DC @ =gUnknown_081D9464
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801598C:
+ ldr r1, _080159AC @ =gBattleMons
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _080159E4
+ ldr r1, _080159E0 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x7]
+ b _080159EE
+ .align 2, 0
+_080159AC: .4byte gBattleMons
+_080159B0: .4byte gUnknown_02024260
+_080159B4: .4byte gUnknown_02024A60
+_080159B8: .4byte 0x020160e8
+_080159BC: .4byte gUnknown_02024CA8
+_080159C0: .4byte gUnknown_02024BE6
+_080159C4: .4byte gUnknown_02024C1C
+_080159C8: .4byte gUnknown_081D9144
+_080159CC: .4byte gUnknown_02024C34
+_080159D0: .4byte gUnknown_081D937C
+_080159D4: .4byte gBattleMoves
+_080159D8: .4byte gUnknown_081D938B
+_080159DC: .4byte gUnknown_081D9464
+_080159E0: .4byte gEnigmaBerries
+_080159E4:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r3, r0, 24
+_080159EE:
+ ldr r2, _08015A70 @ =gUnknown_02024C0B
+ ldr r1, _08015A74 @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ strb r0, [r2]
+ ldr r7, _08015A78 @ =gBattleMons
+ adds r5, r1, 0
+ cmp r3, 0x1D
+ bne _08015A36
+ mov r0, r8
+ ldrh r2, [r0]
+ adds r1, r2, 0
+ cmp r1, 0
+ beq _08015A36
+ ldr r0, _08015A7C @ =0x0000ffff
+ cmp r1, r0
+ beq _08015A36
+ cmp r1, r4
+ beq _08015A36
+ ldr r0, _08015A80 @ =gUnknown_02024BE6
+ strh r2, [r0]
+ ldr r2, _08015A84 @ =gUnknown_02024C04
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r2]
+ ldr r1, _08015A88 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08015A8C @ =gUnknown_081D9AC2
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015A36:
+ ldr r0, _08015A90 @ =gUnknown_02024260
+ ldrb r2, [r5]
+ lsls r1, r2, 9
+ adds r0, 0x2
+ adds r1, r0
+ movs r0, 0x58
+ muls r0, r2
+ ldrb r1, [r1]
+ adds r0, r1
+ adds r1, r7, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08015A64
+ ldr r1, _08015A88 @ =gUnknown_02024C1C
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, _08015A94 @ =gUnknown_081D9369
+ str r1, [r0]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015A64:
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015A70: .4byte gUnknown_02024C0B
+_08015A74: .4byte gUnknown_02024A60
+_08015A78: .4byte gBattleMons
+_08015A7C: .4byte 0x0000ffff
+_08015A80: .4byte gUnknown_02024BE6
+_08015A84: .4byte gUnknown_02024C04
+_08015A88: .4byte gUnknown_02024C1C
+_08015A8C: .4byte gUnknown_081D9AC2
+_08015A90: .4byte gUnknown_02024260
+_08015A94: .4byte gUnknown_081D9369
+ thumb_func_end sub_8015894
+
+ thumb_func_start sub_8015A98
+sub_8015A98: @ 8015A98
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ lsrs r3, r2, 24
+ lsls r1, r7, 1
+ ldr r0, _08015AD8 @ =0x020160e8
+ adds r1, r0
+ str r1, [sp, 0x4]
+ ldr r1, _08015ADC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08015AE4
+ ldr r2, _08015AE0 @ =gEnigmaBerries
+ lsls r1, r7, 3
+ subs r0, r1, r7
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x7]
+ str r0, [sp]
+ b _08015AF6
+ .align 2, 0
+_08015AD8: .4byte 0x020160e8
+_08015ADC: .4byte gBattleMons
+_08015AE0: .4byte gEnigmaBerries
+_08015AE4:
+ ldrh r0, [r1, 0x2E]
+ str r3, [sp, 0x14]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, r7, 3
+ ldr r3, [sp, 0x14]
+_08015AF6:
+ ldr r0, _08015C70 @ =gUnknown_02024C0B
+ strb r7, [r0]
+ movs r0, 0
+ mov r9, r0
+ lsls r2, r7, 1
+ str r2, [sp, 0xC]
+ ldr r5, _08015C74 @ =gUnknown_02024CA8
+ mov r12, r5
+ ldr r0, _08015C78 @ =gBattleMons
+ movs r2, 0x58
+ adds r6, r7, 0
+ muls r6, r2
+ str r6, [sp, 0x8]
+ ldr r2, _08015C7C @ =gUnknown_02024A8C
+ adds r5, r6, r2
+ movs r6, 0
+ str r6, [sp, 0x10]
+ mov r10, r0
+ subs r0, r1, r7
+ lsls r0, 2
+ mov r8, r0
+ ldr r6, _08015C80 @ =gBitTable
+_08015B22:
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _08015B38
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08015B38
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015B38:
+ ldr r0, [sp, 0x8]
+ add r0, r9
+ mov r1, r10
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08015B58
+ movs r0, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _08015B58
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015B58:
+ mov r1, r8
+ add r1, r12
+ ldrh r0, [r5]
+ ldrh r1, [r1, 0x4]
+ cmp r0, r1
+ bne _08015B74
+ movs r0, 0x4
+ ands r0, r3
+ cmp r0, 0
+ beq _08015B74
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015B74:
+ movs r0, 0x58
+ adds r2, r7, 0
+ muls r2, r0
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r2
+ ldr r1, _08015C7C @ =gUnknown_02024A8C
+ adds r0, r1
+ mov r12, r0
+ ldr r1, _08015C84 @ =gUnknown_02024C34
+ ldr r0, [sp, 0xC]
+ adds r1, r0, r1
+ str r1, [sp, 0x18]
+ mov r1, r12
+ ldrh r1, [r1]
+ mov r12, r1
+ ldr r0, [sp, 0x18]
+ ldrh r0, [r0]
+ cmp r12, r0
+ bne _08015BB6
+ movs r0, 0x8
+ ands r0, r3
+ cmp r0, 0
+ beq _08015BB6
+ mov r0, r10
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08015BB6
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015BB6:
+ ldr r0, _08015C74 @ =gUnknown_02024CA8
+ add r0, r8
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08015BE4
+ movs r0, 0x10
+ ands r0, r3
+ cmp r0, 0
+ beq _08015BE4
+ ldr r2, _08015C88 @ =gBattleMoves
+ ldrh r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08015BE4
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015BE4:
+ ldrh r1, [r5]
+ adds r0, r7, 0
+ str r3, [sp, 0x14]
+ bl sub_8015D5C
+ lsls r0, 24
+ ldr r3, [sp, 0x14]
+ cmp r0, 0
+ beq _08015C06
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _08015C06
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015C06:
+ ldr r1, _08015C74 @ =gUnknown_02024CA8
+ mov r0, r8
+ adds r2, r0, r1
+ ldrb r0, [r2, 0xE]
+ lsls r0, 28
+ mov r12, r1
+ cmp r0, 0
+ beq _08015C26
+ ldrh r0, [r2, 0x6]
+ ldrh r1, [r5]
+ cmp r0, r1
+ beq _08015C26
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015C26:
+ ldr r2, [sp]
+ cmp r2, 0x1D
+ bne _08015C48
+ ldr r0, [sp, 0x4]
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08015C48
+ ldr r0, _08015C8C @ =0x0000ffff
+ cmp r1, r0
+ beq _08015C48
+ ldrh r2, [r5]
+ cmp r1, r2
+ beq _08015C48
+ ldr r0, [r6]
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_08015C48:
+ adds r6, 0x4
+ adds r5, 0x2
+ ldr r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x3
+ bgt _08015C5E
+ b _08015B22
+_08015C5E:
+ adds r0, r4, 0
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015C70: .4byte gUnknown_02024C0B
+_08015C74: .4byte gUnknown_02024CA8
+_08015C78: .4byte gBattleMons
+_08015C7C: .4byte gUnknown_02024A8C
+_08015C80: .4byte gBitTable
+_08015C84: .4byte gUnknown_02024C34
+_08015C88: .4byte gBattleMoves
+_08015C8C: .4byte 0x0000ffff
+ thumb_func_end sub_8015A98
+
+ thumb_func_start sub_8015C90
+sub_8015C90: @ 8015C90
+ push {r4-r6,lr}
+ ldr r5, _08015CFC @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r1, 0
+ movs r2, 0xFF
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xF
+ bne _08015D38
+ ldr r0, _08015D00 @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08015D04 @ =gUnknown_02024C1C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08015D08 @ =gUnknown_081D9365
+ str r1, [r0]
+ ldr r0, _08015D0C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08015D14
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ adds r4, r0, 0
+ bl Random
+ movs r1, 0x1
+ eors r4, r1
+ movs r1, 0x2
+ ands r1, r0
+ orrs r4, r1
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl battle_get_side_with_given_state
+ ldr r2, _08015D10 @ =gUnknown_02024260
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r2, 0x3
+ adds r1, r2
+ b _08015D48
+ .align 2, 0
+_08015CFC: .4byte gUnknown_02024A60
+_08015D00: .4byte gUnknown_02024D28
+_08015D04: .4byte gUnknown_02024C1C
+_08015D08: .4byte gUnknown_081D9365
+_08015D0C: .4byte gUnknown_020239F8
+_08015D10: .4byte gUnknown_02024260
+_08015D14:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r2, _08015D34 @ =gUnknown_02024260
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r2, 0x3
+ adds r1, r2
+ b _08015D48
+ .align 2, 0
+_08015D34: .4byte gUnknown_02024260
+_08015D38:
+ ldr r0, _08015D58 @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+_08015D48:
+ strb r0, [r1]
+ movs r0, 0
+ cmp r6, 0xF
+ bne _08015D52
+ movs r0, 0x1
+_08015D52:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015D58: .4byte gUnknown_02024D28
+ thumb_func_end sub_8015C90
+
+ thumb_func_start sub_8015D5C
+sub_8015D5C: @ 8015D5C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r4, 0
+ ldr r0, _08015DF0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08015DE0
+ ldr r7, _08015DF4 @ =gUnknown_02024A8C
+ mov r8, r7
+_08015D86:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r9, r0
+ beq _08015DD6
+ ldr r1, _08015DF8 @ =gUnknown_02024C98
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _08015DD6
+ movs r2, 0
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ adds r0, r1, r7
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08015DCC
+ mov r4, r8
+ adds r0, r1, r4
+_08015DBE:
+ adds r0, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _08015DD6
+ ldrh r1, [r0]
+ cmp r5, r1
+ bne _08015DBE
+_08015DCC:
+ cmp r2, 0x3
+ bgt _08015DD6
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08015DD6:
+ adds r4, r3, 0
+ ldr r0, _08015DF0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08015D86
+_08015DE0:
+ adds r0, r6, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08015DF0: .4byte gUnknown_02024A68
+_08015DF4: .4byte gUnknown_02024A8C
+_08015DF8: .4byte gUnknown_02024C98
+ thumb_func_end sub_8015D5C
+
+ thumb_func_start sub_8015DFC
+sub_8015DFC: @ 8015DFC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _08015EA0 @ =gUnknown_02024C07
+ mov r2, r9
+ strb r2, [r1]
+ ldr r0, _08015EA4 @ =gUnknown_02024A68
+ ldrb r4, [r0]
+ adds r6, r1, 0
+ mov r10, r0
+ ldr r7, _08015EA8 @ =gUnknown_02024C08
+ ldr r3, _08015EAC @ =0x02000000
+ mov r12, r3
+ cmp r9, r4
+ bcs _08015E50
+ ldr r2, _08015EB0 @ =gUnknown_02024C0C
+ ldrb r1, [r2]
+ ldr r5, _08015EB4 @ =gBitTable
+ ldr r0, [r5]
+ ands r1, r0
+ cmp r1, 0
+ beq _08015E50
+ adds r3, r6, 0
+_08015E32:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08015E50
+ ldrb r0, [r2]
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _08015E32
+_08015E50:
+ movs r0, 0
+ strb r0, [r7]
+ mov r0, r10
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08015E8A
+ ldr r2, _08015EB0 @ =gUnknown_02024C0C
+ ldrb r1, [r2]
+ ldr r5, _08015EB4 @ =gBitTable
+ ldr r0, [r5]
+ ands r1, r0
+ cmp r1, 0
+ beq _08015E8A
+ adds r3, r7, 0
+_08015E6C:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08015E8A
+ ldrb r0, [r2]
+ ldrb r1, [r7]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _08015E6C
+_08015E8A:
+ ldr r0, _08015EB8 @ =0x0001600e
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bls _08015E96
+ b _0801652A
+_08015E96:
+ lsls r0, 2
+ ldr r1, _08015EBC @ =_08015EC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08015EA0: .4byte gUnknown_02024C07
+_08015EA4: .4byte gUnknown_02024A68
+_08015EA8: .4byte gUnknown_02024C08
+_08015EAC: .4byte 0x02000000
+_08015EB0: .4byte gUnknown_02024C0C
+_08015EB4: .4byte gBitTable
+_08015EB8: .4byte 0x0001600e
+_08015EBC: .4byte _08015EC0
+ .align 2, 0
+_08015EC0:
+ .4byte _08015EEC
+ .4byte _08015F74
+ .4byte _08016034
+ .4byte _080160F4
+ .4byte _080161C8
+ .4byte _08016274
+ .4byte _08016324
+ .4byte _080163A8
+ .4byte _08016420
+ .4byte _08016494
+ .4byte _08016520
+_08015EEC:
+ movs r5, 0
+ ldr r1, _08015F0C @ =gUnknown_02024A68
+ mov r10, r1
+ ldrb r2, [r1]
+ cmp r5, r2
+ bge _08015F06
+ ldr r2, _08015F10 @ =gUnknown_02024A7A
+_08015EFA:
+ adds r0, r5, r2
+ strb r5, [r0]
+ adds r5, 0x1
+ ldrb r3, [r1]
+ cmp r5, r3
+ blt _08015EFA
+_08015F06:
+ movs r5, 0
+ b _08015F54
+ .align 2, 0
+_08015F0C: .4byte gUnknown_02024A68
+_08015F10: .4byte gUnknown_02024A7A
+_08015F14:
+ adds r4, r5, 0x1
+ adds r6, r4, 0
+ ldrb r1, [r1]
+ cmp r6, r1
+ bge _08015F52
+ ldr r7, _08016004 @ =gUnknown_02024A7A
+ ldr r0, _08016008 @ =gUnknown_02024A68
+ mov r10, r0
+ lsls r1, r5, 24
+ mov r8, r1
+_08015F28:
+ adds r0, r5, r7
+ ldrb r0, [r0]
+ adds r1, r4, r7
+ ldrb r1, [r1]
+ movs r2, 0
+ bl b_first_side
+ lsls r0, 24
+ cmp r0, 0
+ beq _08015F48
+ lsls r1, r4, 24
+ lsrs r1, 24
+ mov r2, r8
+ lsrs r0, r2, 24
+ bl sub_8012FBC
+_08015F48:
+ adds r4, 0x1
+ ldr r0, _08016008 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08015F28
+_08015F52:
+ adds r5, r6, 0
+_08015F54:
+ mov r1, r10
+ ldrb r0, [r1]
+ subs r0, 0x1
+ cmp r5, r0
+ blt _08015F14
+ ldr r1, _0801600C @ =0x02000000
+ ldr r3, _08016010 @ =0x0001600e
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r2]
+ ldr r2, _08016014 @ =0x000160fc
+ adds r0, r1, r2
+ strb r3, [r0]
+ mov r12, r1
+_08015F74:
+ ldr r1, _08016014 @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bls _08015F80
+ b _08016236
+_08015F80:
+ ldr r3, _08016018 @ =gUnknown_02024A60
+ mov r8, r3
+ adds r6, r1, 0
+ movs r7, 0
+ ldr r5, _0801601C @ =gUnknown_030041C0
+_08015F8A:
+ ldr r0, _08016020 @ =gUnknown_02024C07
+ ldrb r4, [r6]
+ strb r4, [r0]
+ mov r0, r8
+ strb r4, [r0]
+ ldr r0, _08016024 @ =gUnknown_02024C7A
+ lsls r2, r4, 1
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08015FE8
+ ldr r0, _08016028 @ =gUnknown_02024C80
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ movs r4, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _08015FE8
+ ldrh r0, [r3]
+ ldr r2, _0801602C @ =0x0000fffe
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08016030 @ =gUnknown_081D9030
+ bl b_call_bc_move_exec
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x1]
+ movs r0, 0x73
+ strb r0, [r5, 0x2]
+ strb r7, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r4
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08015FE8:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ ldr r3, _0801600C @ =0x02000000
+ mov r12, r3
+ mov r1, r9
+ cmp r1, 0
+ beq _08015FFA
+ b _08016532
+_08015FFA:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _08015F8A
+ b _08016236
+ .align 2, 0
+_08016004: .4byte gUnknown_02024A7A
+_08016008: .4byte gUnknown_02024A68
+_0801600C: .4byte 0x02000000
+_08016010: .4byte 0x0001600e
+_08016014: .4byte 0x000160fc
+_08016018: .4byte gUnknown_02024A60
+_0801601C: .4byte gUnknown_030041C0
+_08016020: .4byte gUnknown_02024C07
+_08016024: .4byte gUnknown_02024C7A
+_08016028: .4byte gUnknown_02024C80
+_0801602C: .4byte 0x0000fffe
+_08016030: .4byte gUnknown_081D9030
+_08016034:
+ ldr r1, _080160CC @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bls _08016040
+ b _08016182
+_08016040:
+ adds r7, r1, 0
+ movs r3, 0x2
+ mov r10, r3
+ movs r0, 0
+ mov r8, r0
+ ldr r5, _080160D0 @ =gUnknown_030041C0
+_0801604C:
+ ldr r0, _080160D4 @ =gUnknown_02024C07
+ ldrb r4, [r7]
+ strb r4, [r0]
+ ldr r1, _080160D8 @ =gUnknown_02024A60
+ strb r4, [r1]
+ ldr r0, _080160DC @ =gUnknown_02024C7A
+ lsls r2, r4, 1
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080160B0
+ ldr r0, _080160E0 @ =gUnknown_02024C80
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ subs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r6, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _080160B0
+ ldrh r0, [r3]
+ ldr r2, _080160E4 @ =0x0000fffd
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _080160E8 @ =gUnknown_081D9030
+ bl b_call_bc_move_exec
+ ldr r0, _080160EC @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ movs r0, 0xFD
+ strb r0, [r5]
+ mov r3, r10
+ strb r3, [r5, 0x1]
+ movs r0, 0x71
+ strb r0, [r5, 0x2]
+ mov r0, r8
+ strb r0, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r6
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080160B0:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ ldr r1, _080160F0 @ =0x02000000
+ mov r12, r1
+ mov r2, r9
+ cmp r2, 0
+ beq _080160C2
+ b _08016532
+_080160C2:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0801604C
+ b _08016182
+ .align 2, 0
+_080160CC: .4byte 0x000160fc
+_080160D0: .4byte gUnknown_030041C0
+_080160D4: .4byte gUnknown_02024C07
+_080160D8: .4byte gUnknown_02024A60
+_080160DC: .4byte gUnknown_02024C7A
+_080160E0: .4byte gUnknown_02024C80
+_080160E4: .4byte 0x0000fffd
+_080160E8: .4byte gUnknown_081D9030
+_080160EC: .4byte gUnknown_02024D1E
+_080160F0: .4byte 0x02000000
+_080160F4:
+ ldr r1, _0801619C @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bhi _08016182
+ ldr r0, _080161A0 @ =gUnknown_02024A60
+ mov r10, r0
+ adds r7, r1, 0
+ movs r1, 0
+ mov r8, r1
+ ldr r5, _080161A4 @ =gUnknown_030041C0
+_0801610A:
+ ldr r0, _080161A8 @ =gUnknown_02024C07
+ ldrb r4, [r7]
+ strb r4, [r0]
+ mov r2, r10
+ strb r4, [r2]
+ ldr r1, _080161AC @ =gUnknown_02024C80
+ lsls r3, r4, 1
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _08016168
+ subs r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r6, 0xFF
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016168
+ ldr r2, _080161B0 @ =gUnknown_02024C7A
+ adds r2, r3, r2
+ ldrh r0, [r2]
+ ldr r3, _080161B4 @ =0x0000feff
+ adds r1, r3, 0
+ ands r0, r1
+ strh r0, [r2]
+ ldr r0, _080161B8 @ =gUnknown_081D9030
+ bl b_call_bc_move_exec
+ ldr r0, _080161BC @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ movs r0, 0xFD
+ strb r0, [r5]
+ movs r0, 0x2
+ strb r0, [r5, 0x1]
+ movs r0, 0x36
+ strb r0, [r5, 0x2]
+ mov r0, r8
+ strb r0, [r5, 0x3]
+ ldrb r0, [r5, 0x4]
+ orrs r0, r6
+ strb r0, [r5, 0x4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016168:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ ldr r1, _080161C0 @ =0x02000000
+ mov r12, r1
+ mov r2, r9
+ cmp r2, 0
+ beq _0801617A
+ b _08016532
+_0801617A:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _0801610A
+_08016182:
+ mov r3, r9
+ cmp r3, 0
+ beq _0801618A
+ b _08016532
+_0801618A:
+ ldr r0, _080161C4 @ =0x0001600e
+ add r0, r12
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0801619C @ =0x000160fc
+ add r0, r12
+ strb r3, [r0]
+ b _0801652A
+ .align 2, 0
+_0801619C: .4byte 0x000160fc
+_080161A0: .4byte gUnknown_02024A60
+_080161A4: .4byte gUnknown_030041C0
+_080161A8: .4byte gUnknown_02024C07
+_080161AC: .4byte gUnknown_02024C80
+_080161B0: .4byte gUnknown_02024C7A
+_080161B4: .4byte 0x0000feff
+_080161B8: .4byte gUnknown_081D9030
+_080161BC: .4byte gUnknown_02024D1E
+_080161C0: .4byte 0x02000000
+_080161C4: .4byte 0x0001600e
+_080161C8:
+ ldr r1, _08016250 @ =0x000160fc
+ add r1, r12
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bhi _08016236
+ ldr r7, _08016254 @ =gUnknown_02024A60
+ adds r5, r1, 0
+ ldr r6, _08016258 @ =gUnknown_02024C07
+_080161D8:
+ ldrb r4, [r5]
+ strb r4, [r6]
+ strb r4, [r7]
+ ldr r0, _0801625C @ =gUnknown_02024C7A
+ lsls r2, r4, 1
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801621C
+ ldr r0, _08016260 @ =gUnknown_02024C80
+ adds r1, r2, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x7]
+ subs r0, 0x1
+ strb r0, [r1, 0x7]
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801621C
+ ldrh r0, [r3]
+ ldr r2, _08016264 @ =0x0000ffdf
+ adds r1, r2, 0
+ ands r0, r1
+ strh r0, [r3]
+ ldr r0, _08016268 @ =gUnknown_081D9041
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801621C:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r3, _0801626C @ =0x02000000
+ mov r12, r3
+ mov r1, r9
+ cmp r1, 0
+ beq _0801622E
+ b _08016532
+_0801622E:
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bls _080161D8
+_08016236:
+ mov r2, r9
+ cmp r2, 0
+ beq _0801623E
+ b _08016532
+_0801623E:
+ ldr r0, _08016270 @ =0x0001600e
+ add r0, r12
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08016250 @ =0x000160fc
+ add r0, r12
+ strb r2, [r0]
+ b _0801652A
+ .align 2, 0
+_08016250: .4byte 0x000160fc
+_08016254: .4byte gUnknown_02024A60
+_08016258: .4byte gUnknown_02024C07
+_0801625C: .4byte gUnknown_02024C7A
+_08016260: .4byte gUnknown_02024C80
+_08016264: .4byte 0x0000ffdf
+_08016268: .4byte gUnknown_081D9041
+_0801626C: .4byte 0x02000000
+_08016270: .4byte 0x0001600e
+_08016274:
+ ldr r2, _080162FC @ =0x000160fc
+ add r2, r12
+ ldr r1, _08016300 @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080162E8
+ ldr r5, _08016304 @ =gUnknown_02024A60
+ adds r4, r2, 0
+ ldr r6, _08016308 @ =gUnknown_02024DDC
+_08016288:
+ ldr r1, _0801630C @ =gUnknown_02024A7A
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldrb r0, [r5]
+ adds r1, r0, r6
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080162CA
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080162CA
+ ldr r1, _08016310 @ =gBattleMons
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _080162CA
+ ldr r0, _08016314 @ =gUnknown_02024C08
+ strb r2, [r0]
+ ldr r0, _08016318 @ =gUnknown_081D939A
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080162CA:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r3, _0801631C @ =0x02000000
+ mov r12, r3
+ mov r1, r9
+ cmp r1, 0
+ beq _080162DC
+ b _08016532
+_080162DC:
+ ldr r1, _08016300 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08016288
+_080162E8:
+ mov r2, r9
+ cmp r2, 0
+ beq _080162F0
+ b _08016532
+_080162F0:
+ ldr r1, _08016320 @ =0x0001600e
+ add r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0801652A
+ .align 2, 0
+_080162FC: .4byte 0x000160fc
+_08016300: .4byte gUnknown_02024A68
+_08016304: .4byte gUnknown_02024A60
+_08016308: .4byte gUnknown_02024DDC
+_0801630C: .4byte gUnknown_02024A7A
+_08016310: .4byte gBattleMons
+_08016314: .4byte gUnknown_02024C08
+_08016318: .4byte gUnknown_081D939A
+_0801631C: .4byte 0x02000000
+_08016320: .4byte 0x0001600e
+_08016324:
+ ldr r3, _0801635C @ =word_2024DB8
+ ldrh r2, [r3]
+ movs r0, 0x7
+ ands r0, r2
+ cmp r0, 0
+ bne _08016332
+ b _080164F8
+_08016332:
+ movs r0, 0x4
+ ands r0, r2
+ cmp r0, 0
+ bne _0801637E
+ ldr r1, _08016360 @ =gUnknown_02024DBC
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016370
+ ldr r0, _08016364 @ =0x0000fffe
+ ands r0, r2
+ ldr r1, _08016368 @ =0x0000fffd
+ ands r0, r1
+ strh r0, [r3]
+ ldr r1, _0801636C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _0801639C
+ .align 2, 0
+_0801635C: .4byte word_2024DB8
+_08016360: .4byte gUnknown_02024DBC
+_08016364: .4byte 0x0000fffe
+_08016368: .4byte 0x0000fffd
+_0801636C: .4byte gUnknown_02024D1E
+_08016370:
+ movs r0, 0x2
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ bne _0801638A
+ b _08016398
+_0801637E:
+ movs r0, 0x2
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _08016398
+_0801638A:
+ ldr r1, _08016394 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0801639C
+ .align 2, 0
+_08016394: .4byte gUnknown_02024D1E
+_08016398:
+ ldr r0, _080163A0 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+_0801639C:
+ ldr r0, _080163A4 @ =gUnknown_081D8F62
+ b _080164EA
+ .align 2, 0
+_080163A0: .4byte gUnknown_02024D1E
+_080163A4: .4byte gUnknown_081D8F62
+_080163A8:
+ ldr r3, _080163DC @ =word_2024DB8
+ ldrh r2, [r3]
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _080163B6
+ b _080164F8
+_080163B6:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _080163F0
+ ldr r1, _080163E0 @ =gUnknown_02024DBC
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080163F0
+ ldr r0, _080163E4 @ =0x0000fff7
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _080163E8 @ =gUnknown_02024C10
+ ldr r0, _080163EC @ =gUnknown_081D8FFF
+ b _080163F4
+ .align 2, 0
+_080163DC: .4byte word_2024DB8
+_080163E0: .4byte gUnknown_02024DBC
+_080163E4: .4byte 0x0000fff7
+_080163E8: .4byte gUnknown_02024C10
+_080163EC: .4byte gUnknown_081D8FFF
+_080163F0:
+ ldr r1, _0801640C @ =gUnknown_02024C10
+ ldr r0, _08016410 @ =gUnknown_081D8F7D
+_080163F4:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r1, _08016414 @ =0x02000000
+ ldr r0, _08016418 @ =0x000160a4
+ adds r1, r0
+ movs r2, 0
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r0, _0801641C @ =gUnknown_02024D1E
+ strb r2, [r0, 0x5]
+ b _080164E8
+ .align 2, 0
+_0801640C: .4byte gUnknown_02024C10
+_08016410: .4byte gUnknown_081D8F7D
+_08016414: .4byte 0x02000000
+_08016418: .4byte 0x000160a4
+_0801641C: .4byte gUnknown_02024D1E
+_08016420:
+ ldr r3, _08016450 @ =word_2024DB8
+ ldrh r2, [r3]
+ movs r0, 0x60
+ ands r0, r2
+ cmp r0, 0
+ beq _0801647C
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _08016464
+ ldr r1, _08016454 @ =gUnknown_02024DBC
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08016464
+ ldr r0, _08016458 @ =0x0000ffdf
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _0801645C @ =gUnknown_02024C10
+ ldr r0, _08016460 @ =gUnknown_081D9016
+ b _08016468
+ .align 2, 0
+_08016450: .4byte word_2024DB8
+_08016454: .4byte gUnknown_02024DBC
+_08016458: .4byte 0x0000ffdf
+_0801645C: .4byte gUnknown_02024C10
+_08016460: .4byte gUnknown_081D9016
+_08016464:
+ ldr r1, _08016484 @ =gUnknown_02024C10
+ ldr r0, _08016488 @ =gUnknown_081D9008
+_08016468:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r0, [r3]
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801647C:
+ ldr r2, _0801648C @ =0x02000000
+ ldr r0, _08016490 @ =0x0001600e
+ adds r1, r2, r0
+ b _080164FE
+ .align 2, 0
+_08016484: .4byte gUnknown_02024C10
+_08016488: .4byte gUnknown_081D9008
+_0801648C: .4byte 0x02000000
+_08016490: .4byte 0x0001600e
+_08016494:
+ ldr r3, _080164BC @ =word_2024DB8
+ ldrh r2, [r3]
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _080164F8
+ ldr r1, _080164C0 @ =gUnknown_02024DBC
+ adds r1, 0x28
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _080164D0
+ ldr r0, _080164C4 @ =0x0000ff7f
+ ands r0, r2
+ strh r0, [r3]
+ ldr r1, _080164C8 @ =gUnknown_02024C10
+ ldr r0, _080164CC @ =gUnknown_081D8FFF
+ b _080164D4
+ .align 2, 0
+_080164BC: .4byte word_2024DB8
+_080164C0: .4byte gUnknown_02024DBC
+_080164C4: .4byte 0x0000ff7f
+_080164C8: .4byte gUnknown_02024C10
+_080164CC: .4byte gUnknown_081D8FFF
+_080164D0:
+ ldr r1, _08016508 @ =gUnknown_02024C10
+ ldr r0, _0801650C @ =gUnknown_081D8F7D
+_080164D4:
+ str r0, [r1]
+ adds r3, r1, 0
+ ldr r0, _08016510 @ =0x02000000
+ ldr r1, _08016514 @ =0x000160a4
+ adds r0, r1
+ movs r1, 0xD
+ strb r1, [r0]
+ ldr r1, _08016518 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080164E8:
+ ldr r0, [r3]
+_080164EA:
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080164F8:
+ ldr r2, _08016510 @ =0x02000000
+ ldr r3, _0801651C @ =0x0001600e
+ adds r1, r2, r3
+_080164FE:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ b _0801652A
+ .align 2, 0
+_08016508: .4byte gUnknown_02024C10
+_0801650C: .4byte gUnknown_081D8F7D
+_08016510: .4byte 0x02000000
+_08016514: .4byte 0x000160a4
+_08016518: .4byte gUnknown_02024D1E
+_0801651C: .4byte 0x0001600e
+_08016520:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801652A:
+ mov r0, r9
+ cmp r0, 0
+ bne _08016532
+ b _08015E8A
+_08016532:
+ ldr r0, _08016550 @ =gUnknown_030042D4
+ ldr r1, [r0]
+ ldr r0, _08016554 @ =sub_8011E8C
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08016550: .4byte gUnknown_030042D4
+_08016554: .4byte sub_8011E8C
+ thumb_func_end sub_8015DFC
+
+ thumb_func_start sub_8016558
+sub_8016558: @ 8016558
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r9, r0
+ ldr r2, _08016578 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0801657C @ =0x01000020
+ orrs r0, r1
+ str r0, [r2]
+ bl _08017088
+ .align 2, 0
+_08016578: .4byte gUnknown_02024C6C
+_0801657C: .4byte 0x01000020
+_08016580:
+ ldr r3, _080165B4 @ =gUnknown_02024A60
+ ldr r4, _080165B8 @ =gUnknown_02024C07
+ ldr r1, _080165BC @ =gUnknown_02024A7A
+ adds r5, r7, r2
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ strb r0, [r3]
+ ldr r0, _080165C0 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _080165C4 @ =gBitTable
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ adds r6, r3, 0
+ cmp r1, 0
+ beq _080165C8
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ bl _08017088
+ .align 2, 0
+_080165B4: .4byte gUnknown_02024A60
+_080165B8: .4byte gUnknown_02024C07
+_080165BC: .4byte gUnknown_02024A7A
+_080165C0: .4byte gUnknown_02024C0C
+_080165C4: .4byte gBitTable
+_080165C8:
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bls _080165D8
+ bl _08017078
+_080165D8:
+ lsls r0, 2
+ ldr r1, _080165E4 @ =_080165E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080165E4: .4byte _080165E8
+ .align 2, 0
+_080165E8:
+ .4byte _08016638
+ .4byte _080166A8
+ .4byte _080166D8
+ .4byte _08016730
+ .4byte _080167C8
+ .4byte _08016828
+ .4byte _080168C0
+ .4byte _0801691C
+ .4byte _0801697C
+ .4byte _080169DC
+ .4byte _08016B78
+ .4byte _08016CA0
+ .4byte _08016D58
+ .4byte _08016E30
+ .4byte _08016EFC
+ .4byte _08016F20
+ .4byte _08016F6C
+ .4byte _08016F9C
+ .4byte _08016704
+ .4byte _08017064
+_08016638:
+ ldr r1, _08016694 @ =gUnknown_02024C98
+ ldrb r3, [r6]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _08016686
+ ldr r0, _08016698 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r3
+ adds r0, r1, r0
+ ldrh r2, [r0, 0x28]
+ ldrh r7, [r0, 0x2C]
+ cmp r2, r7
+ beq _08016686
+ cmp r2, 0
+ beq _08016686
+ ldr r1, _0801669C @ =gUnknown_02024BEC
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08016670
+ movs r0, 0x1
+ str r0, [r1]
+_08016670:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldr r0, _080166A0 @ =gUnknown_081D93D1
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016686:
+ ldr r1, _080166A4 @ =0x02000000
+ movs r0, 0xB0
+ lsls r0, 9
+ adds r1, r0
+ bl _08017072
+ .align 2, 0
+_08016694: .4byte gUnknown_02024C98
+_08016698: .4byte gBattleMons
+_0801669C: .4byte gUnknown_02024BEC
+_080166A0: .4byte gUnknown_081D93D1
+_080166A4: .4byte 0x02000000
+_080166A8:
+ ldrb r1, [r6]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080166C8
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080166C8:
+ ldr r1, _080166D4 @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r2
+ bl _08017072
+ .align 2, 0
+_080166D4: .4byte 0x02000000
+_080166D8:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _080166F2
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080166F2:
+ ldr r1, _08016700 @ =0x02000000
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r1, r3
+ bl _08017072
+ .align 2, 0
+_08016700: .4byte 0x02000000
+_08016704:
+ ldrb r1, [r6]
+ movs r0, 0x1
+ movs r2, 0x1
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801671E
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801671E:
+ ldr r1, _0801672C @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ bl _08017072
+ .align 2, 0
+_0801672C: .4byte 0x02000000
+_08016730:
+ ldr r0, _080167A8 @ =gUnknown_02024C98
+ ldrb r2, [r6]
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801679C
+ ldr r3, _080167AC @ =gBattleMons
+ movs r5, 0x3
+ ands r5, r1
+ movs r1, 0x58
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801679C
+ adds r0, r2, 0
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801679C
+ ldr r0, _080167B0 @ =gUnknown_02024C08
+ strb r5, [r0]
+ ldr r2, _080167B4 @ =gUnknown_02024BEC
+ ldrb r0, [r6]
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _0801677C
+ movs r0, 0x1
+ str r0, [r2]
+_0801677C:
+ ldr r1, _080167B8 @ =0x02000000
+ ldr r7, _080167BC @ =0x000160a4
+ adds r0, r1, r7
+ strb r5, [r0]
+ ldrb r0, [r4]
+ ldr r2, _080167C0 @ =0x000160a5
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, _080167C4 @ =gUnknown_081D904B
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801679C:
+ ldr r1, _080167B8 @ =0x02000000
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r1, r3
+ bl _08017072
+ .align 2, 0
+_080167A8: .4byte gUnknown_02024C98
+_080167AC: .4byte gBattleMons
+_080167B0: .4byte gUnknown_02024C08
+_080167B4: .4byte gUnknown_02024BEC
+_080167B8: .4byte 0x02000000
+_080167BC: .4byte 0x000160a4
+_080167C0: .4byte 0x000160a5
+_080167C4: .4byte gUnknown_081D904B
+_080167C8:
+ ldr r2, _08016818 @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801680A
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _0801680A
+ ldr r2, _0801681C @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _080167FA
+ movs r0, 0x1
+ str r0, [r2]
+_080167FA:
+ ldr r0, _08016820 @ =gUnknown_081D9518
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801680A:
+ ldr r1, _08016824 @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ bl _08017072
+ .align 2, 0
+_08016818: .4byte gBattleMons
+_0801681C: .4byte gUnknown_02024BEC
+_08016820: .4byte gUnknown_081D9518
+_08016824: .4byte 0x02000000
+_08016828:
+ ldr r4, _080168B0 @ =gBattleMons
+ ldrb r0, [r6]
+ movs r7, 0x58
+ mov r8, r7
+ mov r2, r8
+ muls r2, r0
+ adds r3, r4, 0
+ adds r3, 0x4C
+ adds r0, r2, r3
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080168A2
+ adds r1, r2, r4
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _080168A2
+ ldr r5, _080168B4 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 4
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801685C
+ movs r0, 0x1
+ str r0, [r5]
+_0801685C:
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r2, r0, r3
+ ldr r1, [r2]
+ movs r4, 0xF0
+ lsls r4, 4
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, r4
+ beq _0801687C
+ movs r7, 0x80
+ lsls r7, 1
+ adds r0, r1, r7
+ str r0, [r2]
+_0801687C:
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r4
+ lsrs r0, 8
+ ldr r1, [r5]
+ muls r0, r1
+ str r0, [r5]
+ ldr r0, _080168B8 @ =gUnknown_081D9518
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080168A2:
+ ldr r1, _080168BC @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r2
+ bl _08017072
+ .align 2, 0
+_080168B0: .4byte gBattleMons
+_080168B4: .4byte gUnknown_02024BEC
+_080168B8: .4byte gUnknown_081D9518
+_080168BC: .4byte 0x02000000
+_080168C0:
+ ldr r2, _0801690C @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08016902
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08016902
+ ldr r2, _08016910 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 3
+ str r0, [r2]
+ cmp r0, 0
+ bne _080168F2
+ movs r0, 0x1
+ str r0, [r2]
+_080168F2:
+ ldr r0, _08016914 @ =gUnknown_081D953A
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016902:
+ ldr r1, _08016918 @ =0x02000000
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r1, r3
+ b _08017072
+ .align 2, 0
+_0801690C: .4byte gBattleMons
+_08016910: .4byte gUnknown_02024BEC
+_08016914: .4byte gUnknown_081D953A
+_08016918: .4byte 0x02000000
+_0801691C:
+ ldr r2, _0801696C @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 20
+ ands r0, r1
+ cmp r0, 0
+ beq _08016960
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08016960
+ ldr r2, _08016970 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _08016950
+ movs r0, 0x1
+ str r0, [r2]
+_08016950:
+ ldr r0, _08016974 @ =gUnknown_081D9613
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016960:
+ ldr r1, _08016978 @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ b _08017072
+ .align 2, 0
+_0801696C: .4byte gBattleMons
+_08016970: .4byte gUnknown_02024BEC
+_08016974: .4byte gUnknown_081D9613
+_08016978: .4byte 0x02000000
+_0801697C:
+ ldr r2, _080169CC @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 21
+ ands r0, r1
+ cmp r0, 0
+ beq _080169C0
+ adds r1, r3, r2
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _080169C0
+ ldr r2, _080169D0 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _080169B0
+ movs r0, 0x1
+ str r0, [r2]
+_080169B0:
+ ldr r0, _080169D4 @ =gUnknown_081D9624
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_080169C0:
+ ldr r1, _080169D8 @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_080169CC: .4byte gBattleMons
+_080169D0: .4byte gUnknown_02024BEC
+_080169D4: .4byte gUnknown_081D9624
+_080169D8: .4byte 0x02000000
+_080169DC:
+ ldr r0, _08016A8C @ =gBattleMons
+ mov r8, r0
+ ldrb r0, [r6]
+ movs r1, 0x58
+ mov r10, r1
+ mov r1, r10
+ muls r1, r0
+ mov r5, r8
+ adds r5, 0x50
+ adds r3, r1, r5
+ ldr r2, [r3]
+ movs r4, 0xE0
+ lsls r4, 8
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08016AF6
+ mov r7, r8
+ adds r0, r1, r7
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08016AF6
+ ldr r1, _08016A90 @ =0xffffe000
+ adds r0, r2, r1
+ str r0, [r3]
+ ldrb r1, [r6]
+ mov r0, r10
+ muls r0, r1
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08016AB4
+ ldr r2, _08016A94 @ =0x02000000
+ lsls r0, r1, 1
+ ldr r4, _08016A98 @ =0x00016004
+ adds r0, r4
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r3, _08016A9C @ =0x000160a4
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldrb r0, [r6]
+ lsls r0, 1
+ subs r3, 0x9F
+ adds r0, r3
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r5, _08016AA0 @ =0x000160a5
+ adds r0, r2, r5
+ strb r1, [r0]
+ ldr r1, _08016AA4 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r4
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08016AA8 @ =gUnknown_02024C10
+ ldr r0, _08016AAC @ =gUnknown_081D95E2
+ str r0, [r1]
+ ldr r2, _08016AB0 @ =gUnknown_02024BEC
+ ldrb r0, [r6]
+ mov r7, r10
+ muls r7, r0
+ adds r0, r7, 0
+ add r0, r8
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 4
+ str r0, [r2]
+ cmp r0, 0
+ bne _08016AE6
+ movs r0, 0x1
+ str r0, [r2]
+ b _08016AE6
+ .align 2, 0
+_08016A8C: .4byte gBattleMons
+_08016A90: .4byte 0xffffe000
+_08016A94: .4byte 0x02000000
+_08016A98: .4byte 0x00016004
+_08016A9C: .4byte 0x000160a4
+_08016AA0: .4byte 0x000160a5
+_08016AA4: .4byte gUnknown_030041C0
+_08016AA8: .4byte gUnknown_02024C10
+_08016AAC: .4byte gUnknown_081D95E2
+_08016AB0: .4byte gUnknown_02024BEC
+_08016AB4:
+ ldr r1, _08016B00 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldr r2, _08016B04 @ =0x02000000
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r3, _08016B08 @ =0x00016004
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r5, _08016B0C @ =0x00016005
+ adds r0, r5
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08016B10 @ =gUnknown_02024C10
+ ldr r0, _08016B14 @ =gUnknown_081D95F4
+ str r0, [r1]
+_08016AE6:
+ ldr r0, [r1]
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016AF6:
+ ldr r1, _08016B04 @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_08016B00: .4byte gUnknown_030041C0
+_08016B04: .4byte 0x02000000
+_08016B08: .4byte 0x00016004
+_08016B0C: .4byte 0x00016005
+_08016B10: .4byte gUnknown_02024C10
+_08016B14: .4byte gUnknown_081D95F4
+_08016B18:
+ movs r0, 0x8
+ negs r0, r0
+ ands r4, r0
+ str r4, [r2]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ mov r0, r10
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08016B68 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _08016B6C @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r0, _08016B70 @ =gUnknown_081D950F
+ bl b_call_bc_move_exec
+ ldr r4, _08016B74 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08016BE0
+ .align 2, 0
+_08016B68: .4byte 0xf7ffffff
+_08016B6C: .4byte gUnknown_02024D1E
+_08016B70: .4byte gUnknown_081D950F
+_08016B74: .4byte gUnknown_02024A60
+_08016B78:
+ ldr r2, _08016BF4 @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x70
+ ands r1, r0
+ adds r7, r2, 0
+ cmp r1, 0
+ beq _08016C82
+ movs r0, 0
+ strb r0, [r4]
+ mov r2, r8
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _08016BE0
+ mov r10, r7
+ adds r6, r4, 0
+ movs r3, 0x58
+ mov r8, r3
+ movs r5, 0x4C
+ adds r5, r7
+ mov r9, r5
+ str r1, [sp, 0x4]
+ movs r0, 0x7
+ mov r12, r0
+_08016BB2:
+ ldrb r1, [r6]
+ mov r3, r8
+ muls r3, r1
+ mov r5, r9
+ adds r2, r3, r5
+ ldr r4, [r2]
+ adds r0, r4, 0
+ mov r5, r12
+ ands r0, r5
+ cmp r0, 0
+ beq _08016BD2
+ adds r0, r3, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ bne _08016B18
+_08016BD2:
+ adds r0, r1, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [sp, 0x4]
+ cmp r0, r1
+ bcc _08016BB2
+_08016BE0:
+ ldr r2, _08016BF8 @ =gUnknown_02024C07
+ ldr r1, _08016BFC @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08016C00
+ movs r2, 0x2
+ mov r9, r2
+ b _0801707E
+ .align 2, 0
+_08016BF4: .4byte gBattleMons
+_08016BF8: .4byte gUnknown_02024C07
+_08016BFC: .4byte gUnknown_02024A68
+_08016C00:
+ ldr r5, _08016C38 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ strb r0, [r2]
+ ldr r2, _08016C3C @ =gBattleMons
+ ldrb r0, [r5]
+ movs r7, 0x58
+ adds r1, r0, 0
+ muls r1, r7
+ adds r6, r2, 0
+ adds r6, 0x50
+ adds r1, r6
+ ldr r0, [r1]
+ subs r0, 0x10
+ str r0, [r1]
+ ldrb r0, [r5]
+ bl sub_8015660
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _08016C44
+ ldrb r0, [r5]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08016C40 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08016C78
+ .align 2, 0
+_08016C38: .4byte gUnknown_02024A60
+_08016C3C: .4byte gBattleMons
+_08016C40: .4byte gUnknown_02024D1E
+_08016C44:
+ ldrb r3, [r5]
+ adds r0, r3, 0
+ muls r0, r7
+ adds r2, r0, r6
+ ldr r0, [r2]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _08016C6C
+ ldr r0, _08016C68 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ b _08016C78
+ .align 2, 0
+_08016C68: .4byte gUnknown_02024D1E
+_08016C6C:
+ ldr r1, _08016C94 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ adds r0, r3, 0
+ bl b_cancel_multi_turn_move_maybe
+_08016C78:
+ ldr r0, _08016C98 @ =gUnknown_081D957E
+ bl b_call_bc_move_exec
+ movs r3, 0x1
+ mov r9, r3
+_08016C82:
+ mov r5, r9
+ cmp r5, 0x2
+ bne _08016C8A
+ b _08017078
+_08016C8A:
+ ldr r1, _08016C9C @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_08016C94: .4byte gUnknown_02024D1E
+_08016C98: .4byte gUnknown_081D957E
+_08016C9C: .4byte 0x02000000
+_08016CA0:
+ ldr r1, _08016CD8 @ =gBattleMons
+ ldrb r0, [r6]
+ movs r7, 0x58
+ muls r0, r7
+ adds r5, r1, 0
+ adds r5, 0x50
+ adds r2, r0, r5
+ ldr r1, [r2]
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08016D3C
+ ldr r3, _08016CDC @ =0xfffffc00
+ adds r0, r1, r3
+ str r0, [r2]
+ ldrb r0, [r6]
+ bl sub_8015660
+ lsls r0, 24
+ cmp r0, 0
+ beq _08016CE0
+ ldrb r0, [r6]
+ bl b_cancel_multi_turn_move_maybe
+ b _08016D3C
+ .align 2, 0
+_08016CD8: .4byte gBattleMons
+_08016CDC: .4byte 0xfffffc00
+_08016CE0:
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r2, r0, r5
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _08016D3C
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _08016D3C
+ ldr r0, _08016D48 @ =0xffffefff
+ ands r1, r0
+ str r1, [r2]
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r0, r5
+ ldr r0, [r0]
+ movs r4, 0x7
+ ands r0, r4
+ cmp r0, 0
+ bne _08016D3C
+ ldr r1, _08016D4C @ =gUnknown_02024D1E
+ movs r0, 0x47
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_801E3EC
+ ldrb r0, [r6]
+ muls r0, r7
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08016D32
+ ldr r0, _08016D50 @ =gUnknown_081D9587
+ bl b_call_bc_move_exec
+_08016D32:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016D3C:
+ ldr r1, _08016D54 @ =0x02000000
+ movs r5, 0xB0
+ lsls r5, 9
+ adds r1, r5
+ b _08017072
+ .align 2, 0
+_08016D48: .4byte 0xffffefff
+_08016D4C: .4byte gUnknown_02024D1E
+_08016D50: .4byte gUnknown_081D9587
+_08016D54: .4byte 0x02000000
+_08016D58:
+ ldr r0, _08016DD4 @ =gUnknown_02024CA8
+ ldrb r3, [r6]
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r5, r1, r0
+ ldrb r1, [r5, 0xB]
+ lsls r1, 28
+ adds r7, r0, 0
+ cmp r1, 0
+ beq _08016E1E
+ movs r4, 0
+ ldr r2, _08016DD8 @ =gBattleMons
+ movs r0, 0x58
+ adds r1, r3, 0
+ muls r1, r0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08016DAC
+ mov r12, r7
+ mov r8, r2
+ adds r5, r6, 0
+ movs r3, 0x58
+_08016D8C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08016DAC
+ ldrb r2, [r5]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r12
+ lsls r0, r4, 1
+ muls r2, r3
+ adds r0, r2
+ add r0, r8
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08016D8C
+_08016DAC:
+ cmp r4, 0x4
+ bne _08016DDC
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0
+ strh r1, [r0, 0x4]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ b _08016E1E
+ .align 2, 0
+_08016DD4: .4byte gUnknown_02024CA8
+_08016DD8: .4byte gBattleMons
+_08016DDC:
+ ldrb r0, [r6]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrb r3, [r2, 0xB]
+ lsls r1, r3, 28
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0xB]
+ adds r2, r1, 0
+ cmp r2, 0
+ bne _08016E1E
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r2, [r0, 0x4]
+ ldr r0, _08016E28 @ =gUnknown_081D9148
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016E1E:
+ ldr r1, _08016E2C @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_08016E28: .4byte gUnknown_081D9148
+_08016E2C: .4byte 0x02000000
+_08016E30:
+ ldr r3, _08016E7C @ =gUnknown_02024CA8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ ldrb r5, [r2, 0xE]
+ lsls r4, r5, 28
+ cmp r4, 0
+ beq _08016EE8
+ ldr r0, _08016E80 @ =gBattleMons
+ mov r8, r0
+ ldrb r0, [r2, 0xC]
+ lsls r0, 1
+ movs r7, 0x58
+ muls r1, r7
+ adds r0, r1
+ mov r1, r8
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ ldrh r1, [r2, 0x6]
+ cmp r0, r1
+ beq _08016E84
+ movs r0, 0
+ strh r0, [r2, 0x6]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ b _08016EE8
+ .align 2, 0
+_08016E7C: .4byte gUnknown_02024CA8
+_08016E80: .4byte gBattleMons
+_08016E84:
+ lsrs r1, r4, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r4, 0x10
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r5
+ orrs r0, r1
+ strb r0, [r2, 0xE]
+ cmp r1, 0
+ beq _08016EB8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ muls r1, r7
+ ldrb r0, [r0, 0xC]
+ adds r1, r0
+ mov r0, r8
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08016EE8
+_08016EB8:
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x6]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0xE]
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0xE]
+ ldr r0, _08016EF4 @ =gUnknown_081D914F
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08016EE8:
+ ldr r1, _08016EF8 @ =0x02000000
+ movs r2, 0xB0
+ lsls r2, 9
+ adds r1, r2
+ b _08017072
+ .align 2, 0
+_08016EF4: .4byte gUnknown_081D914F
+_08016EF8: .4byte 0x02000000
+_08016EFC:
+ ldr r0, _08016F1C @ =gUnknown_02024C98
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ beq _08016F14
+ adds r0, r2, 0
+ subs r0, 0x8
+ str r0, [r1]
+_08016F14:
+ movs r1, 0xB0
+ lsls r1, 9
+ b _08017070
+ .align 2, 0
+_08016F1C: .4byte gUnknown_02024C98
+_08016F20:
+ ldr r2, _08016F60 @ =gUnknown_02024CA8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ ldrb r2, [r3, 0x12]
+ lsls r1, r2, 28
+ cmp r1, 0
+ beq _08016F5A
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x12]
+ cmp r1, 0
+ bne _08016F5A
+ ldr r0, _08016F64 @ =gUnknown_02024C98
+ ldrb r2, [r6]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08016F68 @ =0xfffffdff
+ ands r0, r1
+ str r0, [r2]
+_08016F5A:
+ movs r1, 0xB0
+ lsls r1, 9
+ b _08017070
+ .align 2, 0
+_08016F60: .4byte gUnknown_02024CA8
+_08016F64: .4byte gUnknown_02024C98
+_08016F68: .4byte 0xfffffdff
+_08016F6C:
+ ldr r2, _08016F98 @ =gUnknown_02024CA8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ ldrb r2, [r3, 0x13]
+ lsls r1, r2, 28
+ cmp r1, 0
+ beq _08016F92
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x13]
+_08016F92:
+ movs r1, 0xB0
+ lsls r1, 9
+ b _08017070
+ .align 2, 0
+_08016F98: .4byte gUnknown_02024CA8
+_08016F9C:
+ ldr r4, _0801704C @ =gUnknown_02024C98
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r3, 0xC0
+ lsls r3, 5
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08017042
+ ldr r5, _08017050 @ =0xfffff800
+ adds r0, r1, r5
+ str r0, [r2]
+ ldrb r2, [r6]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ bne _08017042
+ ldr r3, _08017054 @ =gBattleMons
+ movs r5, 0x58
+ adds r1, r2, 0
+ muls r1, r5
+ adds r4, r3, 0
+ adds r4, 0x4C
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08017042
+ adds r0, r1, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ beq _08017042
+ cmp r0, 0xF
+ beq _08017042
+ adds r0, r2, 0
+ bl sub_8025A44
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017042
+ ldrb r0, [r6]
+ bl b_cancel_multi_turn_move_maybe
+ bl Random
+ ldrb r1, [r6]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r6]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08017058 @ =gUnknown_02024C0A
+ ldrb r0, [r6]
+ strb r0, [r1]
+ ldr r0, _0801705C @ =gUnknown_081D964C
+ bl b_call_bc_move_exec
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08017042:
+ ldr r1, _08017060 @ =0x02000000
+ movs r7, 0xB0
+ lsls r7, 9
+ adds r1, r7
+ b _08017072
+ .align 2, 0
+_0801704C: .4byte gUnknown_02024C98
+_08017050: .4byte 0xfffff800
+_08017054: .4byte gBattleMons
+_08017058: .4byte gUnknown_02024C0A
+_0801705C: .4byte gUnknown_081D964C
+_08017060: .4byte 0x02000000
+_08017064:
+ movs r1, 0xB0
+ lsls r1, 9
+ add r1, r10
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08017084 @ =0x00016001
+_08017070:
+ add r1, r10
+_08017072:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08017078:
+ mov r0, r9
+ cmp r0, 0
+ beq _08017088
+_0801707E:
+ mov r0, r9
+ b _080170B8
+ .align 2, 0
+_08017084: .4byte 0x00016001
+_08017088:
+ ldr r7, _080170C8 @ =0x02000000
+ ldr r2, _080170CC @ =0x00016001
+ adds r0, r7, r2
+ ldr r1, _080170D0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ mov r10, r7
+ mov r8, r1
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _080170AC
+ movs r3, 0xB0
+ lsls r3, 9
+ adds r0, r7, r3
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bhi _080170AC
+ bl _08016580
+_080170AC:
+ ldr r0, _080170D4 @ =gUnknown_02024C6C
+ ldr r1, [r0]
+ ldr r2, _080170D8 @ =0xfeffffdf
+ ands r1, r2
+ str r1, [r0]
+ movs r0, 0
+_080170B8:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080170C8: .4byte 0x02000000
+_080170CC: .4byte 0x00016001
+_080170D0: .4byte gUnknown_02024A68
+_080170D4: .4byte gUnknown_02024C6C
+_080170D8: .4byte 0xfeffffdf
+ thumb_func_end sub_8016558
+
+ thumb_func_start sub_80170DC
+sub_80170DC: @ 80170DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _08017108 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0801710C @ =0x01000020
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08017110 @ =0x02000000
+ ldr r3, _08017114 @ =0x00016110
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ mov r8, r1
+ cmp r0, 0
+ beq _08017118
+ cmp r0, 0x1
+ bne _08017104
+ b _08017258
+_08017104:
+ b _08017380
+ .align 2, 0
+_08017108: .4byte gUnknown_02024C6C
+_0801710C: .4byte 0x01000020
+_08017110: .4byte 0x02000000
+_08017114: .4byte 0x00016110
+_08017118:
+ ldr r2, _0801715C @ =0x00016111
+ add r2, r8
+ ldr r0, _08017160 @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ mov r9, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _0801712A
+ b _08017248
+_0801712A:
+ ldr r4, _08017164 @ =gUnknown_02024A60
+ adds r5, r2, 0
+ ldr r1, _08017168 @ =gUnknown_02024DBC
+ mov r12, r1
+ movs r2, 0x8
+ add r2, r12
+ mov r10, r2
+ mov r7, r12
+ adds r7, 0x18
+ ldr r6, _0801716C @ =gUnknown_030041C0
+_0801713E:
+ ldrb r3, [r5]
+ strb r3, [r4]
+ ldr r0, _08017170 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08017174 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08017178
+ adds r0, r3, 0x1
+ strb r0, [r5]
+ b _0801723C
+ .align 2, 0
+_0801715C: .4byte 0x00016111
+_08017160: .4byte gUnknown_02024A68
+_08017164: .4byte gUnknown_02024A60
+_08017168: .4byte gUnknown_02024DBC
+_0801716C: .4byte gUnknown_030041C0
+_08017170: .4byte gUnknown_02024C0C
+_08017174: .4byte gBitTable
+_08017178:
+ adds r0, r3, 0x1
+ strb r0, [r5]
+ ldr r1, _080171B4 @ =gUnknown_02024DBC
+ ldrb r0, [r4]
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801723C
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _0801723C
+ ldr r1, _080171B8 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801723C
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, 0xF8
+ bne _080171C0
+ ldr r0, _080171BC @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+ b _080171C6
+ .align 2, 0
+_080171B4: .4byte gUnknown_02024DBC
+_080171B8: .4byte gBattleMons
+_080171BC: .4byte gUnknown_02024D1E
+_080171C0:
+ ldr r1, _08017220 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080171C6:
+ movs r0, 0xFD
+ strb r0, [r6]
+ movs r0, 0x2
+ strb r0, [r6, 0x1]
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ strb r0, [r6, 0x2]
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r6, 0x3]
+ movs r0, 0xFF
+ strb r0, [r6, 0x4]
+ ldr r3, _08017224 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r3]
+ ldr r1, _08017228 @ =gUnknown_02024C07
+ mov r0, r12
+ adds r0, 0x4
+ ldrb r2, [r4]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _0801722C @ =gUnknown_02024BEC
+ ldrb r0, [r4]
+ lsls r0, 2
+ add r0, r10
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r2, _08017230 @ =gUnknown_02024D68
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, _08017234 @ =0x0000ffff
+ str r1, [r0]
+ ldr r0, _08017238 @ =gUnknown_081D92D7
+ b _08017364
+ .align 2, 0
+_08017220: .4byte gUnknown_02024D1E
+_08017224: .4byte gUnknown_02024C08
+_08017228: .4byte gUnknown_02024C07
+_0801722C: .4byte gUnknown_02024BEC
+_08017230: .4byte gUnknown_02024D68
+_08017234: .4byte 0x0000ffff
+_08017238: .4byte gUnknown_081D92D7
+_0801723C:
+ ldrb r0, [r5]
+ mov r3, r9
+ ldrb r3, [r3]
+ cmp r0, r3
+ bcs _08017248
+ b _0801713E
+_08017248:
+ ldr r1, _0801729C @ =0x00016110
+ add r1, r8
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080172A0 @ =0x00016111
+ add r0, r8
+ strb r2, [r0]
+_08017258:
+ ldr r2, _080172A0 @ =0x00016111
+ add r2, r8
+ ldr r0, _080172A4 @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ mov r9, r0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _0801726A
+ b _08017380
+_0801726A:
+ ldr r5, _080172A8 @ =gUnknown_02024A60
+ adds r3, r2, 0
+ ldr r4, _080172AC @ =gUnknown_030041C0
+ ldr r7, _080172B0 @ =gUnknown_02024CA8
+_08017272:
+ ldr r2, _080172B4 @ =gUnknown_02024C07
+ ldr r1, _080172B8 @ =gUnknown_02024A7A
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ strb r0, [r5]
+ ldr r0, _080172BC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _080172C0 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080172C4
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ b _08017374
+ .align 2, 0
+_0801729C: .4byte 0x00016110
+_080172A0: .4byte 0x00016111
+_080172A4: .4byte gUnknown_02024A68
+_080172A8: .4byte gUnknown_02024A60
+_080172AC: .4byte gUnknown_030041C0
+_080172B0: .4byte gUnknown_02024CA8
+_080172B4: .4byte gUnknown_02024C07
+_080172B8: .4byte gUnknown_02024A7A
+_080172BC: .4byte gUnknown_02024C0C
+_080172C0: .4byte gBitTable
+_080172C4:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldr r6, _08017334 @ =gUnknown_02024C98
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08017374
+ movs r0, 0xFD
+ strb r0, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0xF]
+ lsls r0, 28
+ lsrs r0, 28
+ strb r0, [r4, 0x4]
+ movs r0, 0xFF
+ strb r0, [r4, 0x5]
+ ldrb r2, [r5]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r4, r0, r7
+ ldrb r3, [r4, 0xF]
+ lsls r1, r3, 28
+ cmp r1, 0
+ bne _08017348
+ lsls r2, 2
+ adds r2, r6
+ ldr r0, [r2]
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08017338 @ =gUnknown_02024BEC
+ ldr r2, _0801733C @ =gBattleMons
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ str r0, [r3]
+ ldr r1, _08017340 @ =gUnknown_02024C10
+ ldr r0, _08017344 @ =gUnknown_081D9202
+ b _08017360
+ .align 2, 0
+_08017334: .4byte gUnknown_02024C98
+_08017338: .4byte gUnknown_02024BEC
+_0801733C: .4byte gBattleMons
+_08017340: .4byte gUnknown_02024C10
+_08017344: .4byte gUnknown_081D9202
+_08017348:
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r2, 0x10
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r4, 0xF]
+ ldr r1, _0801736C @ =gUnknown_02024C10
+ ldr r0, _08017370 @ =gUnknown_081D921D
+_08017360:
+ str r0, [r1]
+ ldr r0, [r1]
+_08017364:
+ bl b_call_bc_move_exec
+ movs r0, 0x1
+ b _0801738C
+ .align 2, 0
+_0801736C: .4byte gUnknown_02024C10
+_08017370: .4byte gUnknown_081D921D
+_08017374:
+ ldrb r0, [r3]
+ mov r1, r9
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08017380
+ b _08017272
+_08017380:
+ ldr r2, _0801739C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _080173A0 @ =0xfeffffdf
+ ands r0, r1
+ str r0, [r2]
+ movs r0, 0
+_0801738C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801739C: .4byte gUnknown_02024C6C
+_080173A0: .4byte 0xfeffffdf
+ thumb_func_end sub_80170DC
+
+ thumb_func_start sub_80173A4
+sub_80173A4: @ 80173A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _080173C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080173F8
+ b _080176AC
+ .align 2, 0
+_080173C0: .4byte gUnknown_020239F8
+_080173C4:
+ ldr r0, _080173D4 @ =gUnknown_081D8C72
+ bl b_call_bc_move_exec
+ ldr r1, _080173D8 @ =0x00016059
+ add r1, r10
+ movs r0, 0x2
+ b _080173E8
+ .align 2, 0
+_080173D4: .4byte gUnknown_081D8C72
+_080173D8: .4byte 0x00016059
+_080173DC:
+ ldr r0, _080173F0 @ =gUnknown_081D8C7B
+ bl b_call_bc_move_exec
+ ldr r1, _080173F4 @ =0x00016059
+ add r1, r8
+ movs r0, 0x5
+_080173E8:
+ strb r0, [r1]
+_080173EA:
+ movs r0, 0x1
+ b _080176AE
+ .align 2, 0
+_080173F0: .4byte gUnknown_081D8C7B
+_080173F4: .4byte 0x00016059
+_080173F8:
+ ldr r0, _08017414 @ =0x02000000
+ mov r9, r0
+_080173FC:
+ ldr r0, _08017418 @ =0x00016059
+ add r0, r9
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08017408
+ b _080176A0
+_08017408:
+ lsls r0, 2
+ ldr r1, _0801741C @ =_08017420
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017414: .4byte 0x02000000
+_08017418: .4byte 0x00016059
+_0801741C: .4byte _08017420
+ .align 2, 0
+_08017420:
+ .4byte _08017440
+ .4byte _08017490
+ .4byte _08017534
+ .4byte _0801757C
+ .4byte _0801758E
+ .4byte _080175FC
+ .4byte _08017638
+ .4byte _080176A0
+_08017440:
+ ldr r1, _08017508 @ =0x0001605a
+ add r1, r9
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0801750C @ =0x00016059
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r5, 0
+ ldr r0, _08017510 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _08017490
+ ldr r6, _08017514 @ =gUnknown_02024C0C
+_0801745E:
+ ldrb r0, [r6]
+ ldr r2, _08017518 @ =gBitTable
+ lsls r1, r5, 2
+ adds r1, r2
+ ldr r4, [r1]
+ ands r0, r4
+ cmp r0, 0
+ beq _08017486
+ lsls r0, r5, 24
+ lsrs r0, 24
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017486
+ ldrb r0, [r6]
+ bics r0, r4
+ strb r0, [r6]
+_08017486:
+ adds r5, 0x1
+ ldr r0, _08017510 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _0801745E
+_08017490:
+ ldr r1, _0801751C @ =0x02000000
+ mov r9, r1
+ ldr r0, _08017520 @ =gUnknown_02024C09
+ mov r12, r0
+ ldr r1, _08017524 @ =gUnknown_02024C08
+ mov r8, r1
+ mov r10, r9
+ ldr r5, _08017508 @ =0x0001605a
+ add r5, r9
+ ldr r7, _08017528 @ =gBattleMons
+ ldr r6, _0801752C @ =0x00016113
+ add r6, r9
+_080174A8:
+ ldrb r0, [r5]
+ mov r1, r8
+ strb r0, [r1]
+ mov r1, r12
+ strb r0, [r1]
+ ldrb r3, [r5]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r7
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _080174EA
+ ldrb r2, [r6]
+ ldr r4, _08017518 @ =gBitTable
+ ldr r1, _08017530 @ =gUnknown_02024A6A
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _080174EA
+ ldr r0, _08017514 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ lsls r0, r3, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080174EA
+ b _080173C4
+_080174EA:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r1, _08017510 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080174A8
+ ldr r1, _0801750C @ =0x00016059
+ add r1, r9
+ movs r0, 0x3
+ strb r0, [r1]
+ b _080176A0
+ .align 2, 0
+_08017508: .4byte 0x0001605a
+_0801750C: .4byte 0x00016059
+_08017510: .4byte gUnknown_02024A68
+_08017514: .4byte gUnknown_02024C0C
+_08017518: .4byte gBitTable
+_0801751C: .4byte 0x02000000
+_08017520: .4byte gUnknown_02024C09
+_08017524: .4byte gUnknown_02024C08
+_08017528: .4byte gBattleMons
+_0801752C: .4byte 0x00016113
+_08017530: .4byte gUnknown_02024A6A
+_08017534:
+ ldr r0, _0801755C @ =gUnknown_02024C09
+ ldrb r0, [r0]
+ bl sub_8015740
+ ldr r2, _08017560 @ =0x02000000
+ ldr r0, _08017564 @ =0x0001605a
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08017568 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08017570
+ ldr r0, _0801756C @ =0x00016059
+ adds r1, r2, r0
+ movs r0, 0x3
+ b _0801769C
+ .align 2, 0
+_0801755C: .4byte gUnknown_02024C09
+_08017560: .4byte 0x02000000
+_08017564: .4byte 0x0001605a
+_08017568: .4byte gUnknown_02024A68
+_0801756C: .4byte 0x00016059
+_08017570:
+ ldr r0, _08017578 @ =0x00016059
+ adds r1, r2, r0
+ movs r0, 0x1
+ b _0801769C
+ .align 2, 0
+_08017578: .4byte 0x00016059
+_0801757C:
+ ldr r1, _080175D8 @ =0x0001605a
+ add r1, r9
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080175DC @ =0x00016059
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0801758E:
+ ldr r7, _080175E0 @ =gUnknown_02024C09
+ ldr r6, _080175E4 @ =gUnknown_02024C08
+ ldr r1, _080175E8 @ =0x02000000
+ mov r8, r1
+ ldr r3, _080175D8 @ =0x0001605a
+ add r3, r8
+ ldr r5, _080175EC @ =gBattleMons
+ ldr r4, _080175F0 @ =gBitTable
+_0801759E:
+ ldrb r0, [r3]
+ strb r0, [r6]
+ strb r0, [r7]
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _080175C4
+ ldr r0, _080175F4 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080175C4
+ b _080173DC
+_080175C4:
+ adds r0, r2, 0x1
+ strb r0, [r3]
+ ldr r1, _080175F8 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801759E
+ b _08017612
+ .align 2, 0
+_080175D8: .4byte 0x0001605a
+_080175DC: .4byte 0x00016059
+_080175E0: .4byte gUnknown_02024C09
+_080175E4: .4byte gUnknown_02024C08
+_080175E8: .4byte 0x02000000
+_080175EC: .4byte gBattleMons
+_080175F0: .4byte gBitTable
+_080175F4: .4byte gUnknown_02024C0C
+_080175F8: .4byte gUnknown_02024A68
+_080175FC:
+ ldr r0, _0801761C @ =0x0001605a
+ add r0, r9
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08017620 @ =gUnknown_02024A68
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08017628
+_08017612:
+ ldr r1, _08017624 @ =0x00016059
+ add r1, r9
+ movs r0, 0x6
+ strb r0, [r1]
+ b _080176A0
+ .align 2, 0
+_0801761C: .4byte 0x0001605a
+_08017620: .4byte gUnknown_02024A68
+_08017624: .4byte 0x00016059
+_08017628:
+ ldr r1, _08017634 @ =0x00016059
+ add r1, r9
+ movs r0, 0x4
+ strb r0, [r1]
+ b _080176A0
+ .align 2, 0
+_08017634: .4byte 0x00016059
+_08017638:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08017652
+ b _080173EA
+_08017652:
+ str r0, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017668
+ b _080173EA
+_08017668:
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ bl sub_801A02C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0801767C
+ b _080173EA
+_0801767C:
+ str r0, [sp]
+ movs r0, 0x6
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017692
+ b _080173EA
+_08017692:
+ ldr r2, _080176C0 @ =0x02000000
+ ldr r0, _080176C4 @ =0x00016059
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+_0801769C:
+ strb r0, [r1]
+ mov r9, r2
+_080176A0:
+ ldr r0, _080176C4 @ =0x00016059
+ add r0, r9
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080176AC
+ b _080173FC
+_080176AC:
+ movs r0, 0
+_080176AE:
+ 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
+_080176C0: .4byte 0x02000000
+_080176C4: .4byte 0x00016059
+ thumb_func_end sub_80173A4
+
+ thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged
+b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r0, _08017708 @ =gUnknown_02024A68
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r3, r0
+ bge _08017700
+ ldr r4, _0801770C @ =gUnknown_02024C60
+ movs r6, 0x80
+ lsls r6, 16
+ ldr r2, _08017710 @ =gUnknown_02024AD0
+_080176DE:
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r6
+ cmp r0, 0
+ beq _080176F4
+ ldrh r0, [r4]
+ cmp r0, 0x63
+ beq _080176F4
+ ldr r0, _08017714 @ =0xff7fffff
+ ands r1, r0
+ str r1, [r2]
+_080176F4:
+ adds r4, 0x2
+ adds r2, 0x58
+ adds r3, 0x1
+ ldrb r0, [r5]
+ cmp r3, r0
+ blt _080176DE
+_08017700:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08017708: .4byte gUnknown_02024A68
+_0801770C: .4byte gUnknown_02024C60
+_08017710: .4byte gUnknown_02024AD0
+_08017714: .4byte 0xff7fffff
+ thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged
+
+ thumb_func_start sub_8017718
+sub_8017718: @ 8017718
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _08017734 @ =0x02016090
+ mov r10, r1
+ ldr r2, _08017738 @ =0xfffe9f70
+ add r2, r10
+ mov r8, r2
+ b _08017746
+ .align 2, 0
+_08017734: .4byte 0x02016090
+_08017738: .4byte 0xfffe9f70
+_0801773C:
+ mov r4, r9
+ cmp r4, 0
+ beq _08017746
+ bl _08017FAC
+_08017746:
+ ldr r0, _08017760 @ =0x000160e7
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bls _08017754
+ bl _08017F9E
+_08017754:
+ lsls r0, 2
+ ldr r1, _08017764 @ =_08017768
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08017760: .4byte 0x000160e7
+_08017764: .4byte _08017768
+ .align 2, 0
+_08017768:
+ .4byte _080177A4
+ .4byte _080177E4
+ .4byte _08017920
+ .4byte _080179D8
+ .4byte _08017A50
+ .4byte _08017AC8
+ .4byte _08017B1C
+ .4byte _08017B98
+ .4byte _08017C1C
+ .4byte _08017C60
+ .4byte _08017D3C
+ .4byte _08017DC0
+ .4byte _08017E5C
+ .4byte _08017F48
+ .4byte _08017F9E
+_080177A4:
+ ldr r1, _080177D0 @ =gBattleMons
+ ldr r3, _080177D4 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _080177D8 @ =0xfdffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _080177DC @ =gUnknown_02024C98
+ ldrb r2, [r3]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _080177E0 @ =0xffffbfff
+ ands r0, r1
+ str r0, [r2]
+ bl _08017F94
+ .align 2, 0
+_080177D0: .4byte gBattleMons
+_080177D4: .4byte gUnknown_02024C07
+_080177D8: .4byte 0xfdffffff
+_080177DC: .4byte gUnknown_02024C98
+_080177E0: .4byte 0xffffbfff
+_080177E4:
+ ldr r7, _0801784C @ =gBattleMons
+ ldr r4, _08017850 @ =gUnknown_02024C07
+ ldrb r1, [r4]
+ movs r5, 0x58
+ adds r0, r1, 0
+ muls r0, r5
+ adds r6, r7, 0
+ adds r6, 0x4C
+ adds r0, r6
+ ldr r0, [r0]
+ movs r2, 0x7
+ mov r8, r2
+ ands r0, r2
+ cmp r0, 0
+ bne _08017804
+ b _08017D90
+_08017804:
+ adds r0, r1, 0
+ bl sub_8025A44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08017864
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r2, r6
+ ldr r0, [r2]
+ movs r1, 0x8
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ ldrb r0, [r4]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08017854 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08017858 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ ldr r1, _0801785C @ =gUnknown_02024C10
+ ldr r0, _08017860 @ =gUnknown_081D94FB
+ str r0, [r1]
+ movs r4, 0x2
+ mov r9, r4
+ b _08017D90
+ .align 2, 0
+_0801784C: .4byte gBattleMons
+_08017850: .4byte gUnknown_02024C07
+_08017854: .4byte 0xf7ffffff
+_08017858: .4byte gUnknown_02024D1E
+_0801785C: .4byte gUnknown_02024C10
+_08017860: .4byte gUnknown_081D94FB
+_08017864:
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r0, r1, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ movs r3, 0x1
+ cmp r0, 0x30
+ bne _08017878
+ movs r3, 0x2
+_08017878:
+ adds r2, r1, r6
+ ldr r1, [r2]
+ adds r0, r1, 0
+ mov r7, r8
+ ands r0, r7
+ cmp r0, r3
+ bcs _08017890
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ b _08017894
+_08017890:
+ subs r0, r1, r3
+ str r0, [r2]
+_08017894:
+ ldr r2, _080178D8 @ =gBattleMons
+ ldr r0, _080178DC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r4, [r0]
+ movs r0, 0x7
+ ands r4, r0
+ cmp r4, 0
+ beq _080178F0
+ ldr r0, _080178E0 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xAD
+ bne _080178B8
+ b _08017D90
+_080178B8:
+ cmp r0, 0xD6
+ bne _080178BE
+ b _08017D90
+_080178BE:
+ ldr r1, _080178E4 @ =gUnknown_02024C10
+ ldr r0, _080178E8 @ =gUnknown_081D94EE
+ str r0, [r1]
+ ldr r2, _080178EC @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x2
+ mov r9, r0
+ b _08017D90
+ .align 2, 0
+_080178D8: .4byte gBattleMons
+_080178DC: .4byte gUnknown_02024C07
+_080178E0: .4byte gUnknown_02024BE6
+_080178E4: .4byte gUnknown_02024C10
+_080178E8: .4byte gUnknown_081D94EE
+_080178EC: .4byte gUnknown_02024C6C
+_080178F0:
+ adds r2, 0x50
+ adds r2, r1, r2
+ ldr r0, [r2]
+ ldr r1, _08017910 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r0, _08017914 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r1, _08017918 @ =gUnknown_02024C10
+ ldr r0, _0801791C @ =gUnknown_081D94FB
+ str r0, [r1]
+ movs r1, 0x2
+ b _08017D8E
+ .align 2, 0
+_08017910: .4byte 0xf7ffffff
+_08017914: .4byte gUnknown_02024D1E
+_08017918: .4byte gUnknown_02024C10
+_0801791C: .4byte gUnknown_081D94FB
+_08017920:
+ ldr r1, _0801797C @ =gBattleMons
+ ldr r7, _08017980 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r1, 0
+ adds r5, 0x4C
+ adds r0, r5
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801793C
+ b _08017F94
+_0801793C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _080179A8
+ ldr r2, _08017984 @ =gBattleMoves
+ ldr r0, _08017988 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7D
+ beq _08017998
+ ldr r1, _0801798C @ =gUnknown_02024C10
+ ldr r0, _08017990 @ =gUnknown_081D9545
+ str r0, [r1]
+ ldr r2, _08017994 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 2
+ orrs r0, r1
+ str r0, [r2]
+ b _080179C8
+ .align 2, 0
+_0801797C: .4byte gBattleMons
+_08017980: .4byte gUnknown_02024C07
+_08017984: .4byte gBattleMoves
+_08017988: .4byte gUnknown_02024BE6
+_0801798C: .4byte gUnknown_02024C10
+_08017990: .4byte gUnknown_081D9545
+_08017994: .4byte gUnknown_02024C6C
+_08017998:
+ ldr r2, _080179A0 @ =0x02000000
+ ldr r7, _080179A4 @ =0x000160e7
+ adds r1, r2, r7
+ b _08017D96
+ .align 2, 0
+_080179A0: .4byte 0x02000000
+_080179A4: .4byte 0x000160e7
+_080179A8:
+ ldrb r0, [r7]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r5
+ ldr r0, [r2]
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080179CC @ =gUnknown_02024C10
+ ldr r0, _080179D0 @ =gUnknown_081D9552
+ str r0, [r1]
+ ldr r0, _080179D4 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+_080179C8:
+ movs r0, 0x2
+ b _08017E3C
+ .align 2, 0
+_080179CC: .4byte gUnknown_02024C10
+_080179D0: .4byte gUnknown_081D9552
+_080179D4: .4byte gUnknown_02024D1E
+_080179D8:
+ ldr r1, _08017A30 @ =gBattleMons
+ ldr r0, _08017A34 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x36
+ beq _080179EE
+ b _08017D90
+_080179EE:
+ ldr r0, _08017A38 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _08017A02
+ b _08017D90
+_08017A02:
+ adds r0, r2, 0
+ bl b_cancel_multi_turn_move_maybe
+ ldr r2, _08017A3C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08017A40 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ ldr r1, _08017A44 @ =gUnknown_02024C10
+ ldr r0, _08017A48 @ =gUnknown_081D9977
+ str r0, [r1]
+ ldr r2, _08017A4C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r2, 0x1
+ mov r9, r2
+ b _08017D90
+ .align 2, 0
+_08017A30: .4byte gBattleMons
+_08017A34: .4byte gUnknown_02024C07
+_08017A38: .4byte gUnknown_02024CA8
+_08017A3C: .4byte gUnknown_02024C6C
+_08017A40: .4byte gUnknown_02024D1E
+_08017A44: .4byte gUnknown_02024C10
+_08017A48: .4byte gUnknown_081D9977
+_08017A4C: .4byte gUnknown_02024C68
+_08017A50:
+ ldr r1, _08017AA4 @ =gBattleMons
+ ldr r3, _08017AA8 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 15
+ ands r0, r1
+ cmp r0, 0
+ beq _08017A9C
+ ldr r0, _08017AAC @ =0xffbfffff
+ ands r1, r0
+ str r1, [r2]
+ ldr r2, _08017AB0 @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x19]
+ ldrb r0, [r3]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017AB4 @ =gUnknown_02024C10
+ ldr r0, _08017AB8 @ =gUnknown_081D7956
+ str r0, [r1]
+ ldr r2, _08017ABC @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r7, 0x1
+ mov r9, r7
+_08017A9C:
+ ldr r2, _08017AC0 @ =0x02000000
+ ldr r0, _08017AC4 @ =0x000160e7
+ adds r1, r2, r0
+ b _08017D96
+ .align 2, 0
+_08017AA4: .4byte gBattleMons
+_08017AA8: .4byte gUnknown_02024C07
+_08017AAC: .4byte 0xffbfffff
+_08017AB0: .4byte gUnknown_02024CA8
+_08017AB4: .4byte gUnknown_02024C10
+_08017AB8: .4byte gUnknown_081D7956
+_08017ABC: .4byte gUnknown_02024C6C
+_08017AC0: .4byte 0x02000000
+_08017AC4: .4byte 0x000160e7
+_08017AC8:
+ ldr r1, _08017B08 @ =gBattleMons
+ ldr r3, _08017B0C @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08017AE2
+ b _08017D90
+_08017AE2:
+ movs r0, 0x9
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ ldr r0, _08017B10 @ =gUnknown_02024D28
+ ldrb r2, [r3]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r3]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017B14 @ =gUnknown_02024C10
+ ldr r0, _08017B18 @ =gUnknown_081D9573
+ b _08017D7E
+ .align 2, 0
+_08017B08: .4byte gBattleMons
+_08017B0C: .4byte gUnknown_02024C07
+_08017B10: .4byte gUnknown_02024D28
+_08017B14: .4byte gUnknown_02024C10
+_08017B18: .4byte gUnknown_081D9573
+_08017B1C:
+ ldr r0, _08017B74 @ =gUnknown_02024CA8
+ ldr r3, _08017B78 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08017B7C @ =gUnknown_02024BE6
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _08017B36
+ b _08017D90
+_08017B36:
+ cmp r1, 0
+ bne _08017B3C
+ b _08017D90
+_08017B3C:
+ ldr r0, _08017B80 @ =gUnknown_02024D28
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _08017B84 @ =0x02000000
+ ldrb r1, [r3]
+ ldr r7, _08017B88 @ =0x00016003
+ adds r0, r7
+ strb r1, [r0]
+ ldrb r0, [r3]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017B8C @ =gUnknown_02024C10
+ ldr r0, _08017B90 @ =gUnknown_081D9139
+ str r0, [r1]
+ ldr r2, _08017B94 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x1
+ mov r9, r0
+ b _08017D90
+ .align 2, 0
+_08017B74: .4byte gUnknown_02024CA8
+_08017B78: .4byte gUnknown_02024C07
+_08017B7C: .4byte gUnknown_02024BE6
+_08017B80: .4byte gUnknown_02024D28
+_08017B84: .4byte 0x02000000
+_08017B88: .4byte 0x00016003
+_08017B8C: .4byte gUnknown_02024C10
+_08017B90: .4byte gUnknown_081D9139
+_08017B94: .4byte gUnknown_02024C6C
+_08017B98:
+ ldr r0, _08017BF4 @ =gUnknown_02024CA8
+ ldr r4, _08017BF8 @ =gUnknown_02024C07
+ ldrb r3, [r4]
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08017BEC
+ ldr r2, _08017BFC @ =gBattleMoves
+ ldr r0, _08017C00 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08017BEC
+ ldr r0, _08017C04 @ =gUnknown_02024D28
+ lsls r2, r3, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x2]
+ ldrb r0, [r4]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017C08 @ =gUnknown_02024C10
+ ldr r0, _08017C0C @ =gUnknown_081D938F
+ str r0, [r1]
+ ldr r2, _08017C10 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r7, 0x1
+ mov r9, r7
+_08017BEC:
+ ldr r2, _08017C14 @ =0x02000000
+ ldr r0, _08017C18 @ =0x000160e7
+ adds r1, r2, r0
+ b _08017D96
+ .align 2, 0
+_08017BF4: .4byte gUnknown_02024CA8
+_08017BF8: .4byte gUnknown_02024C07
+_08017BFC: .4byte gBattleMoves
+_08017C00: .4byte gUnknown_02024BE6
+_08017C04: .4byte gUnknown_02024D28
+_08017C08: .4byte gUnknown_02024C10
+_08017C0C: .4byte gUnknown_081D938F
+_08017C10: .4byte gUnknown_02024C6C
+_08017C14: .4byte 0x02000000
+_08017C18: .4byte 0x000160e7
+_08017C1C:
+ ldr r4, _08017C4C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ ldr r1, _08017C50 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ bl sub_8015D5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08017C30
+ b _08017D90
+_08017C30:
+ ldr r0, _08017C54 @ =gUnknown_02024D28
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r4]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017C58 @ =gUnknown_02024C10
+ ldr r0, _08017C5C @ =gUnknown_081D9459
+ b _08017D7E
+ .align 2, 0
+_08017C4C: .4byte gUnknown_02024C07
+_08017C50: .4byte gUnknown_02024BE6
+_08017C54: .4byte gUnknown_02024D28
+_08017C58: .4byte gUnknown_02024C10
+_08017C5C: .4byte gUnknown_081D9459
+_08017C60:
+ ldr r7, _08017CAC @ =gBattleMons
+ ldr r5, _08017CB0 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ adds r4, r7, 0
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r3, 0x7
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _08017C7E
+ b _08017F94
+_08017C7E:
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ beq _08017D24
+ bl Random
+ movs r1, 0x1
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _08017CB8
+ ldr r1, _08017CB4 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl b_movescr_stack_push_cursor
+ b _08017D02
+ .align 2, 0
+_08017CAC: .4byte gBattleMons
+_08017CB0: .4byte gUnknown_02024C07
+_08017CB4: .4byte gUnknown_02024D1E
+_08017CB8:
+ ldr r0, _08017D08 @ =gUnknown_02024D1E
+ movs r4, 0x1
+ strb r1, [r0, 0x5]
+ ldr r1, _08017D0C @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r7
+ movs r0, 0x28
+ str r0, [sp]
+ str r2, [sp, 0x4]
+ ldrb r0, [r5]
+ str r0, [sp, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp, 0xC]
+ adds r0, r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl CalculateBaseDamage
+ ldr r1, _08017D10 @ =gUnknown_02024BEC
+ str r0, [r1]
+ ldr r0, _08017D14 @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ orrs r0, r4
+ strb r0, [r1, 0x1]
+ ldr r2, _08017D18 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+_08017D02:
+ ldr r1, _08017D1C @ =gUnknown_02024C10
+ ldr r0, _08017D20 @ =gUnknown_081D9595
+ b _08017D2C
+ .align 2, 0
+_08017D08: .4byte gUnknown_02024D1E
+_08017D0C: .4byte gUnknown_02024C08
+_08017D10: .4byte gUnknown_02024BEC
+_08017D14: .4byte gUnknown_02024D28
+_08017D18: .4byte gUnknown_02024C6C
+_08017D1C: .4byte gUnknown_02024C10
+_08017D20: .4byte gUnknown_081D9595
+_08017D24:
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08017D34 @ =gUnknown_02024C10
+ ldr r0, _08017D38 @ =gUnknown_081D95D4
+_08017D2C:
+ str r0, [r1]
+ movs r7, 0x1
+ b _08017F8E
+ .align 2, 0
+_08017D34: .4byte gUnknown_02024C10
+_08017D38: .4byte gUnknown_081D95D4
+_08017D3C:
+ ldr r1, _08017DA0 @ =gBattleMons
+ ldr r4, _08017DA4 @ =gUnknown_02024C07
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08017D90
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ bne _08017D90
+ ldr r0, _08017DA8 @ =gUnknown_02024D28
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08017DAC @ =gUnknown_02024C10
+ ldr r0, _08017DB0 @ =gUnknown_081D9566
+_08017D7E:
+ str r0, [r1]
+ ldr r2, _08017DB4 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ movs r1, 0x1
+_08017D8E:
+ mov r9, r1
+_08017D90:
+ ldr r2, _08017DB8 @ =0x02000000
+ ldr r4, _08017DBC @ =0x000160e7
+ adds r1, r2, r4
+_08017D96:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r8, r2
+ b _08017F9E
+ .align 2, 0
+_08017DA0: .4byte gBattleMons
+_08017DA4: .4byte gUnknown_02024C07
+_08017DA8: .4byte gUnknown_02024D28
+_08017DAC: .4byte gUnknown_02024C10
+_08017DB0: .4byte gUnknown_081D9566
+_08017DB4: .4byte gUnknown_02024C6C
+_08017DB8: .4byte 0x02000000
+_08017DBC: .4byte 0x000160e7
+_08017DC0:
+ ldr r1, _08017DFC @ =gBattleMons
+ ldr r4, _08017E00 @ =gUnknown_02024C07
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r1, r0
+ cmp r1, 0
+ bne _08017DDC
+ b _08017F94
+_08017DDC:
+ lsrs r0, r1, 16
+ bl sub_804114C
+ ldr r1, _08017E04 @ =0x02000000
+ ldr r7, _08017E08 @ =0x00016003
+ adds r1, r7
+ strb r0, [r1]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08017E0C
+ bl b_movescr_stack_push_cursor
+ b _08017E34
+ .align 2, 0
+_08017DFC: .4byte gBattleMons
+_08017E00: .4byte gUnknown_02024C07
+_08017E04: .4byte 0x02000000
+_08017E08: .4byte 0x00016003
+_08017E0C:
+ ldr r0, _08017E44 @ =gUnknown_081D9608
+ bl b_movescr_stack_push
+ ldr r2, _08017E48 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+ orrs r0, r1
+ str r0, [r2]
+ ldr r0, _08017E4C @ =gUnknown_02024D28
+ ldrb r2, [r4]
+ lsls r2, 4
+ adds r2, r0
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r4]
+ bl b_cancel_multi_turn_move_maybe
+_08017E34:
+ ldr r1, _08017E50 @ =gUnknown_02024C10
+ ldr r0, _08017E54 @ =gUnknown_081D95FB
+ str r0, [r1]
+ movs r0, 0x1
+_08017E3C:
+ mov r9, r0
+ ldr r1, _08017E58 @ =0x02000000
+ mov r8, r1
+ b _08017F94
+ .align 2, 0
+_08017E44: .4byte gUnknown_081D9608
+_08017E48: .4byte gUnknown_02024C6C
+_08017E4C: .4byte gUnknown_02024D28
+_08017E50: .4byte gUnknown_02024C10
+_08017E54: .4byte gUnknown_081D95FB
+_08017E58: .4byte 0x02000000
+_08017E5C:
+ ldr r1, _08017E98 @ =gBattleMons
+ ldr r6, _08017E9C @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r1, 0x50
+ adds r3, r0, r1
+ ldr r2, [r3]
+ movs r4, 0xC0
+ lsls r4, 2
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _08017E7A
+ b _08017F94
+_08017E7A:
+ ldr r7, _08017EA0 @ =0xffffff00
+ adds r0, r2, r7
+ str r0, [r3]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r1, r0, r1
+ ldr r2, [r1]
+ adds r0, r2, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _08017EAC
+ ldr r1, _08017EA4 @ =gUnknown_02024C10
+ ldr r0, _08017EA8 @ =gUnknown_081D90A7
+ b _08017F38
+ .align 2, 0
+_08017E98: .4byte gBattleMons
+_08017E9C: .4byte gUnknown_02024C07
+_08017EA0: .4byte 0xffffff00
+_08017EA4: .4byte gUnknown_02024C10
+_08017EA8: .4byte gUnknown_081D90A7
+_08017EAC:
+ ldr r0, _08017F0C @ =0xffffefff
+ ands r2, r0
+ str r2, [r1]
+ ldr r2, _08017F10 @ =gUnknown_02024BF4
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08017F34
+ ldr r1, _08017F14 @ =gUnknown_02024BE6
+ movs r0, 0x75
+ strh r0, [r1]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r0, 1
+ mov r1, r10
+ str r0, [r1]
+ ldr r4, _08017F18 @ =gUnknown_02024C08
+ ldr r1, _08017F1C @ =gUnknown_02024C74
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r0, _08017F20 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08017F24 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08017EFE
+ movs r0, 0x75
+ movs r1, 0x1
+ bl sub_801B5C0
+ strb r0, [r4]
+_08017EFE:
+ ldr r1, _08017F28 @ =gUnknown_02024C10
+ ldr r0, _08017F2C @ =gUnknown_081D90B2
+ str r0, [r1]
+ ldr r2, _08017F30 @ =0x02000000
+ mov r8, r2
+ b _08017F3A
+ .align 2, 0
+_08017F0C: .4byte 0xffffefff
+_08017F10: .4byte gUnknown_02024BF4
+_08017F14: .4byte gUnknown_02024BE6
+_08017F18: .4byte gUnknown_02024C08
+_08017F1C: .4byte gUnknown_02024C74
+_08017F20: .4byte gUnknown_02024C0C
+_08017F24: .4byte gBitTable
+_08017F28: .4byte gUnknown_02024C10
+_08017F2C: .4byte gUnknown_081D90B2
+_08017F30: .4byte 0x02000000
+_08017F34:
+ ldr r1, _08017F40 @ =gUnknown_02024C10
+ ldr r0, _08017F44 @ =gUnknown_081D90F1
+_08017F38:
+ str r0, [r1]
+_08017F3A:
+ movs r4, 0x1
+ mov r9, r4
+ b _08017F94
+ .align 2, 0
+_08017F40: .4byte gUnknown_02024C10
+_08017F44: .4byte gUnknown_081D90F1
+_08017F48:
+ ldr r1, _08017FEC @ =gBattleMons
+ ldr r0, _08017FF0 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r4, r0, r1
+ ldr r3, [r4]
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _08017F94
+ ldr r2, _08017FF4 @ =gBattleMoves
+ ldr r0, _08017FF8 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7D
+ bne _08017F8C
+ movs r0, 0x21
+ negs r0, r0
+ ands r3, r0
+ str r3, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08017FFC @ =gUnknown_02024C10
+ ldr r0, _08018000 @ =gUnknown_081D9552
+ str r0, [r1]
+ ldr r1, _08018004 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_08017F8C:
+ movs r7, 0x2
+_08017F8E:
+ mov r9, r7
+ ldr r0, _08018008 @ =0x02000000
+ mov r8, r0
+_08017F94:
+ ldr r1, _0801800C @ =0x000160e7
+ add r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08017F9E:
+ ldr r0, _0801800C @ =0x000160e7
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ beq _08017FAC
+ bl _0801773C
+_08017FAC:
+ mov r1, r9
+ cmp r1, 0x2
+ bne _08017FD8
+ ldr r4, _08018010 @ =gUnknown_02024A60
+ ldr r0, _08017FF0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _08018014 @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08017FD8:
+ mov r0, r9
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08017FEC: .4byte gBattleMons
+_08017FF0: .4byte gUnknown_02024C07
+_08017FF4: .4byte gBattleMoves
+_08017FF8: .4byte gUnknown_02024BE6
+_08017FFC: .4byte gUnknown_02024C10
+_08018000: .4byte gUnknown_081D9552
+_08018004: .4byte gUnknown_02024D1E
+_08018008: .4byte 0x02000000
+_0801800C: .4byte 0x000160e7
+_08018010: .4byte gUnknown_02024A60
+_08018014: .4byte gUnknown_02024ACC
+ thumb_func_end sub_8017718
+
+ thumb_func_start sub_8018018
+sub_8018018: @ 8018018
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r3, r4, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ ldr r0, _08018044 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08018048
+ movs r0, 0
+ b _08018198
+ .align 2, 0
+_08018044: .4byte gUnknown_020239F8
+_08018048:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080180D4
+ adds r0, r4, 0
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080180CC @ =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _0801806E
+ ldr r2, _080180D0 @ =gPlayerParty
+ mov r8, r2
+_0801806E:
+ adds r0, r7, 0
+ bl sub_803FBFC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 1
+ adds r5, r0, r6
+ adds r0, r5, 0x3
+ cmp r5, r0
+ bge _080180BA
+ adds r7, r0, 0
+_08018084:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080180B4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080180B4
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _080180BA
+_080180B4:
+ adds r5, 0x1
+ cmp r5, r7
+ blt _08018084
+_080180BA:
+ movs r1, 0
+ lsls r0, r6, 1
+ adds r0, r6
+ adds r0, 0x3
+ cmp r5, r0
+ bne _080180C8
+ movs r1, 0x1
+_080180C8:
+ adds r0, r1, 0
+ b _08018198
+ .align 2, 0
+_080180CC: .4byte gEnemyParty
+_080180D0: .4byte gPlayerParty
+_080180D4:
+ adds r0, r3, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08018100
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _080180FC @ =gEnemyParty
+ mov r8, r2
+ b _08018118
+ .align 2, 0
+_080180FC: .4byte gEnemyParty
+_08018100:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _080181A8 @ =gPlayerParty
+ mov r8, r0
+_08018118:
+ mov r1, r10
+ cmp r1, 0x6
+ bne _08018128
+ ldr r1, _080181AC @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r10, r0
+_08018128:
+ mov r2, r9
+ cmp r2, 0x6
+ bne _08018138
+ ldr r1, _080181AC @ =gUnknown_02024A6A
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r9, r0
+_08018138:
+ movs r5, 0
+_0801813A:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0801818A
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _0801818A
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0801818A
+ cmp r5, r10
+ beq _0801818A
+ cmp r5, r9
+ beq _0801818A
+ ldr r1, _080181B0 @ =0x02000000
+ ldr r2, _080181B4 @ =0x00016068
+ adds r0, r7, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _0801818A
+ adds r0, r6, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ bne _08018190
+_0801818A:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0801813A
+_08018190:
+ movs r0, 0
+ cmp r5, 0x6
+ bne _08018198
+ movs r0, 0x1
+_08018198:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080181A8: .4byte gPlayerParty
+_080181AC: .4byte gUnknown_02024A6A
+_080181B0: .4byte 0x02000000
+_080181B4: .4byte 0x00016068
+ thumb_func_end sub_8018018
+
+ thumb_func_start castform_switch
+castform_switch: @ 80181B8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _08018228 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ ldr r0, _0801822C @ =SPECIES_CASTFORM
+ cmp r1, r0
+ bne _0801825C
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bne _0801825C
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ beq _0801825C
+ str r5, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801820A
+ str r5, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018230
+_0801820A:
+ adds r2, r4, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08018230
+ adds r1, r4, 0
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08018230
+ strb r5, [r2]
+ strb r5, [r1]
+ movs r0, 0x1
+ b _08018314
+ .align 2, 0
+_08018228: .4byte gBattleMons
+_0801822C: .4byte SPECIES_CASTFORM
+_08018230:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0801825C
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08018260
+_0801825C:
+ movs r0, 0
+ b _08018314
+_08018260:
+ ldr r1, _0801831C @ =word_2024DB8
+ ldrh r0, [r1]
+ movs r2, 0xE7
+ ands r2, r0
+ adds r4, r1, 0
+ cmp r2, 0
+ bne _0801828E
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r3, r1, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _0801828E
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0801828E
+ strb r2, [r3]
+ strb r2, [r1]
+ movs r5, 0x1
+_0801828E:
+ ldrh r1, [r4]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _080182BA
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xA
+ beq _080182BA
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xA
+ beq _080182BA
+ movs r0, 0xA
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x2
+_080182BA:
+ ldrh r1, [r4]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080182E6
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xB
+ beq _080182E6
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ beq _080182E6
+ movs r0, 0xB
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x3
+_080182E6:
+ ldrh r1, [r4]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08018312
+ ldr r1, _08018320 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r6
+ adds r1, r0, r1
+ adds r2, r1, 0
+ adds r2, 0x21
+ ldrb r0, [r2]
+ cmp r0, 0xF
+ beq _08018312
+ adds r1, 0x22
+ ldrb r0, [r1]
+ cmp r0, 0xF
+ beq _08018312
+ movs r0, 0xF
+ strb r0, [r2]
+ strb r0, [r1]
+ movs r5, 0x4
+_08018312:
+ adds r0, r5, 0
+_08018314:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801831C: .4byte word_2024DB8
+_08018320: .4byte gBattleMons
+ thumb_func_end castform_switch
+
+ thumb_func_start sub_8018324
+sub_8018324: @ 8018324
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ ldr r4, [sp, 0x48]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0
+ mov r9, r0
+ ldr r5, _08018380 @ =gUnknown_02024C07
+ ldr r1, _08018384 @ =gUnknown_02024A68
+ ldrb r0, [r5]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08018360
+ mov r1, r10
+ strb r1, [r5]
+_08018360:
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08018390
+ ldr r1, _08018388 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801838C @ =gPlayerParty
+ b _080183A0
+ .align 2, 0
+_08018380: .4byte gUnknown_02024C07
+_08018384: .4byte gUnknown_02024A68
+_08018388: .4byte gUnknown_02024A6A
+_0801838C: .4byte gPlayerParty
+_08018390:
+ ldr r1, _080183D0 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080183D4 @ =gEnemyParty
+_080183A0:
+ adds r7, r1, r0
+ ldr r5, _080183D8 @ =gUnknown_02024C08
+ ldr r1, _080183DC @ =gUnknown_02024A68
+ ldrb r0, [r5]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _080183B2
+ mov r2, r10
+ strb r2, [r5]
+_080183B2:
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080183E4
+ ldr r1, _080183D0 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080183E0 @ =gPlayerParty
+ b _080183F4
+ .align 2, 0
+_080183D0: .4byte gUnknown_02024A6A
+_080183D4: .4byte gEnemyParty
+_080183D8: .4byte gUnknown_02024C08
+_080183DC: .4byte gUnknown_02024A68
+_080183E0: .4byte gPlayerParty
+_080183E4:
+ ldr r1, _08018444 @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08018448 @ =gEnemyParty
+_080183F4:
+ adds r5, r1, r0
+ adds r0, r7, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x8]
+ adds r0, r7, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x10]
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x14]
+ ldr r0, _0801844C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08018436
+ bl _08019F92
+_08018436:
+ mov r3, r8
+ cmp r3, 0
+ beq _08018454
+ ldr r0, _08018450 @ =byte_2024C06
+ strb r3, [r0]
+ mov r8, r0
+ b _0801846A
+ .align 2, 0
+_08018444: .4byte gUnknown_02024A6A
+_08018448: .4byte gEnemyParty
+_0801844C: .4byte gUnknown_020239F8
+_08018450: .4byte byte_2024C06
+_08018454:
+ ldr r2, _08018474 @ =byte_2024C06
+ ldr r1, _08018478 @ =gBattleMons
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r2]
+ mov r8, r2
+_0801846A:
+ cmp r4, 0
+ beq _0801847C
+ adds r3, r4, 0
+ b _08018480
+ .align 2, 0
+_08018474: .4byte byte_2024C06
+_08018478: .4byte gBattleMons
+_0801847C:
+ ldr r0, _08018494 @ =gUnknown_02024BE6
+ ldrh r3, [r0]
+_08018480:
+ ldr r1, _08018498 @ =0x02000000
+ ldr r2, _0801849C @ =0x0001601c
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _080184A0
+ movs r4, 0x3F
+ ands r4, r0
+ b _080184AC
+ .align 2, 0
+_08018494: .4byte gUnknown_02024BE6
+_08018498: .4byte 0x02000000
+_0801849C: .4byte 0x0001601c
+_080184A0:
+ ldr r1, _080184C0 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x2]
+_080184AC:
+ ldr r5, [sp, 0x4]
+ cmp r5, 0x13
+ bls _080184B6
+ bl _08019F76
+_080184B6:
+ lsls r0, r5, 2
+ ldr r1, _080184C4 @ =_080184C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080184C0: .4byte gBattleMoves
+_080184C4: .4byte _080184C8
+ .align 2, 0
+_080184C8:
+ .4byte _08018518
+ .4byte _08018814
+ .4byte _08018A40
+ .4byte _08018AD8
+ .4byte _08018CF0
+ .4byte _08019448
+ .4byte _080197B4
+ .4byte _08019804
+ .4byte _08019880
+ .4byte _080198FC
+ .4byte _08019B1C
+ .4byte _08019940
+ .4byte _08019B60
+ .4byte _08019BBC
+ .4byte _08019C18
+ .4byte _08019D18
+ .4byte _08019D5C
+ .4byte _08019DB8
+ .4byte _08019F44
+ .4byte _08019CD4
+_08018518:
+ ldr r2, _0801854C @ =gUnknown_02024C07
+ ldr r0, _08018550 @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ adds r5, r0, 0
+ ldrb r0, [r5]
+ cmp r1, r0
+ bcc _0801852A
+ mov r1, r10
+ strb r1, [r2]
+_0801852A:
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0x2D
+ bne _08018534
+ b _080186B8
+_08018534:
+ cmp r0, 0x2D
+ bgt _08018564
+ cmp r0, 0xD
+ bne _0801853E
+ b _080187DC
+_0801853E:
+ cmp r0, 0xD
+ bgt _08018554
+ cmp r0, 0x2
+ bne _08018548
+ b _08018680
+_08018548:
+ bl _08019F76
+ .align 2, 0
+_0801854C: .4byte gUnknown_02024C07
+_08018550: .4byte gUnknown_02024A68
+_08018554:
+ cmp r0, 0x16
+ bne _0801855A
+ b _08018728
+_0801855A:
+ cmp r0, 0x24
+ bne _08018560
+ b _080187A0
+_08018560:
+ bl _08019F76
+_08018564:
+ cmp r0, 0x46
+ bne _0801856A
+ b _080186F0
+_0801856A:
+ cmp r0, 0x46
+ bgt _08018578
+ cmp r0, 0x3B
+ bne _08018574
+ b _0801875C
+_08018574:
+ bl _08019F76
+_08018578:
+ cmp r0, 0x4D
+ bne _0801857E
+ b _080187DC
+_0801857E:
+ cmp r0, 0xFF
+ beq _08018586
+ bl _08019F76
+_08018586:
+ bl weather_get_current
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0xA
+ bhi _0801864C
+ lsls r0, 2
+ ldr r1, _080185A0 @ =_080185A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080185A0: .4byte _080185A4
+ .align 2, 0
+_080185A4:
+ .4byte _080185D0
+ .4byte _0801864C
+ .4byte _080185D0
+ .4byte _0801864C
+ .4byte _0801864C
+ .4byte _080185F8
+ .4byte _0801864C
+ .4byte _0801864C
+ .4byte _0801864C
+ .4byte _08018620
+ .4byte _080185D0
+_080185D0:
+ ldr r2, _080185EC @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801864C
+ movs r0, 0x5
+ strh r0, [r2]
+ ldr r0, _080185F0 @ =0x02000000
+ ldr r3, _080185F4 @ =0x000160a4
+ adds r2, r0, r3
+ movs r1, 0xA
+ b _08018638
+ .align 2, 0
+_080185EC: .4byte word_2024DB8
+_080185F0: .4byte 0x02000000
+_080185F4: .4byte 0x000160a4
+_080185F8:
+ ldr r3, _08018614 @ =word_2024DB8
+ ldrh r1, [r3]
+ movs r2, 0x18
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801864C
+ strh r2, [r3]
+ ldr r0, _08018618 @ =0x02000000
+ ldr r3, _0801861C @ =0x000160a4
+ adds r2, r0, r3
+ movs r1, 0xC
+ b _08018638
+ .align 2, 0
+_08018614: .4byte word_2024DB8
+_08018618: .4byte 0x02000000
+_0801861C: .4byte 0x000160a4
+_08018620:
+ ldr r3, _08018668 @ =word_2024DB8
+ ldrh r1, [r3]
+ movs r2, 0x60
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0801864C
+ strh r2, [r3]
+ ldr r0, _0801866C @ =0x02000000
+ ldr r3, _08018670 @ =0x000160a4
+ adds r2, r0, r3
+ movs r1, 0xB
+_08018638:
+ strb r1, [r2]
+ ldr r5, _08018674 @ =0x00016003
+ adds r0, r5
+ mov r1, r10
+ strb r1, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_0801864C:
+ mov r2, r9
+ cmp r2, 0
+ bne _08018656
+ bl _08019F92
+_08018656:
+ bl weather_get_current
+ ldr r1, _08018678 @ =gUnknown_02024D1E
+ strb r0, [r1, 0x5]
+ ldr r0, _0801867C @ =gUnknown_081D901D
+ bl b_push_move_exec
+ bl _08019F76
+ .align 2, 0
+_08018668: .4byte word_2024DB8
+_0801866C: .4byte 0x02000000
+_08018670: .4byte 0x000160a4
+_08018674: .4byte 0x00016003
+_08018678: .4byte gUnknown_02024D1E
+_0801867C: .4byte gUnknown_081D901D
+_08018680:
+ ldr r2, _080186A8 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08018690
+ bl _08019F76
+_08018690:
+ movs r0, 0x5
+ strh r0, [r2]
+ ldr r0, _080186AC @ =gUnknown_081D9704
+ bl b_push_move_exec
+ ldr r0, _080186B0 @ =0x02000000
+ ldr r3, _080186B4 @ =0x00016003
+ adds r0, r3
+ mov r5, r10
+ strb r5, [r0]
+ bl _08019F22
+ .align 2, 0
+_080186A8: .4byte word_2024DB8
+_080186AC: .4byte gUnknown_081D9704
+_080186B0: .4byte 0x02000000
+_080186B4: .4byte 0x00016003
+_080186B8:
+ ldr r2, _080186E0 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080186C8
+ bl _08019F76
+_080186C8:
+ movs r0, 0x18
+ strh r0, [r2]
+ ldr r0, _080186E4 @ =gUnknown_081D9744
+ bl b_push_move_exec
+ ldr r0, _080186E8 @ =0x02000000
+ ldr r1, _080186EC @ =0x00016003
+ adds r0, r1
+ mov r2, r10
+ strb r2, [r0]
+ bl _08019F22
+ .align 2, 0
+_080186E0: .4byte word_2024DB8
+_080186E4: .4byte gUnknown_081D9744
+_080186E8: .4byte 0x02000000
+_080186EC: .4byte 0x00016003
+_080186F0:
+ ldr r2, _08018718 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08018700
+ bl _08019F76
+_08018700:
+ movs r0, 0x60
+ strh r0, [r2]
+ ldr r0, _0801871C @ =gUnknown_081D97FE
+ bl b_push_move_exec
+ ldr r0, _08018720 @ =0x02000000
+ ldr r3, _08018724 @ =0x00016003
+ adds r0, r3
+ mov r5, r10
+ strb r5, [r0]
+ bl _08019F22
+ .align 2, 0
+_08018718: .4byte word_2024DB8
+_0801871C: .4byte gUnknown_081D97FE
+_08018720: .4byte 0x02000000
+_08018724: .4byte 0x00016003
+_08018728:
+ ldr r0, _08018754 @ =gUnknown_02024D68
+ mov r1, r10
+ lsls r2, r1, 2
+ adds r1, r2, r1
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018740
+ bl _08019F76
+_08018740:
+ ldr r1, _08018758 @ =gUnknown_02024C98
+ adds r1, r2, r1
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 12
+ orrs r0, r2
+ str r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x8
+ b _080187CA
+ .align 2, 0
+_08018754: .4byte gUnknown_02024D68
+_08018758: .4byte gUnknown_02024C98
+_0801875C:
+ mov r0, r10
+ bl castform_switch
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ bne _08018770
+ bl _08019F92
+_08018770:
+ ldr r0, _08018790 @ =gUnknown_081D977D
+ bl b_push_move_exec
+ ldr r0, _08018794 @ =0x02000000
+ ldr r2, _08018798 @ =0x00016003
+ adds r1, r0, r2
+ mov r3, r10
+ strb r3, [r1]
+ mov r1, r9
+ subs r1, 0x1
+ ldr r5, _0801879C @ =0x0001609b
+ adds r0, r5
+ strb r1, [r0]
+ bl _08019F76
+ .align 2, 0
+_08018790: .4byte gUnknown_081D977D
+_08018794: .4byte 0x02000000
+_08018798: .4byte 0x00016003
+_0801879C: .4byte 0x0001609b
+_080187A0:
+ ldr r0, _080187D4 @ =gUnknown_02024D68
+ mov r1, r10
+ lsls r2, r1, 2
+ adds r1, r2, r1
+ lsls r1, 2
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ lsls r0, 27
+ cmp r0, 0
+ bge _080187B8
+ bl _08019F76
+_080187B8:
+ ldr r1, _080187D8 @ =gUnknown_02024C98
+ adds r1, r2, r1
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 13
+ orrs r0, r2
+ str r0, [r1]
+ ldrb r0, [r3]
+ movs r1, 0x10
+_080187CA:
+ orrs r0, r1
+ strb r0, [r3]
+ bl _08019F76
+ .align 2, 0
+_080187D4: .4byte gUnknown_02024D68
+_080187D8: .4byte gUnknown_02024C98
+_080187DC:
+ movs r6, 0
+ ldrb r5, [r5]
+ cmp r6, r5
+ bcc _080187E8
+ bl _08019F76
+_080187E8:
+ adds r0, r6, 0
+ bl castform_switch
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ beq _080187FC
+ bl _08019E14
+_080187FC:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08018810 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _080187E8
+ bl _08019F76
+ .align 2, 0
+_08018810: .4byte gUnknown_02024A68
+_08018814:
+ ldr r2, _08018844 @ =gBattleMons
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ bne _08018828
+ bl _08019F76
+_08018828:
+ ldr r0, _08018848 @ =gUnknown_02024C07
+ mov r3, r10
+ strb r3, [r0]
+ mov r3, r8
+ ldrb r5, [r3]
+ cmp r5, 0x2C
+ beq _0801885A
+ cmp r5, 0x2C
+ bgt _0801884C
+ cmp r5, 0x3
+ bne _08018840
+ b _080189B8
+_08018840:
+ bl _08019F76
+ .align 2, 0
+_08018844: .4byte gBattleMons
+_08018848: .4byte gUnknown_02024C07
+_0801884C:
+ cmp r5, 0x36
+ bne _08018852
+ b _08018A18
+_08018852:
+ cmp r5, 0x3D
+ beq _080188DC
+ bl _08019F76
+_0801885A:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08018876
+ bl _08019F76
+_08018876:
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801888E
+ bl _08019F76
+_0801888E:
+ ldr r0, _080188D0 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801889E
+ bl _08019F76
+_0801889E:
+ ldrh r0, [r4, 0x2C]
+ ldrh r1, [r4, 0x28]
+ cmp r0, r1
+ bhi _080188AA
+ bl _08019F76
+_080188AA:
+ mov r2, r8
+ strb r5, [r2]
+ ldr r0, _080188D4 @ =gUnknown_081D9730
+ bl b_push_move_exec
+ ldr r1, _080188D8 @ =gUnknown_02024BEC
+ ldrh r0, [r4, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _080188C4
+ movs r0, 0x1
+ str r0, [r1]
+_080188C4:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_080188D0: .4byte word_2024DB8
+_080188D4: .4byte gUnknown_081D9730
+_080188D8: .4byte gUnknown_02024BEC
+_080188DC:
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r5, r1, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _080188EC
+ bl _08019F76
+_080188EC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08018906
+ bl _08019F76
+_08018906:
+ ldr r0, [r5]
+ movs r1, 0x88
+ ands r0, r1
+ cmp r0, 0
+ beq _08018918
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn
+ bl StringCopy
+_08018918:
+ ldr r0, [r5]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801892A
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _08018998 @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+_0801892A:
+ ldr r0, [r5]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801893C
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn
+ bl StringCopy
+_0801893C:
+ ldr r0, [r5]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801894E
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+_0801894E:
+ ldr r0, [r5]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08018960
+ ldr r0, _08018990 @ =gUnknown_030041C0
+ ldr r1, _080189A4 @ =gStatusConditionString_IceJpn
+ bl StringCopy
+_08018960:
+ str r4, [r5]
+ ldr r0, _080189A8 @ =0x02000000
+ ldr r4, _080189AC @ =gUnknown_02024A60
+ mov r3, r10
+ strb r3, [r4]
+ ldr r1, _080189B0 @ =0x00016003
+ adds r0, r1
+ strb r3, [r0]
+ ldr r0, _080189B4 @ =gUnknown_081D9758
+ bl b_push_move_exec
+ str r5, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ bl _08019F22
+ .align 2, 0
+_08018990: .4byte gUnknown_030041C0
+_08018994: .4byte gStatusConditionString_PoisonJpn
+_08018998: .4byte gStatusConditionString_SleepJpn
+_0801899C: .4byte gStatusConditionString_ParalysisJpn
+_080189A0: .4byte gStatusConditionString_BurnJpn
+_080189A4: .4byte gStatusConditionString_IceJpn
+_080189A8: .4byte 0x02000000
+_080189AC: .4byte gUnknown_02024A60
+_080189B0: .4byte 0x00016003
+_080189B4: .4byte gUnknown_081D9758
+_080189B8:
+ ldrb r2, [r4, 0x1B]
+ movs r0, 0x1B
+ ldrsb r0, [r4, r0]
+ cmp r0, 0xB
+ ble _080189C6
+ bl _08019F76
+_080189C6:
+ ldr r0, _08018A04 @ =gUnknown_02024CA8
+ mov r3, r10
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x16]
+ cmp r0, 0x2
+ bne _080189DC
+ bl _08019F76
+_080189DC:
+ adds r0, r2, 0x1
+ movs r2, 0
+ strb r0, [r4, 0x1B]
+ ldr r5, _08018A08 @ =0x000160a4
+ adds r1, r7, r5
+ movs r0, 0x11
+ strb r0, [r1]
+ ldr r1, _08018A0C @ =0x000160a5
+ adds r0, r7, r1
+ strb r2, [r0]
+ ldr r0, _08018A10 @ =gUnknown_081D9718
+ bl b_push_move_exec
+ ldr r2, _08018A14 @ =0x00016003
+ adds r0, r7, r2
+ mov r3, r10
+ strb r3, [r0]
+ bl _08019F22
+ .align 2, 0
+_08018A04: .4byte gUnknown_02024CA8
+_08018A08: .4byte 0x000160a4
+_08018A0C: .4byte 0x000160a5
+_08018A10: .4byte gUnknown_081D9718
+_08018A14: .4byte 0x00016003
+_08018A18:
+ ldr r2, _08018A3C @ =gUnknown_02024CA8
+ ldrb r0, [r0]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x18]
+ lsls r0, r3, 31
+ lsrs r0, 31
+ movs r2, 0x1
+ eors r2, r0
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0x18]
+ bl _08019F76
+ .align 2, 0
+_08018A3C: .4byte gUnknown_02024CA8
+_08018A40:
+ mov r5, r8
+ ldrb r0, [r5]
+ cmp r0, 0x2B
+ beq _08018A4C
+ bl _08019F76
+_08018A4C:
+ movs r4, 0
+ ldr r0, _08018ABC @ =gUnknown_081FA724
+ ldrh r2, [r0]
+ ldr r5, _08018AC0 @ =0x0000ffff
+ adds r1, r0, 0
+ cmp r2, r5
+ bne _08018A5E
+ bl _08019F76
+_08018A5E:
+ cmp r2, r3
+ beq _08018A76
+ adds r2, r1, 0
+_08018A64:
+ adds r2, 0x2
+ adds r4, 0x1
+ ldrh r0, [r2]
+ cmp r0, r5
+ bne _08018A72
+ bl _08019F76
+_08018A72:
+ cmp r0, r3
+ bne _08018A64
+_08018A76:
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _08018AC0 @ =0x0000ffff
+ cmp r1, r0
+ bne _08018A86
+ bl _08019F76
+_08018A86:
+ ldr r1, _08018AC4 @ =gBattleMons
+ ldr r0, _08018AC8 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _08018AAC
+ ldr r0, _08018ACC @ =gUnknown_02024C6C
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 4
+ orrs r1, r2
+ str r1, [r0]
+_08018AAC:
+ ldr r1, _08018AD0 @ =gUnknown_02024C10
+ ldr r0, _08018AD4 @ =gUnknown_081D98F3
+ str r0, [r1]
+ movs r0, 0x1
+ mov r9, r0
+ bl _08019F7C
+ .align 2, 0
+_08018ABC: .4byte gUnknown_081FA724
+_08018AC0: .4byte 0x0000ffff
+_08018AC4: .4byte gBattleMons
+_08018AC8: .4byte gUnknown_02024C07
+_08018ACC: .4byte gUnknown_02024C6C
+_08018AD0: .4byte gUnknown_02024C10
+_08018AD4: .4byte gUnknown_081D98F3
+_08018AD8:
+ cmp r3, 0
+ bne _08018AE0
+ bl _08019F76
+_08018AE0:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0xB
+ beq _08018B50
+ cmp r0, 0xB
+ bgt _08018AF2
+ cmp r0, 0xA
+ beq _08018AF8
+ b _08018C6A
+_08018AF2:
+ cmp r0, 0x12
+ beq _08018BA8
+ b _08018C6A
+_08018AF8:
+ cmp r4, 0xD
+ beq _08018AFE
+ b _08018C6A
+_08018AFE:
+ ldr r0, _08018B28 @ =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08018B10
+ b _08018C6A
+_08018B10:
+ ldr r1, _08018B2C @ =gUnknown_02024D28
+ ldr r0, _08018B30 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018B3C
+ ldr r1, _08018B34 @ =gUnknown_02024C10
+ ldr r0, _08018B38 @ =gUnknown_081D9843
+ b _08018B40
+ .align 2, 0
+_08018B28: .4byte gBattleMoves
+_08018B2C: .4byte gUnknown_02024D28
+_08018B30: .4byte gUnknown_02024C07
+_08018B34: .4byte gUnknown_02024C10
+_08018B38: .4byte gUnknown_081D9843
+_08018B3C:
+ ldr r1, _08018B48 @ =gUnknown_02024C10
+ ldr r0, _08018B4C @ =gUnknown_081D9842
+_08018B40:
+ str r0, [r1]
+ movs r2, 0x1
+ b _08018C68
+ .align 2, 0
+_08018B48: .4byte gUnknown_02024C10
+_08018B4C: .4byte gUnknown_081D9842
+_08018B50:
+ cmp r4, 0xB
+ beq _08018B56
+ b _08018C6A
+_08018B56:
+ ldr r0, _08018B80 @ =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08018B68
+ b _08018C6A
+_08018B68:
+ ldr r1, _08018B84 @ =gUnknown_02024D28
+ ldr r0, _08018B88 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018B94
+ ldr r1, _08018B8C @ =gUnknown_02024C10
+ ldr r0, _08018B90 @ =gUnknown_081D9843
+ b _08018B98
+ .align 2, 0
+_08018B80: .4byte gBattleMoves
+_08018B84: .4byte gUnknown_02024D28
+_08018B88: .4byte gUnknown_02024C07
+_08018B8C: .4byte gUnknown_02024C10
+_08018B90: .4byte gUnknown_081D9843
+_08018B94:
+ ldr r1, _08018BA0 @ =gUnknown_02024C10
+ ldr r0, _08018BA4 @ =gUnknown_081D9842
+_08018B98:
+ str r0, [r1]
+ movs r3, 0x1
+ mov r9, r3
+ b _08018C6A
+ .align 2, 0
+_08018BA0: .4byte gUnknown_02024C10
+_08018BA4: .4byte gUnknown_081D9842
+_08018BA8:
+ cmp r4, 0xA
+ bne _08018C6A
+ ldr r1, _08018BF4 @ =gBattleMons
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08018C6A
+ ldr r2, _08018BF8 @ =0x02017100
+ mov r0, r10
+ lsls r1, r0, 2
+ adds r0, r1, r2
+ ldr r3, [r0]
+ movs r4, 0x1
+ ands r3, r4
+ adds r5, r1, 0
+ cmp r3, 0
+ bne _08018C30
+ ldr r0, _08018BFC @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+ ldr r1, _08018C00 @ =gUnknown_02024D28
+ ldr r0, _08018C04 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018C10
+ ldr r1, _08018C08 @ =gUnknown_02024C10
+ ldr r0, _08018C0C @ =gUnknown_081D987C
+ b _08018C14
+ .align 2, 0
+_08018BF4: .4byte gBattleMons
+_08018BF8: .4byte 0x02017100
+_08018BFC: .4byte gUnknown_02024D1E
+_08018C00: .4byte gUnknown_02024D28
+_08018C04: .4byte gUnknown_02024C07
+_08018C08: .4byte gUnknown_02024C10
+_08018C0C: .4byte gUnknown_081D987C
+_08018C10:
+ ldr r1, _08018C28 @ =gUnknown_02024C10
+ ldr r0, _08018C2C @ =gUnknown_081D987B
+_08018C14:
+ str r0, [r1]
+ adds r0, r5, r2
+ ldr r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ str r1, [r0]
+ movs r1, 0x2
+ mov r9, r1
+ b _08018C6A
+ .align 2, 0
+_08018C28: .4byte gUnknown_02024C10
+_08018C2C: .4byte gUnknown_081D987B
+_08018C30:
+ ldr r0, _08018C4C @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r1, _08018C50 @ =gUnknown_02024D28
+ ldr r0, _08018C54 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018C60
+ ldr r1, _08018C58 @ =gUnknown_02024C10
+ ldr r0, _08018C5C @ =gUnknown_081D987C
+ b _08018C64
+ .align 2, 0
+_08018C4C: .4byte gUnknown_02024D1E
+_08018C50: .4byte gUnknown_02024D28
+_08018C54: .4byte gUnknown_02024C07
+_08018C58: .4byte gUnknown_02024C10
+_08018C5C: .4byte gUnknown_081D987C
+_08018C60:
+ ldr r1, _08018CA4 @ =gUnknown_02024C10
+ ldr r0, _08018CA8 @ =gUnknown_081D987B
+_08018C64:
+ str r0, [r1]
+ movs r2, 0x2
+_08018C68:
+ mov r9, r2
+_08018C6A:
+ mov r3, r9
+ cmp r3, 0x1
+ beq _08018C74
+ bl _08019F76
+_08018C74:
+ ldr r1, _08018CAC @ =gBattleMons
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2C]
+ ldrh r2, [r1, 0x28]
+ cmp r0, r2
+ bne _08018CD0
+ ldr r1, _08018CB0 @ =gUnknown_02024D28
+ ldr r0, _08018CB4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08018CBC
+ ldr r1, _08018CA4 @ =gUnknown_02024C10
+ ldr r0, _08018CB8 @ =gUnknown_081D9866
+ str r0, [r1]
+ bl _08019F76
+ .align 2, 0
+_08018CA4: .4byte gUnknown_02024C10
+_08018CA8: .4byte gUnknown_081D987B
+_08018CAC: .4byte gBattleMons
+_08018CB0: .4byte gUnknown_02024D28
+_08018CB4: .4byte gUnknown_02024C07
+_08018CB8: .4byte gUnknown_081D9866
+_08018CBC:
+ ldr r1, _08018CC8 @ =gUnknown_02024C10
+ ldr r0, _08018CCC @ =gUnknown_081D9865
+ str r0, [r1]
+ bl _08019F76
+ .align 2, 0
+_08018CC8: .4byte gUnknown_02024C10
+_08018CCC: .4byte gUnknown_081D9865
+_08018CD0:
+ ldr r2, _08018CEC @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 2
+ str r0, [r2]
+ cmp r0, 0
+ bne _08018CE0
+ mov r3, r9
+ str r3, [r2]
+_08018CE0:
+ ldr r0, [r2]
+ negs r0, r0
+ str r0, [r2]
+ bl _08019F76
+ .align 2, 0
+_08018CEC: .4byte gUnknown_02024BEC
+_08018CF0:
+ mov r5, r8
+ ldrb r0, [r5]
+ subs r0, 0x9
+ cmp r0, 0x2F
+ bls _08018CFE
+ bl _08019F76
+_08018CFE:
+ lsls r0, 2
+ ldr r1, _08018D08 @ =_08018D0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08018D08: .4byte _08018D0C
+ .align 2, 0
+_08018D0C:
+ .4byte _08019128
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08018DCC
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08018E94
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08018F54
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _0801904C
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019204
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _08019F76
+ .4byte _080192E0
+_08018DCC:
+ ldr r0, _08018E74 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08018DDC
+ bl _08019F76
+_08018DDC:
+ cmp r3, 0xA5
+ bne _08018DE4
+ bl _08019F76
+_08018DE4:
+ ldr r0, _08018E78 @ =gBattleMoves
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08018DF8
+ bl _08019F76
+_08018DF8:
+ ldr r2, _08018E7C @ =gUnknown_02024D68
+ ldr r0, _08018E80 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018E20
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018E20
+ bl _08019F76
+_08018E20:
+ ldr r1, _08018E84 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r1, r0, r1
+ adds r3, r1, 0
+ adds r3, 0x21
+ ldrb r0, [r3]
+ cmp r0, r4
+ bne _08018E3A
+ bl _08019F76
+_08018E3A:
+ adds r2, r1, 0
+ adds r2, 0x22
+ ldrb r0, [r2]
+ cmp r0, r4
+ bne _08018E48
+ bl _08019F76
+_08018E48:
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ bne _08018E52
+ bl _08019F76
+_08018E52:
+ strb r4, [r3]
+ strb r4, [r2]
+ ldr r1, _08018E88 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08018E8C @ =gUnknown_02024C10
+ ldr r0, _08018E90 @ =gUnknown_081D9921
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_08018E74: .4byte gUnknown_02024C68
+_08018E78: .4byte gBattleMoves
+_08018E7C: .4byte gUnknown_02024D68
+_08018E80: .4byte gUnknown_02024C08
+_08018E84: .4byte gBattleMons
+_08018E88: .4byte gUnknown_030041C0
+_08018E8C: .4byte gUnknown_02024C10
+_08018E90: .4byte gUnknown_081D9921
+_08018E94:
+ ldr r0, _08018F2C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08018EA4
+ bl _08019F76
+_08018EA4:
+ ldr r1, _08018F30 @ =gBattleMons
+ ldr r0, _08018F34 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ bne _08018EBA
+ bl _08019F76
+_08018EBA:
+ ldr r0, _08018F38 @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08018ECC
+ bl _08019F76
+_08018ECC:
+ ldr r2, _08018F3C @ =gUnknown_02024D68
+ ldr r0, _08018F40 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018EF4
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018EF4
+ bl _08019F76
+_08018EF4:
+ ldr r1, _08018F44 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08018F0E
+ bl _08019F76
+_08018F0E:
+ ldr r1, _08018F48 @ =gUnknown_02024BEC
+ ldrh r0, [r4, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08018F1C
+ str r2, [r1]
+_08018F1C:
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08018F4C @ =gUnknown_02024C10
+ ldr r0, _08018F50 @ =gUnknown_081D9928
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_08018F2C: .4byte gUnknown_02024C68
+_08018F30: .4byte gBattleMons
+_08018F34: .4byte gUnknown_02024C07
+_08018F38: .4byte gUnknown_02024D28
+_08018F3C: .4byte gUnknown_02024D68
+_08018F40: .4byte gUnknown_02024C08
+_08018F44: .4byte gBattleMoves
+_08018F48: .4byte gUnknown_02024BEC
+_08018F4C: .4byte gUnknown_02024C10
+_08018F50: .4byte gUnknown_081D9928
+_08018F54:
+ ldr r0, _08019020 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08018F64
+ bl _08019F76
+_08018F64:
+ ldr r1, _08019024 @ =gBattleMons
+ ldr r0, _08019028 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08018F7A
+ bl _08019F76
+_08018F7A:
+ ldr r0, _0801902C @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08018F8C
+ bl _08019F76
+_08018F8C:
+ ldr r2, _08019030 @ =gUnknown_02024D68
+ ldr r0, _08019034 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018FB4
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08018FB4
+ bl _08019F76
+_08018FB4:
+ ldr r1, _08019038 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08018FCC
+ bl _08019F76
+_08018FCC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08018FE4
+ bl _08019F76
+_08018FE4:
+ ldr r5, _0801903C @ =gUnknown_02024D1E
+ movs r4, 0x3
+_08018FE8:
+ bl Random
+ ands r0, r4
+ strb r0, [r5, 0x3]
+ cmp r0, 0
+ beq _08018FE8
+ ldr r1, _0801903C @ =gUnknown_02024D1E
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x3
+ bne _08019000
+ adds r0, 0x2
+ strb r0, [r1, 0x3]
+_08019000:
+ ldrb r0, [r1, 0x3]
+ adds r0, 0x40
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019040 @ =gUnknown_02024C10
+ ldr r0, _08019044 @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _08019048 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_08019020: .4byte gUnknown_02024C68
+_08019024: .4byte gBattleMons
+_08019028: .4byte gUnknown_02024C07
+_0801902C: .4byte gUnknown_02024D28
+_08019030: .4byte gUnknown_02024D68
+_08019034: .4byte gUnknown_02024C08
+_08019038: .4byte gBattleMoves
+_0801903C: .4byte gUnknown_02024D1E
+_08019040: .4byte gUnknown_02024C10
+_08019044: .4byte gUnknown_081D9950
+_08019048: .4byte gUnknown_02024C6C
+_0801904C:
+ ldr r0, _080190FC @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801905C
+ bl _08019F76
+_0801905C:
+ ldr r1, _08019100 @ =gBattleMons
+ ldr r0, _08019104 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08019072
+ bl _08019F76
+_08019072:
+ ldr r0, _08019108 @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08019084
+ bl _08019F76
+_08019084:
+ ldr r2, _0801910C @ =gUnknown_02024D68
+ ldr r0, _08019110 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080190AC
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080190AC
+ bl _08019F76
+_080190AC:
+ ldr r1, _08019114 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080190C4
+ bl _08019F76
+_080190C4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080190DC
+ bl _08019F76
+_080190DC:
+ ldr r1, _08019118 @ =gUnknown_02024D1E
+ movs r0, 0x42
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801911C @ =gUnknown_02024C10
+ ldr r0, _08019120 @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _08019124 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_080190FC: .4byte gUnknown_02024C68
+_08019100: .4byte gBattleMons
+_08019104: .4byte gUnknown_02024C07
+_08019108: .4byte gUnknown_02024D28
+_0801910C: .4byte gUnknown_02024D68
+_08019110: .4byte gUnknown_02024C08
+_08019114: .4byte gBattleMoves
+_08019118: .4byte gUnknown_02024D1E
+_0801911C: .4byte gUnknown_02024C10
+_08019120: .4byte gUnknown_081D9950
+_08019124: .4byte gUnknown_02024C6C
+_08019128:
+ ldr r0, _080191D8 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08019138
+ bl _08019F76
+_08019138:
+ ldr r1, _080191DC @ =gBattleMons
+ ldr r0, _080191E0 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801914E
+ bl _08019F76
+_0801914E:
+ ldr r0, _080191E4 @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08019160
+ bl _08019F76
+_08019160:
+ ldr r2, _080191E8 @ =gUnknown_02024D68
+ ldr r0, _080191EC @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08019188
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08019188
+ bl _08019F76
+_08019188:
+ ldr r1, _080191F0 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080191A0
+ bl _08019F76
+_080191A0:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _080191B8
+ bl _08019F76
+_080191B8:
+ ldr r1, _080191F4 @ =gUnknown_02024D1E
+ movs r0, 0x45
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080191F8 @ =gUnknown_02024C10
+ ldr r0, _080191FC @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _08019200 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_080191D8: .4byte gUnknown_02024C68
+_080191DC: .4byte gBattleMons
+_080191E0: .4byte gUnknown_02024C07
+_080191E4: .4byte gUnknown_02024D28
+_080191E8: .4byte gUnknown_02024D68
+_080191EC: .4byte gUnknown_02024C08
+_080191F0: .4byte gBattleMoves
+_080191F4: .4byte gUnknown_02024D1E
+_080191F8: .4byte gUnknown_02024C10
+_080191FC: .4byte gUnknown_081D9950
+_08019200: .4byte gUnknown_02024C6C
+_08019204:
+ ldr r0, _080192B4 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08019214
+ bl _08019F76
+_08019214:
+ ldr r1, _080192B8 @ =gBattleMons
+ ldr r0, _080192BC @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801922A
+ bl _08019F76
+_0801922A:
+ ldr r0, _080192C0 @ =gUnknown_02024D28
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801923C
+ bl _08019F76
+_0801923C:
+ ldr r1, _080192C4 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08019254
+ bl _08019F76
+_08019254:
+ ldr r2, _080192C8 @ =gUnknown_02024D68
+ ldr r0, _080192CC @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801927C
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801927C
+ bl _08019F76
+_0801927C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08019294
+ bl _08019F76
+_08019294:
+ ldr r1, _080192D0 @ =gUnknown_02024D1E
+ movs r0, 0x43
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080192D4 @ =gUnknown_02024C10
+ ldr r0, _080192D8 @ =gUnknown_081D9950
+ str r0, [r1]
+ ldr r2, _080192DC @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r2]
+ bl _08019F22
+ .align 2, 0
+_080192B4: .4byte gUnknown_02024C68
+_080192B8: .4byte gBattleMons
+_080192BC: .4byte gUnknown_02024C07
+_080192C0: .4byte gUnknown_02024D28
+_080192C4: .4byte gBattleMoves
+_080192C8: .4byte gUnknown_02024D68
+_080192CC: .4byte gUnknown_02024C08
+_080192D0: .4byte gUnknown_02024D1E
+_080192D4: .4byte gUnknown_02024C10
+_080192D8: .4byte gUnknown_081D9950
+_080192DC: .4byte gUnknown_02024C6C
+_080192E0:
+ ldr r0, _08019420 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _080192F0
+ bl _08019F76
+_080192F0:
+ ldr r5, _08019424 @ =gBattleMons
+ ldr r7, _08019428 @ =gUnknown_02024C07
+ ldrb r1, [r7]
+ movs r6, 0x58
+ adds r0, r1, 0
+ muls r0, r6
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08019308
+ bl _08019F76
+_08019308:
+ ldr r0, _0801942C @ =gUnknown_02024D28
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801931A
+ bl _08019F76
+_0801931A:
+ ldr r1, _08019430 @ =gBattleMoves
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08019332
+ bl _08019F76
+_08019332:
+ ldr r3, _08019434 @ =gUnknown_02024D68
+ ldr r0, _08019438 @ =gUnknown_02024C08
+ mov r8, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801935C
+ adds r0, r3, 0
+ adds r0, 0xC
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801935C
+ bl _08019F76
+_0801935C:
+ adds r0, r1, 0
+ muls r0, r6
+ adds r0, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801936C
+ bl _08019F76
+_0801936C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08019384
+ bl _08019F76
+_08019384:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bne _08019396
+ bl _08019F76
+_08019396:
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ bl GetGenderFromSpeciesAndPersonality
+ adds r4, r0, 0
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x14]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _080193B4
+ bl _08019F76
+_080193B4:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r4, r5, 0
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _080193CE
+ bl _08019F76
+_080193CE:
+ ldr r0, [sp, 0x8]
+ ldr r1, [sp, 0x10]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080193E2
+ bl _08019F76
+_080193E2:
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x14]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080193F6
+ bl _08019F76
+_080193F6:
+ ldrb r0, [r7]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r1, _0801943C @ =gBitTable
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 16
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019440 @ =gUnknown_02024C10
+ ldr r0, _08019444 @ =gUnknown_081D9943
+ str r0, [r1]
+ bl _08019F22
+ .align 2, 0
+_08019420: .4byte gUnknown_02024C68
+_08019424: .4byte gBattleMons
+_08019428: .4byte gUnknown_02024C07
+_0801942C: .4byte gUnknown_02024D28
+_08019430: .4byte gBattleMoves
+_08019434: .4byte gUnknown_02024D68
+_08019438: .4byte gUnknown_02024C08
+_0801943C: .4byte gBitTable
+_08019440: .4byte gUnknown_02024C10
+_08019444: .4byte gUnknown_081D9943
+_08019448:
+ movs r5, 0
+ mov r10, r5
+ ldr r0, _0801947C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _08019458
+ bl _08019F76
+_08019458:
+ ldr r1, _08019480 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ subs r0, 0x7
+ adds r2, r1, 0
+ cmp r0, 0x41
+ bls _08019472
+ b _080196D6
+_08019472:
+ lsls r0, 2
+ ldr r1, _08019484 @ =_08019488
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801947C: .4byte gUnknown_02024A68
+_08019480: .4byte gBattleMons
+_08019484: .4byte _08019488
+ .align 2, 0
+_08019488:
+ .4byte _080195EC
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196B0
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _08019614
+ .4byte _080196D6
+ .4byte _08019590
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080195BC
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _08019680
+ .4byte _08019650
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _080196D6
+ .4byte _08019614
+_08019590:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080195B0 @ =0x00000f88
+ ands r0, r1
+ cmp r0, 0
+ bne _080195AA
+ b _080196D6
+_080195AA:
+ ldr r0, _080195B4 @ =gUnknown_030041C0
+ ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn
+ b _0801969C
+ .align 2, 0
+_080195B0: .4byte 0x00000f88
+_080195B4: .4byte gUnknown_030041C0
+_080195B8: .4byte gStatusConditionString_PoisonJpn
+_080195BC:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _080195D6
+ b _080196D6
+_080195D6:
+ ldr r0, _080195E4 @ =gUnknown_030041C0
+ ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn
+ bl StringCopy
+ movs r2, 0x2
+ mov r9, r2
+ b _080196DC
+ .align 2, 0
+_080195E4: .4byte gUnknown_030041C0
+_080195E8: .4byte gStatusConditionString_ConfusionJpn
+_080195EC:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _0801960C @ =gUnknown_030041C0
+ ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn
+ b _0801969C
+ .align 2, 0
+_0801960C: .4byte gUnknown_030041C0
+_08019610: .4byte gStatusConditionString_ParalysisJpn
+_08019614:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ adds r2, 0x50
+ adds r2, r3, r2
+ ldr r0, [r2]
+ ldr r1, _08019644 @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _08019648 @ =gUnknown_030041C0
+ ldr r1, _0801964C @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+ movs r0, 0x1
+ mov r9, r0
+ b _080196DC
+ .align 2, 0
+_08019644: .4byte 0xf7ffffff
+_08019648: .4byte gUnknown_030041C0
+_0801964C: .4byte gStatusConditionString_SleepJpn
+_08019650:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _08019678 @ =gUnknown_030041C0
+ ldr r1, _0801967C @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+ movs r2, 0x1
+ mov r9, r2
+ b _080196DC
+ .align 2, 0
+_08019678: .4byte gUnknown_030041C0
+_0801967C: .4byte gStatusConditionString_BurnJpn
+_08019680:
+ movs r0, 0x58
+ mov r3, r10
+ muls r3, r0
+ adds r0, r3, 0
+ adds r1, r2, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _080196A8 @ =gUnknown_030041C0
+ ldr r1, _080196AC @ =gStatusConditionString_IceJpn
+_0801969C:
+ bl StringCopy
+ movs r5, 0x1
+ mov r9, r5
+ b _080196DC
+ .align 2, 0
+_080196A8: .4byte gUnknown_030041C0
+_080196AC: .4byte gStatusConditionString_IceJpn
+_080196B0:
+ movs r0, 0x58
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ beq _080196D6
+ ldr r0, _080196EC @ =gUnknown_030041C0
+ ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn
+ bl StringCopy
+ movs r2, 0x3
+ mov r9, r2
+_080196D6:
+ mov r3, r9
+ cmp r3, 0
+ beq _08019798
+_080196DC:
+ mov r5, r9
+ cmp r5, 0x2
+ beq _08019710
+ cmp r5, 0x2
+ bgt _080196F4
+ cmp r5, 0x1
+ beq _080196FC
+ b _0801973C
+ .align 2, 0
+_080196EC: .4byte gUnknown_030041C0
+_080196F0: .4byte gStatusConditionString_LoveJpn
+_080196F4:
+ mov r0, r9
+ cmp r0, 0x3
+ beq _08019728
+ b _0801973C
+_080196FC:
+ ldr r1, _0801970C @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x4C
+ adds r2, r1
+ movs r0, 0
+ b _0801973A
+ .align 2, 0
+_0801970C: .4byte gBattleMons
+_08019710:
+ ldr r1, _08019724 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x8
+ negs r1, r1
+ b _08019738
+ .align 2, 0
+_08019724: .4byte gBattleMons
+_08019728:
+ ldr r1, _08019778 @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r10
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ ldr r1, _0801977C @ =0xfff0ffff
+_08019738:
+ ands r0, r1
+_0801973A:
+ str r0, [r2]
+_0801973C:
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019780 @ =gUnknown_02024C10
+ ldr r0, _08019784 @ =gUnknown_081D9956
+ str r0, [r1]
+ ldr r0, _08019788 @ =0x02000000
+ ldr r1, _0801978C @ =0x00016003
+ adds r0, r1
+ mov r2, r10
+ strb r2, [r0]
+ ldr r4, _08019790 @ =gUnknown_02024A60
+ strb r2, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _08019794 @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ bl _08019F92
+ .align 2, 0
+_08019778: .4byte gBattleMons
+_0801977C: .4byte 0xfff0ffff
+_08019780: .4byte gUnknown_02024C10
+_08019784: .4byte gUnknown_081D9956
+_08019788: .4byte 0x02000000
+_0801978C: .4byte 0x00016003
+_08019790: .4byte gUnknown_02024A60
+_08019794: .4byte gUnknown_02024ACC
+_08019798:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _080197B0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcs _080197AC
+ b _08019458
+_080197AC:
+ bl _08019F76
+ .align 2, 0
+_080197B0: .4byte gUnknown_02024A68
+_080197B4:
+ movs r3, 0
+ mov r10, r3
+ ldr r0, _080197FC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _080197C2
+ b _08019F76
+_080197C2:
+ ldr r4, _08019800 @ =gBattleMons
+_080197C4:
+ movs r0, 0x58
+ mov r5, r10
+ muls r5, r0
+ adds r0, r5, 0
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bne _080197E8
+ mov r0, r10
+ bl castform_switch
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r0, 0
+ beq _080197E8
+ b _08019E40
+_080197E8:
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _080197FC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r10, r0
+ bcc _080197C4
+ b _08019F76
+ .align 2, 0
+_080197FC: .4byte gUnknown_02024A68
+_08019800: .4byte gBattleMons
+_08019804:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x1C
+ beq _0801980E
+ b _08019F76
+_0801980E:
+ ldr r4, _08019860 @ =gUnknown_02024C6C
+ ldr r1, [r4]
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801981E
+ b _08019F76
+_0801981E:
+ ldr r0, _08019864 @ =0xffffbfff
+ ands r1, r0
+ str r1, [r4]
+ ldr r3, _08019868 @ =0x000160ca
+ adds r2, r7, r3
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0x6
+ bne _08019838
+ movs r0, 0x2
+ strb r0, [r2]
+_08019838:
+ ldr r1, _0801986C @ =gUnknown_02024D1E
+ ldrb r0, [r2]
+ adds r0, 0x40
+ strb r0, [r1, 0x3]
+ ldr r0, _08019870 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ ldr r5, _08019874 @ =0x00016003
+ adds r0, r7, r5
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019878 @ =gUnknown_02024C10
+ ldr r0, _0801987C @ =gUnknown_081D9953
+ str r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r4]
+ b _08019F22
+ .align 2, 0
+_08019860: .4byte gUnknown_02024C6C
+_08019864: .4byte 0xffffbfff
+_08019868: .4byte 0x000160ca
+_0801986C: .4byte gUnknown_02024D1E
+_08019870: .4byte gUnknown_02024C08
+_08019874: .4byte 0x00016003
+_08019878: .4byte gUnknown_02024C10
+_0801987C: .4byte gUnknown_081D9953
+_08019880:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0x1C
+ beq _0801988A
+ b _08019F76
+_0801988A:
+ ldr r4, _080198DC @ =gUnknown_02024C6C
+ ldr r1, [r4]
+ movs r0, 0x80
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801989A
+ b _08019F76
+_0801989A:
+ ldr r0, _080198E0 @ =0xffffbfff
+ ands r1, r0
+ str r1, [r4]
+ ldr r3, _080198E4 @ =0x000160ca
+ adds r2, r7, r3
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ cmp r0, 0x6
+ bne _080198B4
+ movs r0, 0x2
+ strb r0, [r2]
+_080198B4:
+ ldr r1, _080198E8 @ =gUnknown_02024D1E
+ ldrb r0, [r2]
+ strb r0, [r1, 0x3]
+ ldr r0, _080198EC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ ldr r5, _080198F0 @ =0x00016003
+ adds r0, r7, r5
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080198F4 @ =gUnknown_02024C10
+ ldr r0, _080198F8 @ =gUnknown_081D9953
+ str r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 6
+ orrs r0, r1
+ str r0, [r4]
+ b _08019F22
+ .align 2, 0
+_080198DC: .4byte gUnknown_02024C6C
+_080198E0: .4byte 0xffffbfff
+_080198E4: .4byte 0x000160ca
+_080198E8: .4byte gUnknown_02024D1E
+_080198EC: .4byte gUnknown_02024C07
+_080198F0: .4byte 0x00016003
+_080198F4: .4byte gUnknown_02024C10
+_080198F8: .4byte gUnknown_081D9953
+_080198FC:
+ movs r4, 0
+ ldr r0, _08019934 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ cmp r4, r1
+ blt _08019908
+ b _08019F76
+_08019908:
+ ldr r0, _08019938 @ =gBattleMons
+ adds r5, r1, 0
+ ldr r2, _0801993C @ =gUnknown_02024C98
+ adds r3, r0, 0
+ adds r3, 0x20
+ movs r6, 0x80
+ lsls r6, 12
+_08019916:
+ ldrb r1, [r3]
+ cmp r1, 0x16
+ bne _08019926
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _08019926
+ b _08019E6C
+_08019926:
+ adds r2, 0x4
+ adds r3, 0x58
+ adds r4, 0x1
+ cmp r4, r5
+ blt _08019916
+ b _08019F76
+ .align 2, 0
+_08019934: .4byte gUnknown_02024A68
+_08019938: .4byte gBattleMons
+_0801993C: .4byte gUnknown_02024C98
+_08019940:
+ movs r4, 0
+ ldr r0, _08019A1C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _0801994C
+ b _08019F76
+_0801994C:
+ ldr r0, _08019A20 @ =gUnknown_02024A60
+ mov r8, r0
+ ldr r1, _08019A24 @ =gBattleMons
+ adds r1, 0x20
+ str r1, [sp, 0x1C]
+ movs r2, 0
+ str r2, [sp, 0x20]
+_0801995A:
+ ldr r3, [sp, 0x1C]
+ ldrb r0, [r3]
+ cmp r0, 0x24
+ beq _08019964
+ b _08019AF6
+_08019964:
+ ldr r0, _08019A28 @ =gUnknown_02024C98
+ ldr r5, [sp, 0x20]
+ adds r0, r5, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 13
+ ands r1, r0
+ str r5, [sp, 0x18]
+ cmp r1, 0
+ bne _0801997A
+ b _08019AF6
+_0801997A:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ adds r5, r0, 0
+ eors r5, r1
+ ands r5, r1
+ adds r0, r5, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08019A2C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080199AE
+ b _08019ABC
+_080199AE:
+ movs r1, 0x58
+ adds r0, r6, 0
+ muls r0, r1
+ ldr r3, _08019A24 @ =gBattleMons
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019A78
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019A34
+ movs r1, 0x58
+ adds r0, r7, 0
+ muls r0, r1
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019A34
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019A34
+ str r2, [sp, 0x24]
+ bl Random
+ ldr r2, [sp, 0x24]
+ adds r1, r2, 0
+ ands r1, r0
+ lsls r1, 1
+ orrs r5, r1
+ adds r0, r5, 0
+ bl battle_get_side_with_given_state
+ mov r2, r8
+ strb r0, [r2]
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ ldr r5, _08019A24 @ =gBattleMons
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x1C]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldr r2, _08019A30 @ =byte_2024C06
+ strb r0, [r2]
+ b _08019AE4
+ .align 2, 0
+_08019A1C: .4byte gUnknown_02024A68
+_08019A20: .4byte gUnknown_02024A60
+_08019A24: .4byte gBattleMons
+_08019A28: .4byte gUnknown_02024C98
+_08019A2C: .4byte gUnknown_020239F8
+_08019A30: .4byte byte_2024C06
+_08019A34:
+ ldr r3, _08019A74 @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r6, 0
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019A78
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019A78
+ mov r5, r8
+ strb r6, [r5]
+ adds r1, r4, 0
+ muls r1, r2
+ adds r1, r3
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _08019AE0
+ .align 2, 0
+_08019A74: .4byte gBattleMons
+_08019A78:
+ ldr r3, _08019AB8 @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r7, 0
+ muls r0, r2
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08019AEE
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019AEE
+ mov r5, r8
+ strb r7, [r5]
+ adds r1, r4, 0
+ muls r1, r2
+ adds r1, r3
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _08019AE0
+ .align 2, 0
+_08019AB8: .4byte gBattleMons
+_08019ABC:
+ mov r2, r8
+ strb r6, [r2]
+ movs r3, 0x58
+ adds r0, r6, 0
+ muls r0, r3
+ ldr r5, _08019B10 @ =gBattleMons
+ adds r0, r5
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _08019AEE
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08019AEE
+ ldr r0, [sp, 0x1C]
+ strb r1, [r0]
+ ldrb r0, [r2]
+_08019AE0:
+ ldr r1, _08019B14 @ =byte_2024C06
+ strb r0, [r1]
+_08019AE4:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019AEE:
+ mov r2, r9
+ cmp r2, 0
+ beq _08019AF6
+ b _08019E88
+_08019AF6:
+ ldr r3, [sp, 0x1C]
+ adds r3, 0x58
+ str r3, [sp, 0x1C]
+ ldr r5, [sp, 0x20]
+ adds r5, 0x4
+ str r5, [sp, 0x20]
+ adds r4, 0x1
+ ldr r0, _08019B18 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08019B0E
+ b _0801995A
+_08019B0E:
+ b _08019F76
+ .align 2, 0
+_08019B10: .4byte gBattleMons
+_08019B14: .4byte byte_2024C06
+_08019B18: .4byte gUnknown_02024A68
+_08019B1C:
+ movs r4, 0
+ ldr r0, _08019B54 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ cmp r4, r1
+ blt _08019B28
+ b _08019F76
+_08019B28:
+ ldr r0, _08019B58 @ =gBattleMons
+ adds r5, r1, 0
+ ldr r2, _08019B5C @ =gUnknown_02024C98
+ adds r3, r0, 0
+ adds r3, 0x20
+ movs r6, 0x80
+ lsls r6, 12
+_08019B36:
+ ldrb r1, [r3]
+ cmp r1, 0x16
+ bne _08019B46
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _08019B46
+ b _08019F04
+_08019B46:
+ adds r2, 0x4
+ adds r3, 0x58
+ adds r4, 0x1
+ cmp r4, r5
+ blt _08019B36
+ b _08019F76
+ .align 2, 0
+_08019B54: .4byte gUnknown_02024A68
+_08019B58: .4byte gBattleMons
+_08019B5C: .4byte gUnknown_02024C98
+_08019B60:
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019BB0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019B76
+ b _08019F76
+_08019B76:
+ ldr r7, _08019BB4 @ =gBattleMons
+_08019B78:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r0, r5
+ beq _08019BA2
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019BA2
+ ldr r0, _08019BB8 @ =byte_2024C06
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019BA2:
+ adds r4, r3, 0
+ ldr r0, _08019BB0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019B78
+ b _08019F76
+ .align 2, 0
+_08019BB0: .4byte gUnknown_02024A68
+_08019BB4: .4byte gBattleMons
+_08019BB8: .4byte byte_2024C06
+_08019BBC:
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019C0C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019BD2
+ b _08019F76
+_08019BD2:
+ ldr r7, _08019C10 @ =gBattleMons
+_08019BD4:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r4, 0x1
+ cmp r0, r5
+ bne _08019BFE
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019BFE
+ ldr r0, _08019C14 @ =byte_2024C06
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019BFE:
+ adds r4, r3, 0
+ ldr r0, _08019C0C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019BD4
+ b _08019F76
+ .align 2, 0
+_08019C0C: .4byte gUnknown_02024A68
+_08019C10: .4byte gBattleMons
+_08019C14: .4byte byte_2024C06
+_08019C18:
+ mov r1, r8
+ ldrb r0, [r1]
+ cmp r0, 0xFD
+ beq _08019C40
+ cmp r0, 0xFE
+ beq _08019C78
+ movs r4, 0
+ ldr r0, _08019C38 @ =gUnknown_02024A68
+ adds r5, r0, 0
+ ldrb r2, [r5]
+ cmp r4, r2
+ blt _08019C32
+ b _08019F76
+_08019C32:
+ ldr r2, _08019C3C @ =gBattleMons
+ b _08019CB0
+ .align 2, 0
+_08019C38: .4byte gUnknown_02024A68
+_08019C3C: .4byte gBattleMons
+_08019C40:
+ movs r4, 0
+ ldr r0, _08019C70 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019C4C
+ b _08019F76
+_08019C4C:
+ ldr r5, _08019C74 @ =gUnknown_02024C98
+ movs r2, 0x80
+ lsls r2, 9
+ adds r1, r0, 0
+_08019C54:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r2
+ adds r3, r4, 0x1
+ cmp r0, 0
+ beq _08019C68
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019C68:
+ adds r4, r3, 0
+ cmp r4, r1
+ blt _08019C54
+ b _08019F76
+ .align 2, 0
+_08019C70: .4byte gUnknown_02024A68
+_08019C74: .4byte gUnknown_02024C98
+_08019C78:
+ movs r4, 0
+ ldr r0, _08019CA8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019C84
+ b _08019F76
+_08019C84:
+ ldr r5, _08019CAC @ =gUnknown_02024C98
+ movs r2, 0x80
+ lsls r2, 10
+ adds r1, r0, 0
+_08019C8C:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ ands r0, r2
+ adds r3, r4, 0x1
+ cmp r0, 0
+ beq _08019CA0
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019CA0:
+ adds r4, r3, 0
+ cmp r4, r1
+ blt _08019C8C
+ b _08019F76
+ .align 2, 0
+_08019CA8: .4byte gUnknown_02024A68
+_08019CAC: .4byte gUnknown_02024C98
+_08019CB0:
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r4, 0x1
+ cmp r0, r6
+ bne _08019CCA
+ mov r0, r8
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019CCA:
+ adds r4, r3, 0
+ ldrb r1, [r5]
+ cmp r4, r1
+ blt _08019CB0
+ b _08019F76
+_08019CD4:
+ movs r4, 0
+ ldr r0, _08019D10 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019CE0
+ b _08019F76
+_08019CE0:
+ ldr r7, _08019D14 @ =gBattleMons
+ adds r2, r0, 0
+ movs r5, 0x58
+_08019CE6:
+ adds r0, r4, 0
+ muls r0, r5
+ adds r1, r0, r7
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r4, 0x1
+ cmp r0, r6
+ bne _08019D08
+ ldrh r0, [r1, 0x28]
+ cmp r0, 0
+ beq _08019D08
+ mov r0, r8
+ strb r6, [r0]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019D08:
+ adds r4, r3, 0
+ cmp r4, r2
+ blt _08019CE6
+ b _08019F76
+ .align 2, 0
+_08019D10: .4byte gUnknown_02024A68
+_08019D14: .4byte gBattleMons
+_08019D18:
+ movs r4, 0
+ ldr r0, _08019D50 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019D24
+ b _08019F76
+_08019D24:
+ ldr r7, _08019D54 @ =gBattleMons
+ adds r1, r0, 0
+ movs r5, 0x58
+ ldr r2, _08019D58 @ =byte_2024C06
+_08019D2C:
+ adds r0, r4, 0
+ muls r0, r5
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r3, r4, 0x1
+ cmp r0, r6
+ bne _08019D48
+ cmp r4, r10
+ beq _08019D48
+ strb r6, [r2]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019D48:
+ adds r4, r3, 0
+ cmp r4, r1
+ blt _08019D2C
+ b _08019F76
+ .align 2, 0
+_08019D50: .4byte gUnknown_02024A68
+_08019D54: .4byte gBattleMons
+_08019D58: .4byte byte_2024C06
+_08019D5C:
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019DAC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019D72
+ b _08019F76
+_08019D72:
+ ldr r7, _08019DB0 @ =gBattleMons
+_08019D74:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ beq _08019DA0
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019DA0
+ ldr r0, _08019DB4 @ =byte_2024C06
+ strb r6, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019DA0:
+ adds r4, 0x1
+ ldr r0, _08019DAC @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019D74
+ b _08019F76
+ .align 2, 0
+_08019DAC: .4byte gUnknown_02024A68
+_08019DB0: .4byte gBattleMons
+_08019DB4: .4byte byte_2024C06
+_08019DB8:
+ mov r0, r10
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _08019E08 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019DCE
+ b _08019F76
+_08019DCE:
+ ldr r7, _08019E0C @ =gBattleMons
+_08019DD0:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ bne _08019DFC
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08019DFC
+ ldr r0, _08019E10 @ =byte_2024C06
+ strb r6, [r0]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019DFC:
+ adds r4, 0x1
+ ldr r0, _08019E08 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08019DD0
+ b _08019F76
+ .align 2, 0
+_08019E08: .4byte gUnknown_02024A68
+_08019E0C: .4byte gBattleMons
+_08019E10: .4byte byte_2024C06
+_08019E14:
+ ldr r0, _08019E30 @ =gUnknown_081D977D
+ bl b_push_move_exec
+ ldr r0, _08019E34 @ =0x02000000
+ ldr r2, _08019E38 @ =0x00016003
+ adds r1, r0, r2
+ strb r6, [r1]
+ mov r1, r9
+ subs r1, 0x1
+ ldr r3, _08019E3C @ =0x0001609b
+ adds r0, r3
+ strb r1, [r0]
+ b _08019F76
+ .align 2, 0
+_08019E30: .4byte gUnknown_081D977D
+_08019E34: .4byte 0x02000000
+_08019E38: .4byte 0x00016003
+_08019E3C: .4byte 0x0001609b
+_08019E40:
+ ldr r0, _08019E5C @ =gUnknown_081D977D
+ bl b_push_move_exec
+ ldr r0, _08019E60 @ =0x02000000
+ ldr r5, _08019E64 @ =0x00016003
+ adds r1, r0, r5
+ mov r2, r10
+ strb r2, [r1]
+ mov r1, r9
+ subs r1, 0x1
+ ldr r3, _08019E68 @ =0x0001609b
+ adds r0, r3
+ strb r1, [r0]
+ b _08019F92
+ .align 2, 0
+_08019E5C: .4byte gUnknown_081D977D
+_08019E60: .4byte 0x02000000
+_08019E64: .4byte 0x00016003
+_08019E68: .4byte 0x0001609b
+_08019E6C:
+ mov r5, r8
+ strb r1, [r5]
+ ldr r0, [r2]
+ ldr r1, _08019E80 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _08019E84 @ =gUnknown_081D978C
+ bl b_push_move_exec
+ b _08019F1A
+ .align 2, 0
+_08019E80: .4byte 0xfff7ffff
+_08019E84: .4byte gUnknown_081D978C
+_08019E88:
+ ldr r0, _08019EDC @ =gUnknown_081D9726
+ bl b_push_move_exec
+ ldr r1, _08019EE0 @ =gUnknown_02024C98
+ ldr r2, [sp, 0x18]
+ adds r1, r2, r1
+ ldr r0, [r1]
+ ldr r2, _08019EE4 @ =0xffefffff
+ ands r0, r2
+ str r0, [r1]
+ ldr r0, _08019EE8 @ =0x02000000
+ ldr r3, _08019EEC @ =0x00016003
+ adds r0, r3
+ strb r4, [r0]
+ ldr r1, _08019EF0 @ =gUnknown_030041C0
+ movs r4, 0xFD
+ strb r4, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r2, _08019EF4 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _08019EF8 @ =gUnknown_02024A6A
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08019EFC @ =gUnknown_03004290
+ strb r4, [r1]
+ movs r0, 0x9
+ strb r0, [r1, 0x1]
+ ldr r0, _08019F00 @ =byte_2024C06
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x3]
+ b _08019F76
+ .align 2, 0
+_08019EDC: .4byte gUnknown_081D9726
+_08019EE0: .4byte gUnknown_02024C98
+_08019EE4: .4byte 0xffefffff
+_08019EE8: .4byte 0x02000000
+_08019EEC: .4byte 0x00016003
+_08019EF0: .4byte gUnknown_030041C0
+_08019EF4: .4byte gUnknown_02024A60
+_08019EF8: .4byte gUnknown_02024A6A
+_08019EFC: .4byte gUnknown_03004290
+_08019F00: .4byte byte_2024C06
+_08019F04:
+ mov r5, r8
+ strb r1, [r5]
+ ldr r0, [r2]
+ ldr r1, _08019F30 @ =0xfff7ffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08019F34 @ =gUnknown_02024C10
+ ldr r0, _08019F38 @ =gUnknown_081D9795
+ str r0, [r1]
+_08019F1A:
+ ldr r0, _08019F3C @ =0x02000000
+ ldr r1, _08019F40 @ =0x000160dd
+ adds r0, r1
+ strb r4, [r0]
+_08019F22:
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ b _08019F76
+ .align 2, 0
+_08019F30: .4byte 0xfff7ffff
+_08019F34: .4byte gUnknown_02024C10
+_08019F38: .4byte gUnknown_081D9795
+_08019F3C: .4byte 0x02000000
+_08019F40: .4byte 0x000160dd
+_08019F44:
+ movs r4, 0
+ ldr r0, _08019FA4 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ cmp r4, r1
+ bge _08019F76
+ ldr r0, _08019FA8 @ =gBattleMons
+ adds r2, r1, 0
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldr r3, _08019FAC @ =byte_2024C06
+_08019F58:
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _08019F6E
+ cmp r4, r10
+ beq _08019F6E
+ strb r6, [r3]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08019F6E:
+ adds r1, 0x58
+ adds r4, 0x1
+ cmp r4, r2
+ blt _08019F58
+_08019F76:
+ mov r2, r9
+ cmp r2, 0
+ beq _08019F92
+_08019F7C:
+ ldr r3, [sp, 0x4]
+ cmp r3, 0xB
+ bhi _08019F92
+ ldr r1, _08019FAC @ =byte_2024C06
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08019F92
+ adds r1, r0, 0
+ mov r0, r10
+ bl sub_81074C4
+_08019F92:
+ mov r0, r9
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08019FA4: .4byte gUnknown_02024A68
+_08019FA8: .4byte gBattleMons
+_08019FAC: .4byte byte_2024C06
+ thumb_func_end sub_8018324
+
+ thumb_func_start b_call_bc_move_exec
+b_call_bc_move_exec: @ 8019FB0
+ ldr r1, _08019FD8 @ =gUnknown_02024C10
+ str r0, [r1]
+ ldr r3, _08019FDC @ =0x02017140
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r2, _08019FE0 @ =gUnknown_030042D4
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r0, _08019FE4 @ =sub_8013F54
+ str r0, [r2]
+ ldr r1, _08019FE8 @ =gUnknown_02024A7F
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08019FD8: .4byte gUnknown_02024C10
+_08019FDC: .4byte 0x02017140
+_08019FE0: .4byte gUnknown_030042D4
+_08019FE4: .4byte sub_8013F54
+_08019FE8: .4byte gUnknown_02024A7F
+ thumb_func_end b_call_bc_move_exec
+
+ thumb_func_start b_push_move_exec
+b_push_move_exec: @ 8019FEC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl b_movescr_stack_push_cursor
+ ldr r0, _0801A01C @ =gUnknown_02024C10
+ str r4, [r0]
+ ldr r3, _0801A020 @ =0x02017140
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r2, _0801A024 @ =gUnknown_030042D4
+ ldr r1, [r2]
+ str r1, [r0]
+ ldr r0, _0801A028 @ =sub_8013FBC
+ str r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801A01C: .4byte gUnknown_02024C10
+_0801A020: .4byte 0x02017140
+_0801A024: .4byte gUnknown_030042D4
+_0801A028: .4byte sub_8013FBC
+ thumb_func_end b_push_move_exec
+
+ thumb_func_start sub_801A02C
+sub_801A02C: @ 801A02C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0xC]
+ add r0, sp, 0x4
+ strb r1, [r0]
+ ldr r4, _0801A078 @ =gUnknown_02024C04
+ ldr r1, _0801A07C @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0801A084
+ ldr r1, _0801A080 @ =gEnigmaBerries
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ ldrb r0, [r0, 0x1A]
+ b _0801A098
+ .align 2, 0
+_0801A078: .4byte gUnknown_02024C04
+_0801A07C: .4byte gBattleMons
+_0801A080: .4byte gEnigmaBerries
+_0801A084:
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r0, 24
+_0801A098:
+ mov r9, r0
+ ldr r1, _0801A0C0 @ =gBattleMons
+ ldr r0, _0801A0C4 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ str r0, [sp, 0x14]
+ cmp r0, 0xAF
+ bne _0801A0CC
+ ldr r1, _0801A0C8 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r3, [r0, 0x7]
+ mov r8, r3
+ ldrb r0, [r0, 0x1A]
+ b _0801A0E2
+ .align 2, 0
+_0801A0C0: .4byte gBattleMons
+_0801A0C4: .4byte gUnknown_02024C07
+_0801A0C8: .4byte gEnigmaBerries
+_0801A0CC:
+ ldr r0, [sp, 0x14]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, [sp, 0x14]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r0, 24
+_0801A0E2:
+ str r0, [sp, 0x10]
+ ldr r2, _0801A118 @ =gBattleMons
+ ldr r0, _0801A11C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ cmp r4, 0xAF
+ beq _0801A102
+ adds r0, r4, 0
+ bl ItemId_GetHoldEffect
+ adds r0, r4, 0
+ bl ItemId_GetHoldEffectParam
+_0801A102:
+ ldr r4, [sp, 0x8]
+ cmp r4, 0x4
+ bls _0801A10C
+ bl _0801B3CA
+_0801A10C:
+ lsls r0, r4, 2
+ ldr r1, _0801A120 @ =_0801A124
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801A118: .4byte gBattleMons
+_0801A11C: .4byte gUnknown_02024C08
+_0801A120: .4byte _0801A124
+ .align 2, 0
+_0801A124:
+ .4byte _0801A138
+ .4byte _0801A1D4
+ .4byte _0801B3CA
+ .4byte _0801AE0C
+ .4byte _0801B26C
+_0801A138:
+ cmp r5, 0x17
+ beq _0801A15C
+ cmp r5, 0x20
+ beq _0801A144
+ bl _0801B3CA
+_0801A144:
+ ldr r0, _0801A154 @ =0x02000000
+ ldr r5, _0801A158 @ =0x00016056
+ adds r0, r5
+ movs r1, 0x2
+ strb r1, [r0]
+ bl _0801B3CA
+ .align 2, 0
+_0801A154: .4byte 0x02000000
+_0801A158: .4byte 0x00016056
+_0801A15C:
+ ldr r0, _0801A1B8 @ =gBattleMons
+ mov r8, r0
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r3, 0x7
+ mov r10, r3
+_0801A172:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801A180
+ strb r2, [r1]
+ movs r4, 0x5
+ str r4, [sp, 0xC]
+_0801A180:
+ adds r1, 0x1
+ movs r5, 0x1
+ negs r5, r5
+ add r10, r5
+ mov r0, r10
+ cmp r0, 0
+ bge _0801A172
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ bne _0801A198
+ bl _0801B3CA
+_0801A198:
+ ldr r0, _0801A1BC @ =0x02000000
+ ldr r2, _0801A1C0 @ =0x00016003
+ adds r0, r2
+ strb r7, [r0]
+ ldr r0, _0801A1C4 @ =gUnknown_02024C0B
+ strb r7, [r0]
+ ldr r1, _0801A1C8 @ =gUnknown_02024A60
+ ldr r0, _0801A1CC @ =gUnknown_02024C07
+ strb r7, [r0]
+ strb r7, [r1]
+ ldr r0, _0801A1D0 @ =gUnknown_081D9A5E
+ bl b_call_bc_move_exec
+ bl _0801B3CA
+ .align 2, 0
+_0801A1B8: .4byte gBattleMons
+_0801A1BC: .4byte 0x02000000
+_0801A1C0: .4byte 0x00016003
+_0801A1C4: .4byte gUnknown_02024C0B
+_0801A1C8: .4byte gUnknown_02024A60
+_0801A1CC: .4byte gUnknown_02024C07
+_0801A1D0: .4byte gUnknown_081D9A5E
+_0801A1D4:
+ ldr r1, _0801A1FC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ mov r8, r1
+ cmp r0, 0
+ bne _0801A1E8
+ bl _0801B3CA
+_0801A1E8:
+ subs r0, r5, 0x1
+ cmp r0, 0x2A
+ bls _0801A1F2
+ bl _0801AD5A
+_0801A1F2:
+ lsls r0, 2
+ ldr r1, _0801A200 @ =_0801A204
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801A1FC: .4byte gBattleMons
+_0801A200: .4byte _0801A204
+ .align 2, 0
+_0801A204:
+ .4byte _0801A2B0
+ .4byte _0801AAC8
+ .4byte _0801AB84
+ .4byte _0801AAF8
+ .4byte _0801AB2C
+ .4byte _0801AB5C
+ .4byte _0801A2F8
+ .4byte _0801ABC8
+ .4byte _0801ABF8
+ .4byte _0801A4CC
+ .4byte _0801A548
+ .4byte _0801A5C4
+ .4byte _0801A634
+ .4byte _0801A6C8
+ .4byte _0801A75C
+ .4byte _0801A7D4
+ .4byte _0801A838
+ .4byte _0801A89C
+ .4byte _0801A900
+ .4byte _0801A97C
+ .4byte _0801A9C8
+ .4byte _0801AD5A
+ .4byte _0801A3F8
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD24
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801AD5A
+ .4byte _0801A46C
+_0801A2B0:
+ movs r0, 0x58
+ muls r0, r7
+ mov r3, r8
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x2C]
+ ldrh r1, [r2, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A2C6
+ bl _0801AD5A
+_0801A2C6:
+ cmp r6, 0
+ beq _0801A2CE
+ bl _0801AD5A
+_0801A2CE:
+ ldr r4, _0801A2F0 @ =gUnknown_02024BEC
+ mov r5, r9
+ str r5, [r4]
+ ldrh r3, [r2, 0x28]
+ adds r0, r3, r5
+ ldrh r1, [r2, 0x2C]
+ cmp r0, r1
+ ble _0801A2E2
+ subs r0, r1, r3
+ str r0, [r4]
+_0801A2E2:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ ldr r0, _0801A2F4 @ =gUnknown_081D9A74
+ bl b_call_bc_move_exec
+ b _0801A752
+ .align 2, 0
+_0801A2F0: .4byte gUnknown_02024BEC
+_0801A2F4: .4byte gUnknown_081D9A74
+_0801A2F8:
+ cmp r6, 0
+ beq _0801A300
+ bl _0801AD5A
+_0801A300:
+ adds r0, r7, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801A324
+ ldr r1, _0801A31C @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801A320 @ =gPlayerParty
+ b _0801A332
+ .align 2, 0
+_0801A31C: .4byte gUnknown_02024A6A
+_0801A320: .4byte gPlayerParty
+_0801A324:
+ ldr r1, _0801A3A0 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0801A3A4 @ =gEnemyParty
+_0801A332:
+ adds r4, r1, r0
+ movs r1, 0
+ mov r10, r1
+ add r5, sp, 0x4
+_0801A33A:
+ mov r1, r10
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r1, r10
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl GetMonData
+ strb r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r6, 0
+ beq _0801A36A
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0801A374
+_0801A36A:
+ movs r2, 0x1
+ add r10, r2
+ mov r3, r10
+ cmp r3, 0x3
+ ble _0801A33A
+_0801A374:
+ mov r4, r10
+ cmp r4, 0x4
+ bne _0801A37E
+ bl _0801AD5A
+_0801A37E:
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r6, 0
+ bl CalculatePPWithBonus
+ lsls r0, 24
+ lsrs r2, r0, 24
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ mov r5, r9
+ adds r1, r0, r5
+ cmp r1, r2
+ ble _0801A3A8
+ add r0, sp, 0x4
+ strb r2, [r0]
+ b _0801A3AC
+ .align 2, 0
+_0801A3A0: .4byte gUnknown_02024A6A
+_0801A3A4: .4byte gEnemyParty
+_0801A3A8:
+ add r0, sp, 0x4
+ strb r1, [r0]
+_0801A3AC:
+ ldr r1, _0801A3EC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r6, [r1, 0x2]
+ lsrs r0, r6, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r0, _0801A3F0 @ =gUnknown_081D9A91
+ bl b_call_bc_move_exec
+ mov r1, r10
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ add r0, sp, 0x4
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldr r0, _0801A3F4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ movs r1, 0x3
+ str r1, [sp, 0xC]
+ bl _0801AD62
+ .align 2, 0
+_0801A3EC: .4byte gUnknown_030041C0
+_0801A3F0: .4byte gUnknown_081D9A91
+_0801A3F4: .4byte gUnknown_02024A60
+_0801A3F8:
+ ldr r0, _0801A450 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r7
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r3, 0x7
+ mov r10, r3
+_0801A408:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801A416
+ strb r2, [r1]
+ movs r4, 0x5
+ str r4, [sp, 0xC]
+_0801A416:
+ adds r1, 0x1
+ movs r5, 0x1
+ negs r5, r5
+ add r10, r5
+ mov r0, r10
+ cmp r0, 0
+ bge _0801A408
+ movs r1, 0x8
+ mov r10, r1
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ bne _0801A432
+ bl _0801B3CA
+_0801A432:
+ ldr r0, _0801A454 @ =0x02000000
+ ldr r3, _0801A458 @ =0x00016003
+ adds r0, r3
+ strb r7, [r0]
+ ldr r0, _0801A45C @ =gUnknown_02024C0B
+ strb r7, [r0]
+ ldr r1, _0801A460 @ =gUnknown_02024A60
+ ldr r0, _0801A464 @ =gUnknown_02024C07
+ strb r7, [r0]
+ strb r7, [r1]
+ ldr r0, _0801A468 @ =gUnknown_081D9A5E
+ bl b_call_bc_move_exec
+ bl _0801AD5A
+ .align 2, 0
+_0801A450: .4byte gBattleMons
+_0801A454: .4byte 0x02000000
+_0801A458: .4byte 0x00016003
+_0801A45C: .4byte gUnknown_02024C0B
+_0801A460: .4byte gUnknown_02024A60
+_0801A464: .4byte gUnknown_02024C07
+_0801A468: .4byte gUnknown_081D9A5E
+_0801A46C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r4, r8
+ adds r1, r0, r4
+ ldrh r0, [r1, 0x28]
+ ldrh r2, [r1, 0x2C]
+ cmp r0, r2
+ bcc _0801A480
+ bl _0801AD5A
+_0801A480:
+ cmp r6, 0
+ beq _0801A488
+ bl _0801AD5A
+_0801A488:
+ ldr r3, _0801A4C4 @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ lsrs r0, 4
+ str r0, [r3]
+ cmp r0, 0
+ bne _0801A498
+ movs r0, 0x1
+ str r0, [r3]
+_0801A498:
+ ldrh r2, [r1, 0x28]
+ ldr r0, [r3]
+ adds r0, r2, r0
+ ldrh r1, [r1, 0x2C]
+ cmp r0, r1
+ ble _0801A4A8
+ subs r0, r1, r2
+ str r0, [r3]
+_0801A4A8:
+ ldr r0, [r3]
+ negs r0, r0
+ str r0, [r3]
+ ldr r0, _0801A4C8 @ =gUnknown_081D9AA1
+ bl b_call_bc_move_exec
+ movs r3, 0x4
+ str r3, [sp, 0xC]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_81074F8
+ bl _0801AD5A
+ .align 2, 0
+_0801A4C4: .4byte gUnknown_02024BEC
+_0801A4C8: .4byte gUnknown_081D9AA1
+_0801A4CC:
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ str r4, [sp, 0x18]
+ add r4, r8
+ ldrh r0, [r4, 0x2C]
+ ldrh r1, [r4, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A4E4
+ bl _0801AD5A
+_0801A4E4:
+ cmp r6, 0
+ beq _0801A4EC
+ bl _0801AD5A
+_0801A4EC:
+ ldr r1, _0801A540 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ strb r6, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r5, _0801A544 @ =gUnknown_02024BEC
+ ldrh r0, [r4, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801A510
+ movs r0, 0x1
+ str r0, [r5]
+_0801A510:
+ ldrh r2, [r4, 0x28]
+ ldr r0, [r5]
+ adds r0, r2, r0
+ ldrh r1, [r4, 0x2C]
+ cmp r0, r1
+ ble _0801A520
+ subs r0, r1, r2
+ str r0, [r5]
+_0801A520:
+ ldr r0, [r5]
+ negs r0, r0
+ str r0, [r5]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x18]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0
+_0801A532:
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801A53E
+ b _0801A738
+_0801A53E:
+ b _0801A74C
+ .align 2, 0
+_0801A540: .4byte gUnknown_030041C0
+_0801A544: .4byte gUnknown_02024BEC
+_0801A548:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ str r1, [sp, 0x1C]
+ adds r5, r1, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A562
+ bl _0801AD5A
+_0801A562:
+ cmp r6, 0
+ beq _0801A56A
+ bl _0801AD5A
+_0801A56A:
+ ldr r1, _0801A5BC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r6, 0x1
+ strb r6, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A5C0 @ =gUnknown_02024BEC
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A58E
+ str r6, [r4]
+_0801A58E:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A59E
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A59E:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x1
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ blt _0801A6A4
+ b _0801A6B8
+ .align 2, 0
+_0801A5BC: .4byte gUnknown_030041C0
+_0801A5C0: .4byte gUnknown_02024BEC
+_0801A5C4:
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ str r4, [sp, 0x20]
+ adds r5, r4, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A5DC
+ b _0801AD5A
+_0801A5DC:
+ cmp r6, 0
+ beq _0801A5E2
+ b _0801AD5A
+_0801A5E2:
+ ldr r1, _0801A62C @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A630 @ =gUnknown_02024BEC
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A608
+ movs r0, 0x1
+ str r0, [r4]
+_0801A608:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A618
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A618:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x20]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x2
+ b _0801A532
+ .align 2, 0
+_0801A62C: .4byte gUnknown_030041C0
+_0801A630: .4byte gUnknown_02024BEC
+_0801A634:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ str r1, [sp, 0x24]
+ adds r5, r1, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A64C
+ b _0801AD5A
+_0801A64C:
+ cmp r6, 0
+ beq _0801A652
+ b _0801AD5A
+_0801A652:
+ ldr r1, _0801A6AC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A6B0 @ =gUnknown_02024BEC
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A678
+ movs r0, 0x1
+ str r0, [r4]
+_0801A678:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A688
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A688:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r2, [sp, 0x24]
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801A6B8
+_0801A6A4:
+ ldr r0, _0801A6B4 @ =gUnknown_081D9AD4
+ bl b_call_bc_move_exec
+ b _0801A6BE
+ .align 2, 0
+_0801A6AC: .4byte gUnknown_030041C0
+_0801A6B0: .4byte gUnknown_02024BEC
+_0801A6B4: .4byte gUnknown_081D9AD4
+_0801A6B8:
+ ldr r0, _0801A6C4 @ =gUnknown_081D9A74
+ bl b_call_bc_move_exec
+_0801A6BE:
+ movs r3, 0x4
+ str r3, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A6C4: .4byte gUnknown_081D9A74
+_0801A6C8:
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ str r4, [sp, 0x28]
+ adds r5, r4, 0
+ add r5, r8
+ ldrh r0, [r5, 0x2C]
+ ldrh r1, [r5, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bls _0801A6E0
+ b _0801AD5A
+_0801A6E0:
+ cmp r6, 0
+ beq _0801A6E6
+ b _0801AD5A
+_0801A6E6:
+ ldr r1, _0801A740 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x8
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r4, _0801A744 @ =gUnknown_02024BEC
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801A70C
+ movs r0, 0x1
+ str r0, [r4]
+_0801A70C:
+ ldrh r2, [r5, 0x28]
+ ldr r0, [r4]
+ adds r0, r2, r0
+ ldrh r1, [r5, 0x2C]
+ cmp r0, r1
+ ble _0801A71C
+ subs r0, r1, r2
+ str r0, [r4]
+_0801A71C:
+ ldr r0, [r4]
+ negs r0, r0
+ str r0, [r4]
+ mov r0, r8
+ adds r0, 0x48
+ ldr r5, [sp, 0x28]
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x4
+ bl sub_8040A7C
+ lsls r0, 24
+ cmp r0, 0
+ bge _0801A74C
+_0801A738:
+ ldr r0, _0801A748 @ =gUnknown_081D9AD4
+ bl b_call_bc_move_exec
+ b _0801A752
+ .align 2, 0
+_0801A740: .4byte gUnknown_030041C0
+_0801A744: .4byte gUnknown_02024BEC
+_0801A748: .4byte gUnknown_081D9AD4
+_0801A74C:
+ ldr r0, _0801A758 @ =gUnknown_081D9A74
+ bl b_call_bc_move_exec
+_0801A752:
+ movs r0, 0x4
+ str r0, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A758: .4byte gUnknown_081D9A74
+_0801A75C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A774
+ b _0801AD5A
+_0801A774:
+ cmp r6, 0
+ beq _0801A77A
+ b _0801AD5A
+_0801A77A:
+ movs r0, 0x19
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A784
+ b _0801AD5A
+_0801A784:
+ ldr r1, _0801A7BC @ =gUnknown_030041C0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _0801A7C0 @ =gUnknown_03004290
+ strb r2, [r1]
+ strb r6, [r1, 0x1]
+ movs r0, 0xD2
+ strb r0, [r1, 0x2]
+ strb r6, [r1, 0x3]
+ subs r0, 0xD3
+ strb r0, [r1, 0x4]
+ ldr r0, _0801A7C4 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A7C8 @ =0x02000000
+ ldr r3, _0801A7CC @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x11
+ strb r0, [r2]
+ ldr r4, _0801A7D0 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0xF
+ b _0801A94C
+ .align 2, 0
+_0801A7BC: .4byte gUnknown_030041C0
+_0801A7C0: .4byte gUnknown_03004290
+_0801A7C4: .4byte gUnknown_02024C0A
+_0801A7C8: .4byte 0x02000000
+_0801A7CC: .4byte 0x0001601e
+_0801A7D0: .4byte 0x000160a4
+_0801A7D4:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A7EC
+ b _0801AD5A
+_0801A7EC:
+ cmp r6, 0
+ beq _0801A7F2
+ b _0801AD5A
+_0801A7F2:
+ movs r0, 0x1A
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A7FC
+ b _0801AD5A
+_0801A7FC:
+ ldr r1, _0801A824 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A828 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A82C @ =0x02000000
+ ldr r3, _0801A830 @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x12
+ strb r0, [r2]
+ ldr r4, _0801A834 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x10
+ b _0801A94C
+ .align 2, 0
+_0801A824: .4byte gUnknown_030041C0
+_0801A828: .4byte gUnknown_02024C0A
+_0801A82C: .4byte 0x02000000
+_0801A830: .4byte 0x0001601e
+_0801A834: .4byte 0x000160a4
+_0801A838:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A850
+ b _0801AD5A
+_0801A850:
+ cmp r6, 0
+ beq _0801A856
+ b _0801AD5A
+_0801A856:
+ movs r0, 0x1B
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A860
+ b _0801AD5A
+_0801A860:
+ ldr r1, _0801A888 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x3
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A88C @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A890 @ =0x02000000
+ ldr r3, _0801A894 @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x13
+ strb r0, [r2]
+ ldr r4, _0801A898 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x11
+ b _0801A94C
+ .align 2, 0
+_0801A888: .4byte gUnknown_030041C0
+_0801A88C: .4byte gUnknown_02024C0A
+_0801A890: .4byte 0x02000000
+_0801A894: .4byte 0x0001601e
+_0801A898: .4byte 0x000160a4
+_0801A89C:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A8B4
+ b _0801AD5A
+_0801A8B4:
+ cmp r6, 0
+ beq _0801A8BA
+ b _0801AD5A
+_0801A8BA:
+ movs r0, 0x1C
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A8C4
+ b _0801AD5A
+_0801A8C4:
+ ldr r1, _0801A8EC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A8F0 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A8F4 @ =0x02000000
+ ldr r3, _0801A8F8 @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x14
+ strb r0, [r2]
+ ldr r4, _0801A8FC @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x12
+ b _0801A94C
+ .align 2, 0
+_0801A8EC: .4byte gUnknown_030041C0
+_0801A8F0: .4byte gUnknown_02024C0A
+_0801A8F4: .4byte 0x02000000
+_0801A8F8: .4byte 0x0001601e
+_0801A8FC: .4byte 0x000160a4
+_0801A900:
+ movs r0, 0x58
+ muls r0, r7
+ mov r1, r8
+ adds r5, r0, r1
+ ldrh r4, [r5, 0x28]
+ ldrh r0, [r5, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A918
+ b _0801AD5A
+_0801A918:
+ cmp r6, 0
+ beq _0801A91E
+ b _0801AD5A
+_0801A91E:
+ movs r0, 0x1D
+ ldrsb r0, [r5, r0]
+ cmp r0, 0xB
+ ble _0801A928
+ b _0801AD5A
+_0801A928:
+ ldr r1, _0801A960 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801A964 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801A968 @ =0x02000000
+ ldr r3, _0801A96C @ =0x0001601e
+ adds r2, r1, r3
+ movs r0, 0x15
+ strb r0, [r2]
+ ldr r4, _0801A970 @ =0x000160a4
+ adds r2, r1, r4
+ movs r0, 0x13
+_0801A94C:
+ strb r0, [r2]
+ ldr r5, _0801A974 @ =0x000160a5
+ adds r1, r5
+ strb r6, [r1]
+ ldr r0, _0801A978 @ =gUnknown_081D9AFE
+ bl b_call_bc_move_exec
+ movs r0, 0x5
+ str r0, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A960: .4byte gUnknown_030041C0
+_0801A964: .4byte gUnknown_02024C0A
+_0801A968: .4byte 0x02000000
+_0801A96C: .4byte 0x0001601e
+_0801A970: .4byte 0x000160a4
+_0801A974: .4byte 0x000160a5
+_0801A978: .4byte gUnknown_081D9AFE
+_0801A97C:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r1, r8
+ adds r0, r5, r1
+ ldrh r4, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A996
+ b _0801AD5A
+_0801A996:
+ cmp r6, 0
+ beq _0801A99C
+ b _0801AD5A
+_0801A99C:
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r5, r0
+ ldr r2, [r1]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0801A9B2
+ b _0801AD5A
+_0801A9B2:
+ orrs r2, r3
+ str r2, [r1]
+ ldr r0, _0801A9C4 @ =gUnknown_081D9B19
+ bl b_call_bc_move_exec
+ movs r2, 0x2
+ str r2, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801A9C4: .4byte gUnknown_081D9B19
+_0801A9C8:
+ cmp r6, 0
+ beq _0801A9CE
+ b _0801AD5A
+_0801A9CE:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r3, r8
+ adds r0, r5, r3
+ ldrh r4, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ mov r1, r9
+ bl __divsi3
+ cmp r4, r0
+ ble _0801A9E8
+ b _0801AD5A
+_0801A9E8:
+ movs r4, 0
+ mov r10, r4
+ adds r0, r5, 0x1
+ mov r1, r8
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xB
+ ble _0801AA18
+ mov r0, r8
+ adds r0, 0x19
+ adds r1, r5, r0
+_0801AA04:
+ adds r1, 0x1
+ movs r5, 0x1
+ add r10, r5
+ mov r0, r10
+ cmp r0, 0x4
+ bgt _0801AA18
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _0801AA04
+_0801AA18:
+ mov r1, r10
+ cmp r1, 0x5
+ bne _0801AA20
+ b _0801AD5A
+_0801AA20:
+ movs r0, 0x58
+ muls r0, r7
+ adds r4, r0, 0x1
+ ldr r5, _0801AAA4 @ =gUnknown_02024A98
+_0801AA28:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ beq _0801AA28
+ ldr r1, _0801AAA8 @ =gUnknown_030041C0
+ movs r3, 0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ mov r0, r10
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r0, _0801AAAC @ =gUnknown_03004290
+ strb r2, [r0]
+ strb r3, [r0, 0x1]
+ movs r1, 0xD1
+ strb r1, [r0, 0x2]
+ strb r3, [r0, 0x3]
+ strb r3, [r0, 0x4]
+ movs r1, 0xD2
+ strb r1, [r0, 0x5]
+ strb r3, [r0, 0x6]
+ subs r1, 0xD3
+ strb r1, [r0, 0x7]
+ ldr r0, _0801AAB0 @ =gUnknown_02024C0A
+ strb r7, [r0]
+ ldr r1, _0801AAB4 @ =0x02000000
+ mov r2, r10
+ adds r2, 0x21
+ ldr r4, _0801AAB8 @ =0x0001601e
+ adds r0, r1, r4
+ strb r2, [r0]
+ adds r2, 0x6
+ ldr r5, _0801AABC @ =0x000160a4
+ adds r0, r1, r5
+ strb r2, [r0]
+ ldr r0, _0801AAC0 @ =0x000160a5
+ adds r1, r0
+ strb r3, [r1]
+ ldr r0, _0801AAC4 @ =gUnknown_081D9AFE
+ bl b_call_bc_move_exec
+ movs r1, 0x5
+ str r1, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AAA4: .4byte gUnknown_02024A98
+_0801AAA8: .4byte gUnknown_030041C0
+_0801AAAC: .4byte gUnknown_03004290
+_0801AAB0: .4byte gUnknown_02024C0A
+_0801AAB4: .4byte 0x02000000
+_0801AAB8: .4byte 0x0001601e
+_0801AABC: .4byte 0x000160a4
+_0801AAC0: .4byte 0x000160a5
+_0801AAC4: .4byte gUnknown_081D9AFE
+_0801AAC8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AAE0
+ b _0801AD5A
+_0801AAE0:
+ movs r0, 0x41
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AAF4 @ =gUnknown_081D99B6
+ bl b_call_bc_move_exec
+ movs r2, 0x1
+ str r2, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AAF4: .4byte gUnknown_081D99B6
+_0801AAF8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x88
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AB10
+ b _0801AD5A
+_0801AB10:
+ ldr r0, _0801AB24 @ =0xfffff077
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AB28 @ =gUnknown_081D99CE
+ bl b_call_bc_move_exec
+ movs r3, 0x1
+ str r3, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AB24: .4byte 0xfffff077
+_0801AB28: .4byte gUnknown_081D99CE
+_0801AB2C:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AB44
+ b _0801AD5A
+_0801AB44:
+ movs r0, 0x11
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AB58 @ =gUnknown_081D99E6
+ bl b_call_bc_move_exec
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AB58: .4byte gUnknown_081D99E6
+_0801AB5C:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0801AB74
+ b _0801AD5A
+_0801AB74:
+ movs r0, 0x21
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AB80 @ =gUnknown_081D99FE
+ b _0801AD0E
+ .align 2, 0
+_0801AB80: .4byte gUnknown_081D99FE
+_0801AB84:
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r2, r3, r0
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AB9C
+ b _0801AD5A
+_0801AB9C:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ mov r1, r8
+ adds r1, 0x50
+ adds r1, r3, r1
+ ldr r0, [r1]
+ ldr r2, _0801ABC0 @ =0xf7ffffff
+ ands r0, r2
+ str r0, [r1]
+ ldr r0, _0801ABC4 @ =gUnknown_081D9A16
+ bl b_call_bc_move_exec
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801ABC0: .4byte 0xf7ffffff
+_0801ABC4: .4byte gUnknown_081D9A16
+_0801ABC8:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0x7
+ ands r0, r2
+ cmp r0, 0
+ bne _0801ABE0
+ b _0801AD5A
+_0801ABE0:
+ movs r0, 0x8
+ negs r0, r0
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801ABF4 @ =gUnknown_081D9A2E
+ bl b_call_bc_move_exec
+ movs r1, 0x2
+ str r1, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801ABF4: .4byte gUnknown_081D9A2E
+_0801ABF8:
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ mov r0, r8
+ adds r0, 0x4C
+ adds r4, r5, r0
+ ldr r2, [r4]
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0801AC1E
+ mov r0, r8
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AC1E
+ b _0801AD5A
+_0801AC1E:
+ movs r3, 0
+ mov r10, r3
+ movs r0, 0x88
+ ands r2, r0
+ cmp r2, 0
+ beq _0801AC36
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn
+ bl StringCopy
+ movs r0, 0x1
+ mov r10, r0
+_0801AC36:
+ ldr r0, [r4]
+ movs r1, 0x7
+ mov r9, r1
+ ands r0, r1
+ mov r6, r8
+ adds r6, 0x50
+ cmp r0, 0
+ beq _0801AC5C
+ adds r2, r5, r6
+ ldr r0, [r2]
+ ldr r1, _0801ACCC @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+ movs r2, 0x1
+ add r10, r2
+_0801AC5C:
+ ldr r0, [r4]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC72
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn
+ bl StringCopy
+ movs r3, 0x1
+ add r10, r3
+_0801AC72:
+ ldr r0, [r4]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC88
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+ movs r0, 0x1
+ add r10, r0
+_0801AC88:
+ ldr r0, [r4]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801AC9E
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn
+ bl StringCopy
+ movs r1, 0x1
+ add r10, r1
+_0801AC9E:
+ adds r0, r5, r6
+ ldr r0, [r0]
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ beq _0801ACB6
+ ldr r0, _0801ACC4 @ =gUnknown_030041C0
+ ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn
+ bl StringCopy
+ movs r3, 0x1
+ add r10, r3
+_0801ACB6:
+ mov r4, r10
+ cmp r4, 0x1
+ bgt _0801ACE8
+ ldr r1, _0801ACE4 @ =gUnknown_02024D1E
+ movs r0, 0
+ b _0801ACEC
+ .align 2, 0
+_0801ACC4: .4byte gUnknown_030041C0
+_0801ACC8: .4byte gStatusConditionString_PoisonJpn
+_0801ACCC: .4byte 0xf7ffffff
+_0801ACD0: .4byte gStatusConditionString_SleepJpn
+_0801ACD4: .4byte gStatusConditionString_ParalysisJpn
+_0801ACD8: .4byte gStatusConditionString_BurnJpn
+_0801ACDC: .4byte gStatusConditionString_IceJpn
+_0801ACE0: .4byte gStatusConditionString_ConfusionJpn
+_0801ACE4: .4byte gUnknown_02024D1E
+_0801ACE8:
+ ldr r1, _0801AD18 @ =gUnknown_02024D1E
+ movs r0, 0x1
+_0801ACEC:
+ strb r0, [r1, 0x5]
+ ldr r2, _0801AD1C @ =gBattleMons
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r3, r0
+ movs r1, 0
+ str r1, [r0]
+ adds r2, 0x50
+ adds r3, r2
+ ldr r0, [r3]
+ subs r1, 0x8
+ ands r0, r1
+ str r0, [r3]
+ ldr r0, _0801AD20 @ =gUnknown_081D9A44
+_0801AD0E:
+ bl b_call_bc_move_exec
+ movs r5, 0x1
+ str r5, [sp, 0xC]
+ b _0801AD62
+ .align 2, 0
+_0801AD18: .4byte gUnknown_02024D1E
+_0801AD1C: .4byte gBattleMons
+_0801AD20: .4byte gUnknown_081D9A44
+_0801AD24:
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, [r1]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r2
+ cmp r0, 0
+ beq _0801AD5A
+ ldr r0, _0801AD84 @ =0xfff0ffff
+ ands r2, r0
+ str r2, [r1]
+ ldr r0, _0801AD88 @ =gUnknown_030041C0
+ ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn
+ bl StringCopy
+ ldr r0, _0801AD90 @ =gUnknown_081D9A44
+ bl b_call_bc_move_exec
+ ldr r1, _0801AD94 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+_0801AD5A:
+ ldr r1, [sp, 0xC]
+ cmp r1, 0
+ bne _0801AD62
+ b _0801B3CA
+_0801AD62:
+ ldr r0, _0801AD98 @ =0x02000000
+ ldr r2, _0801AD9C @ =0x00016003
+ adds r0, r2
+ strb r7, [r0]
+ ldr r0, _0801ADA0 @ =gUnknown_02024C0B
+ strb r7, [r0]
+ ldr r4, _0801ADA4 @ =gUnknown_02024A60
+ ldr r0, _0801ADA8 @ =gUnknown_02024C07
+ strb r7, [r0]
+ strb r7, [r4]
+ ldr r3, [sp, 0xC]
+ cmp r3, 0x1
+ beq _0801ADAC
+ cmp r3, 0x3
+ beq _0801ADB2
+ b _0801B3CA
+ .align 2, 0
+_0801AD84: .4byte 0xfff0ffff
+_0801AD88: .4byte gUnknown_030041C0
+_0801AD8C: .4byte gStatusConditionString_LoveJpn
+_0801AD90: .4byte gUnknown_081D9A44
+_0801AD94: .4byte gUnknown_02024D1E
+_0801AD98: .4byte 0x02000000
+_0801AD9C: .4byte 0x00016003
+_0801ADA0: .4byte gUnknown_02024C0B
+_0801ADA4: .4byte gUnknown_02024A60
+_0801ADA8: .4byte gUnknown_02024C07
+_0801ADAC:
+ movs r0, 0x58
+ muls r0, r7
+ b _0801B224
+_0801ADB2:
+ ldr r4, _0801AE00 @ =gBattleMons
+ movs r0, 0x58
+ adds r3, r7, 0
+ muls r3, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ beq _0801ADCE
+ b _0801B3CA
+_0801ADCE:
+ ldr r1, _0801AE04 @ =gUnknown_02024CA8
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0801AE08 @ =gBitTable
+ mov r5, r10
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801ADEE
+ b _0801B3CA
+_0801ADEE:
+ adds r1, r5, r3
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ add r0, sp, 0x4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _0801B3CA
+ .align 2, 0
+_0801AE00: .4byte gBattleMons
+_0801AE04: .4byte gUnknown_02024CA8
+_0801AE08: .4byte gBitTable
+_0801AE0C:
+ movs r7, 0
+ ldr r0, _0801AE3C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _0801AE18
+ b _0801B3CA
+_0801AE18:
+ ldr r4, _0801AE40 @ =gUnknown_02024C04
+ ldr r1, _0801AE44 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0801AE4C
+ ldr r1, _0801AE48 @ =gEnigmaBerries
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ b _0801AE5C
+ .align 2, 0
+_0801AE3C: .4byte gUnknown_02024A68
+_0801AE40: .4byte gUnknown_02024C04
+_0801AE44: .4byte gBattleMons
+_0801AE48: .4byte gEnigmaBerries
+_0801AE4C:
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4]
+ bl ItemId_GetHoldEffectParam
+_0801AE5C:
+ subs r0, r5, 0x2
+ cmp r0, 0x1A
+ bls _0801AE64
+ b _0801B208
+_0801AE64:
+ lsls r0, 2
+ ldr r1, _0801AE70 @ =_0801AE74
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801AE70: .4byte _0801AE74
+ .align 2, 0
+_0801AE74:
+ .4byte _0801AEE0
+ .4byte _0801AFC8
+ .4byte _0801AF1C
+ .4byte _0801AF58
+ .4byte _0801AF94
+ .4byte _0801B208
+ .4byte _0801B018
+ .4byte _0801B0AC
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B1A0
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B208
+ .4byte _0801B054
+_0801AEE0:
+ ldr r1, _0801AF10 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AEF6
+ b _0801B208
+_0801AEF6:
+ movs r0, 0x41
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AF14 @ =gUnknown_02024C10
+ ldr r0, _0801AF18 @ =gUnknown_081D99BC
+ str r0, [r1]
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801AF10: .4byte gBattleMons
+_0801AF14: .4byte gUnknown_02024C10
+_0801AF18: .4byte gUnknown_081D99BC
+_0801AF1C:
+ ldr r1, _0801AF48 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AF32
+ b _0801B208
+_0801AF32:
+ ldr r0, _0801AF4C @ =0xfffff077
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AF50 @ =gUnknown_02024C10
+ ldr r0, _0801AF54 @ =gUnknown_081D99D4
+ str r0, [r1]
+ movs r1, 0x1
+ str r1, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801AF48: .4byte gBattleMons
+_0801AF4C: .4byte 0xfffff077
+_0801AF50: .4byte gUnknown_02024C10
+_0801AF54: .4byte gUnknown_081D99D4
+_0801AF58:
+ ldr r1, _0801AF88 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AF6E
+ b _0801B208
+_0801AF6E:
+ movs r0, 0x11
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AF8C @ =gUnknown_02024C10
+ ldr r0, _0801AF90 @ =gUnknown_081D99EC
+ str r0, [r1]
+ movs r2, 0x1
+ str r2, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801AF88: .4byte gBattleMons
+_0801AF8C: .4byte gUnknown_02024C10
+_0801AF90: .4byte gUnknown_081D99EC
+_0801AF94:
+ ldr r1, _0801AFBC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x4C
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AFAA
+ b _0801B208
+_0801AFAA:
+ movs r0, 0x21
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801AFC0 @ =gUnknown_02024C10
+ ldr r0, _0801AFC4 @ =gUnknown_081D9A04
+ b _0801B168
+ .align 2, 0
+_0801AFBC: .4byte gBattleMons
+_0801AFC0: .4byte gUnknown_02024C10
+_0801AFC4: .4byte gUnknown_081D9A04
+_0801AFC8:
+ ldr r2, _0801B008 @ =gBattleMons
+ movs r0, 0x58
+ adds r4, r7, 0
+ muls r4, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r3, r4, r0
+ ldr r1, [r3]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801AFE2
+ b _0801B208
+_0801AFE2:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r3]
+ adds r2, 0x50
+ adds r2, r4, r2
+ ldr r0, [r2]
+ ldr r1, _0801B00C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B010 @ =gUnknown_02024C10
+ ldr r0, _0801B014 @ =gUnknown_081D9A1C
+ str r0, [r1]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B008: .4byte gBattleMons
+_0801B00C: .4byte 0xf7ffffff
+_0801B010: .4byte gUnknown_02024C10
+_0801B014: .4byte gUnknown_081D9A1C
+_0801B018:
+ ldr r1, _0801B048 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B02E
+ b _0801B208
+_0801B02E:
+ movs r0, 0x8
+ negs r0, r0
+ ands r1, r0
+ str r1, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B04C @ =gUnknown_02024C10
+ ldr r0, _0801B050 @ =gUnknown_081D9A34
+ str r0, [r1]
+ movs r5, 0x2
+ str r5, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B048: .4byte gBattleMons
+_0801B04C: .4byte gUnknown_02024C10
+_0801B050: .4byte gUnknown_081D9A34
+_0801B054:
+ ldr r1, _0801B090 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r7
+ adds r1, 0x50
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B06C
+ b _0801B208
+_0801B06C:
+ ldr r0, _0801B094 @ =0xfff0ffff
+ ands r1, r0
+ str r1, [r2]
+ ldr r0, _0801B098 @ =gUnknown_030041C0
+ ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn
+ bl StringCopy
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B0A0 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ ldr r1, _0801B0A4 @ =gUnknown_02024C10
+ ldr r0, _0801B0A8 @ =gUnknown_081D9A4A
+ str r0, [r1]
+ movs r0, 0x2
+ str r0, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B090: .4byte gBattleMons
+_0801B094: .4byte 0xfff0ffff
+_0801B098: .4byte gUnknown_030041C0
+_0801B09C: .4byte gStatusConditionString_LoveJpn
+_0801B0A0: .4byte gUnknown_02024D1E
+_0801B0A4: .4byte gUnknown_02024C10
+_0801B0A8: .4byte gUnknown_081D9A4A
+_0801B0AC:
+ ldr r4, _0801B170 @ =gBattleMons
+ movs r0, 0x58
+ adds r5, r7, 0
+ muls r5, r0
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r6, r5, r0
+ ldr r2, [r6]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _0801B0D4
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r5, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B0D4
+ b _0801B208
+_0801B0D4:
+ movs r0, 0x88
+ ands r2, r0
+ cmp r2, 0
+ beq _0801B0E4
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn
+ bl StringCopy
+_0801B0E4:
+ ldr r0, [r6]
+ movs r1, 0x7
+ mov r8, r1
+ ands r0, r1
+ adds r4, 0x50
+ cmp r0, 0
+ beq _0801B104
+ adds r2, r5, r4
+ ldr r0, [r2]
+ ldr r1, _0801B17C @ =0xf7ffffff
+ ands r0, r1
+ str r0, [r2]
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn
+ bl StringCopy
+_0801B104:
+ ldr r0, [r6]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B116
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn
+ bl StringCopy
+_0801B116:
+ ldr r0, [r6]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B128
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn
+ bl StringCopy
+_0801B128:
+ ldr r0, [r6]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B13A
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B18C @ =gStatusConditionString_IceJpn
+ bl StringCopy
+_0801B13A:
+ adds r5, r4
+ ldr r0, [r5]
+ mov r2, r8
+ ands r0, r2
+ cmp r0, 0
+ beq _0801B14E
+ ldr r0, _0801B174 @ =gUnknown_030041C0
+ ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn
+ bl StringCopy
+_0801B14E:
+ movs r4, 0
+ str r4, [r6]
+ ldr r0, [r5]
+ movs r1, 0x8
+ negs r1, r1
+ ands r0, r1
+ str r0, [r5]
+ bl b_movescr_stack_push_cursor
+ ldr r0, _0801B194 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r1, _0801B198 @ =gUnknown_02024C10
+ ldr r0, _0801B19C @ =gUnknown_081D9A4A
+_0801B168:
+ str r0, [r1]
+ movs r3, 0x1
+ str r3, [sp, 0xC]
+ b _0801B20E
+ .align 2, 0
+_0801B170: .4byte gBattleMons
+_0801B174: .4byte gUnknown_030041C0
+_0801B178: .4byte gStatusConditionString_PoisonJpn
+_0801B17C: .4byte 0xf7ffffff
+_0801B180: .4byte gStatusConditionString_SleepJpn
+_0801B184: .4byte gStatusConditionString_ParalysisJpn
+_0801B188: .4byte gStatusConditionString_BurnJpn
+_0801B18C: .4byte gStatusConditionString_IceJpn
+_0801B190: .4byte gStatusConditionString_ConfusionJpn
+_0801B194: .4byte gUnknown_02024D1E
+_0801B198: .4byte gUnknown_02024C10
+_0801B19C: .4byte gUnknown_081D9A4A
+_0801B1A0:
+ ldr r4, _0801B1F0 @ =gBattleMons
+ mov r8, r4
+ movs r0, 0x58
+ adds r1, r7, 0
+ muls r1, r0
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ movs r2, 0x6
+ movs r5, 0x7
+ mov r10, r5
+_0801B1B6:
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0x5
+ bgt _0801B1C4
+ strb r2, [r1]
+ movs r0, 0x5
+ str r0, [sp, 0xC]
+_0801B1C4:
+ adds r1, 0x1
+ movs r3, 0x1
+ negs r3, r3
+ add r10, r3
+ mov r4, r10
+ cmp r4, 0
+ bge _0801B1B6
+ ldr r5, [sp, 0xC]
+ cmp r5, 0
+ beq _0801B254
+ ldr r0, _0801B1F4 @ =0x02000000
+ ldr r1, _0801B1F8 @ =0x00016003
+ adds r0, r1
+ strb r7, [r0]
+ ldr r0, _0801B1FC @ =gUnknown_02024C0B
+ strb r7, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B200 @ =gUnknown_02024C10
+ ldr r0, _0801B204 @ =gUnknown_081D9A64
+ str r0, [r1]
+ b _0801B3CA
+ .align 2, 0
+_0801B1F0: .4byte gBattleMons
+_0801B1F4: .4byte 0x02000000
+_0801B1F8: .4byte 0x00016003
+_0801B1FC: .4byte gUnknown_02024C0B
+_0801B200: .4byte gUnknown_02024C10
+_0801B204: .4byte gUnknown_081D9A64
+_0801B208:
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ beq _0801B254
+_0801B20E:
+ ldr r0, _0801B240 @ =0x02000000
+ ldr r3, _0801B244 @ =0x00016003
+ adds r0, r3
+ strb r7, [r0]
+ ldr r0, _0801B248 @ =gUnknown_02024C0B
+ strb r7, [r0]
+ ldr r4, _0801B24C @ =gUnknown_02024A60
+ strb r7, [r4]
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+_0801B224:
+ ldr r1, _0801B250 @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0801B3CA
+ .align 2, 0
+_0801B240: .4byte 0x02000000
+_0801B244: .4byte 0x00016003
+_0801B248: .4byte gUnknown_02024C0B
+_0801B24C: .4byte gUnknown_02024A60
+_0801B250: .4byte gUnknown_02024ACC
+_0801B254:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0801B268 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcs _0801B264
+ b _0801AE18
+_0801B264:
+ b _0801B3CA
+ .align 2, 0
+_0801B268: .4byte gUnknown_02024A68
+_0801B26C:
+ ldr r7, _0801B284 @ =gUnknown_02024BEC
+ ldr r0, [r7]
+ cmp r0, 0
+ bne _0801B276
+ b _0801B3CA
+_0801B276:
+ mov r4, r8
+ cmp r4, 0x1E
+ beq _0801B288
+ cmp r4, 0x3E
+ beq _0801B330
+ b _0801B3CA
+ .align 2, 0
+_0801B284: .4byte gUnknown_02024BEC
+_0801B288:
+ ldr r0, _0801B314 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B296
+ b _0801B3CA
+_0801B296:
+ ldr r2, _0801B318 @ =gUnknown_02024D68
+ ldr r4, _0801B31C @ =gUnknown_02024C08
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r1, r0, 2
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801B2BC
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801B2BC
+ b _0801B3CA
+_0801B2BC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r9
+ bcs _0801B3CA
+ ldr r2, _0801B320 @ =gBattleMoves
+ ldr r0, _0801B324 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B3CA
+ ldr r2, _0801B328 @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B3CA
+ ldr r1, _0801B32C @ =gUnknown_02024D1E
+ movs r0, 0x8
+ strb r0, [r1, 0x3]
+ bl b_movescr_stack_push_cursor
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ bl b_movescr_stack_pop_cursor
+ b _0801B3CA
+ .align 2, 0
+_0801B314: .4byte gUnknown_02024C68
+_0801B318: .4byte gUnknown_02024D68
+_0801B31C: .4byte gUnknown_02024C08
+_0801B320: .4byte gBattleMoves
+_0801B324: .4byte gUnknown_02024BE6
+_0801B328: .4byte gBattleMons
+_0801B32C: .4byte gUnknown_02024D1E
+_0801B330:
+ ldr r0, _0801B3DC @ =gUnknown_02024C68
+ ldrb r0, [r0]
+ movs r4, 0x29
+ ands r4, r0
+ cmp r4, 0
+ bne _0801B3CA
+ ldr r1, _0801B3E0 @ =gUnknown_02024D68
+ ldr r5, _0801B3E4 @ =gUnknown_02024C08
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 2
+ adds r6, r1, 0x4
+ adds r0, r6
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _0801B3CA
+ ldr r0, _0801B3E8 @ =0x0000ffff
+ cmp r1, r0
+ beq _0801B3CA
+ ldr r0, _0801B3EC @ =gUnknown_02024C07
+ ldrb r3, [r0]
+ cmp r3, r2
+ beq _0801B3CA
+ ldr r2, _0801B3F0 @ =gBattleMons
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ beq _0801B3CA
+ cmp r1, 0
+ beq _0801B3CA
+ ldr r0, _0801B3F4 @ =gUnknown_02024C04
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0]
+ ldr r0, _0801B3F8 @ =gUnknown_02024C0B
+ strb r3, [r0]
+ ldr r0, _0801B3FC @ =0x02000000
+ ldr r2, _0801B400 @ =0x00016003
+ adds r0, r2
+ strb r3, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldr r1, [sp, 0x10]
+ bl __divsi3
+ negs r0, r0
+ str r0, [r7]
+ ldrb r1, [r5]
+ cmp r0, 0
+ bne _0801B3AC
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r7]
+_0801B3AC:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ str r4, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801B404 @ =gUnknown_02024C10
+ ldr r0, _0801B408 @ =gUnknown_081D9AA7
+ str r0, [r1]
+ ldr r0, [sp, 0xC]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+_0801B3CA:
+ ldr r0, [sp, 0xC]
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801B3DC: .4byte gUnknown_02024C68
+_0801B3E0: .4byte gUnknown_02024D68
+_0801B3E4: .4byte gUnknown_02024C08
+_0801B3E8: .4byte 0x0000ffff
+_0801B3EC: .4byte gUnknown_02024C07
+_0801B3F0: .4byte gBattleMons
+_0801B3F4: .4byte gUnknown_02024C04
+_0801B3F8: .4byte gUnknown_02024C0B
+_0801B3FC: .4byte 0x02000000
+_0801B400: .4byte 0x00016003
+_0801B404: .4byte gUnknown_02024C10
+_0801B408: .4byte gUnknown_081D9AA7
+ thumb_func_end sub_801A02C
+
+ thumb_func_start unref_sub_801B40C
+unref_sub_801B40C: @ 801B40C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0801B464 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B42A
+ b _0801B56E
+_0801B42A:
+ movs r1, 0x1
+ mov r9, r1
+_0801B42E:
+ movs r5, 0
+ ldr r4, _0801B468 @ =gUnknown_081FC1D0
+ ldr r2, [sp]
+ adds r2, 0x1
+ str r2, [sp, 0x4]
+_0801B438:
+ ldr r0, _0801B46C @ =gUnknown_02024C0C
+ ldrb r2, [r0]
+ ldr r3, _0801B470 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _0801B45A
+ adds r0, r5, 0x2
+ lsls r1, r0, 2
+ adds r1, r3
+ ldr r1, [r1]
+ ands r2, r1
+ adds r7, r0, 0
+ cmp r2, 0
+ beq _0801B474
+_0801B45A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0801B556
+ .align 2, 0
+_0801B464: .4byte gUnknown_020239F8
+_0801B468: .4byte gUnknown_081FC1D0
+_0801B46C: .4byte gUnknown_02024C0C
+_0801B470: .4byte gBitTable
+_0801B474:
+ ldr r0, _0801B580 @ =gUnknown_081FC1D0
+ ldr r2, [sp]
+ lsls r1, r2, 3
+ adds r6, r1, r0
+ ldr r4, _0801B584 @ =gUnknown_02024C60
+ lsls r0, r5, 1
+ adds r3, r0, r4
+ ldrh r2, [r6]
+ mov r8, r1
+ mov r10, r0
+ ldrh r3, [r3]
+ cmp r2, r3
+ bne _0801B4E4
+ lsls r0, r7, 1
+ adds r0, r4
+ ldrh r1, [r6, 0x2]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0801B4E4
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r2, r9
+ ands r2, r0
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ ldr r0, _0801B588 @ =gUnknown_02024C80
+ adds r1, r0
+ lsls r0, r7, 4
+ orrs r0, r5
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r1, r9
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0801B588 @ =gUnknown_02024C80
+ adds r0, r1
+ ldrh r1, [r6, 0x4]
+ strh r1, [r0, 0x4]
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r1, r9
+ ands r1, r0
+ lsls r1, 1
+ ldr r2, _0801B58C @ =gUnknown_02024C7A
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strh r0, [r1]
+_0801B4E4:
+ ldr r0, _0801B580 @ =gUnknown_081FC1D0
+ mov r1, r8
+ adds r4, r1, r0
+ ldr r2, _0801B584 @ =gUnknown_02024C60
+ lsls r0, r7, 1
+ adds r0, r2
+ ldrh r1, [r4]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0801B54E
+ mov r0, r10
+ adds r1, r0, r2
+ ldrh r0, [r4, 0x2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _0801B54E
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r2, r9
+ ands r2, r0
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _0801B588 @ =gUnknown_02024C80
+ adds r1, r2
+ lsls r0, r5, 4
+ orrs r0, r7
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r1, r9
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0801B588 @ =gUnknown_02024C80
+ adds r0, r1
+ ldrh r1, [r4, 0x4]
+ strh r1, [r0, 0x4]
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ mov r1, r9
+ ands r1, r0
+ lsls r1, 1
+ ldr r2, _0801B58C @ =gUnknown_02024C7A
+ adds r1, r2
+ ldrh r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strh r0, [r1]
+_0801B54E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0801B580 @ =gUnknown_081FC1D0
+_0801B556:
+ cmp r5, 0x1
+ bhi _0801B55C
+ b _0801B438
+_0801B55C:
+ ldr r0, [sp, 0x4]
+ str r0, [sp]
+ lsls r0, 3
+ adds r0, r4
+ ldrh r1, [r0]
+ ldr r0, _0801B590 @ =0x0000ffff
+ cmp r1, r0
+ beq _0801B56E
+ b _0801B42E
+_0801B56E:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B580: .4byte gUnknown_081FC1D0
+_0801B584: .4byte gUnknown_02024C60
+_0801B588: .4byte gUnknown_02024C80
+_0801B58C: .4byte gUnknown_02024C7A
+_0801B590: .4byte 0x0000ffff
+ thumb_func_end unref_sub_801B40C
+
+ thumb_func_start sub_801B594
+sub_801B594: @ 801B594
+ push {lr}
+ ldr r0, _0801B5B4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801B5B0
+ ldr r1, _0801B5B8 @ =gUnknown_081FA73C
+ ldr r0, _0801B5BC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+_0801B5B0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801B5B4: .4byte gUnknown_02024A64
+_0801B5B8: .4byte gUnknown_081FA73C
+_0801B5BC: .4byte gUnknown_02024C10
+ thumb_func_end sub_801B594
+
+ thumb_func_start sub_801B5C0
+sub_801B5C0: @ 801B5C0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r7, r0, 16
+ lsls r1, 24
+ lsrs r0, r1, 24
+ movs r5, 0
+ cmp r0, 0
+ beq _0801B5DE
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _0801B5EA
+_0801B5DE:
+ ldr r1, _0801B5FC @ =gBattleMoves
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x6]
+_0801B5EA:
+ cmp r6, 0x40
+ bls _0801B5F0
+ b _0801B900
+_0801B5F0:
+ lsls r0, r6, 2
+ ldr r1, _0801B600 @ =_0801B604
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801B5FC: .4byte gBattleMoves
+_0801B600: .4byte _0801B604
+ .align 2, 0
+_0801B604:
+ .4byte _0801B708
+ .4byte _0801B808
+ .4byte _0801B8FC
+ .4byte _0801B900
+ .4byte _0801B820
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B808
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B8FC
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B808
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B900
+ .4byte _0801B808
+_0801B708:
+ ldr r0, _0801B7E8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801B7EC @ =gUnknown_02024C80
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0801B73A
+ ldr r1, _0801B7F0 @ =gBattleMons
+ ldrb r4, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B73A
+ b _0801B850
+_0801B73A:
+ ldr r0, _0801B7E8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r7, 1
+ mov r8, r0
+_0801B74A:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0801B7F4 @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ bl __modsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0801B7E8 @ =gUnknown_02024C07
+ ldrb r2, [r6]
+ cmp r5, r2
+ beq _0801B74A
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ beq _0801B74A
+ ldr r0, _0801B7F8 @ =gUnknown_02024C0C
+ ldrb r2, [r0]
+ ldr r1, _0801B7FC @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _0801B74A
+ ldr r0, _0801B800 @ =gBattleMoves
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xD
+ beq _0801B798
+ b _0801B900
+_0801B798:
+ ldrb r1, [r6]
+ str r2, [sp]
+ movs r0, 0x10
+ movs r2, 0x1F
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B7AE
+ b _0801B900
+_0801B7AE:
+ ldr r2, _0801B7F0 @ =gBattleMons
+ movs r1, 0x58
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1F
+ bne _0801B7C2
+ b _0801B900
+_0801B7C2:
+ movs r4, 0x2
+ eors r5, r4
+ adds r0, r5, 0
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_81074C4
+ ldr r1, _0801B804 @ =gUnknown_02024D68
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ orrs r1, r4
+ strb r1, [r0]
+ b _0801B900
+ .align 2, 0
+_0801B7E8: .4byte gUnknown_02024C07
+_0801B7EC: .4byte gUnknown_02024C80
+_0801B7F0: .4byte gBattleMons
+_0801B7F4: .4byte gUnknown_02024A68
+_0801B7F8: .4byte gUnknown_02024C0C
+_0801B7FC: .4byte gBitTable
+_0801B800: .4byte gBattleMoves
+_0801B804: .4byte gUnknown_02024D68
+_0801B808:
+ ldr r0, _0801B81C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ b _0801B8B2
+ .align 2, 0
+_0801B81C: .4byte gUnknown_02024C07
+_0801B820:
+ ldr r0, _0801B854 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801B858 @ =gUnknown_02024C80
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r0, r1
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0801B860
+ ldr r1, _0801B85C @ =gBattleMons
+ ldrb r4, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801B860
+_0801B850:
+ adds r5, r4, 0
+ b _0801B900
+ .align 2, 0
+_0801B854: .4byte gUnknown_02024C07
+_0801B858: .4byte gUnknown_02024C80
+_0801B85C: .4byte gBattleMons
+_0801B860:
+ ldr r0, _0801B894 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801B8DC
+ movs r0, 0x4
+ ands r6, r0
+ cmp r6, 0
+ beq _0801B8DC
+ ldr r0, _0801B898 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B8A0
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0801B89C
+ movs r0, 0x1
+ b _0801B8B2
+ .align 2, 0
+_0801B894: .4byte gUnknown_020239F8
+_0801B898: .4byte gUnknown_02024C07
+_0801B89C:
+ movs r0, 0x3
+ b _0801B8B2
+_0801B8A0:
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0801B8B0
+ movs r0, 0
+ b _0801B8B2
+_0801B8B0:
+ movs r0, 0x2
+_0801B8B2:
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0801B8D4 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0801B8D8 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801B900
+ movs r0, 0x2
+ eors r5, r0
+ b _0801B900
+ .align 2, 0
+_0801B8D4: .4byte gUnknown_02024C0C
+_0801B8D8: .4byte gBitTable
+_0801B8DC:
+ ldr r0, _0801B8F8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0801B900
+ .align 2, 0
+_0801B8F8: .4byte gUnknown_02024C07
+_0801B8FC:
+ ldr r0, _0801B91C @ =gUnknown_02024C07
+ ldrb r5, [r0]
+_0801B900:
+ ldr r1, _0801B920 @ =0x02000000
+ ldr r0, _0801B91C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _0801B924 @ =0x00016010
+ adds r0, r2
+ adds r0, r1
+ strb r5, [r0]
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801B91C: .4byte gUnknown_02024C07
+_0801B920: .4byte 0x02000000
+_0801B924: .4byte 0x00016010
+ thumb_func_end sub_801B5C0
+
+ thumb_func_start sub_801B928
+sub_801B928: @ 801B928
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r0, _0801B9E0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801B9DA
+ ldr r7, _0801B9E4 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0801B9DA
+ ldr r5, _0801B9E8 @ =gBattleMons
+ ldrb r0, [r7]
+ movs r1, 0x58
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r5, 0
+ adds r0, 0x54
+ adds r0, r1, r0
+ ldr r0, [r0]
+ adds r2, r5, 0
+ adds r2, 0x3C
+ adds r1, r2
+ bl sub_8040AD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B9DA
+ ldr r0, _0801B9EC @ =0x0000080e
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801B9DA
+ movs r6, 0xA
+ ldr r0, _0801B9F0 @ =0x00000808
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B98E
+ movs r6, 0x1E
+_0801B98E:
+ ldr r0, _0801B9F4 @ =0x0000080a
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B99C
+ movs r6, 0x32
+_0801B99C:
+ ldr r0, _0801B9F8 @ =0x0000080c
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801B9AA
+ movs r6, 0x46
+_0801B9AA:
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r5
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ cmp r0, r6
+ bls _0801B9DA
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, r5
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ adds r0, r6
+ muls r0, r1
+ asrs r4, r0, 8
+ cmp r4, r6
+ bge _0801B9FC
+_0801B9DA:
+ movs r0, 0
+ b _0801BC24
+ .align 2, 0
+_0801B9E0: .4byte gUnknown_020239F8
+_0801B9E4: .4byte gUnknown_02024C07
+_0801B9E8: .4byte gBattleMons
+_0801B9EC: .4byte 0x0000080e
+_0801B9F0: .4byte 0x00000808
+_0801B9F4: .4byte 0x0000080a
+_0801B9F8: .4byte 0x0000080c
+_0801B9FC:
+ ldr r3, _0801BA3C @ =gUnknown_02024BE6
+ ldrh r0, [r3]
+ cmp r0, 0x63
+ bne _0801BA12
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r2, _0801BA40 @ =0xff7fffff
+ ands r1, r2
+ str r1, [r0]
+_0801BA12:
+ ldrb r0, [r7]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r1, r5, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BA4C
+ ldrh r0, [r3]
+ cmp r0, 0xAD
+ beq _0801BA34
+ cmp r0, 0xD6
+ bne _0801BA4C
+_0801BA34:
+ ldr r1, _0801BA44 @ =gUnknown_02024C10
+ ldr r0, _0801BA48 @ =gUnknown_081D995F
+ b _0801BBCE
+ .align 2, 0
+_0801BA3C: .4byte gUnknown_02024BE6
+_0801BA40: .4byte 0xff7fffff
+_0801BA44: .4byte gUnknown_02024C10
+_0801BA48: .4byte gUnknown_081D995F
+_0801BA4C:
+ bl Random
+ movs r5, 0xFF
+ adds r1, r5, 0
+ ands r1, r0
+ ldr r7, _0801BB04 @ =gBattleMons
+ ldr r2, _0801BB08 @ =gUnknown_02024C07
+ mov r9, r2
+ ldrb r3, [r2]
+ movs r0, 0x58
+ mov r8, r0
+ mov r0, r8
+ muls r0, r3
+ adds r0, r7
+ adds r0, 0x2A
+ ldrb r2, [r0]
+ adds r0, r2, r6
+ muls r0, r1
+ asrs r4, r0, 8
+ cmp r4, r6
+ bge _0801BB3C
+ ldr r7, _0801BB0C @ =gBitTable
+ ldr r5, _0801BB10 @ =gUnknown_02024BE4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ movs r2, 0xFF
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bne _0801BA94
+ b _0801BBBE
+_0801BA94:
+ adds r6, r5, 0
+ ldr r1, _0801BB14 @ =gUnknown_02024BE5
+ mov r9, r1
+ movs r2, 0x3
+ mov r8, r2
+_0801BA9E:
+ bl Random
+ mov r1, r8
+ ands r0, r1
+ mov r2, r9
+ strb r0, [r2]
+ strb r0, [r6]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r7
+ ldr r5, [r0]
+ ands r5, r4
+ cmp r5, 0
+ bne _0801BA9E
+ ldr r4, _0801BB18 @ =gUnknown_02024BEA
+ ldr r3, _0801BB04 @ =gBattleMons
+ ldr r0, _0801BB10 @ =gUnknown_02024BE4
+ ldrb r0, [r0]
+ lsls r0, 1
+ ldr r1, _0801BB08 @ =gUnknown_02024C07
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r0, r1
+ adds r3, 0xC
+ adds r0, r3
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldr r0, _0801BB1C @ =gUnknown_02024D1E
+ strb r5, [r0, 0x3]
+ ldr r0, _0801BB20 @ =gUnknown_02024DEC
+ movs r1, 0
+ strh r5, [r0]
+ ldr r0, _0801BB24 @ =0x02000000
+ ldr r2, _0801BB28 @ =0x0001601c
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _0801BB2C @ =gUnknown_02024C10
+ ldr r0, _0801BB30 @ =gUnknown_081D996F
+ str r0, [r1]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _0801BB34 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r2, _0801BB38 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 14
+ b _0801BC1E
+ .align 2, 0
+_0801BB04: .4byte gBattleMons
+_0801BB08: .4byte gUnknown_02024C07
+_0801BB0C: .4byte gBitTable
+_0801BB10: .4byte gUnknown_02024BE4
+_0801BB14: .4byte gUnknown_02024BE5
+_0801BB18: .4byte gUnknown_02024BEA
+_0801BB1C: .4byte gUnknown_02024D1E
+_0801BB20: .4byte gUnknown_02024DEC
+_0801BB24: .4byte 0x02000000
+_0801BB28: .4byte 0x0001601c
+_0801BB2C: .4byte gUnknown_02024C10
+_0801BB30: .4byte gUnknown_081D996F
+_0801BB34: .4byte gUnknown_02024C08
+_0801BB38: .4byte gUnknown_02024C6C
+_0801BB3C:
+ subs r0, r2, r6
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl Random
+ adds r4, r5, 0
+ ands r4, r0
+ cmp r4, r6
+ bge _0801BBB8
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r7, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ bne _0801BBB8
+ adds r0, r1, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ beq _0801BBB8
+ cmp r0, 0xF
+ beq _0801BBB8
+ movs r2, 0
+ ldr r0, _0801BBAC @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ mov r8, r0
+ cmp r2, r3
+ bge _0801BB9E
+ ldr r0, [r7, 0x50]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BB9E
+ adds r1, r7, 0
+ adds r1, 0x50
+ movs r5, 0x70
+_0801BB8E:
+ adds r1, 0x58
+ adds r2, 0x1
+ cmp r2, r3
+ bge _0801BB9E
+ ldr r0, [r1]
+ ands r0, r5
+ cmp r0, 0
+ beq _0801BB8E
+_0801BB9E:
+ mov r0, r8
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _0801BBB8
+ ldr r1, _0801BBB0 @ =gUnknown_02024C10
+ ldr r0, _0801BBB4 @ =gUnknown_081D9989
+ b _0801BBCE
+ .align 2, 0
+_0801BBAC: .4byte gUnknown_02024A68
+_0801BBB0: .4byte gUnknown_02024C10
+_0801BBB4: .4byte gUnknown_081D9989
+_0801BBB8:
+ subs r4, r6
+ cmp r4, r6
+ blt _0801BBE0
+_0801BBBE:
+ bl Random
+ ldr r2, _0801BBD4 @ =gUnknown_02024D1E
+ movs r1, 0x3
+ ands r1, r0
+ strb r1, [r2, 0x5]
+ ldr r1, _0801BBD8 @ =gUnknown_02024C10
+ ldr r0, _0801BBDC @ =gUnknown_081D9977
+_0801BBCE:
+ str r0, [r1]
+ movs r0, 0x1
+ b _0801BC24
+ .align 2, 0
+_0801BBD4: .4byte gUnknown_02024D1E
+_0801BBD8: .4byte gUnknown_02024C10
+_0801BBDC: .4byte gUnknown_081D9977
+_0801BBE0:
+ ldr r4, _0801BC34 @ =gUnknown_02024C07
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r1, r0
+ ldr r0, _0801BC38 @ =gBattleMons
+ adds r1, r0
+ movs r0, 0x28
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldrb r0, [r4]
+ str r0, [sp, 0x8]
+ ldrb r0, [r4]
+ str r0, [sp, 0xC]
+ adds r0, r1, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl CalculateBaseDamage
+ ldr r1, _0801BC3C @ =gUnknown_02024BEC
+ str r0, [r1]
+ ldr r1, _0801BC40 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldr r1, _0801BC44 @ =gUnknown_02024C10
+ ldr r0, _0801BC48 @ =gUnknown_081D99A0
+ str r0, [r1]
+ ldr r2, _0801BC4C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 12
+_0801BC1E:
+ orrs r0, r1
+ str r0, [r2]
+ movs r0, 0x2
+_0801BC24:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801BC34: .4byte gUnknown_02024C07
+_0801BC38: .4byte gBattleMons
+_0801BC3C: .4byte gUnknown_02024BEC
+_0801BC40: .4byte gUnknown_02024C08
+_0801BC44: .4byte gUnknown_02024C10
+_0801BC48: .4byte gUnknown_081D99A0
+_0801BC4C: .4byte gUnknown_02024C6C
+ thumb_func_end sub_801B928
+
+ thumb_func_start atk00_attackcanceler
+atk00_attackcanceler: @ 801BC50
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r0, _0801BC6C @ =gUnknown_02024D26
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801BC74
+ ldr r1, _0801BC70 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+ b _0801BFF4
+ .align 2, 0
+_0801BC6C: .4byte gUnknown_02024D26
+_0801BC70: .4byte gUnknown_02024A7F
+_0801BC74:
+ ldr r2, _0801BCA4 @ =gBattleMons
+ ldr r0, _0801BCA8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0801BCB8
+ ldr r2, _0801BCAC @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BCB8
+ movs r0, 0x80
+ lsls r0, 12
+ orrs r1, r0
+ str r1, [r2]
+ ldr r1, _0801BCB0 @ =gUnknown_02024C10
+ ldr r0, _0801BCB4 @ =BattleScript_1D6F62
+ b _0801BFF2
+ .align 2, 0
+_0801BCA4: .4byte gBattleMons
+_0801BCA8: .4byte gUnknown_02024C07
+_0801BCAC: .4byte gUnknown_02024C6C
+_0801BCB0: .4byte gUnknown_02024C10
+_0801BCB4: .4byte BattleScript_1D6F62
+_0801BCB8:
+ bl sub_8017718
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0801BCC6
+ b _0801BFF4
+_0801BCC6:
+ ldr r0, _0801BD34 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ str r2, [sp]
+ movs r0, 0x2
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801BCDE
+ b _0801BFF4
+_0801BCDE:
+ ldr r4, _0801BD38 @ =gBattleMons
+ ldr r0, _0801BD3C @ =gUnknown_02024BE4
+ ldrb r1, [r0]
+ ldr r3, _0801BD40 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, r2
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r1, r0
+ ldrb r0, [r1]
+ ldr r5, _0801BD44 @ =gUnknown_02024C6C
+ cmp r0, 0
+ bne _0801BD5C
+ ldr r0, _0801BD48 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xA5
+ beq _0801BD5C
+ ldr r0, [r5]
+ ldr r1, _0801BD4C @ =0x00800200
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BD5C
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BD5C
+ ldr r1, _0801BD50 @ =gUnknown_02024C10
+ ldr r0, _0801BD54 @ =gUnknown_081D936D
+ str r0, [r1]
+ ldr r2, _0801BD58 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ b _0801BFF4
+ .align 2, 0
+_0801BD34: .4byte gUnknown_02024C08
+_0801BD38: .4byte gBattleMons
+_0801BD3C: .4byte gUnknown_02024BE4
+_0801BD40: .4byte gUnknown_02024C07
+_0801BD44: .4byte gUnknown_02024C6C
+_0801BD48: .4byte gUnknown_02024BE6
+_0801BD4C: .4byte 0x00800200
+_0801BD50: .4byte gUnknown_02024C10
+_0801BD54: .4byte gUnknown_081D936D
+_0801BD58: .4byte gUnknown_02024C68
+_0801BD5C:
+ ldr r0, [r5]
+ ldr r1, _0801BDA0 @ =0xff7fffff
+ ands r0, r1
+ str r0, [r5]
+ movs r6, 0x80
+ lsls r6, 18
+ ands r0, r6
+ cmp r0, 0
+ bne _0801BDB4
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r4, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _0801BDB4
+ bl sub_801B928
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0801BDB4
+ cmp r2, 0x2
+ bne _0801BDA4
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ b _0801BFF4
+ .align 2, 0
+_0801BDA0: .4byte 0xff7fffff
+_0801BDA4:
+ ldr r0, _0801BDB0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801BFF4
+ .align 2, 0
+_0801BDB0: .4byte gUnknown_02024C68
+_0801BDB4:
+ ldr r2, _0801BE18 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 18
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801BE1C @ =gUnknown_02024D28
+ ldr r1, _0801BE20 @ =gUnknown_02024C08
+ ldrb r3, [r1]
+ lsls r0, r3, 4
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 27
+ mov r8, r1
+ mov r9, r2
+ cmp r0, 0
+ bge _0801BE3C
+ ldr r2, _0801BE24 @ =gBattleMoves
+ ldr r0, _0801BE28 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BE3C
+ ldr r0, _0801BE2C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _0801BE30 @ =0x00000115
+ adds r1, r3, 0
+ bl sub_80151D4
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r1, 4
+ add r1, r9
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801BE34 @ =gUnknown_02024C10
+ ldr r0, _0801BE38 @ =gUnknown_081D946F
+ b _0801BFF2
+ .align 2, 0
+_0801BE18: .4byte gUnknown_02024C6C
+_0801BE1C: .4byte gUnknown_02024D28
+_0801BE20: .4byte gUnknown_02024C08
+_0801BE24: .4byte gBattleMoves
+_0801BE28: .4byte gUnknown_02024BE6
+_0801BE2C: .4byte gUnknown_02024C07
+_0801BE30: .4byte 0x00000115
+_0801BE34: .4byte gUnknown_02024C10
+_0801BE38: .4byte gUnknown_081D946F
+_0801BE3C:
+ movs r2, 0
+ ldr r0, _0801BEB8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r2, r0
+ bge _0801BE7E
+ ldr r6, _0801BEBC @ =gUnknown_02024D28
+ ldr r1, _0801BEC0 @ =gBattleMoves
+ mov r12, r1
+ adds r5, r0, 0
+ ldr r7, _0801BEC4 @ =gUnknown_02024A7A
+_0801BE50:
+ adds r4, r2, r7
+ ldrb r3, [r4]
+ lsls r0, r3, 4
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _0801BE78
+ ldr r0, _0801BEC8 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BE78
+ b _0801BFA4
+_0801BE78:
+ adds r2, 0x1
+ cmp r2, r5
+ blt _0801BE50
+_0801BE7E:
+ ldr r0, _0801BECC @ =gUnknown_02024D68
+ mov r1, r8
+ ldrb r2, [r1]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r3, [r1]
+ lsls r0, r3, 30
+ cmp r0, 0
+ bge _0801BEDC
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r4, _0801BED0 @ =byte_2024C06
+ movs r0, 0x1F
+ strb r0, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801BED4 @ =gUnknown_02024C10
+ ldr r0, _0801BED8 @ =gUnknown_081D9812
+ str r0, [r1]
+ mov r2, r8
+ ldrb r0, [r2]
+ ldrb r1, [r4]
+ bl sub_81074C4
+ b _0801BFF4
+ .align 2, 0
+_0801BEB8: .4byte gUnknown_02024A68
+_0801BEBC: .4byte gUnknown_02024D28
+_0801BEC0: .4byte gBattleMoves
+_0801BEC4: .4byte gUnknown_02024A7A
+_0801BEC8: .4byte gUnknown_02024BE6
+_0801BECC: .4byte gUnknown_02024D68
+_0801BED0: .4byte byte_2024C06
+_0801BED4: .4byte gUnknown_02024C10
+_0801BED8: .4byte gUnknown_081D9812
+_0801BEDC:
+ lsls r0, r2, 4
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0801BEEA
+ b _0801BFEC
+_0801BEEA:
+ ldr r1, _0801BF80 @ =gBattleMoves
+ ldr r2, _0801BF84 @ =gUnknown_02024BE6
+ ldrh r3, [r2]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x2
+ ands r0, r1
+ adds r4, r2, 0
+ cmp r0, 0
+ beq _0801BFEC
+ cmp r3, 0xAE
+ bne _0801BF28
+ ldr r2, _0801BF88 @ =gBattleMons
+ ldr r0, _0801BF8C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _0801BF28
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _0801BFEC
+_0801BF28:
+ ldrh r0, [r4]
+ bl sub_8028350
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801BF4E
+ ldr r1, _0801BF88 @ =gBattleMons
+ ldr r0, _0801BF8C @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0801BFEC
+_0801BF4E:
+ ldr r0, _0801BF8C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r2, _0801BF90 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801BF94 @ =gUnknown_02024C3C
+ ldr r3, _0801BF98 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801BF9C @ =gUnknown_02024C44
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r1, _0801BFA0 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ b _0801BFEC
+ .align 2, 0
+_0801BF80: .4byte gBattleMoves
+_0801BF84: .4byte gUnknown_02024BE6
+_0801BF88: .4byte gBattleMons
+_0801BF8C: .4byte gUnknown_02024C07
+_0801BF90: .4byte gUnknown_02024C68
+_0801BF94: .4byte gUnknown_02024C3C
+_0801BF98: .4byte gUnknown_02024C08
+_0801BF9C: .4byte gUnknown_02024C44
+_0801BFA0: .4byte gUnknown_02024D1E
+_0801BFA4:
+ ldr r0, _0801BFD4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _0801BFD8 @ =0x00000121
+ adds r1, r3, 0
+ bl sub_80151D4
+ ldrb r1, [r4]
+ lsls r1, 4
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, _0801BFDC @ =0x02000000
+ ldrb r1, [r4]
+ ldr r2, _0801BFE0 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801BFE4 @ =gUnknown_02024C10
+ ldr r0, _0801BFE8 @ =gUnknown_081D9487
+ b _0801BFF2
+ .align 2, 0
+_0801BFD4: .4byte gUnknown_02024C07
+_0801BFD8: .4byte 0x00000121
+_0801BFDC: .4byte 0x02000000
+_0801BFE0: .4byte 0x00016003
+_0801BFE4: .4byte gUnknown_02024C10
+_0801BFE8: .4byte gUnknown_081D9487
+_0801BFEC:
+ ldr r1, _0801C004 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+_0801BFF2:
+ str r0, [r1]
+_0801BFF4:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C004: .4byte gUnknown_02024C10
+ thumb_func_end atk00_attackcanceler
+
+ thumb_func_start mcmd_jump_if_move_not_executed
+mcmd_jump_if_move_not_executed: @ 801C008
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r1, _0801C054 @ =gUnknown_02024C10
+ ldr r5, [r1]
+ adds r4, r5, r0
+ ldr r0, _0801C058 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C068
+ ldr r1, _0801C05C @ =gUnknown_02024C3C
+ ldr r3, _0801C060 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801C064 @ =gUnknown_02024C44
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldrb r4, [r5, 0x1]
+ ldrb r0, [r5, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r5, 0x3]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r5, 0x4]
+ lsls r0, 24
+ orrs r4, r0
+ b _0801C082
+ .align 2, 0
+_0801C054: .4byte gUnknown_02024C10
+_0801C058: .4byte gUnknown_02024C68
+_0801C05C: .4byte gUnknown_02024C3C
+_0801C060: .4byte gUnknown_02024C08
+_0801C064: .4byte gUnknown_02024C44
+_0801C068:
+ bl b_feature_update_destiny_bond
+ ldr r0, _0801C090 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ str r6, [sp]
+ movs r0, 0x3
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C086
+_0801C082:
+ ldr r0, _0801C094 @ =gUnknown_02024C10
+ str r4, [r0]
+_0801C086:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C090: .4byte gUnknown_02024C08
+_0801C094: .4byte gUnknown_02024C10
+ thumb_func_end mcmd_jump_if_move_not_executed
+
+ thumb_func_start atk40_801DBA0
+atk40_801DBA0: @ 801C098
+ push {lr}
+ ldr r1, _0801C0E0 @ =gUnknown_02024D28
+ ldr r0, _0801C0E4 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801C0F8
+ ldr r2, _0801C0E8 @ =gBattleMoves
+ ldr r0, _0801C0EC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C0F8
+ ldr r2, _0801C0F0 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x5
+ movs r1, 0
+ bl mcmd_jump_if_move_not_executed
+ ldr r1, _0801C0F4 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ b _0801C100
+ .align 2, 0
+_0801C0E0: .4byte gUnknown_02024D28
+_0801C0E4: .4byte gUnknown_02024C08
+_0801C0E8: .4byte gBattleMoves
+_0801C0EC: .4byte gUnknown_02024BE6
+_0801C0F0: .4byte gUnknown_02024C68
+_0801C0F4: .4byte gUnknown_02024D1E
+_0801C0F8:
+ ldr r1, _0801C104 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0801C100:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C104: .4byte gUnknown_02024C10
+ thumb_func_end atk40_801DBA0
+
+ thumb_func_start sub_801C108
+sub_801C108: @ 801C108
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r4, 0
+ ldr r1, _0801C15C @ =gUnknown_02024D28
+ ldr r0, _0801C160 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _0801C154
+ ldr r2, _0801C164 @ =gBattleMoves
+ ldr r0, _0801C168 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C154
+ ldr r2, _0801C16C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x7
+ adds r1, r3, 0
+ bl mcmd_jump_if_move_not_executed
+ ldr r1, _0801C170 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ movs r4, 0x1
+_0801C154:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801C15C: .4byte gUnknown_02024D28
+_0801C160: .4byte gUnknown_02024C08
+_0801C164: .4byte gBattleMoves
+_0801C168: .4byte gUnknown_02024BE6
+_0801C16C: .4byte gUnknown_02024C68
+_0801C170: .4byte gUnknown_02024D1E
+ thumb_func_end sub_801C108
+
+ thumb_func_start sub_801C174
+sub_801C174: @ 801C174
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r2, _0801C1D4 @ =gUnknown_02024C98
+ ldr r3, _0801C1D8 @ =gUnknown_02024C08
+ ldrb r4, [r3]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x18
+ ands r1, r0
+ adds r6, r2, 0
+ cmp r1, 0
+ beq _0801C1A6
+ ldr r1, _0801C1DC @ =gUnknown_02024CA8
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0801C1E0 @ =gUnknown_02024C07
+ ldrb r0, [r0, 0x15]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0801C290
+_0801C1A6:
+ ldr r0, _0801C1E4 @ =gUnknown_02024C6C
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 9
+ ands r1, r2
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _0801C1EC
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C1EC
+_0801C1C6:
+ ldr r0, _0801C1E8 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801C290
+ .align 2, 0
+_0801C1D4: .4byte gUnknown_02024C98
+_0801C1D8: .4byte gUnknown_02024C08
+_0801C1DC: .4byte gUnknown_02024CA8
+_0801C1E0: .4byte gUnknown_02024C07
+_0801C1E4: .4byte gUnknown_02024C6C
+_0801C1E8: .4byte gUnknown_02024C68
+_0801C1EC:
+ ldr r0, [r2]
+ ldr r1, _0801C29C @ =0xfffeffff
+ ands r0, r1
+ str r0, [r2]
+ movs r1, 0x80
+ lsls r1, 10
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C20E
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C1C6
+_0801C20E:
+ ldr r0, [r2]
+ ldr r1, _0801C2A0 @ =0xfffdffff
+ ands r0, r1
+ str r0, [r2]
+ movs r1, 0x80
+ lsls r1, 11
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C22E
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C1C6
+_0801C22E:
+ ldr r0, [r2]
+ ldr r1, _0801C2A4 @ =0xfffbffff
+ ands r0, r1
+ str r0, [r2]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r5, 1
+ cmp r0, 0
+ bne _0801C27E
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C27E
+ ldr r0, _0801C2A8 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C27E
+ ldr r0, _0801C2AC @ =gBattleMoves
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x98
+ beq _0801C290
+_0801C27E:
+ ldr r1, _0801C2AC @ =gBattleMoves
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _0801C290
+ cmp r0, 0x4E
+ bne _0801C2B0
+_0801C290:
+ movs r0, 0x7
+ adds r1, r5, 0
+ bl mcmd_jump_if_move_not_executed
+ movs r0, 0x1
+ b _0801C2B2
+ .align 2, 0
+_0801C29C: .4byte 0xfffeffff
+_0801C2A0: .4byte 0xfffdffff
+_0801C2A4: .4byte 0xfffbffff
+_0801C2A8: .4byte word_2024DB8
+_0801C2AC: .4byte gBattleMoves
+_0801C2B0:
+ movs r0, 0
+_0801C2B2:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_801C174
+
+ thumb_func_start atk01_accuracycheck
+atk01_accuracycheck: @ 801C2BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _0801C314 @ =gUnknown_02024C10
+ ldr r5, [r0]
+ ldrb r6, [r5, 0x5]
+ ldrb r1, [r5, 0x6]
+ lsls r1, 8
+ orrs r6, r1
+ adds r1, r6, 0x2
+ lsls r1, 16
+ lsrs r1, 16
+ adds r7, r0, 0
+ cmp r1, 0x1
+ bhi _0801C378
+ ldr r2, _0801C318 @ =gUnknown_02024C98
+ ldr r3, _0801C31C @ =gUnknown_02024C08
+ ldrb r4, [r3]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x18
+ ands r1, r0
+ cmp r1, 0
+ beq _0801C32C
+ ldr r0, _0801C320 @ =0x0000ffff
+ cmp r6, r0
+ bne _0801C32C
+ ldr r1, _0801C324 @ =gUnknown_02024CA8
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0801C328 @ =gUnknown_02024C07
+ ldrb r0, [r0, 0x15]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0801C32C
+ adds r0, r5, 0x7
+ str r0, [r7]
+ b _0801C632
+ .align 2, 0
+_0801C314: .4byte gUnknown_02024C10
+_0801C318: .4byte gUnknown_02024C98
+_0801C31C: .4byte gUnknown_02024C08
+_0801C320: .4byte 0x0000ffff
+_0801C324: .4byte gUnknown_02024CA8
+_0801C328: .4byte gUnknown_02024C07
+_0801C32C:
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, _0801C358 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C35C
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 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, [r7]
+ b _0801C632
+ .align 2, 0
+_0801C358: .4byte 0x000400c0
+_0801C35C:
+ movs r0, 0
+ bl sub_801C108
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C36A
+ b _0801C632
+_0801C36A:
+ ldr r1, _0801C374 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x7
+ str r0, [r1]
+ b _0801C632
+ .align 2, 0
+_0801C374: .4byte gUnknown_02024C10
+_0801C378:
+ cmp r6, 0
+ bne _0801C380
+ ldr r0, _0801C398 @ =gUnknown_02024BE6
+ ldrh r6, [r0]
+_0801C380:
+ ldr r0, _0801C39C @ =0x02000000
+ ldr r1, _0801C3A0 @ =0x0001601c
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801C3A4
+ movs r2, 0x3F
+ mov r10, r2
+ mov r3, r10
+ ands r3, r0
+ mov r10, r3
+ b _0801C3B2
+ .align 2, 0
+_0801C398: .4byte gUnknown_02024BE6
+_0801C39C: .4byte 0x02000000
+_0801C3A0: .4byte 0x0001601c
+_0801C3A4:
+ ldr r1, _0801C3F8 @ =gBattleMoves
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ mov r10, r0
+_0801C3B2:
+ adds r0, r6, 0
+ bl sub_801C108
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C3C0
+ b _0801C632
+_0801C3C0:
+ adds r0, r6, 0
+ bl sub_801C174
+ lsls r0, 24
+ cmp r0, 0
+ beq _0801C3CE
+ b _0801C632
+_0801C3CE:
+ ldr r3, _0801C3FC @ =gBattleMons
+ ldr r0, _0801C400 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r4, r0, 0
+ muls r4, r2
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r4, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C408
+ ldr r0, _0801C404 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ ldrb r5, [r0, 0x1E]
+ b _0801C41E
+ .align 2, 0
+_0801C3F8: .4byte gBattleMoves
+_0801C3FC: .4byte gBattleMons
+_0801C400: .4byte gUnknown_02024C08
+_0801C404: .4byte gUnknown_02024C07
+_0801C408:
+ ldr r0, _0801C56C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ ldrb r0, [r0, 0x1E]
+ adds r0, 0x6
+ adds r1, r4, r3
+ ldrb r1, [r1, 0x1F]
+ subs r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0801C41E:
+ lsls r0, r5, 24
+ cmp r0, 0
+ bge _0801C426
+ movs r5, 0
+_0801C426:
+ lsls r0, r5, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ ble _0801C430
+ movs r5, 0xC
+_0801C430:
+ ldr r1, _0801C570 @ =gBattleMoves
+ lsls r4, r6, 1
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r7, r0, r1
+ ldrb r0, [r7, 0x3]
+ mov r8, r0
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ str r4, [sp, 0x4]
+ cmp r0, 0
+ bne _0801C482
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C482
+ ldr r0, _0801C574 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C482
+ ldrb r0, [r7]
+ cmp r0, 0x98
+ bne _0801C482
+ movs r1, 0x32
+ mov r8, r1
+_0801C482:
+ ldr r1, _0801C578 @ =gAccuracyStageRatios
+ lsls r0, r5, 24
+ asrs r0, 22
+ adds r0, r1
+ ldrb r1, [r0]
+ mov r4, r8
+ muls r4, r1
+ ldrb r1, [r0, 0x1]
+ adds r0, r4, 0
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r7, _0801C57C @ =gBattleMons
+ ldr r0, _0801C56C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0xE
+ bne _0801C4C0
+ lsls r0, r4, 6
+ adds r0, r4
+ lsls r0, 1
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C4C0:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0801C518
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801C518
+ ldr r0, _0801C580 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _0801C518
+ ldr r0, _0801C574 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C518
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C518:
+ ldr r2, _0801C57C @ =gBattleMons
+ ldr r0, _0801C56C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r9, r2
+ cmp r0, 0x37
+ bne _0801C544
+ mov r2, r10
+ cmp r2, 0x8
+ bhi _0801C544
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C544:
+ ldr r3, _0801C580 @ =gUnknown_02024C08
+ mov r8, r3
+ ldrb r2, [r3]
+ movs r7, 0x58
+ adds r0, r2, 0
+ muls r0, r7
+ mov r3, r9
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0801C588
+ ldr r1, _0801C584 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x7]
+ ldrb r2, [r0, 0x1A]
+ b _0801C5A4
+ .align 2, 0
+_0801C56C: .4byte gUnknown_02024C07
+_0801C570: .4byte gBattleMoves
+_0801C574: .4byte word_2024DB8
+_0801C578: .4byte gAccuracyStageRatios
+_0801C57C: .4byte gBattleMons
+_0801C580: .4byte gUnknown_02024C08
+_0801C584: .4byte gEnigmaBerries
+_0801C588:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r8
+ ldrb r0, [r1]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0801C5A4:
+ ldr r0, _0801C608 @ =gUnknown_02024C0B
+ ldr r1, _0801C60C @ =gUnknown_02024C08
+ ldrb r1, [r1]
+ strb r1, [r0]
+ cmp r5, 0x16
+ bne _0801C5C0
+ movs r0, 0x64
+ subs r0, r2
+ muls r0, r4
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0801C5C0:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, 0x1
+ cmp r0, r4
+ ble _0801C62A
+ ldr r2, _0801C610 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0801C614 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801C620
+ ldr r1, _0801C618 @ =gBattleMoves
+ ldr r2, [sp, 0x4]
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x8
+ beq _0801C602
+ cmp r0, 0x20
+ bne _0801C620
+_0801C602:
+ ldr r1, _0801C61C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _0801C624
+ .align 2, 0
+_0801C608: .4byte gUnknown_02024C0B
+_0801C60C: .4byte gUnknown_02024C08
+_0801C610: .4byte gUnknown_02024C68
+_0801C614: .4byte gUnknown_020239F8
+_0801C618: .4byte gBattleMoves
+_0801C61C: .4byte gUnknown_02024D1E
+_0801C620:
+ ldr r1, _0801C644 @ =gUnknown_02024D1E
+ movs r0, 0
+_0801C624:
+ strb r0, [r1, 0x6]
+ bl b_wonderguard_and_levitate
+_0801C62A:
+ movs r0, 0x7
+ adds r1, r6, 0
+ bl mcmd_jump_if_move_not_executed
+_0801C632:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C644: .4byte gUnknown_02024D1E
+ thumb_func_end atk01_accuracycheck
+
+ thumb_func_start atk02_attackstring
+atk02_attackstring: @ 801C648
+ push {r4,r5,lr}
+ ldr r0, _0801C688 @ =gUnknown_02024A64
+ ldr r5, [r0]
+ cmp r5, 0
+ bne _0801C680
+ ldr r4, _0801C68C @ =gUnknown_02024C6C
+ ldr r0, [r4]
+ movs r1, 0xC0
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C674
+ ldr r0, _0801C690 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x4
+ bl b_std_message
+ ldr r0, [r4]
+ movs r1, 0x80
+ lsls r1, 3
+ orrs r0, r1
+ str r0, [r4]
+_0801C674:
+ ldr r0, _0801C694 @ =gUnknown_02024C10
+ ldr r1, [r0]
+ adds r1, 0x1
+ str r1, [r0]
+ ldr r0, _0801C698 @ =gUnknown_02024D1E
+ strb r5, [r0, 0x7]
+_0801C680:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C688: .4byte gUnknown_02024A64
+_0801C68C: .4byte gUnknown_02024C6C
+_0801C690: .4byte gUnknown_02024C07
+_0801C694: .4byte gUnknown_02024C10
+_0801C698: .4byte gUnknown_02024D1E
+ thumb_func_end atk02_attackstring
+
+ thumb_func_start atk03_ppreduce
+atk03_ppreduce: @ 801C69C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r6, 0x1
+ ldr r0, _0801C6EC @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801C6B4
+ b _0801C84E
+_0801C6B4:
+ ldr r1, _0801C6F0 @ =gUnknown_02024D68
+ ldr r2, _0801C6F4 @ =gUnknown_02024C07
+ ldrb r3, [r2]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r4, r0, 31
+ mov r9, r2
+ cmp r4, 0
+ bne _0801C756
+ ldr r2, _0801C6F8 @ =gBattleMoves
+ ldr r0, _0801C6FC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x20
+ beq _0801C706
+ cmp r0, 0x20
+ bgt _0801C700
+ cmp r0, 0x8
+ beq _0801C71C
+ b _0801C736
+ .align 2, 0
+_0801C6EC: .4byte gUnknown_02024A64
+_0801C6F0: .4byte gUnknown_02024D68
+_0801C6F4: .4byte gUnknown_02024C07
+_0801C6F8: .4byte gBattleMoves
+_0801C6FC: .4byte gUnknown_02024BE6
+_0801C700:
+ cmp r0, 0x40
+ beq _0801C71C
+ b _0801C736
+_0801C706:
+ str r4, [sp]
+ movs r0, 0x12
+ adds r1, r3, 0
+ movs r2, 0x2E
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0x1
+ b _0801C756
+_0801C71C:
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x10
+ movs r2, 0x2E
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0
+ b _0801C756
+_0801C736:
+ ldr r1, _0801C7B8 @ =gUnknown_02024C08
+ mov r2, r9
+ ldrb r0, [r2]
+ ldrb r7, [r1]
+ cmp r0, r7
+ beq _0801C756
+ ldr r2, _0801C7BC @ =gBattleMons
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2E
+ bne _0801C756
+ adds r6, 0x1
+_0801C756:
+ ldr r0, _0801C7C0 @ =gUnknown_02024C6C
+ ldr r4, [r0]
+ movs r0, 0xA0
+ lsls r0, 4
+ ands r4, r0
+ cmp r4, 0
+ bne _0801C83C
+ ldr r2, _0801C7BC @ =gBattleMons
+ ldr r3, _0801C7C4 @ =gUnknown_02024BE4
+ ldr r1, _0801C7C8 @ =gUnknown_02024C07
+ ldrb r5, [r1]
+ movs r0, 0x58
+ mov r8, r0
+ mov r0, r8
+ muls r0, r5
+ ldrb r7, [r3]
+ adds r0, r7
+ movs r7, 0x24
+ adds r7, r2
+ mov r12, r7
+ add r0, r12
+ ldrb r0, [r0]
+ mov r9, r1
+ mov r10, r2
+ adds r7, r3, 0
+ cmp r0, 0
+ beq _0801C83C
+ ldr r0, _0801C7CC @ =gUnknown_02024D28
+ lsls r1, r5, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x2]
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldrb r1, [r7]
+ adds r0, r1
+ mov r1, r12
+ adds r2, r0, r1
+ ldrb r0, [r2]
+ cmp r0, r6
+ ble _0801C7D0
+ subs r0, r6
+ strb r0, [r2]
+ b _0801C7D2
+ .align 2, 0
+_0801C7B8: .4byte gUnknown_02024C08
+_0801C7BC: .4byte gBattleMons
+_0801C7C0: .4byte gUnknown_02024C6C
+_0801C7C4: .4byte gUnknown_02024BE4
+_0801C7C8: .4byte gUnknown_02024C07
+_0801C7CC: .4byte gUnknown_02024D28
+_0801C7D0:
+ strb r4, [r2]
+_0801C7D2:
+ mov r2, r9
+ ldrb r3, [r2]
+ movs r4, 0x58
+ adds r0, r3, 0
+ muls r0, r4
+ mov r1, r10
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C83C
+ ldr r1, _0801C860 @ =gUnknown_02024CA8
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _0801C864 @ =gBitTable
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0801C83C
+ ldr r0, _0801C868 @ =gUnknown_02024A60
+ strb r3, [r0]
+ ldrb r1, [r7]
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r2, r9
+ ldrb r0, [r2]
+ muls r0, r4
+ mov r2, r10
+ adds r2, 0x24
+ adds r0, r2
+ ldrb r7, [r7]
+ adds r0, r7
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ mov r7, r9
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0801C83C:
+ ldr r2, _0801C86C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0801C870 @ =0xfffff7ff
+ ands r0, r1
+ str r0, [r2]
+ ldr r1, _0801C874 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801C84E:
+ 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
+_0801C860: .4byte gUnknown_02024CA8
+_0801C864: .4byte gBitTable
+_0801C868: .4byte gUnknown_02024A60
+_0801C86C: .4byte gUnknown_02024C6C
+_0801C870: .4byte 0xfffff7ff
+_0801C874: .4byte gUnknown_02024C10
+ thumb_func_end atk03_ppreduce
+
+ thumb_func_start atk04_critcalc
+atk04_critcalc: @ 801C878
+ push {r4-r7,lr}
+ ldr r1, _0801C89C @ =gBattleMons
+ ldr r0, _0801C8A0 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0xAF
+ bne _0801C8A8
+ ldr r1, _0801C8A4 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r6, [r0, 0x7]
+ b _0801C8B0
+ .align 2, 0
+_0801C89C: .4byte gBattleMons
+_0801C8A0: .4byte gUnknown_02024C07
+_0801C8A4: .4byte gEnigmaBerries
+_0801C8A8:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801C8B0:
+ ldr r1, _0801C93C @ =gUnknown_02024C0B
+ ldr r3, _0801C940 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ strb r0, [r1]
+ ldr r4, _0801C944 @ =gBattleMons
+ ldrb r1, [r3]
+ movs r0, 0x58
+ adds r7, r1, 0
+ muls r7, r0
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r7, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ negs r0, r0
+ asrs r5, r0, 31
+ movs r0, 0x2
+ ands r5, r0
+ ldr r2, _0801C948 @ =gBattleMoves
+ ldr r0, _0801C94C @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ mov r12, r3
+ cmp r1, 0x2B
+ bne _0801C8F0
+ adds r5, 0x1
+_0801C8F0:
+ adds r0, r5, 0
+ cmp r1, 0x4B
+ bne _0801C8F8
+ adds r0, 0x1
+_0801C8F8:
+ cmp r1, 0xC8
+ bne _0801C8FE
+ adds r0, 0x1
+_0801C8FE:
+ adds r2, r0, 0
+ cmp r1, 0xD1
+ bne _0801C906
+ adds r2, 0x1
+_0801C906:
+ movs r1, 0
+ cmp r6, 0x3F
+ bne _0801C916
+ adds r0, r7, r4
+ ldrh r0, [r0]
+ cmp r0, 0x71
+ bne _0801C916
+ movs r1, 0x1
+_0801C916:
+ lsls r5, r1, 1
+ movs r3, 0
+ cmp r6, 0x42
+ bne _0801C930
+ mov r0, r12
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, 0x53
+ bne _0801C930
+ movs r3, 0x1
+_0801C930:
+ lsls r1, r3, 1
+ cmp r6, 0x29
+ bne _0801C950
+ adds r0, r5, 0x1
+ adds r0, r2, r0
+ b _0801C952
+ .align 2, 0
+_0801C93C: .4byte gUnknown_02024C0B
+_0801C940: .4byte gUnknown_02024C07
+_0801C944: .4byte gBattleMons
+_0801C948: .4byte gBattleMoves
+_0801C94C: .4byte gUnknown_02024BE6
+_0801C950:
+ adds r0, r2, r5
+_0801C952:
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ adds r5, r0, 0
+ cmp r5, 0x4
+ bls _0801C960
+ movs r5, 0x4
+_0801C960:
+ ldr r0, _0801C9BC @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r4, [r0]
+ cmp r4, 0x4
+ beq _0801C9D0
+ cmp r4, 0x4B
+ beq _0801C9D0
+ ldr r1, _0801C9C0 @ =gUnknown_02024C98
+ mov r2, r12
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C9D0
+ ldr r0, _0801C9C4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x84
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _0801C9D0
+ bl Random
+ ldr r2, _0801C9C8 @ =gCriticalHitChance
+ lsls r1, r5, 1
+ adds r1, r2
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r1]
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0801C9D0
+ ldr r1, _0801C9CC @ =gCritMultiplier
+ movs r0, 0x2
+ b _0801C9D4
+ .align 2, 0
+_0801C9BC: .4byte gUnknown_02024C08
+_0801C9C0: .4byte gUnknown_02024C98
+_0801C9C4: .4byte gUnknown_020239F8
+_0801C9C8: .4byte gCriticalHitChance
+_0801C9CC: .4byte gCritMultiplier
+_0801C9D0:
+ ldr r1, _0801C9E4 @ =gCritMultiplier
+ movs r0, 0x1
+_0801C9D4:
+ strb r0, [r1]
+ ldr r1, _0801C9E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801C9E4: .4byte gCritMultiplier
+_0801C9E8: .4byte gUnknown_02024C10
+ thumb_func_end atk04_critcalc
+
+ thumb_func_start atk05_damagecalc1
+atk05_damagecalc1: @ 801C9EC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r4, _0801CABC @ =gUnknown_02024C7A
+ ldr r6, _0801CAC0 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ ldr r0, _0801CAC4 @ =gUnknown_02024C07
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r4, 0x58
+ muls r0, r4
+ ldr r2, _0801CAC8 @ =gBattleMons
+ adds r0, r2
+ ldrb r1, [r6]
+ muls r1, r4
+ adds r1, r2
+ ldr r2, _0801CACC @ =gUnknown_02024BE6
+ mov r9, r2
+ ldrh r2, [r2]
+ ldr r4, _0801CAD0 @ =gUnknown_02024DEC
+ ldrh r4, [r4]
+ str r4, [sp]
+ ldr r5, _0801CAD4 @ =0x02000000
+ ldr r7, _0801CAD8 @ =0x0001601c
+ adds r4, r5, r7
+ ldrb r4, [r4]
+ str r4, [sp, 0x4]
+ mov r7, r8
+ ldrb r4, [r7]
+ str r4, [sp, 0x8]
+ ldrb r4, [r6]
+ str r4, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldr r4, _0801CADC @ =gUnknown_02024BEC
+ ldr r1, _0801CAE0 @ =gCritMultiplier
+ ldrb r1, [r1]
+ muls r1, r0
+ ldr r0, _0801CAE4 @ =0x0001601f
+ adds r5, r0
+ ldrb r0, [r5]
+ adds r3, r1, 0
+ muls r3, r0
+ str r3, [r4]
+ ldr r1, _0801CAE8 @ =gUnknown_02024C98
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CA82
+ ldr r2, _0801CAEC @ =gBattleMoves
+ mov r7, r9
+ ldrh r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0xD
+ bne _0801CA82
+ lsls r0, r3, 1
+ str r0, [r4]
+_0801CA82:
+ ldr r1, _0801CAF0 @ =gUnknown_02024D28
+ ldr r0, _0801CAC4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801CAA4
+ ldr r4, _0801CADC @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_0801CAA4:
+ ldr r1, _0801CAF4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CABC: .4byte gUnknown_02024C7A
+_0801CAC0: .4byte gUnknown_02024C08
+_0801CAC4: .4byte gUnknown_02024C07
+_0801CAC8: .4byte gBattleMons
+_0801CACC: .4byte gUnknown_02024BE6
+_0801CAD0: .4byte gUnknown_02024DEC
+_0801CAD4: .4byte 0x02000000
+_0801CAD8: .4byte 0x0001601c
+_0801CADC: .4byte gUnknown_02024BEC
+_0801CAE0: .4byte gCritMultiplier
+_0801CAE4: .4byte 0x0001601f
+_0801CAE8: .4byte gUnknown_02024C98
+_0801CAEC: .4byte gBattleMoves
+_0801CAF0: .4byte gUnknown_02024D28
+_0801CAF4: .4byte gUnknown_02024C10
+ thumb_func_end atk05_damagecalc1
+
+ thumb_func_start sub_801CAF8
+sub_801CAF8: @ 801CAF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _0801CBBC @ =gUnknown_02024C7A
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ movs r1, 0x58
+ adds r0, r7, 0
+ muls r0, r1
+ ldr r2, _0801CBC0 @ =gBattleMons
+ adds r0, r2
+ muls r1, r5
+ adds r1, r2
+ ldr r2, _0801CBC4 @ =gUnknown_02024BE6
+ mov r9, r2
+ ldrh r2, [r2]
+ ldr r4, _0801CBC8 @ =gUnknown_02024DEC
+ mov r8, r4
+ ldrh r4, [r4]
+ str r4, [sp]
+ ldr r6, _0801CBCC @ =0x02000000
+ ldr r4, _0801CBD0 @ =0x0001601c
+ ldrb r4, [r4, r6]
+ str r4, [sp, 0x4]
+ str r7, [sp, 0x8]
+ str r5, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldr r4, _0801CBD4 @ =gUnknown_02024BEC
+ movs r1, 0
+ mov r2, r8
+ strh r1, [r2]
+ ldr r1, _0801CBD8 @ =gCritMultiplier
+ ldrb r1, [r1]
+ muls r1, r0
+ ldr r0, _0801CBDC @ =0x0001601f
+ adds r6, r0
+ ldrb r0, [r6]
+ adds r3, r1, 0
+ muls r3, r0
+ str r3, [r4]
+ ldr r1, _0801CBE0 @ =gUnknown_02024C98
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CB8E
+ ldr r2, _0801CBE4 @ =gBattleMoves
+ mov r6, r9
+ ldrh r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0xD
+ bne _0801CB8E
+ lsls r0, r3, 1
+ str r0, [r4]
+_0801CB8E:
+ ldr r0, _0801CBE8 @ =gUnknown_02024D28
+ lsls r1, r7, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 28
+ cmp r0, 0
+ bge _0801CBAC
+ ldr r4, _0801CBD4 @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_0801CBAC:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CBBC: .4byte gUnknown_02024C7A
+_0801CBC0: .4byte gBattleMons
+_0801CBC4: .4byte gUnknown_02024BE6
+_0801CBC8: .4byte gUnknown_02024DEC
+_0801CBCC: .4byte 0x02000000
+_0801CBD0: .4byte 0x0001601c
+_0801CBD4: .4byte gUnknown_02024BEC
+_0801CBD8: .4byte gCritMultiplier
+_0801CBDC: .4byte 0x0001601f
+_0801CBE0: .4byte gUnknown_02024C98
+_0801CBE4: .4byte gBattleMoves
+_0801CBE8: .4byte gUnknown_02024D28
+ thumb_func_end sub_801CAF8
+
+ thumb_func_start battle_attack_damage_modulate_by_effectivity
+battle_attack_damage_modulate_by_effectivity: @ 801CBEC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r5, _0801CC1C @ =gUnknown_02024BEC
+ ldr r0, [r5]
+ muls r0, r4
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _0801CC0C
+ cmp r4, 0
+ beq _0801CC0C
+ movs r0, 0x1
+ str r0, [r5]
+_0801CC0C:
+ cmp r4, 0x5
+ beq _0801CC3C
+ cmp r4, 0x5
+ bgt _0801CC20
+ cmp r4, 0
+ beq _0801CC26
+ b _0801CCBE
+ .align 2, 0
+_0801CC1C: .4byte gUnknown_02024BEC
+_0801CC20:
+ cmp r4, 0x14
+ beq _0801CC7C
+ b _0801CCBE
+_0801CC26:
+ ldr r2, _0801CC38 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ movs r1, 0xFB
+ ands r0, r1
+ movs r1, 0xFD
+ ands r0, r1
+ b _0801CCBC
+ .align 2, 0
+_0801CC38: .4byte gUnknown_02024C68
+_0801CC3C:
+ ldr r2, _0801CC6C @ =gBattleMoves
+ ldr r0, _0801CC70 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801CCBE
+ ldr r2, _0801CC74 @ =gUnknown_02024C68
+ ldrb r1, [r2]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CCBE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CC78
+ movs r0, 0xFD
+ ands r0, r1
+ b _0801CCBC
+ .align 2, 0
+_0801CC6C: .4byte gBattleMoves
+_0801CC70: .4byte gUnknown_02024BE6
+_0801CC74: .4byte gUnknown_02024C68
+_0801CC78:
+ movs r0, 0x4
+ b _0801CCBA
+_0801CC7C:
+ ldr r2, _0801CCAC @ =gBattleMoves
+ ldr r0, _0801CCB0 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801CCBE
+ ldr r2, _0801CCB4 @ =gUnknown_02024C68
+ ldrb r1, [r2]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801CCBE
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CCB8
+ movs r0, 0xFB
+ ands r0, r1
+ b _0801CCBC
+ .align 2, 0
+_0801CCAC: .4byte gBattleMoves
+_0801CCB0: .4byte gUnknown_02024BE6
+_0801CCB4: .4byte gUnknown_02024C68
+_0801CCB8:
+ movs r0, 0x2
+_0801CCBA:
+ orrs r0, r1
+_0801CCBC:
+ strb r0, [r2]
+_0801CCBE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end battle_attack_damage_modulate_by_effectivity
+
+ thumb_func_start atk06_damagecalc2
+atk06_damagecalc2: @ 801CCC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r3, 0
+ ldr r1, _0801CCF0 @ =gUnknown_02024BE6
+ ldrh r0, [r1]
+ cmp r0, 0xA5
+ bne _0801CCD8
+ b _0801CEF4
+_0801CCD8:
+ ldr r0, _0801CCF4 @ =0x02000000
+ ldr r2, _0801CCF8 @ =0x0001601c
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801CCFC
+ movs r1, 0x3F
+ mov r8, r1
+ mov r2, r8
+ ands r2, r0
+ mov r8, r2
+ b _0801CD0C
+ .align 2, 0
+_0801CCF0: .4byte gUnknown_02024BE6
+_0801CCF4: .4byte 0x02000000
+_0801CCF8: .4byte 0x0001601c
+_0801CCFC:
+ ldr r2, _0801CD94 @ =gBattleMoves
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r8, r0
+_0801CD0C:
+ ldr r2, _0801CD98 @ =gBattleMons
+ ldr r0, _0801CD9C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ adds r5, r2, 0
+ cmp r0, r8
+ beq _0801CD2E
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0801CD44
+_0801CD2E:
+ ldr r4, _0801CDA0 @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ str r0, [r4]
+ movs r1, 0xA
+ str r3, [sp, 0x4]
+ bl __divsi3
+ str r0, [r4]
+ ldr r3, [sp, 0x4]
+_0801CD44:
+ ldr r2, _0801CDA4 @ =gUnknown_02024C08
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r4, r2, 0
+ cmp r0, 0x1A
+ bne _0801CDBC
+ mov r1, r8
+ cmp r1, 0x4
+ bne _0801CDBC
+ ldr r3, _0801CDA8 @ =byte_2024C06
+ strb r0, [r3]
+ ldr r2, _0801CDAC @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x9
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801CDB0 @ =gUnknown_02024C3C
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801CDB4 @ =gUnknown_02024C44
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _0801CDB8 @ =gUnknown_02024D1E
+ mov r2, r8
+ strb r2, [r0, 0x6]
+ ldrb r0, [r4]
+ ldrb r1, [r3]
+ bl sub_81074C4
+ b _0801CE58
+ .align 2, 0
+_0801CD94: .4byte gBattleMoves
+_0801CD98: .4byte gBattleMons
+_0801CD9C: .4byte gUnknown_02024C07
+_0801CDA0: .4byte gUnknown_02024BEC
+_0801CDA4: .4byte gUnknown_02024C08
+_0801CDA8: .4byte byte_2024C06
+_0801CDAC: .4byte gUnknown_02024C68
+_0801CDB0: .4byte gUnknown_02024C3C
+_0801CDB4: .4byte gUnknown_02024C44
+_0801CDB8: .4byte gUnknown_02024D1E
+_0801CDBC:
+ ldr r1, _0801CDC8 @ =gTypeEffectiveness
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ b _0801CE38
+ .align 2, 0
+_0801CDC8: .4byte gTypeEffectiveness
+_0801CDCC:
+ adds r3, 0x3
+ b _0801CE34
+_0801CDD0:
+ ldr r5, _0801CF08 @ =gTypeEffectiveness
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0801CE2C
+ adds r1, r3, 0x1
+ adds r1, r5
+ ldr r2, _0801CF0C @ =gBattleMons
+ ldr r7, _0801CF10 @ =gUnknown_02024C08
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ adds r0, r2
+ adds r0, 0x21
+ ldrb r4, [r1]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0801CE06
+ adds r0, r3, 0x2
+ adds r0, r5
+ ldrb r0, [r0]
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl battle_attack_damage_modulate_by_effectivity
+ ldr r3, [sp, 0x4]
+ ldr r2, [sp]
+_0801CE06:
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r1, [r1]
+ cmp r4, r1
+ bne _0801CE2C
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r4
+ beq _0801CE2C
+ adds r0, r3, 0x2
+ adds r0, r5
+ ldrb r0, [r0]
+ str r3, [sp, 0x4]
+ bl battle_attack_damage_modulate_by_effectivity
+ ldr r3, [sp, 0x4]
+_0801CE2C:
+ adds r3, 0x3
+ ldr r5, _0801CF0C @ =gBattleMons
+ ldr r4, _0801CF10 @ =gUnknown_02024C08
+ ldr r2, _0801CF08 @ =gTypeEffectiveness
+_0801CE34:
+ adds r0, r3, r2
+ ldrb r0, [r0]
+_0801CE38:
+ cmp r0, 0xFF
+ beq _0801CE58
+ cmp r0, 0xFE
+ bne _0801CDD0
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r5, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CDCC
+_0801CE58:
+ ldr r2, _0801CF0C @ =gBattleMons
+ ldr r5, _0801CF10 @ =gUnknown_02024C08
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r6, [r0]
+ cmp r6, 0x19
+ bne _0801CED6
+ ldr r0, _0801CF14 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r7, _0801CF18 @ =gUnknown_02024BE6
+ ldrh r1, [r7]
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0801CED6
+ ldr r1, _0801CF1C @ =gUnknown_02024C68
+ mov r8, r1
+ ldrb r4, [r1]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801CE94
+ movs r0, 0x6
+ ands r0, r4
+ cmp r0, 0x6
+ bne _0801CED6
+_0801CE94:
+ ldr r2, _0801CF20 @ =gBattleMoves
+ ldrh r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801CED6
+ ldr r3, _0801CF24 @ =byte_2024C06
+ strb r6, [r3]
+ movs r0, 0x1
+ orrs r0, r4
+ mov r2, r8
+ strb r0, [r2]
+ ldr r1, _0801CF28 @ =gUnknown_02024C3C
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0801CF2C @ =gUnknown_02024C44
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r1, _0801CF30 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x6]
+ ldrb r0, [r5]
+ ldrb r1, [r3]
+ bl sub_81074C4
+_0801CED6:
+ ldr r0, _0801CF1C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0801CEF4
+ ldr r2, _0801CF34 @ =gUnknown_02024D28
+ ldr r0, _0801CF14 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 4
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+_0801CEF4:
+ ldr r1, _0801CF38 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801CF08: .4byte gTypeEffectiveness
+_0801CF0C: .4byte gBattleMons
+_0801CF10: .4byte gUnknown_02024C08
+_0801CF14: .4byte gUnknown_02024C07
+_0801CF18: .4byte gUnknown_02024BE6
+_0801CF1C: .4byte gUnknown_02024C68
+_0801CF20: .4byte gBattleMoves
+_0801CF24: .4byte byte_2024C06
+_0801CF28: .4byte gUnknown_02024C3C
+_0801CF2C: .4byte gUnknown_02024C44
+_0801CF30: .4byte gUnknown_02024D1E
+_0801CF34: .4byte gUnknown_02024D28
+_0801CF38: .4byte gUnknown_02024C10
+ thumb_func_end atk06_damagecalc2
+
+ thumb_func_start b_wonderguard_and_levitate
+b_wonderguard_and_levitate: @ 801CF3C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, _0801CF80 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ mov r9, r0
+ cmp r1, 0xA5
+ bne _0801CF54
+ b _0801D1A4
+_0801CF54:
+ ldr r2, _0801CF84 @ =gBattleMoves
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0801CF66
+ b _0801D1A4
+_0801CF66:
+ ldr r0, _0801CF88 @ =0x02000000
+ ldr r2, _0801CF8C @ =0x0001601c
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0801CF90
+ movs r1, 0x3F
+ mov r12, r1
+ mov r2, r12
+ ands r2, r0
+ mov r12, r2
+ b _0801CF94
+ .align 2, 0
+_0801CF80: .4byte gUnknown_02024BE6
+_0801CF84: .4byte gBattleMoves
+_0801CF88: .4byte 0x02000000
+_0801CF8C: .4byte 0x0001601c
+_0801CF90:
+ ldrb r1, [r1, 0x2]
+ mov r12, r1
+_0801CF94:
+ ldr r2, _0801CFC8 @ =gBattleMons
+ ldr r3, _0801CFCC @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r7, r2, 0
+ mov r8, r3
+ cmp r1, 0x1A
+ bne _0801CFD8
+ mov r0, r12
+ cmp r0, 0x4
+ bne _0801CFD8
+ ldr r0, _0801CFD0 @ =byte_2024C06
+ strb r1, [r0]
+ ldr r0, _0801CFD4 @ =gUnknown_02024D1E
+ mov r1, r12
+ strb r1, [r0, 0x6]
+ ldrb r0, [r3]
+ movs r1, 0x1A
+ bl sub_81074C4
+ b _0801D1A4
+ .align 2, 0
+_0801CFC8: .4byte gBattleMons
+_0801CFCC: .4byte gUnknown_02024C08
+_0801CFD0: .4byte byte_2024C06
+_0801CFD4: .4byte gUnknown_02024D1E
+_0801CFD8:
+ ldr r1, _0801CFE4 @ =gTypeEffectiveness
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ b _0801D12A
+ .align 2, 0
+_0801CFE4: .4byte gTypeEffectiveness
+_0801CFE8:
+ adds r0, r5, r4
+ ldrb r0, [r0]
+ cmp r0, r12
+ beq _0801CFF2
+ b _0801D124
+_0801CFF2:
+ adds r2, r5, 0x1
+ adds r3, r2, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x21
+ ldrb r1, [r3]
+ adds r3, r2, 0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801D032
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801D032
+ ldr r2, _0801D1B0 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D1B4 @ =gUnknown_02024D28
+ ldr r0, _0801D1B8 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r2, 4
+ adds r2, r1
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+_0801D032:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0801D078
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0801D078
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801D078
+ ldr r2, _0801D1B0 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D1B4 @ =gUnknown_02024D28
+ ldr r0, _0801D1B8 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r2, 4
+ adds r2, r1
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+_0801D078:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x21
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801D09C
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0801D09C
+ movs r0, 0x1
+ orrs r6, r0
+_0801D09C:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0801D0CA
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0801D0CA
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0801D0CA
+ movs r0, 0x1
+ orrs r6, r0
+_0801D0CA:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x21
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0801D0F2
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _0801D0F2
+ movs r0, 0x2
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0801D0F2:
+ adds r2, r3, r4
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0801D124
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0801D124
+ adds r0, r5, 0x2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _0801D124
+ movs r0, 0x2
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0801D124:
+ adds r5, 0x3
+ adds r0, r5, r4
+ ldrb r0, [r0]
+_0801D12A:
+ cmp r0, 0xFF
+ beq _0801D14E
+ cmp r0, 0xFE
+ beq _0801D134
+ b _0801CFE8
+_0801D134:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r7, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D124
+_0801D14E:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7
+ adds r0, 0x20
+ ldrb r4, [r0]
+ cmp r4, 0x19
+ bne _0801D1A4
+ ldr r0, _0801D1B8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ mov r2, r9
+ ldrh r1, [r2]
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0801D1A4
+ movs r0, 0x3
+ ands r6, r0
+ cmp r6, 0x1
+ beq _0801D1A4
+ ldr r2, _0801D1BC @ =gBattleMoves
+ mov r0, r9
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0801D1A4
+ ldr r0, _0801D1C0 @ =byte_2024C06
+ strb r4, [r0]
+ ldr r1, _0801D1C4 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x6]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x19
+ bl sub_81074C4
+_0801D1A4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D1B0: .4byte gUnknown_02024C68
+_0801D1B4: .4byte gUnknown_02024D28
+_0801D1B8: .4byte gUnknown_02024C07
+_0801D1BC: .4byte gBattleMoves
+_0801D1C0: .4byte byte_2024C06
+_0801D1C4: .4byte gUnknown_02024D1E
+ thumb_func_end b_wonderguard_and_levitate
+
+ thumb_func_start b_attack_effectivity_adapt
+b_attack_effectivity_adapt: @ 801D1C8
+ push {r4-r7,lr}
+ adds r6, r2, 0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r7, _0801D1FC @ =gUnknown_02024BEC
+ ldr r0, [r7]
+ muls r0, r4
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r7]
+ cmp r0, 0
+ bne _0801D1EE
+ cmp r4, 0
+ beq _0801D1EE
+ movs r0, 0x1
+ str r0, [r7]
+_0801D1EE:
+ cmp r4, 0x5
+ beq _0801D216
+ cmp r4, 0x5
+ bgt _0801D200
+ cmp r4, 0
+ beq _0801D206
+ b _0801D27A
+ .align 2, 0
+_0801D1FC: .4byte gUnknown_02024BEC
+_0801D200:
+ cmp r4, 0x14
+ beq _0801D248
+ b _0801D27A
+_0801D206:
+ ldrb r0, [r6]
+ movs r1, 0x8
+ orrs r0, r1
+ movs r1, 0xFB
+ ands r0, r1
+ movs r1, 0xFD
+ ands r0, r1
+ b _0801D278
+_0801D216:
+ ldr r0, _0801D240 @ =gBattleMoves
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D27A
+ ldrb r1, [r6]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D27A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D244
+ movs r0, 0xFD
+ ands r0, r1
+ b _0801D278
+ .align 2, 0
+_0801D240: .4byte gBattleMoves
+_0801D244:
+ movs r0, 0x4
+ b _0801D276
+_0801D248:
+ ldr r0, _0801D270 @ =gBattleMoves
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D27A
+ ldrb r1, [r6]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D27A
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D274
+ movs r0, 0xFB
+ ands r0, r1
+ b _0801D278
+ .align 2, 0
+_0801D270: .4byte gBattleMoves
+_0801D274:
+ movs r0, 0x2
+_0801D276:
+ orrs r0, r1
+_0801D278:
+ strb r0, [r6]
+_0801D27A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end b_attack_effectivity_adapt
+
+ thumb_func_start move_effectiveness_something
+move_effectiveness_something: @ 801D280
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ movs r7, 0
+ mov r0, sp
+ strb r7, [r0]
+ mov r0, r10
+ cmp r0, 0xA5
+ bne _0801D2AE
+ movs r0, 0
+ b _0801D43A
+_0801D2AE:
+ ldr r1, _0801D31C @ =gBattleMoves
+ mov r3, r10
+ lsls r2, r3, 1
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ str r0, [sp, 0x8]
+ ldr r1, _0801D320 @ =gBattleMons
+ movs r0, 0x58
+ ldr r3, [sp, 0x4]
+ muls r0, r3
+ adds r3, r0, r1
+ adds r0, r3, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ str r2, [sp, 0xC]
+ adds r5, r1, 0
+ ldr r1, [sp, 0x8]
+ cmp r0, r1
+ beq _0801D2E2
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _0801D2F4
+_0801D2E2:
+ ldr r4, _0801D324 @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ str r0, [r4]
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_0801D2F4:
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ bne _0801D328
+ ldr r3, [sp, 0x8]
+ cmp r3, 0x4
+ bne _0801D328
+ movs r1, 0x9
+ mov r0, sp
+ ldrb r0, [r0]
+ orrs r0, r1
+ mov r1, sp
+ strb r0, [r1]
+ b _0801D3DC
+ .align 2, 0
+_0801D31C: .4byte gBattleMoves
+_0801D320: .4byte gBattleMons
+_0801D324: .4byte gUnknown_02024BEC
+_0801D328:
+ ldr r1, _0801D344 @ =gTypeEffectiveness
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0xFF
+ beq _0801D3DC
+ cmp r0, 0xFE
+ bne _0801D34C
+ movs r0, 0x58
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ b _0801D3CA
+ .align 2, 0
+_0801D344: .4byte gTypeEffectiveness
+_0801D348:
+ adds r7, 0x3
+ b _0801D3B6
+_0801D34C:
+ ldr r6, _0801D44C @ =gTypeEffectiveness
+ adds r0, r7, r6
+ ldrb r0, [r0]
+ ldr r2, [sp, 0x8]
+ cmp r0, r2
+ bne _0801D3B0
+ adds r1, r7, 0x1
+ adds r1, r6
+ ldr r3, _0801D450 @ =gBattleMons
+ mov r8, r3
+ movs r3, 0x58
+ mov r0, r9
+ muls r0, r3
+ mov r2, r8
+ adds r5, r0, r2
+ adds r0, r5, 0
+ adds r0, 0x21
+ ldrb r4, [r1]
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0801D388
+ adds r0, r7, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ mov r1, r10
+ mov r2, sp
+ str r3, [sp, 0x10]
+ bl b_attack_effectivity_adapt
+ ldr r3, [sp, 0x10]
+_0801D388:
+ adds r0, r5, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _0801D3B0
+ ldr r0, _0801D454 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ muls r0, r3
+ add r0, r8
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r4
+ beq _0801D3B0
+ adds r0, r7, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ mov r1, r10
+ mov r2, sp
+ bl b_attack_effectivity_adapt
+_0801D3B0:
+ adds r7, 0x3
+ ldr r5, _0801D450 @ =gBattleMons
+ ldr r2, _0801D44C @ =gTypeEffectiveness
+_0801D3B6:
+ adds r0, r7, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _0801D3DC
+ cmp r0, 0xFE
+ bne _0801D34C
+ movs r0, 0x58
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+_0801D3CA:
+ adds r1, r5, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D348
+_0801D3DC:
+ movs r0, 0x58
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x19
+ bne _0801D436
+ mov r0, sp
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D436
+ ldr r0, [sp, 0x4]
+ mov r1, r10
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bne _0801D436
+ mov r0, sp
+ ldrb r3, [r0]
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0801D41E
+ movs r0, 0x6
+ ands r0, r3
+ cmp r0, 0x6
+ bne _0801D436
+_0801D41E:
+ ldr r0, _0801D458 @ =gBattleMoves
+ ldr r1, [sp, 0xC]
+ add r1, r10
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D436
+ mov r0, sp
+ movs r1, 0x1
+ orrs r1, r3
+ strb r1, [r0]
+_0801D436:
+ mov r0, sp
+ ldrb r0, [r0]
+_0801D43A:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801D44C: .4byte gTypeEffectiveness
+_0801D450: .4byte gBattleMons
+_0801D454: .4byte gUnknown_02024C08
+_0801D458: .4byte gBattleMoves
+ thumb_func_end move_effectiveness_something
+
+ thumb_func_start ai_rate_move
+ai_rate_move: @ 801D45C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ movs r7, 0
+ mov r0, sp
+ strb r7, [r0]
+ ldr r2, _0801D498 @ =gBaseStats
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x6]
+ str r1, [sp, 0x8]
+ ldrb r0, [r0, 0x7]
+ mov r8, r0
+ cmp r6, 0xA5
+ bne _0801D49C
+ movs r0, 0
+ b _0801D554
+ .align 2, 0
+_0801D498: .4byte gBaseStats
+_0801D49C:
+ ldr r2, _0801D4C0 @ =gBattleMoves
+ lsls r1, r6, 1
+ adds r0, r1, r6
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r9, r0
+ str r1, [sp, 0xC]
+ ldr r3, [sp, 0x4]
+ cmp r3, 0x1A
+ bne _0801D4C4
+ cmp r0, 0x4
+ bne _0801D4C4
+ movs r1, 0x9
+ mov r0, sp
+ strb r1, [r0]
+ b _0801D51E
+ .align 2, 0
+_0801D4C0: .4byte gBattleMoves
+_0801D4C4:
+ ldr r0, _0801D564 @ =gTypeEffectiveness
+ mov r10, r0
+ adds r1, r7, r0
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _0801D51E
+ adds r4, r1, 0
+_0801D4D2:
+ ldrb r0, [r4]
+ cmp r0, 0xFE
+ beq _0801D510
+ cmp r0, r9
+ bne _0801D510
+ ldrb r5, [r4, 0x1]
+ ldr r1, [sp, 0x8]
+ cmp r5, r1
+ bne _0801D4EE
+ ldrb r0, [r4, 0x2]
+ adds r1, r6, 0
+ mov r2, sp
+ bl b_attack_effectivity_adapt
+_0801D4EE:
+ cmp r5, r8
+ bne _0801D510
+ ldr r0, _0801D568 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r3, _0801D56C @ =gBattleMons
+ adds r0, r3
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r8
+ beq _0801D510
+ ldrb r0, [r4, 0x2]
+ adds r1, r6, 0
+ mov r2, sp
+ bl b_attack_effectivity_adapt
+_0801D510:
+ adds r4, 0x3
+ adds r7, 0x3
+ mov r1, r10
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _0801D4D2
+_0801D51E:
+ ldr r3, [sp, 0x4]
+ cmp r3, 0x19
+ bne _0801D550
+ mov r0, sp
+ ldrb r2, [r0]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0801D538
+ movs r0, 0x6
+ ands r0, r2
+ cmp r0, 0x6
+ bne _0801D550
+_0801D538:
+ ldr r0, _0801D570 @ =gBattleMoves
+ ldr r3, [sp, 0xC]
+ adds r1, r3, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _0801D550
+ mov r0, sp
+ movs r1, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0801D550:
+ mov r0, sp
+ ldrb r0, [r0]
+_0801D554:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801D564: .4byte gTypeEffectiveness
+_0801D568: .4byte gUnknown_02024C08
+_0801D56C: .4byte gBattleMons
+_0801D570: .4byte gBattleMoves
+ thumb_func_end ai_rate_move
+
+ thumb_func_start unref_sub_801D574
+unref_sub_801D574: @ 801D574
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0801D5AC @ =gUnknown_02024BEC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801D5A6
+ muls r0, r1
+ str r0, [r4]
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801D5A6
+ movs r0, 0x1
+ str r0, [r4]
+_0801D5A6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D5AC: .4byte gUnknown_02024BEC
+ thumb_func_end unref_sub_801D574
+
+ thumb_func_start atk07_damagecalc3
+atk07_damagecalc3: @ 801D5B0
+ push {r4-r7,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0801D608 @ =gUnknown_02024BEC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801D5E2
+ muls r0, r1
+ str r0, [r4]
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801D5E2
+ movs r0, 0x1
+ str r0, [r4]
+_0801D5E2:
+ ldr r7, _0801D60C @ =gBattleMons
+ ldr r6, _0801D610 @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0801D618
+ ldr r1, _0801D614 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _0801D632
+ .align 2, 0
+_0801D608: .4byte gUnknown_02024BEC
+_0801D60C: .4byte gBattleMons
+_0801D610: .4byte gUnknown_02024C08
+_0801D614: .4byte gEnigmaBerries
+_0801D618:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801D632:
+ ldr r1, _0801D6F4 @ =gUnknown_02024C0B
+ ldr r5, _0801D6F8 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _0801D670
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _0801D670
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _0801D6FC @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_0801D670:
+ ldr r2, _0801D700 @ =gBattleMons
+ ldr r3, _0801D6F8 @ =gUnknown_02024C08
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r1, r0
+ adds r5, r2, 0
+ cmp r1, 0
+ bne _0801D740
+ ldr r2, _0801D704 @ =gBattleMoves
+ ldr r0, _0801D708 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x65
+ beq _0801D6C2
+ ldr r0, _0801D70C @ =gUnknown_02024D28
+ lsls r1, r4, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 30
+ cmp r0, 0
+ blt _0801D6C2
+ ldr r0, _0801D6FC @ =gUnknown_02024D68
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D740
+_0801D6C2:
+ ldrb r0, [r3]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r5
+ ldrh r1, [r0, 0x28]
+ ldr r2, _0801D710 @ =gUnknown_02024BEC
+ ldr r0, [r2]
+ cmp r1, r0
+ bgt _0801D740
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldr r1, _0801D70C @ =gUnknown_02024D28
+ ldrb r3, [r3]
+ lsls r0, r3, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bge _0801D718
+ ldr r0, _0801D714 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801D740
+ .align 2, 0
+_0801D6F4: .4byte gUnknown_02024C0B
+_0801D6F8: .4byte gUnknown_02024C08
+_0801D6FC: .4byte gUnknown_02024D68
+_0801D700: .4byte gBattleMons
+_0801D704: .4byte gBattleMoves
+_0801D708: .4byte gUnknown_02024BE6
+_0801D70C: .4byte gUnknown_02024D28
+_0801D710: .4byte gUnknown_02024BEC
+_0801D714: .4byte gUnknown_02024C68
+_0801D718:
+ ldr r0, _0801D750 @ =gUnknown_02024D68
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D740
+ ldr r2, _0801D754 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D758 @ =gUnknown_02024C04
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r5
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+_0801D740:
+ ldr r1, _0801D75C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D750: .4byte gUnknown_02024D68
+_0801D754: .4byte gUnknown_02024C68
+_0801D758: .4byte gUnknown_02024C04
+_0801D75C: .4byte gUnknown_02024C10
+ thumb_func_end atk07_damagecalc3
+
+ thumb_func_start atk08_cmd8
+atk08_cmd8: @ 801D760
+ push {r4-r7,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0801D7B8 @ =gUnknown_02024BEC
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0801D792
+ muls r0, r1
+ str r0, [r4]
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801D792
+ movs r0, 0x1
+ str r0, [r4]
+_0801D792:
+ ldr r7, _0801D7BC @ =gBattleMons
+ ldr r6, _0801D7C0 @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0801D7C8
+ ldr r1, _0801D7C4 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _0801D7E2
+ .align 2, 0
+_0801D7B8: .4byte gUnknown_02024BEC
+_0801D7BC: .4byte gBattleMons
+_0801D7C0: .4byte gUnknown_02024C08
+_0801D7C4: .4byte gEnigmaBerries
+_0801D7C8:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0801D7E2:
+ ldr r1, _0801D888 @ =gUnknown_02024C0B
+ ldr r5, _0801D88C @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _0801D820
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _0801D820
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _0801D890 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_0801D820:
+ ldr r4, _0801D894 @ =gBattleMons
+ ldr r6, _0801D88C @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r7, 0x58
+ adds r3, r2, 0
+ muls r3, r7
+ adds r0, r4, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D8CC
+ ldr r5, _0801D898 @ =gUnknown_02024D28
+ lsls r0, r2, 4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ blt _0801D85E
+ ldr r0, _0801D890 @ =gUnknown_02024D68
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D8CC
+_0801D85E:
+ adds r0, r3, r4
+ ldrh r1, [r0, 0x28]
+ ldr r2, _0801D89C @ =gUnknown_02024BEC
+ ldr r0, [r2]
+ cmp r1, r0
+ bgt _0801D8CC
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldrb r3, [r6]
+ lsls r0, r3, 4
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bge _0801D8A4
+ ldr r0, _0801D8A0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _0801D8CC
+ .align 2, 0
+_0801D888: .4byte gUnknown_02024C0B
+_0801D88C: .4byte gUnknown_02024C08
+_0801D890: .4byte gUnknown_02024D68
+_0801D894: .4byte gBattleMons
+_0801D898: .4byte gUnknown_02024D28
+_0801D89C: .4byte gUnknown_02024BEC
+_0801D8A0: .4byte gUnknown_02024C68
+_0801D8A4:
+ ldr r0, _0801D8DC @ =gUnknown_02024D68
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _0801D8CC
+ ldr r2, _0801D8E0 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0801D8E4 @ =gUnknown_02024C04
+ adds r0, r3, 0
+ muls r0, r7
+ adds r0, r4
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+_0801D8CC:
+ ldr r1, _0801D8E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801D8DC: .4byte gUnknown_02024D68
+_0801D8E0: .4byte gUnknown_02024C68
+_0801D8E4: .4byte gUnknown_02024C04
+_0801D8E8: .4byte gUnknown_02024C10
+ thumb_func_end atk08_cmd8
+
+ thumb_func_start sub_801D8EC
+sub_801D8EC: @ 801D8EC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ ldr r0, _0801D940 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801D900
+ b _0801DA4A
+_0801D900:
+ ldr r0, _0801D944 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ ldr r3, _0801D948 @ =gUnknown_02024BE6
+ cmp r0, 0
+ beq _0801D960
+ ldrh r0, [r3]
+ cmp r0, 0x90
+ beq _0801D960
+ cmp r0, 0xA4
+ beq _0801D960
+ ldr r4, _0801D94C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801D950 @ =gUnknown_081D8EEF
+ str r0, [r4]
+ ldr r1, _0801D954 @ =0x02000000
+ ldr r0, _0801D958 @ =0x00016002
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldr r2, _0801D95C @ =0x000160a1
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0801DA4A
+ .align 2, 0
+_0801D940: .4byte gUnknown_02024A64
+_0801D944: .4byte gUnknown_02024C6C
+_0801D948: .4byte gUnknown_02024BE6
+_0801D94C: .4byte gUnknown_02024C10
+_0801D950: .4byte gUnknown_081D8EEF
+_0801D954: .4byte 0x02000000
+_0801D958: .4byte 0x00016002
+_0801D95C: .4byte 0x000160a1
+_0801D960:
+ ldr r2, _0801DA0C @ =gBattleMoves
+ ldrh r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D986
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0801D986
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0801D992
+_0801D986:
+ ldr r0, _0801DA10 @ =0x02000000
+ ldr r1, _0801DA14 @ =0x000160a1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0801DA00
+_0801D992:
+ ldr r0, _0801DA18 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DA3C
+ ldr r1, _0801DA1C @ =gUnknown_02024A60
+ ldr r2, _0801DA20 @ =gUnknown_02024C07
+ mov r9, r2
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrh r1, [r3]
+ ldr r6, _0801DA10 @ =0x02000000
+ ldr r0, _0801DA24 @ =0x00016002
+ adds r0, r6
+ mov r8, r0
+ ldrb r2, [r0]
+ ldr r0, _0801DA28 @ =gBattleMovePower
+ ldrh r3, [r0]
+ ldr r0, _0801DA2C @ =gUnknown_02024BEC
+ ldr r0, [r0]
+ str r0, [sp]
+ ldr r5, _0801DA30 @ =gBattleMons
+ mov r0, r9
+ ldrb r4, [r0]
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ str r0, [sp, 0x4]
+ mov r0, r9
+ ldrb r4, [r0]
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r4, _0801DA34 @ =gUnknown_02024CA8
+ adds r0, r4
+ str r0, [sp, 0x8]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r2, _0801DA14 @ =0x000160a1
+ adds r6, r2
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ mov r1, r9
+ ldrb r0, [r1]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0801DA00:
+ ldr r1, _0801DA38 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ b _0801DA4A
+ .align 2, 0
+_0801DA0C: .4byte gBattleMoves
+_0801DA10: .4byte 0x02000000
+_0801DA14: .4byte 0x000160a1
+_0801DA18: .4byte gUnknown_02024C68
+_0801DA1C: .4byte gUnknown_02024A60
+_0801DA20: .4byte gUnknown_02024C07
+_0801DA24: .4byte 0x00016002
+_0801DA28: .4byte gBattleMovePower
+_0801DA2C: .4byte gUnknown_02024BEC
+_0801DA30: .4byte gBattleMons
+_0801DA34: .4byte gUnknown_02024CA8
+_0801DA38: .4byte gUnknown_02024C10
+_0801DA3C:
+ ldr r4, _0801DA58 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801DA5C @ =gUnknown_081D8EEF
+ str r0, [r4]
+_0801DA4A:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DA58: .4byte gUnknown_02024C10
+_0801DA5C: .4byte gUnknown_081D8EEF
+ thumb_func_end sub_801D8EC
+
+ thumb_func_start sub_801DA60
+sub_801DA60: @ 801DA60
+ push {lr}
+ ldr r0, _0801DA78 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801DA72
+ ldr r1, _0801DA7C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801DA72:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DA78: .4byte gUnknown_02024A64
+_0801DA7C: .4byte gUnknown_02024C10
+ thumb_func_end sub_801DA60
+
+ thumb_func_start sub_801DA80
+sub_801DA80: @ 801DA80
+ push {r4,r5,lr}
+ ldr r0, _0801DAE4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801DB36
+ ldr r0, _0801DAE8 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DB2E
+ ldr r0, _0801DAEC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r2, _0801DAF0 @ =gUnknown_02024A60
+ strb r0, [r2]
+ ldr r1, _0801DAF4 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0801DB00
+ ldr r0, _0801DAF8 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ beq _0801DB00
+ ldr r0, _0801DAFC @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DB00
+ movs r0, 0x80
+ adds r1, r2, 0
+ bl b_std_message
+ b _0801DB2E
+ .align 2, 0
+_0801DAE4: .4byte gUnknown_02024A64
+_0801DAE8: .4byte gUnknown_02024C68
+_0801DAEC: .4byte gUnknown_02024C10
+_0801DAF0: .4byte gUnknown_02024A60
+_0801DAF4: .4byte gBattleMons
+_0801DAF8: .4byte gUnknown_02024CA8
+_0801DAFC: .4byte gUnknown_02024C6C
+_0801DB00:
+ ldr r5, _0801DB3C @ =gUnknown_02024BEC
+ ldrh r1, [r5]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
+ ldr r4, _0801DB40 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801DB2E
+ ldr r0, [r5]
+ cmp r0, 0
+ ble _0801DB2E
+ ldr r0, _0801DB44 @ =gUnknown_030042E0
+ ldrb r1, [r0, 0x5]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+_0801DB2E:
+ ldr r1, _0801DB48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0801DB36:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DB3C: .4byte gUnknown_02024BEC
+_0801DB40: .4byte gUnknown_02024A60
+_0801DB44: .4byte gUnknown_030042E0
+_0801DB48: .4byte gUnknown_02024C10
+ thumb_func_end sub_801DA80
+
+ thumb_func_start atk0C_datahpupdate
+atk0C_datahpupdate: @ 801DB4C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _0801DB74 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801DB5A
+ b _0801DF2E
+_0801DB5A:
+ ldr r0, _0801DB78 @ =0x02000000
+ ldr r1, _0801DB7C @ =0x0001601c
+ adds r0, r1
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _0801DB80
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DB80
+ movs r6, 0x3F
+ ands r6, r1
+ b _0801DB90
+ .align 2, 0
+_0801DB74: .4byte gUnknown_02024A64
+_0801DB78: .4byte 0x02000000
+_0801DB7C: .4byte 0x0001601c
+_0801DB80:
+ ldr r2, _0801DC1C @ =gBattleMoves
+ ldr r0, _0801DC20 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r6, [r0, 0x2]
+_0801DB90:
+ ldr r0, _0801DC24 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0801DB9E
+ b _0801DF00
+_0801DB9E:
+ ldr r0, _0801DC28 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r7, _0801DC2C @ =gUnknown_02024A60
+ strb r0, [r7]
+ ldr r1, _0801DC30 @ =gBattleMons
+ ldrb r2, [r7]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0801DCB4
+ ldr r0, _0801DC34 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r4, r1, r0
+ ldrb r1, [r4, 0xA]
+ mov r12, r0
+ cmp r1, 0
+ beq _0801DCB4
+ ldr r0, _0801DC38 @ =gUnknown_02024C6C
+ ldr r3, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r3, r0
+ cmp r3, 0
+ bne _0801DCB4
+ adds r5, r1, 0
+ ldr r6, _0801DC3C @ =gUnknown_02024BEC
+ ldr r4, [r6]
+ cmp r5, r4
+ blt _0801DC48
+ ldr r0, _0801DC40 @ =gUnknown_02024D68
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0801DC02
+ str r4, [r1]
+_0801DC02:
+ ldrb r0, [r7]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r12
+ ldr r2, [r6]
+ ldrb r0, [r1, 0xA]
+ subs r0, r2
+ strb r0, [r1, 0xA]
+ ldr r1, _0801DC44 @ =gUnknown_02024BF0
+ ldr r0, [r6]
+ str r0, [r1]
+ b _0801DC78
+ .align 2, 0
+_0801DC1C: .4byte gBattleMoves
+_0801DC20: .4byte gUnknown_02024BE6
+_0801DC24: .4byte gUnknown_02024C68
+_0801DC28: .4byte gUnknown_02024C10
+_0801DC2C: .4byte gUnknown_02024A60
+_0801DC30: .4byte gBattleMons
+_0801DC34: .4byte gUnknown_02024CA8
+_0801DC38: .4byte gUnknown_02024C6C
+_0801DC3C: .4byte gUnknown_02024BEC
+_0801DC40: .4byte gUnknown_02024D68
+_0801DC44: .4byte gUnknown_02024BF0
+_0801DC48:
+ ldr r0, _0801DCA0 @ =gUnknown_02024D68
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0801DC5C
+ str r5, [r1]
+_0801DC5C:
+ ldr r2, _0801DCA4 @ =gUnknown_02024BF0
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r0, [r0, 0xA]
+ str r0, [r2]
+ ldrb r1, [r7]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ strb r3, [r0, 0xA]
+_0801DC78:
+ ldr r0, _0801DCA8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _0801DC8C
+ b _0801DF26
+_0801DC8C:
+ ldr r4, _0801DCAC @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ bl b_movescr_stack_push_cursor
+ ldr r0, _0801DCB0 @ =gUnknown_081D99AB
+ str r0, [r4]
+ b _0801DF2E
+ .align 2, 0
+_0801DCA0: .4byte gUnknown_02024D68
+_0801DCA4: .4byte gUnknown_02024BF0
+_0801DCA8: .4byte gUnknown_02024A60
+_0801DCAC: .4byte gUnknown_02024C10
+_0801DCB0: .4byte gUnknown_081D99AB
+_0801DCB4:
+ ldr r0, _0801DCF4 @ =gUnknown_02024C6C
+ ldr r2, [r0]
+ ldr r1, _0801DCF8 @ =0xfffffeff
+ ands r2, r1
+ str r2, [r0]
+ ldr r1, _0801DCFC @ =gUnknown_02024BEC
+ ldr r5, [r1]
+ mov r12, r0
+ adds r7, r1, 0
+ cmp r5, 0
+ bge _0801DD08
+ ldr r4, _0801DD00 @ =gBattleMons
+ ldr r2, _0801DD04 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ movs r3, 0x58
+ adds r1, r0, 0
+ muls r1, r3
+ adds r1, r4
+ ldrh r0, [r1, 0x28]
+ subs r0, r5
+ strh r0, [r1, 0x28]
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r1, r0, r4
+ ldrh r3, [r1, 0x2C]
+ ldrh r0, [r1, 0x28]
+ adds r5, r2, 0
+ cmp r0, r3
+ bhi _0801DCF0
+ b _0801DEC6
+_0801DCF0:
+ strh r3, [r1, 0x28]
+ b _0801DEC6
+ .align 2, 0
+_0801DCF4: .4byte gUnknown_02024C6C
+_0801DCF8: .4byte 0xfffffeff
+_0801DCFC: .4byte gUnknown_02024BEC
+_0801DD00: .4byte gBattleMons
+_0801DD04: .4byte gUnknown_02024A60
+_0801DD08:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _0801DD24
+ movs r0, 0x21
+ negs r0, r0
+ ands r2, r0
+ mov r0, r12
+ str r2, [r0]
+ ldr r5, _0801DD20 @ =gUnknown_02024A60
+ b _0801DD6C
+ .align 2, 0
+_0801DD20: .4byte gUnknown_02024A60
+_0801DD24:
+ ldr r0, _0801DD4C @ =gUnknown_02024BF4
+ ldr r2, _0801DD50 @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, r5
+ str r0, [r1]
+ ldr r0, _0801DD54 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ adds r5, r2, 0
+ cmp r0, 0
+ bne _0801DD60
+ ldr r1, _0801DD58 @ =gUnknown_02024C74
+ ldrb r0, [r5]
+ adds r0, r1
+ ldr r1, _0801DD5C @ =gUnknown_02024C07
+ b _0801DD68
+ .align 2, 0
+_0801DD4C: .4byte gUnknown_02024BF4
+_0801DD50: .4byte gUnknown_02024A60
+_0801DD54: .4byte gUnknown_02024C10
+_0801DD58: .4byte gUnknown_02024C74
+_0801DD5C: .4byte gUnknown_02024C07
+_0801DD60:
+ ldr r1, _0801DD8C @ =gUnknown_02024C74
+ ldrb r0, [r5]
+ adds r0, r1
+ ldr r1, _0801DD90 @ =gUnknown_02024C08
+_0801DD68:
+ ldrb r1, [r1]
+ strb r1, [r0]
+_0801DD6C:
+ ldr r4, _0801DD94 @ =gBattleMons
+ ldrb r0, [r5]
+ movs r3, 0x58
+ muls r0, r3
+ adds r2, r0, r4
+ ldrh r0, [r2, 0x28]
+ ldr r1, [r7]
+ cmp r0, r1
+ ble _0801DD9C
+ subs r0, r1
+ strh r0, [r2, 0x28]
+ ldr r0, _0801DD98 @ =gUnknown_02024BF0
+ str r1, [r0]
+ adds r7, r0, 0
+ b _0801DDAC
+ .align 2, 0
+_0801DD8C: .4byte gUnknown_02024C74
+_0801DD90: .4byte gUnknown_02024C08
+_0801DD94: .4byte gBattleMons
+_0801DD98: .4byte gUnknown_02024BF0
+_0801DD9C:
+ ldr r2, _0801DE20 @ =gUnknown_02024BF0
+ str r0, [r2]
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r4
+ movs r1, 0
+ strh r1, [r0, 0x28]
+ adds r7, r2, 0
+_0801DDAC:
+ ldr r2, _0801DE24 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r2, 0x4
+ adds r3, r0, r1
+ ldr r0, [r3]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _0801DDD4
+ mov r1, r12
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DDD4
+ ldr r0, [r7]
+ str r0, [r3]
+_0801DDD4:
+ cmp r6, 0x8
+ bhi _0801DE5C
+ mov r1, r12
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DE58
+ ldr r0, _0801DE28 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xDC
+ beq _0801DE58
+ ldr r3, _0801DE2C @ =gUnknown_02024D28
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r1, r3, 0x4
+ adds r0, r1
+ ldr r2, [r7]
+ str r2, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x8
+ adds r0, r1
+ str r2, [r0]
+ ldr r0, _0801DE30 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0801DE38
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DE34 @ =gUnknown_02024C07
+ b _0801DE40
+ .align 2, 0
+_0801DE20: .4byte gUnknown_02024BF0
+_0801DE24: .4byte gUnknown_02024D68
+_0801DE28: .4byte gUnknown_02024BE6
+_0801DE2C: .4byte gUnknown_02024D28
+_0801DE30: .4byte gUnknown_02024C10
+_0801DE34: .4byte gUnknown_02024C07
+_0801DE38:
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DE54 @ =gUnknown_02024C08
+_0801DE40:
+ ldrb r1, [r2]
+ strb r1, [r0, 0xC]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r2]
+ strb r1, [r0, 0x10]
+ b _0801DEC6
+ .align 2, 0
+_0801DE54: .4byte gUnknown_02024C08
+_0801DE58:
+ cmp r6, 0x8
+ bls _0801DEC6
+_0801DE5C:
+ mov r1, r12
+ ldr r0, [r1]
+ movs r1, 0x80
+ lsls r1, 13
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DEC6
+ ldr r3, _0801DEA0 @ =gUnknown_02024D28
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r1, r3, 0
+ adds r1, 0x8
+ adds r0, r1
+ ldr r2, [r7]
+ str r2, [r0]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0xC
+ adds r0, r1
+ str r2, [r0]
+ ldr r0, _0801DEA4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0801DEAC
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DEA8 @ =gUnknown_02024C07
+ b _0801DEB4
+ .align 2, 0
+_0801DEA0: .4byte gUnknown_02024D28
+_0801DEA4: .4byte gUnknown_02024C10
+_0801DEA8: .4byte gUnknown_02024C07
+_0801DEAC:
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r3
+ ldr r2, _0801DEF4 @ =gUnknown_02024C08
+_0801DEB4:
+ ldrb r1, [r2]
+ strb r1, [r0, 0xD]
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r2]
+ strb r1, [r0, 0x11]
+_0801DEC6:
+ mov r1, r12
+ ldr r0, [r1]
+ ldr r1, _0801DEF8 @ =0xffefffff
+ ands r0, r1
+ mov r1, r12
+ str r0, [r1]
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _0801DEFC @ =gUnknown_02024AA8
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2A
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0801DF26
+ .align 2, 0
+_0801DEF4: .4byte gUnknown_02024C08
+_0801DEF8: .4byte 0xffefffff
+_0801DEFC: .4byte gUnknown_02024AA8
+_0801DF00:
+ ldr r0, _0801DF38 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _0801DF3C @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r2, _0801DF40 @ =gUnknown_02024D68
+ ldrb r1, [r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r1, r0, r2
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0801DF26
+ ldr r0, _0801DF44 @ =0x0000ffff
+ str r0, [r1]
+_0801DF26:
+ ldr r1, _0801DF38 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0801DF2E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DF38: .4byte gUnknown_02024C10
+_0801DF3C: .4byte gUnknown_02024A60
+_0801DF40: .4byte gUnknown_02024D68
+_0801DF44: .4byte 0x0000ffff
+ thumb_func_end atk0C_datahpupdate
+
+ thumb_func_start atk0D_critmessage
+atk0D_critmessage: @ 801DF48
+ push {lr}
+ ldr r0, _0801DF84 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801DF7E
+ ldr r0, _0801DF88 @ =gCritMultiplier
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0801DF76
+ ldr r0, _0801DF8C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801DF76
+ ldr r0, _0801DF90 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0xD9
+ bl b_std_message
+ ldr r1, _0801DF94 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+_0801DF76:
+ ldr r1, _0801DF98 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801DF7E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801DF84: .4byte gUnknown_02024A64
+_0801DF88: .4byte gCritMultiplier
+_0801DF8C: .4byte gUnknown_02024C68
+_0801DF90: .4byte gUnknown_02024C07
+_0801DF94: .4byte gUnknown_02024D1E
+_0801DF98: .4byte gUnknown_02024C10
+ thumb_func_end atk0D_critmessage
+
+ thumb_func_start atk0E_missmessage
+atk0E_missmessage: @ 801DF9C
+ push {r4,lr}
+ ldr r0, _0801DFD4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E05C
+ ldr r4, _0801DFD8 @ =gUnknown_02024A60
+ ldr r0, _0801DFDC @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _0801DFE0 @ =gUnknown_02024C68
+ ldrb r2, [r1]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _0801E054
+ movs r0, 0xFE
+ ands r0, r2
+ cmp r0, 0x10
+ beq _0801E00E
+ cmp r0, 0x10
+ bgt _0801DFEA
+ cmp r0, 0x4
+ beq _0801DFFE
+ cmp r0, 0x4
+ bgt _0801DFE4
+ cmp r0, 0x2
+ beq _0801DFF8
+ b _0801E00E
+ .align 2, 0
+_0801DFD4: .4byte gUnknown_02024A64
+_0801DFD8: .4byte gUnknown_02024A60
+_0801DFDC: .4byte gUnknown_02024C08
+_0801DFE0: .4byte gUnknown_02024C68
+_0801DFE4:
+ cmp r0, 0x8
+ beq _0801E054
+ b _0801E00E
+_0801DFEA:
+ cmp r0, 0x40
+ beq _0801E00E
+ cmp r0, 0x40
+ bgt _0801E00E
+ cmp r0, 0x20
+ beq _0801E054
+ b _0801E00E
+_0801DFF8:
+ movs r0, 0
+ movs r1, 0xE
+ b _0801E002
+_0801DFFE:
+ movs r0, 0
+ movs r1, 0xC
+_0801E002:
+ bl dp01_build_cmdbuf_x2B_aa_0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0801E054
+_0801E00E:
+ ldrb r1, [r1]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E01E
+ movs r0, 0
+ movs r1, 0xE
+ b _0801E02A
+_0801E01E:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E03C
+ movs r0, 0
+ movs r1, 0xC
+_0801E02A:
+ bl dp01_build_cmdbuf_x2B_aa_0
+ ldr r0, _0801E038 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0801E054
+ .align 2, 0
+_0801E038: .4byte gUnknown_02024A60
+_0801E03C:
+ movs r0, 0x28
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E054
+ movs r0, 0
+ movs r1, 0xD
+ bl dp01_build_cmdbuf_x2B_aa_0
+ ldr r0, _0801E064 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0801E054:
+ ldr r1, _0801E068 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801E05C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E064: .4byte gUnknown_02024A60
+_0801E068: .4byte gUnknown_02024C10
+ thumb_func_end atk0E_missmessage
+
+ thumb_func_start atk0F_resultmessage
+atk0F_resultmessage: @ 801E06C
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r0, _0801E0A8 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E07A
+ b _0801E20C
+_0801E07A:
+ ldr r1, _0801E0AC @ =gUnknown_02024C68
+ ldrb r2, [r1]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r2
+ adds r6, r1, 0
+ ldr r7, _0801E0B0 @ =gUnknown_02024D1E
+ cmp r0, 0
+ beq _0801E0B8
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0801E09A
+ ldrb r0, [r7, 0x6]
+ cmp r0, 0x2
+ bls _0801E0B8
+_0801E09A:
+ ldr r1, _0801E0B4 @ =gUnknown_08401508
+ ldrb r0, [r7, 0x6]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r3, [r0]
+ strb r4, [r7, 0x7]
+ b _0801E1F6
+ .align 2, 0
+_0801E0A8: .4byte gUnknown_02024A64
+_0801E0AC: .4byte gUnknown_02024C68
+_0801E0B0: .4byte gUnknown_02024D1E
+_0801E0B4: .4byte gUnknown_08401508
+_0801E0B8:
+ movs r0, 0x1
+ strb r0, [r7, 0x7]
+ ldrb r5, [r6]
+ movs r0, 0xFE
+ ands r0, r5
+ cmp r0, 0x10
+ beq _0801E0FC
+ cmp r0, 0x10
+ bgt _0801E0DE
+ cmp r0, 0x4
+ beq _0801E0F8
+ cmp r0, 0x4
+ bgt _0801E0D8
+ cmp r0, 0x2
+ beq _0801E0F4
+ b _0801E144
+_0801E0D8:
+ cmp r0, 0x8
+ beq _0801E150
+ b _0801E144
+_0801E0DE:
+ cmp r0, 0x40
+ beq _0801E100
+ cmp r0, 0x40
+ bgt _0801E0EE
+ cmp r0, 0x20
+ bne _0801E0EC
+ b _0801E1F0
+_0801E0EC:
+ b _0801E144
+_0801E0EE:
+ cmp r0, 0x80
+ beq _0801E104
+ b _0801E144
+_0801E0F4:
+ movs r3, 0xDE
+ b _0801E1FA
+_0801E0F8:
+ movs r3, 0xDD
+ b _0801E1FA
+_0801E0FC:
+ movs r3, 0xDA
+ b _0801E1FA
+_0801E100:
+ movs r3, 0x99
+ b _0801E1FA
+_0801E104:
+ ldr r4, _0801E12C @ =gUnknown_02024C04
+ ldr r2, _0801E130 @ =gBattleMons
+ ldr r3, _0801E134 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ ldr r1, _0801E138 @ =gUnknown_02024C0B
+ ldrb r0, [r3]
+ strb r0, [r1]
+ movs r0, 0x3F
+ ands r0, r5
+ strb r0, [r6]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E13C @ =gUnknown_02024C10
+ ldr r0, _0801E140 @ =gUnknown_081D9AC6
+ b _0801E20A
+ .align 2, 0
+_0801E12C: .4byte gUnknown_02024C04
+_0801E130: .4byte gBattleMons
+_0801E134: .4byte gUnknown_02024C08
+_0801E138: .4byte gUnknown_02024C0B
+_0801E13C: .4byte gUnknown_02024C10
+_0801E140: .4byte gUnknown_081D9AC6
+_0801E144:
+ adds r2, r6, 0
+ ldrb r5, [r2]
+ movs r0, 0x8
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E154
+_0801E150:
+ movs r3, 0x1B
+ b _0801E1FA
+_0801E154:
+ movs r0, 0x10
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E17C
+ movs r0, 0xEF
+ ands r0, r5
+ movs r1, 0xFD
+ ands r0, r1
+ movs r1, 0xFB
+ ands r0, r1
+ strb r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E174 @ =gUnknown_02024C10
+ ldr r0, _0801E178 @ =gUnknown_081D94A9
+ b _0801E20A
+ .align 2, 0
+_0801E174: .4byte gUnknown_02024C10
+_0801E178: .4byte gUnknown_081D94A9
+_0801E17C:
+ movs r0, 0x40
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E19C
+ movs r0, 0x3F
+ ands r0, r5
+ strb r0, [r2]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E194 @ =gUnknown_02024C10
+ ldr r0, _0801E198 @ =gUnknown_081D94A2
+ b _0801E20A
+ .align 2, 0
+_0801E194: .4byte gUnknown_02024C10
+_0801E198: .4byte gUnknown_081D94A2
+_0801E19C:
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ beq _0801E1E4
+ ldr r4, _0801E1CC @ =gUnknown_02024C04
+ ldr r2, _0801E1D0 @ =gBattleMons
+ ldr r3, _0801E1D4 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r4]
+ ldr r1, _0801E1D8 @ =gUnknown_02024C0B
+ ldrb r0, [r3]
+ strb r0, [r1]
+ movs r0, 0x3F
+ ands r0, r5
+ strb r0, [r6]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0801E1DC @ =gUnknown_02024C10
+ ldr r0, _0801E1E0 @ =gUnknown_081D9AC6
+ b _0801E20A
+ .align 2, 0
+_0801E1CC: .4byte gUnknown_02024C04
+_0801E1D0: .4byte gBattleMons
+_0801E1D4: .4byte gUnknown_02024C08
+_0801E1D8: .4byte gUnknown_02024C0B
+_0801E1DC: .4byte gUnknown_02024C10
+_0801E1E0: .4byte gUnknown_081D9AC6
+_0801E1E4:
+ movs r0, 0x20
+ ands r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0801E1F4
+_0801E1F0:
+ movs r3, 0xE5
+ b _0801E1FA
+_0801E1F4:
+ strb r0, [r7, 0x7]
+_0801E1F6:
+ cmp r3, 0
+ beq _0801E204
+_0801E1FA:
+ adds r0, r3, 0
+ ldr r1, _0801E214 @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ bl b_std_message
+_0801E204:
+ ldr r1, _0801E218 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+_0801E20A:
+ str r0, [r1]
+_0801E20C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E214: .4byte gUnknown_02024C07
+_0801E218: .4byte gUnknown_02024C10
+ thumb_func_end atk0F_resultmessage
+
+ thumb_func_start atk10_printstring
+atk10_printstring: @ 801E21C
+ push {r4,lr}
+ ldr r0, _0801E24C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E246
+ ldr r4, _0801E250 @ =gUnknown_02024C10
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1]
+ ldrb r1, [r1, 0x2]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r1, _0801E254 @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ bl b_std_message
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ ldr r1, _0801E258 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+_0801E246:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E24C: .4byte gUnknown_02024A64
+_0801E250: .4byte gUnknown_02024C10
+_0801E254: .4byte gUnknown_02024C07
+_0801E258: .4byte gUnknown_02024D1E
+ thumb_func_end atk10_printstring
+
+ thumb_func_start atk11_printstring2
+atk11_printstring2: @ 801E25C
+ push {r4,r5,lr}
+ ldr r5, _0801E290 @ =gUnknown_02024A60
+ ldr r0, _0801E294 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r4, _0801E298 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0
+ bl dp01_build_cmdbuf_x11_TODO
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ ldr r1, _0801E29C @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x7]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E290: .4byte gUnknown_02024A60
+_0801E294: .4byte gUnknown_02024C07
+_0801E298: .4byte gUnknown_02024C10
+_0801E29C: .4byte gUnknown_02024D1E
+ thumb_func_end atk11_printstring2
+
+ thumb_func_start atk12_waitmessage
+atk12_waitmessage: @ 801E2A0
+ push {r4-r6,lr}
+ ldr r0, _0801E2BC @ =gUnknown_02024A64
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _0801E2EE
+ ldr r6, _0801E2C0 @ =gUnknown_02024D1E
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _0801E2C8
+ ldr r1, _0801E2C4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r1]
+ b _0801E2EE
+ .align 2, 0
+_0801E2BC: .4byte gUnknown_02024A64
+_0801E2C0: .4byte gUnknown_02024D1E
+_0801E2C4: .4byte gUnknown_02024C10
+_0801E2C8:
+ ldr r5, _0801E2F4 @ =gUnknown_02024C10
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r3, _0801E2F8 @ =gUnknown_02024D18
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bcc _0801E2EE
+ movs r1, 0
+ strh r4, [r3]
+ adds r0, r2, 0x3
+ str r0, [r5]
+ strb r1, [r6, 0x7]
+_0801E2EE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E2F4: .4byte gUnknown_02024C10
+_0801E2F8: .4byte gUnknown_02024D18
+ thumb_func_end atk12_waitmessage
+
+ thumb_func_start atk13_printfromtable
+atk13_printfromtable: @ 801E2FC
+ push {r4,r5,lr}
+ ldr r0, _0801E340 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E33A
+ ldr r4, _0801E344 @ =gUnknown_02024C10
+ 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
+ ldr r5, _0801E348 @ =gUnknown_02024D1E
+ ldrb r0, [r5, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ ldr r1, _0801E34C @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ bl b_std_message
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ movs r0, 0x1
+ strb r0, [r5, 0x7]
+_0801E33A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E340: .4byte gUnknown_02024A64
+_0801E344: .4byte gUnknown_02024C10
+_0801E348: .4byte gUnknown_02024D1E
+_0801E34C: .4byte gUnknown_02024C07
+ thumb_func_end atk13_printfromtable
+
+ thumb_func_start atk14_printfromtable2
+atk14_printfromtable2: @ 801E350
+ push {r4-r6,lr}
+ ldr r0, _0801E3A0 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801E39A
+ ldr r5, _0801E3A4 @ =gUnknown_02024C10
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r6, _0801E3A8 @ =gUnknown_02024D1E
+ ldrb r0, [r6, 0x5]
+ lsls r0, 1
+ adds r1, r0
+ ldr r4, _0801E3AC @ =gUnknown_02024A60
+ ldr r0, _0801E3B0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldrh r1, [r1]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x11_TODO
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x5
+ str r0, [r5]
+ movs r0, 0x1
+ strb r0, [r6, 0x7]
+_0801E39A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801E3A0: .4byte gUnknown_02024A64
+_0801E3A4: .4byte gUnknown_02024C10
+_0801E3A8: .4byte gUnknown_02024D1E
+_0801E3AC: .4byte gUnknown_02024A60
+_0801E3B0: .4byte gUnknown_02024C07
+ thumb_func_end atk14_printfromtable2
+
+ thumb_func_start sub_801E3B4
+sub_801E3B4: @ 801E3B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r0, _0801E3E4 @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ cmp r1, r3
+ bge _0801E3DA
+ ldr r4, _0801E3E8 @ =gUnknown_02024A7A
+ ldrb r0, [r4]
+ cmp r0, r2
+ beq _0801E3DA
+_0801E3CC:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _0801E3DA
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0801E3CC
+_0801E3DA:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0801E3E4: .4byte gUnknown_02024A68
+_0801E3E8: .4byte gUnknown_02024A7A
+ thumb_func_end sub_801E3B4
+
+ thumb_func_start sub_801E3EC
+sub_801E3EC: @ 801E3EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r0, 0
+ mov r10, r0
+ movs r6, 0
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r1, _0801E430 @ =gUnknown_02024D1E
+ ldrb r3, [r1, 0x3]
+ movs r0, 0x40
+ ands r0, r3
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _0801E444
+ ldr r2, _0801E434 @ =gUnknown_02024C0A
+ ldr r0, _0801E438 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0xBF
+ ands r0, r3
+ strb r0, [r7, 0x3]
+ movs r6, 0x40
+ ldr r0, _0801E43C @ =0x02000000
+ ldr r1, _0801E440 @ =gUnknown_02024C08
+ b _0801E450
+ .align 2, 0
+_0801E430: .4byte gUnknown_02024D1E
+_0801E434: .4byte gUnknown_02024C0A
+_0801E438: .4byte gUnknown_02024C07
+_0801E43C: .4byte 0x02000000
+_0801E440: .4byte gUnknown_02024C08
+_0801E444:
+ ldr r2, _0801E538 @ =gUnknown_02024C0A
+ ldr r0, _0801E53C @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r0, _0801E540 @ =0x02000000
+ ldr r1, _0801E544 @ =gUnknown_02024C07
+_0801E450:
+ ldrb r1, [r1]
+ ldr r3, _0801E548 @ =0x00016003
+ adds r0, r3
+ strb r1, [r0]
+ mov r8, r2
+ ldr r2, _0801E54C @ =gBattleMons
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bne _0801E48A
+ ldr r0, _0801E550 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E48A
+ cmp r4, 0
+ bne _0801E48A
+ ldrb r0, [r7, 0x3]
+ cmp r0, 0x9
+ bhi _0801E48A
+ bl _0801F5DC
+_0801E48A:
+ mov r1, r8
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ ldr r2, _0801E554 @ =gUnknown_02024C7A
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E4C4
+ ldr r0, _0801E550 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E4C4
+ cmp r4, 0
+ bne _0801E4C4
+ ldr r0, _0801E558 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0x7
+ bhi _0801E4C4
+ bl _0801F5DC
+_0801E4C4:
+ ldr r3, _0801E54C @ =gBattleMons
+ ldr r2, _0801E538 @ =gUnknown_02024C0A
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ mov r8, r2
+ mov r9, r3
+ cmp r0, 0
+ bne _0801E4EA
+ ldr r0, _0801E558 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0xB
+ beq _0801E4EA
+ cmp r0, 0x1F
+ beq _0801E4EA
+ bl _0801F5DC
+_0801E4EA:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r9
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E50C
+ cmp r6, 0x40
+ beq _0801E50C
+ bl _0801F5DC
+_0801E50C:
+ ldr r0, _0801E558 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x3]
+ adds r7, r0, 0
+ cmp r1, 0x6
+ bls _0801E518
+ b _0801EB4A
+_0801E518:
+ ldr r1, _0801E55C @ =gUnknown_081FAB5C
+ ldrb r0, [r7, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x10
+ bne _0801E528
+ b _0801E714
+_0801E528:
+ cmp r0, 0x10
+ bhi _0801E560
+ cmp r0, 0x7
+ beq _0801E57A
+ cmp r0, 0x8
+ bne _0801E536
+ b _0801E630
+_0801E536:
+ b _0801EA14
+ .align 2, 0
+_0801E538: .4byte gUnknown_02024C0A
+_0801E53C: .4byte gUnknown_02024C08
+_0801E540: .4byte 0x02000000
+_0801E544: .4byte gUnknown_02024C07
+_0801E548: .4byte 0x00016003
+_0801E54C: .4byte gBattleMons
+_0801E550: .4byte gUnknown_02024C6C
+_0801E554: .4byte gUnknown_02024C7A
+_0801E558: .4byte gUnknown_02024D1E
+_0801E55C: .4byte gUnknown_081FAB5C
+_0801E560:
+ cmp r0, 0x40
+ bne _0801E566
+ b _0801E888
+_0801E566:
+ cmp r0, 0x40
+ bhi _0801E572
+ cmp r0, 0x20
+ bne _0801E570
+ b _0801E7EA
+_0801E570:
+ b _0801EA14
+_0801E572:
+ cmp r0, 0x80
+ bne _0801E578
+ b _0801E8E4
+_0801E578:
+ b _0801EA14
+_0801E57A:
+ mov r3, r8
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ beq _0801E5DC
+ ldr r0, _0801E5D4 @ =gUnknown_02024A60
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0801E5D8 @ =gUnknown_02024A68
+ ldrb r3, [r1]
+ adds r7, r0, 0
+ mov r12, r1
+ cmp r3, 0
+ beq _0801E5E8
+ mov r4, r9
+ ldr r0, [r4, 0x50]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ bne _0801E5E8
+ adds r1, r7, 0
+ mov r6, r9
+ adds r6, 0x50
+ movs r5, 0x58
+ movs r4, 0x70
+_0801E5B4:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r3
+ bcs _0801E5E8
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r6
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801E5B4
+ b _0801E5E8
+ .align 2, 0
+_0801E5D4: .4byte gUnknown_02024A60
+_0801E5D8: .4byte gUnknown_02024A68
+_0801E5DC:
+ ldr r0, _0801E628 @ =gUnknown_02024A60
+ ldr r2, _0801E62C @ =gUnknown_02024A68
+ ldrb r1, [r2]
+ strb r1, [r0]
+ adds r7, r0, 0
+ mov r12, r2
+_0801E5E8:
+ mov r0, r8
+ ldrb r2, [r0]
+ movs r0, 0x58
+ adds r1, r2, 0
+ muls r1, r0
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E600
+ b _0801EA14
+_0801E600:
+ ldrb r0, [r7]
+ mov r3, r12
+ ldrb r3, [r3]
+ cmp r0, r3
+ beq _0801E60C
+ b _0801EA14
+_0801E60C:
+ mov r4, r9
+ adds r0, r1, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x48
+ bne _0801E61A
+ b _0801EA14
+_0801E61A:
+ cmp r0, 0xF
+ bne _0801E620
+ b _0801EA14
+_0801E620:
+ adds r0, r2, 0
+ bl b_cancel_multi_turn_move_maybe
+ b _0801EA04
+ .align 2, 0
+_0801E628: .4byte gUnknown_02024A60
+_0801E62C: .4byte gUnknown_02024A68
+_0801E630:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x11
+ bne _0801E688
+ cmp r4, 0x1
+ beq _0801E64A
+ cmp r5, 0x80
+ bne _0801E688
+_0801E64A:
+ ldr r0, _0801E678 @ =byte_2024C06
+ strb r1, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x11
+ bl sub_81074C4
+ ldr r4, _0801E67C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E680 @ =BattleScript_1D98BD
+_0801E664:
+ str r0, [r4]
+ ldr r2, _0801E684 @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E676
+ b _0801E928
+_0801E676:
+ b _0801E94C
+ .align 2, 0
+_0801E678: .4byte byte_2024C06
+_0801E67C: .4byte gUnknown_02024C10
+_0801E680: .4byte BattleScript_1D98BD
+_0801E684: .4byte gUnknown_02024C6C
+_0801E688:
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r1, 0x3
+ beq _0801E6AC
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0801E6AC
+ cmp r1, 0x8
+ beq _0801E6AC
+ cmp r0, 0x8
+ bne _0801E6C6
+_0801E6AC:
+ ldr r0, _0801E710 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E6C6
+ cmp r4, 0x1
+ bne _0801E6C0
+ b _0801E98C
+_0801E6C0:
+ cmp r5, 0x80
+ bne _0801E6C6
+ b _0801E98C
+_0801E6C6:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r1, r0
+ mov r4, r9
+ adds r3, r1, r4
+ adds r0, r3, 0
+ adds r0, 0x21
+ ldrb r4, [r0]
+ cmp r4, 0x3
+ bne _0801E6DE
+ b _0801EA14
+_0801E6DE:
+ adds r0, 0x1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _0801E6E8
+ b _0801EA14
+_0801E6E8:
+ cmp r4, 0x8
+ bne _0801E6EE
+ b _0801EA14
+_0801E6EE:
+ cmp r0, 0x8
+ bne _0801E6F4
+ b _0801EA14
+_0801E6F4:
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E702
+ b _0801EA14
+_0801E702:
+ adds r0, r3, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bne _0801E70E
+ b _0801EA14
+_0801E70E:
+ b _0801EA04
+ .align 2, 0
+_0801E710: .4byte gUnknown_02024C6C
+_0801E714:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x29
+ bne _0801E758
+ cmp r4, 0x1
+ beq _0801E72E
+ cmp r5, 0x80
+ bne _0801E758
+_0801E72E:
+ ldr r0, _0801E74C @ =byte_2024C06
+ strb r1, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x29
+ bl sub_81074C4
+ ldr r4, _0801E750 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E754 @ =BattleScript_1D98A5
+ b _0801E664
+ .align 2, 0
+_0801E74C: .4byte byte_2024C06
+_0801E750: .4byte gUnknown_02024C10
+_0801E754: .4byte BattleScript_1D98A5
+_0801E758:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ mov r2, r9
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ beq _0801E778
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _0801E7A8
+_0801E778:
+ ldr r0, _0801E79C @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E7A8
+ cmp r4, 0x1
+ beq _0801E78E
+ cmp r5, 0x80
+ bne _0801E7A8
+_0801E78E:
+ ldr r4, _0801E7A0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E7A4 @ =BattleScript_1D98A5
+ b _0801E998
+ .align 2, 0
+_0801E79C: .4byte gUnknown_02024C6C
+_0801E7A0: .4byte gUnknown_02024C10
+_0801E7A4: .4byte BattleScript_1D98A5
+_0801E7A8:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x58
+ adds r2, r0, 0
+ muls r2, r1
+ mov r4, r9
+ adds r1, r2, r4
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _0801E7C2
+ b _0801EA14
+_0801E7C2:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xA
+ bne _0801E7CE
+ b _0801EA14
+_0801E7CE:
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x29
+ bne _0801E7DA
+ b _0801EA14
+_0801E7DA:
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E7E8
+ b _0801EA14
+_0801E7E8:
+ b _0801EA04
+_0801E7EA:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0801E826
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801E826
+ ldr r0, _0801E87C @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E826
+ movs r1, 0
+ str r1, [sp, 0x4]
+_0801E826:
+ ldr r4, _0801E880 @ =gBattleMons
+ ldr r0, _0801E884 @ =gUnknown_02024C0A
+ ldrb r3, [r0]
+ movs r0, 0x58
+ adds r2, r3, 0
+ muls r2, r0
+ adds r1, r2, r4
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ bne _0801E840
+ b _0801EA14
+_0801E840:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ bne _0801E84C
+ b _0801EA14
+_0801E84C:
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E85A
+ b _0801EA14
+_0801E85A:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0
+ bne _0801E862
+ b _0801EA14
+_0801E862:
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x28
+ bne _0801E86E
+ b _0801EA14
+_0801E86E:
+ adds r0, r3, 0
+ bl b_cancel_multi_turn_move_maybe
+ movs r3, 0x1
+ mov r10, r3
+ b _0801EA14
+ .align 2, 0
+_0801E87C: .4byte word_2024DB8
+_0801E880: .4byte gBattleMons
+_0801E884: .4byte gUnknown_02024C0A
+_0801E888:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ mov r2, r9
+ adds r0, r1, r2
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0x7
+ bne _0801E8D0
+ cmp r4, 0x1
+ beq _0801E8A6
+ cmp r5, 0x80
+ beq _0801E8A6
+ b _0801EA14
+_0801E8A6:
+ ldr r0, _0801E8C4 @ =byte_2024C06
+ strb r2, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r1, 0x7
+ bl sub_81074C4
+ ldr r4, _0801E8C8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E8CC @ =BattleScript_1D98B1
+ b _0801E664
+ .align 2, 0
+_0801E8C4: .4byte byte_2024C06
+_0801E8C8: .4byte gUnknown_02024C10
+_0801E8CC: .4byte BattleScript_1D98B1
+_0801E8D0:
+ mov r0, r9
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801E8DE
+ b _0801EA14
+_0801E8DE:
+ movs r4, 0x1
+ mov r10, r4
+ b _0801EA14
+_0801E8E4:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x11
+ bne _0801E952
+ cmp r4, 0x1
+ beq _0801E8FE
+ cmp r5, 0x80
+ bne _0801E952
+_0801E8FE:
+ ldr r0, _0801E938 @ =byte_2024C06
+ strb r1, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x11
+ bl sub_81074C4
+ ldr r4, _0801E93C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E940 @ =BattleScript_1D98BD
+ str r0, [r4]
+ ldr r2, _0801E944 @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E94C
+_0801E928:
+ movs r0, 0x1
+ strb r0, [r7, 0x5]
+ ldr r0, _0801E948 @ =0xffffdfff
+ ands r1, r0
+ str r1, [r2]
+ bl _0801F5FA
+ .align 2, 0
+_0801E938: .4byte byte_2024C06
+_0801E93C: .4byte gUnknown_02024C10
+_0801E940: .4byte BattleScript_1D98BD
+_0801E944: .4byte gUnknown_02024C6C
+_0801E948: .4byte 0xffffdfff
+_0801E94C:
+ strb r0, [r7, 0x5]
+ bl _0801F5FA
+_0801E952:
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x58
+ muls r0, r1
+ add r0, r9
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r1, 0x3
+ beq _0801E976
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0801E976
+ cmp r1, 0x8
+ beq _0801E976
+ cmp r0, 0x8
+ bne _0801E9B4
+_0801E976:
+ ldr r0, _0801E9A4 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801E9B4
+ cmp r4, 0x1
+ beq _0801E98C
+ cmp r5, 0x80
+ bne _0801E9B4
+_0801E98C:
+ ldr r4, _0801E9A8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801E9AC @ =BattleScript_1D98BD
+_0801E998:
+ str r0, [r4]
+ ldr r1, _0801E9B0 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ bl _0801F5FA
+ .align 2, 0
+_0801E9A4: .4byte gUnknown_02024C6C
+_0801E9A8: .4byte gUnknown_02024C10
+_0801E9AC: .4byte BattleScript_1D98BD
+_0801E9B0: .4byte gUnknown_02024D1E
+_0801E9B4:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r6, 0x58
+ muls r0, r6
+ mov r2, r9
+ adds r2, 0x4C
+ adds r5, r0, r2
+ ldr r4, [r5]
+ cmp r4, 0
+ bne _0801EA14
+ mov r3, r9
+ adds r1, r0, r3
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r3, [r0]
+ cmp r3, 0x3
+ beq _0801EA0A
+ adds r0, 0x1
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0801EA0A
+ cmp r3, 0x8
+ beq _0801EA0A
+ cmp r0, 0x8
+ beq _0801EA0A
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _0801EA14
+ mov r4, r8
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x9
+ negs r2, r2
+ ands r0, r2
+ str r0, [r1]
+_0801EA04:
+ movs r0, 0x1
+ mov r10, r0
+ b _0801EA14
+_0801EA0A:
+ ldr r0, _0801EA58 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0801EA14:
+ mov r1, r10
+ cmp r1, 0x1
+ beq _0801EA1C
+ b _0801EB3C
+_0801EA1C:
+ ldr r0, _0801EA5C @ =gUnknown_02024C10
+ ldr r0, [r0]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EA60 @ =gUnknown_081FAB5C
+ ldr r0, _0801EA64 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r3, [r0]
+ cmp r3, 0x7
+ bne _0801EA70
+ bl Random
+ ldr r2, _0801EA68 @ =gBattleMons
+ ldr r1, _0801EA6C @ =gUnknown_02024C0A
+ ldrb r3, [r1]
+ movs r1, 0x58
+ muls r3, r1
+ adds r2, 0x4C
+ adds r3, r2
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ b _0801EA84
+ .align 2, 0
+_0801EA58: .4byte gUnknown_02024C68
+_0801EA5C: .4byte gUnknown_02024C10
+_0801EA60: .4byte gUnknown_081FAB5C
+_0801EA64: .4byte gUnknown_02024D1E
+_0801EA68: .4byte gBattleMons
+_0801EA6C: .4byte gUnknown_02024C0A
+_0801EA70:
+ ldr r2, _0801EAD4 @ =gBattleMons
+ ldr r0, _0801EAD8 @ =gUnknown_02024C0A
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r2, 0x4C
+ adds r1, r2
+ ldr r0, [r1]
+ orrs r0, r3
+ str r0, [r1]
+_0801EA84:
+ ldr r2, _0801EADC @ =gUnknown_02024C10
+ ldr r1, _0801EAE0 @ =gUnknown_081FAC4C
+ ldr r5, _0801EAE4 @ =gUnknown_02024D1E
+ ldrb r0, [r5, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r4, _0801EAE8 @ =gUnknown_02024A60
+ ldr r1, _0801EAD8 @ =gUnknown_02024C0A
+ ldrb r0, [r1]
+ strb r0, [r4]
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ ldr r1, _0801EAEC @ =gUnknown_02024ACC
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r2, _0801EAF0 @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0801EAF8
+ movs r0, 0x1
+ strb r0, [r5, 0x5]
+ ldr r0, _0801EAF4 @ =0xffffdfff
+ ands r1, r0
+ str r1, [r2]
+ b _0801EAFA
+ .align 2, 0
+_0801EAD4: .4byte gBattleMons
+_0801EAD8: .4byte gUnknown_02024C0A
+_0801EADC: .4byte gUnknown_02024C10
+_0801EAE0: .4byte gUnknown_081FAC4C
+_0801EAE4: .4byte gUnknown_02024D1E
+_0801EAE8: .4byte gUnknown_02024A60
+_0801EAEC: .4byte gUnknown_02024ACC
+_0801EAF0: .4byte gUnknown_02024C6C
+_0801EAF4: .4byte 0xffffdfff
+_0801EAF8:
+ strb r0, [r5, 0x5]
+_0801EAFA:
+ ldr r0, _0801EB2C @ =gUnknown_02024D1E
+ ldrb r2, [r0, 0x3]
+ adds r7, r0, 0
+ cmp r2, 0x2
+ beq _0801EB14
+ cmp r2, 0x6
+ beq _0801EB14
+ cmp r2, 0x5
+ beq _0801EB14
+ cmp r2, 0x3
+ beq _0801EB14
+ bl _0801F5FA
+_0801EB14:
+ ldr r0, _0801EB30 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ ldr r2, _0801EB34 @ =0x000160ca
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, _0801EB38 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 7
+ bl _0801F4F2
+ .align 2, 0
+_0801EB2C: .4byte gUnknown_02024D1E
+_0801EB30: .4byte 0x02000000
+_0801EB34: .4byte 0x000160ca
+_0801EB38: .4byte gUnknown_02024C6C
+_0801EB3C:
+ mov r3, r10
+ cmp r3, 0
+ beq _0801EB46
+ bl _0801F5FA
+_0801EB46:
+ bl _0801F5DC
+_0801EB4A:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r1, r0
+ ldr r2, _0801EB84 @ =gUnknown_081FAB5C
+ ldrb r3, [r7, 0x3]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r1, [r1]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801EB6E
+ bl _0801F5DC
+_0801EB6E:
+ subs r0, r3, 0x7
+ cmp r0, 0x34
+ bls _0801EB78
+ bl _0801F5FA
+_0801EB78:
+ lsls r0, 2
+ ldr r1, _0801EB88 @ =_0801EB8C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801EB84: .4byte gUnknown_081FAB5C
+_0801EB88: .4byte _0801EB8C
+ .align 2, 0
+_0801EB8C:
+ .4byte _0801EC60
+ .4byte _0801ECD4
+ .4byte _0801EE4C
+ .4byte _0801ED60
+ .4byte _0801EDDC
+ .4byte _0801EE84
+ .4byte _0801EECC
+ .4byte _0801EFA8
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801EFEC
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F040
+ .4byte _0801F13C
+ .4byte _0801F184
+ .4byte _0801F1A4
+ .4byte _0801F364
+ .4byte _0801F3A0
+ .4byte _0801F3BC
+ .4byte _0801F3D4
+ .4byte _0801F3EC
+ .4byte _0801F44C
+ .4byte _0801F464
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F094
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F0E8
+ .4byte _0801F4A8
+ .4byte _0801F500
+ .4byte _0801F5FA
+ .4byte _0801F5FA
+ .4byte _0801F5FA
+ .4byte _0801F5FA
+ .4byte _0801F5EC
+_0801EC60:
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r5, 0x58
+ adds r1, r0, 0
+ muls r1, r5
+ mov r2, r9
+ adds r0, r1, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0801EC7A
+ bl _0801F5DC
+_0801EC7A:
+ mov r4, r9
+ adds r4, 0x50
+ adds r0, r1, r4
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0801EC8E
+ bl _0801F5DC
+_0801EC8E:
+ bl Random
+ mov r3, r8
+ ldrb r1, [r3]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ lsrs r1, 16
+ adds r1, 0x2
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r4, _0801ECC8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801ECCC @ =gUnknown_081FAC4C
+ ldr r0, _0801ECD0 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _0801F5F8
+ .align 2, 0
+_0801ECC8: .4byte gUnknown_02024C10
+_0801ECCC: .4byte gUnknown_081FAC4C
+_0801ECD0: .4byte gUnknown_02024D1E
+_0801ECD4:
+ mov r0, r8
+ ldrb r2, [r0]
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ add r0, r9
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, 0x27
+ bne _0801ED18
+ cmp r4, 0x1
+ beq _0801ECF4
+ cmp r5, 0x80
+ beq _0801ECF4
+ bl _0801F5DC
+_0801ECF4:
+ ldr r0, _0801ED0C @ =byte_2024C06
+ strb r1, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x27
+ bl sub_81074C4
+ ldr r1, _0801ED10 @ =gUnknown_02024C10
+ ldr r0, _0801ED14 @ =gUnknown_081D98D7
+ str r0, [r1]
+ bl _0801F5FA
+ .align 2, 0
+_0801ED0C: .4byte byte_2024C06
+_0801ED10: .4byte gUnknown_02024C10
+_0801ED14: .4byte gUnknown_081D98D7
+_0801ED18:
+ adds r0, r2, 0
+ bl sub_801E3B4
+ ldr r1, _0801ED54 @ =gUnknown_02024A7E
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bhi _0801ED2E
+ bl _0801F5DC
+_0801ED2E:
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r2, r0, 0
+ muls r2, r6
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r1, _0801ED58 @ =gUnknown_081FAB5C
+ ldr r0, _0801ED5C @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r2]
+ bl _0801F5DC
+ .align 2, 0
+_0801ED54: .4byte gUnknown_02024A7E
+_0801ED58: .4byte gUnknown_081FAB5C
+_0801ED5C: .4byte gUnknown_02024D1E
+_0801ED60:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r5, 0x58
+ muls r0, r5
+ mov r4, r9
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r0, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _0801ED7C
+ bl _0801F5DC
+_0801ED7C:
+ movs r0, 0x80
+ lsls r0, 5
+ orrs r1, r0
+ str r1, [r2]
+ ldr r1, _0801EDC8 @ =gUnknown_02024C54
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801EDCC @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ bl Random
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x2
+ lsls r1, 4
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r4, _0801EDD0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EDD4 @ =gUnknown_081FAC4C
+ ldr r0, _0801EDD8 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _0801F5F8
+ .align 2, 0
+_0801EDC8: .4byte gUnknown_02024C54
+_0801EDCC: .4byte gUnknown_02024BE6
+_0801EDD0: .4byte gUnknown_02024C10
+_0801EDD4: .4byte gUnknown_081FAC4C
+_0801EDD8: .4byte gUnknown_02024D1E
+_0801EDDC:
+ ldr r5, _0801EE30 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0801EE14
+ ldr r4, _0801EE34 @ =gUnknown_02024D1A
+ ldrh r3, [r4]
+ ldr r2, _0801EE38 @ =gBattleMons
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r3, r0
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r3, r0
+ bls _0801EE14
+ ldr r3, _0801EE3C @ =0x0000ffff
+ adds r0, r3, 0
+ strh r0, [r4]
+_0801EE14:
+ ldr r4, _0801EE40 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EE44 @ =gUnknown_081FAC4C
+ ldr r0, _0801EE48 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _0801F5F8
+ .align 2, 0
+_0801EE30: .4byte gUnknown_02024C07
+_0801EE34: .4byte gUnknown_02024D1A
+_0801EE38: .4byte gBattleMons
+_0801EE3C: .4byte 0x0000ffff
+_0801EE40: .4byte gUnknown_02024C10
+_0801EE44: .4byte gUnknown_081FAC4C
+_0801EE48: .4byte gUnknown_02024D1E
+_0801EE4C:
+ mov r4, r8
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r9
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0801EE62
+ b _0801F5DC
+_0801EE62:
+ bl Random
+ ldr r4, _0801EE80 @ =gUnknown_02024D1E
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ adds r0, 0x3
+ strb r0, [r4, 0x3]
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ b _0801F5FA
+ .align 2, 0
+_0801EE80: .4byte gUnknown_02024D1E
+_0801EE84:
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _0801EEC0 @ =gUnknown_02024C54
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801EEC4 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ ldr r0, _0801EEC8 @ =gUnknown_02024D28
+ ldrb r1, [r2]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ b _0801F5DC
+ .align 2, 0
+_0801EEC0: .4byte gUnknown_02024C54
+_0801EEC4: .4byte gUnknown_02024BE6
+_0801EEC8: .4byte gUnknown_02024D28
+_0801EECC:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r6, 0x58
+ muls r0, r6
+ mov r4, r9
+ adds r4, 0x50
+ adds r0, r4
+ ldr r5, [r0]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r5, r0
+ cmp r5, 0
+ beq _0801EEE8
+ b _0801F5DC
+_0801EEE8:
+ bl Random
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r2, r1, 0
+ muls r2, r6
+ adds r2, r4
+ movs r1, 0x3
+ ands r1, r0
+ adds r1, 0x3
+ lsls r1, 13
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801EF80 @ =0x02000000
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 1
+ ldr r4, _0801EF84 @ =0x00016004
+ adds r0, r4
+ adds r0, r2
+ ldr r6, _0801EF88 @ =gUnknown_02024BE6
+ ldrh r1, [r6]
+ strb r1, [r0]
+ ldrb r0, [r3]
+ lsls r0, 1
+ ldr r1, _0801EF8C @ =0x00016005
+ adds r0, r1
+ adds r0, r2
+ ldrh r1, [r6]
+ lsrs r1, 8
+ strb r1, [r0]
+ ldrb r0, [r3]
+ ldr r3, _0801EF90 @ =0x00016020
+ adds r0, r3
+ adds r0, r2
+ ldr r1, _0801EF94 @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldr r4, _0801EF98 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EF9C @ =gUnknown_081FAC4C
+ ldr r2, _0801EFA0 @ =gUnknown_02024D1E
+ ldrb r0, [r2, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r4]
+ strb r5, [r2, 0x5]
+ ldr r1, _0801EFA4 @ =gUnknown_0840164C
+ ldrh r0, [r1]
+ ldrh r4, [r6]
+ cmp r0, r4
+ bne _0801EF5C
+ b _0801F5FA
+_0801EF5C:
+ adds r3, r1, 0
+ adds r1, r6, 0
+_0801EF60:
+ ldrb r0, [r2, 0x5]
+ adds r0, 0x1
+ strb r0, [r2, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bls _0801EF70
+ b _0801F5FA
+_0801EF70:
+ ldrb r0, [r2, 0x5]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ ldrh r4, [r1]
+ cmp r0, r4
+ bne _0801EF60
+ b _0801F5FA
+ .align 2, 0
+_0801EF80: .4byte 0x02000000
+_0801EF84: .4byte 0x00016004
+_0801EF88: .4byte gUnknown_02024BE6
+_0801EF8C: .4byte 0x00016005
+_0801EF90: .4byte 0x00016020
+_0801EF94: .4byte gUnknown_02024C07
+_0801EF98: .4byte gUnknown_02024C10
+_0801EF9C: .4byte gUnknown_081FAC4C
+_0801EFA0: .4byte gUnknown_02024D1E
+_0801EFA4: .4byte gUnknown_0840164C
+_0801EFA8:
+ ldr r1, _0801EFD8 @ =gUnknown_02024BEC
+ ldr r0, _0801EFDC @ =gUnknown_02024BF0
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _0801EFB4
+ adds r0, 0x3
+_0801EFB4:
+ asrs r0, 2
+ str r0, [r1]
+ cmp r0, 0
+ bne _0801EFC0
+ movs r0, 0x1
+ str r0, [r1]
+_0801EFC0:
+ ldr r4, _0801EFE0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801EFE4 @ =gUnknown_081FAC4C
+ ldr r0, _0801EFE8 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ b _0801F5F8
+ .align 2, 0
+_0801EFD8: .4byte gUnknown_02024BEC
+_0801EFDC: .4byte gUnknown_02024BF0
+_0801EFE0: .4byte gUnknown_02024C10
+_0801EFE4: .4byte gUnknown_081FAC4C
+_0801EFE8: .4byte gUnknown_02024D1E
+_0801EFEC:
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xF2
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x10
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F008
+ b _0801F5DC
+_0801F008:
+ ldr r2, _0801F02C @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F030 @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F034 @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F038 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F03C @ =gUnknown_081D71E5
+ b _0801F5F8
+ .align 2, 0
+_0801F02C: .4byte 0x02000000
+_0801F030: .4byte 0x000160a4
+_0801F034: .4byte 0x000160a5
+_0801F038: .4byte gUnknown_02024C10
+_0801F03C: .4byte gUnknown_081D71E5
+_0801F040:
+ movs r0, 0x70
+ negs r0, r0
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xEB
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F05E
+ b _0801F5DC
+_0801F05E:
+ ldr r2, _0801F080 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F084 @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F088 @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F08C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F090 @ =gUnknown_081D7276
+ b _0801F5F8
+ .align 2, 0
+_0801F080: .4byte 0x02000000
+_0801F084: .4byte 0x000160a4
+_0801F088: .4byte 0x000160a5
+_0801F08C: .4byte gUnknown_02024C10
+_0801F090: .4byte gUnknown_081D7276
+_0801F094:
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xDA
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x20
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F0B0
+ b _0801F5DC
+_0801F0B0:
+ ldr r2, _0801F0D4 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F0D8 @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F0DC @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F0E0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F0E4 @ =gUnknown_081D71E5
+ b _0801F5F8
+ .align 2, 0
+_0801F0D4: .4byte 0x02000000
+_0801F0D8: .4byte 0x000160a4
+_0801F0DC: .4byte 0x000160a5
+_0801F0E0: .4byte gUnknown_02024C10
+_0801F0E4: .4byte gUnknown_081D71E5
+_0801F0E8:
+ movs r0, 0x60
+ negs r0, r0
+ ldrb r1, [r7, 0x3]
+ adds r1, 0xD3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r6, 0
+ movs r3, 0
+ bl sub_8025E20
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ beq _0801F106
+ b _0801F5DC
+_0801F106:
+ ldr r2, _0801F128 @ =0x02000000
+ ldrb r1, [r7, 0x3]
+ movs r0, 0x3F
+ ands r0, r1
+ ldr r4, _0801F12C @ =0x000160a4
+ adds r1, r2, r4
+ strb r0, [r1]
+ ldr r0, _0801F130 @ =0x000160a5
+ adds r2, r0
+ strb r3, [r2]
+ ldr r4, _0801F134 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F138 @ =gUnknown_081D7276
+ b _0801F5F8
+ .align 2, 0
+_0801F128: .4byte 0x02000000
+_0801F12C: .4byte 0x000160a4
+_0801F130: .4byte 0x000160a5
+_0801F134: .4byte gUnknown_02024C10
+_0801F138: .4byte gUnknown_081D7276
+_0801F13C:
+ mov r2, r8
+ ldrb r1, [r2]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801F178 @ =gUnknown_02024CA8
+ mov r3, r8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0, 0x19]
+ ldr r1, _0801F17C @ =gUnknown_02024C54
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801F180 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _0801F5DC
+ .align 2, 0
+_0801F178: .4byte gUnknown_02024CA8
+_0801F17C: .4byte gUnknown_02024C54
+_0801F180: .4byte gUnknown_02024BE6
+_0801F184:
+ ldr r0, _0801F1A0 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 16
+_0801F19A:
+ orrs r0, r1
+ str r0, [r2]
+ b _0801F5DC
+ .align 2, 0
+_0801F1A0: .4byte gUnknown_02024C07
+_0801F1A4:
+ ldr r4, _0801F254 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0801F1D8
+ ldr r0, _0801F258 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0801F25C @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F214
+ ldr r0, _0801F260 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _0801F1D8
+ b _0801F5DC
+_0801F1D8:
+ ldr r0, _0801F258 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0801F25C @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F214
+ ldr r0, _0801F260 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _0801F214
+ ldr r0, _0801F264 @ =gUnknown_02024DBC
+ adds r0, 0x29
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ ldr r3, _0801F268 @ =gBitTable
+ ldr r2, _0801F26C @ =gUnknown_02024A6A
+ ldr r0, _0801F254 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801F214
+ b _0801F5DC
+_0801F214:
+ ldr r2, _0801F270 @ =gBattleMons
+ ldr r1, _0801F274 @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ movs r3, 0x58
+ muls r0, r3
+ adds r4, r0, r2
+ ldrh r0, [r4, 0x2E]
+ adds r7, r1, 0
+ mov r9, r2
+ cmp r0, 0
+ beq _0801F284
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3C
+ bne _0801F284
+ ldr r1, _0801F278 @ =gUnknown_02024C10
+ ldr r0, _0801F27C @ =gUnknown_081D9913
+ str r0, [r1]
+ ldr r1, _0801F280 @ =byte_2024C06
+ ldrb r0, [r7]
+ muls r0, r3
+ add r0, r9
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _0801F5FA
+ .align 2, 0
+_0801F254: .4byte gUnknown_02024C07
+_0801F258: .4byte gUnknown_020239F8
+_0801F25C: .4byte 0x00000902
+_0801F260: .4byte gTrainerBattleOpponent
+_0801F264: .4byte gUnknown_02024DBC
+_0801F268: .4byte gBitTable
+_0801F26C: .4byte gUnknown_02024A6A
+_0801F270: .4byte gBattleMons
+_0801F274: .4byte gUnknown_02024C08
+_0801F278: .4byte gUnknown_02024C10
+_0801F27C: .4byte gUnknown_081D9913
+_0801F280: .4byte byte_2024C06
+_0801F284:
+ ldr r4, _0801F340 @ =gUnknown_02024C07
+ mov r10, r4
+ ldrb r1, [r4]
+ movs r0, 0x58
+ mov r8, r0
+ mov r0, r8
+ muls r0, r1
+ add r0, r9
+ ldrh r3, [r0, 0x2E]
+ cmp r3, 0
+ beq _0801F29C
+ b _0801F5DC
+_0801F29C:
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ ldrh r2, [r0, 0x2E]
+ adds r0, r2, 0
+ cmp r0, 0xAF
+ bne _0801F2B0
+ b _0801F5DC
+_0801F2B0:
+ cmp r0, 0
+ bne _0801F2B6
+ b _0801F5DC
+_0801F2B6:
+ lsls r0, r1, 1
+ ldr r5, _0801F344 @ =0x020160f0
+ adds r0, r5
+ ldr r1, _0801F348 @ =gUnknown_02024C04
+ strh r2, [r0]
+ strh r2, [r1]
+ ldrb r0, [r7]
+ mov r4, r8
+ muls r4, r0
+ adds r0, r4, 0
+ add r0, r9
+ movs r6, 0
+ strh r3, [r0, 0x2E]
+ ldr r4, _0801F34C @ =gUnknown_02024A60
+ mov r2, r10
+ ldrb r0, [r2]
+ strb r0, [r4]
+ str r1, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ mov r3, r10
+ ldrb r0, [r3]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r7]
+ strb r0, [r4]
+ ldrb r0, [r7]
+ mov r4, r8
+ muls r4, r0
+ adds r0, r4, 0
+ mov r1, r9
+ adds r1, 0x2E
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r4, _0801F350 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F354 @ =gUnknown_081D96F6
+ str r0, [r4]
+ ldr r0, _0801F358 @ =0xfffe9f10
+ adds r5, r0
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _0801F35C @ =0x000160e8
+ adds r0, r1
+ adds r0, r5
+ strb r6, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r2, _0801F360 @ =0x000160e9
+ adds r0, r2
+ adds r0, r5
+ strb r6, [r0]
+ b _0801F5FA
+ .align 2, 0
+_0801F340: .4byte gUnknown_02024C07
+_0801F344: .4byte 0x020160f0
+_0801F348: .4byte gUnknown_02024C04
+_0801F34C: .4byte gUnknown_02024A60
+_0801F350: .4byte gUnknown_02024C10
+_0801F354: .4byte gUnknown_081D96F6
+_0801F358: .4byte 0xfffe9f10
+_0801F35C: .4byte 0x000160e8
+_0801F360: .4byte 0x000160e9
+_0801F364:
+ ldr r3, _0801F394 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ orrs r0, r1
+ str r0, [r2]
+ ldr r2, _0801F398 @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0801F39C @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ strb r1, [r0, 0x14]
+ b _0801F5DC
+ .align 2, 0
+_0801F394: .4byte gUnknown_02024C08
+_0801F398: .4byte gUnknown_02024CA8
+_0801F39C: .4byte gUnknown_02024C07
+_0801F3A0:
+ ldr r0, _0801F3B8 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ mov r0, r9
+ adds r0, 0x50
+ adds r2, r0
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 20
+ b _0801F19A
+ .align 2, 0
+_0801F3B8: .4byte gUnknown_02024C08
+_0801F3BC:
+ ldr r4, _0801F3CC @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F3D0 @ =gUnknown_081D9224
+ b _0801F5F8
+ .align 2, 0
+_0801F3CC: .4byte gUnknown_02024C10
+_0801F3D0: .4byte gUnknown_081D9224
+_0801F3D4:
+ ldr r4, _0801F3E4 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F3E8 @ =gUnknown_081D92C0
+ b _0801F5F8
+ .align 2, 0
+_0801F3E4: .4byte gUnknown_02024C10
+_0801F3E8: .4byte gUnknown_081D92C0
+_0801F3EC:
+ ldr r6, _0801F43C @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ movs r2, 0x58
+ muls r0, r2
+ mov r1, r9
+ adds r1, 0x4C
+ adds r5, r0, r1
+ ldr r4, [r5]
+ movs r0, 0x40
+ ands r0, r4
+ cmp r0, 0
+ bne _0801F406
+ b _0801F5DC
+_0801F406:
+ movs r0, 0x41
+ negs r0, r0
+ ands r4, r0
+ str r4, [r5]
+ ldr r4, _0801F440 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r4, _0801F444 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F448 @ =gUnknown_081D9635
+ b _0801F5F8
+ .align 2, 0
+_0801F43C: .4byte gUnknown_02024C08
+_0801F440: .4byte gUnknown_02024A60
+_0801F444: .4byte gUnknown_02024C10
+_0801F448: .4byte gUnknown_081D9635
+_0801F44C:
+ ldr r4, _0801F45C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F460 @ =gUnknown_081D93FA
+ b _0801F5F8
+ .align 2, 0
+_0801F45C: .4byte gUnknown_02024C10
+_0801F460: .4byte gUnknown_081D93FA
+_0801F464:
+ ldr r4, _0801F494 @ =gUnknown_02024BEC
+ ldr r0, _0801F498 @ =gUnknown_02024BF0
+ ldr r0, [r0]
+ movs r1, 0x3
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _0801F47A
+ movs r0, 0x1
+ str r0, [r4]
+_0801F47A:
+ ldr r4, _0801F49C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r1, _0801F4A0 @ =gUnknown_081FAC4C
+ ldr r0, _0801F4A4 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ b _0801F5F8
+ .align 2, 0
+_0801F494: .4byte gUnknown_02024BEC
+_0801F498: .4byte gUnknown_02024BF0
+_0801F49C: .4byte gUnknown_02024C10
+_0801F4A0: .4byte gUnknown_081FAC4C
+_0801F4A4: .4byte gUnknown_02024D1E
+_0801F4A8:
+ mov r3, r8
+ ldrb r0, [r3]
+ movs r5, 0x58
+ muls r0, r5
+ mov r4, r9
+ adds r4, 0x50
+ adds r2, r0, r4
+ ldr r1, [r2]
+ movs r0, 0xC0
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _0801F4C4
+ b _0801F5DC
+_0801F4C4:
+ movs r0, 0x80
+ lsls r0, 5
+ orrs r1, r0
+ str r1, [r2]
+ ldr r1, _0801F4F8 @ =gUnknown_02024C54
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _0801F4FC @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ bl Random
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r2, r4
+ movs r1, 0x1
+ ands r1, r0
+ adds r1, 0x2
+ lsls r1, 10
+ ldr r0, [r2]
+_0801F4F2:
+ orrs r0, r1
+ str r0, [r2]
+ b _0801F5FA
+ .align 2, 0
+_0801F4F8: .4byte gUnknown_02024C54
+_0801F4FC: .4byte gUnknown_02024BE6
+_0801F500:
+ mov r5, r8
+ ldrb r3, [r5]
+ movs r4, 0x58
+ adds r0, r3, 0
+ muls r0, r4
+ mov r2, r9
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0x3C
+ bne _0801F540
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0
+ beq _0801F5DC
+ ldr r0, _0801F534 @ =byte_2024C06
+ strb r2, [r0]
+ ldr r1, _0801F538 @ =gUnknown_02024C10
+ ldr r0, _0801F53C @ =gUnknown_081D9913
+ str r0, [r1]
+ ldrb r0, [r5]
+ movs r1, 0x3C
+ bl sub_81074C4
+ b _0801F5FA
+ .align 2, 0
+_0801F534: .4byte byte_2024C06
+_0801F538: .4byte gUnknown_02024C10
+_0801F53C: .4byte gUnknown_081D9913
+_0801F540:
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0
+ beq _0801F5DC
+ adds r0, r3, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0801F5B8 @ =gUnknown_02024C04
+ mov r3, r8
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r9
+ movs r5, 0
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldr r2, _0801F5BC @ =gUnknown_02024DBC
+ adds r2, 0x29
+ adds r2, r6, r2
+ ldr r3, _0801F5C0 @ =gBitTable
+ ldr r1, _0801F5C4 @ =gUnknown_02024A6A
+ mov r4, r8
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r4, _0801F5C8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F5CC @ =gUnknown_081D944B
+ str r0, [r4]
+ ldr r1, _0801F5D0 @ =0x02000000
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r3, _0801F5D4 @ =0x000160e8
+ adds r0, r3
+ adds r0, r1
+ strb r5, [r0]
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r4, _0801F5D8 @ =0x000160e9
+ adds r0, r4
+ adds r0, r1
+ strb r5, [r0]
+ b _0801F5FA
+ .align 2, 0
+_0801F5B8: .4byte gUnknown_02024C04
+_0801F5BC: .4byte gUnknown_02024DBC
+_0801F5C0: .4byte gBitTable
+_0801F5C4: .4byte gUnknown_02024A6A
+_0801F5C8: .4byte gUnknown_02024C10
+_0801F5CC: .4byte gUnknown_081D944B
+_0801F5D0: .4byte 0x02000000
+_0801F5D4: .4byte 0x000160e8
+_0801F5D8: .4byte 0x000160e9
+_0801F5DC:
+ ldr r1, _0801F5E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ b _0801F5FA
+ .align 2, 0
+_0801F5E8: .4byte gUnknown_02024C10
+_0801F5EC:
+ ldr r4, _0801F60C @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _0801F610 @ =gUnknown_081D94B0
+_0801F5F8:
+ str r0, [r4]
+_0801F5FA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F60C: .4byte gUnknown_02024C10
+_0801F610: .4byte gUnknown_081D94B0
+ thumb_func_end sub_801E3EC
+
+ thumb_func_start atk15_seteffectwithchancetarget
+atk15_seteffectwithchancetarget: @ 801F614
+ push {r4,lr}
+ ldr r2, _0801F640 @ =gBattleMons
+ ldr r0, _0801F644 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x20
+ bne _0801F650
+ ldr r2, _0801F648 @ =gBattleMoves
+ ldr r0, _0801F64C @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x5]
+ lsls r4, r0, 1
+ b _0801F660
+ .align 2, 0
+_0801F640: .4byte gBattleMons
+_0801F644: .4byte gUnknown_02024C07
+_0801F648: .4byte gBattleMoves
+_0801F64C: .4byte gUnknown_02024BE6
+_0801F650:
+ ldr r2, _0801F680 @ =gBattleMoves
+ ldr r0, _0801F684 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r4, [r0, 0x5]
+_0801F660:
+ ldr r3, _0801F688 @ =gUnknown_02024D1E
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _0801F690
+ ldr r0, _0801F68C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F690
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r3, 0x3]
+ b _0801F6BE
+ .align 2, 0
+_0801F680: .4byte gBattleMoves
+_0801F684: .4byte gUnknown_02024BE6
+_0801F688: .4byte gUnknown_02024D1E
+_0801F68C: .4byte gUnknown_02024C68
+_0801F690:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bhi _0801F6DA
+ ldr r0, _0801F6C8 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ beq _0801F6DA
+ ldr r0, _0801F6CC @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F6DA
+ cmp r4, 0x63
+ bls _0801F6D0
+_0801F6BE:
+ movs r0, 0
+ movs r1, 0x80
+ bl sub_801E3EC
+ b _0801F6E2
+ .align 2, 0
+_0801F6C8: .4byte gUnknown_02024D1E
+_0801F6CC: .4byte gUnknown_02024C68
+_0801F6D0:
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ b _0801F6E2
+_0801F6DA:
+ ldr r1, _0801F6F8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0801F6E2:
+ ldr r0, _0801F6FC @ =gUnknown_02024D1E
+ movs r1, 0
+ strb r1, [r0, 0x3]
+ ldr r0, _0801F700 @ =0x02000000
+ ldr r2, _0801F704 @ =0x00016112
+ adds r0, r2
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F6F8: .4byte gUnknown_02024C10
+_0801F6FC: .4byte gUnknown_02024D1E
+_0801F700: .4byte 0x02000000
+_0801F704: .4byte 0x00016112
+ thumb_func_end atk15_seteffectwithchancetarget
+
+ thumb_func_start sub_801F708
+sub_801F708: @ 801F708
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_801E3EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801F708
+
+ thumb_func_start sub_801F718
+sub_801F718: @ 801F718
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ bl sub_801E3EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801F718
+
+ thumb_func_start sub_801F728
+sub_801F728: @ 801F728
+ push {lr}
+ ldr r0, _0801F74C @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r2, _0801F750 @ =gUnknown_02024A60
+ strb r0, [r2]
+ ldr r3, _0801F754 @ =gUnknown_02024D1E
+ ldrb r0, [r3, 0x3]
+ cmp r0, 0x6
+ bhi _0801F75C
+ ldr r1, _0801F758 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x4C
+ b _0801F766
+ .align 2, 0
+_0801F74C: .4byte gUnknown_02024C10
+_0801F750: .4byte gUnknown_02024A60
+_0801F754: .4byte gUnknown_02024D1E
+_0801F758: .4byte gBattleMons
+_0801F75C:
+ ldr r1, _0801F794 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+_0801F766:
+ adds r2, r1
+ ldr r1, _0801F798 @ =gUnknown_081FAB5C
+ ldrb r0, [r3, 0x3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ ldr r0, _0801F79C @ =gUnknown_02024D1E
+ movs r2, 0
+ strb r2, [r0, 0x3]
+ ldr r1, _0801F7A0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ ldr r0, _0801F7A4 @ =0x02000000
+ ldr r1, _0801F7A8 @ =0x00016112
+ adds r0, r1
+ strb r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801F794: .4byte gBattleMons
+_0801F798: .4byte gUnknown_081FAB5C
+_0801F79C: .4byte gUnknown_02024D1E
+_0801F7A0: .4byte gUnknown_02024C10
+_0801F7A4: .4byte 0x02000000
+_0801F7A8: .4byte 0x00016112
+ thumb_func_end sub_801F728
+
+ thumb_func_start sub_801F7AC
+sub_801F7AC: @ 801F7AC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _0801F81C @ =gUnknown_02024C10
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x2]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _0801F834
+ ldrb r0, [r2, 0x1]
+ bl sub_8015150
+ ldr r5, _0801F820 @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r2, _0801F824 @ =gUnknown_02024C6C
+ ldr r1, _0801F828 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _0801F7E6
+ b _0801FB1C
+_0801F7E6:
+ ldr r1, [r6]
+ ldrb r4, [r1, 0x3]
+ ldrb r0, [r1, 0x4]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0x6]
+ lsls r0, 24
+ orrs r4, r0
+ bl b_movescr_stack_pop_cursor
+ str r4, [r6]
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ ldr r1, _0801F82C @ =gUnknown_02024C7A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r2, [r0]
+ ldr r1, _0801F830 @ =0x0000fdff
+ ands r1, r2
+ strh r1, [r0]
+ b _0801FB22
+ .align 2, 0
+_0801F81C: .4byte gUnknown_02024C10
+_0801F820: .4byte gUnknown_02024A60
+_0801F824: .4byte gUnknown_02024C6C
+_0801F828: .4byte gBitTable
+_0801F82C: .4byte gUnknown_02024C7A
+_0801F830: .4byte 0x0000fdff
+_0801F834:
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x1
+ bne _0801F85C
+ ldr r1, _0801F84C @ =gUnknown_02024A60
+ ldr r0, _0801F850 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0801F854 @ =gUnknown_02024C08
+ ldrb r7, [r0]
+ ldr r4, _0801F858 @ =gUnknown_081D8C58
+ b _0801F86A
+ .align 2, 0
+_0801F84C: .4byte gUnknown_02024A60
+_0801F850: .4byte gUnknown_02024C07
+_0801F854: .4byte gUnknown_02024C08
+_0801F858: .4byte gUnknown_081D8C58
+_0801F85C:
+ ldr r1, _0801F954 @ =gUnknown_02024A60
+ ldr r0, _0801F958 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _0801F95C @ =gUnknown_02024C07
+ ldrb r7, [r0]
+ ldr r4, _0801F960 @ =gUnknown_081D8C65
+_0801F86A:
+ ldr r0, _0801F964 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r0, _0801F968 @ =gBitTable
+ mov r12, r0
+ ldr r2, _0801F954 @ =gUnknown_02024A60
+ mov r8, r2
+ ldrb r2, [r2]
+ lsls r0, r2, 2
+ add r0, r12
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0801F886
+ b _0801FB1C
+_0801F886:
+ ldr r3, _0801F96C @ =gBattleMons
+ mov r10, r3
+ movs r5, 0x58
+ mov r9, r5
+ mov r0, r9
+ muls r0, r2
+ add r0, r10
+ ldrh r3, [r0, 0x28]
+ cmp r3, 0
+ beq _0801F89C
+ b _0801FB1C
+_0801F89C:
+ ldr r2, _0801F970 @ =0x02000000
+ lsls r1, r7, 1
+ ldr r5, _0801F974 @ =0x000160ac
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ ldr r0, _0801F978 @ =0x000160ad
+ adds r1, r0
+ adds r1, r2
+ strb r3, [r1]
+ lsls r1, r7, 2
+ adds r5, 0x54
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ adds r5, 0x1
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ adds r5, 0x1
+ adds r0, r1, r5
+ adds r0, r2
+ strb r3, [r0]
+ ldr r0, _0801F97C @ =0x00016103
+ adds r1, r0
+ adds r1, r2
+ strb r3, [r1]
+ ldr r5, _0801F980 @ =gUnknown_02024C6C
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 2
+ add r0, r12
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r5]
+ orrs r0, r1
+ str r0, [r5]
+ ldr r0, [r6]
+ adds r0, 0x7
+ bl b_movescr_stack_push
+ str r4, [r6]
+ mov r2, r8
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0801F9B0
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [r5]
+ ldr r1, _0801F984 @ =gUnknown_030042E0
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _0801F914
+ adds r0, 0x1
+ strb r0, [r1]
+_0801F914:
+ mov r0, r9
+ muls r0, r7
+ add r0, r10
+ adds r3, r0, 0
+ adds r3, 0x2A
+ mov r4, r8
+ ldrb r2, [r4]
+ mov r0, r9
+ muls r0, r2
+ add r0, r10
+ adds r1, r0, 0
+ adds r1, 0x2A
+ ldrb r0, [r3]
+ ldrb r5, [r1]
+ cmp r0, r5
+ bls _0801F9CC
+ ldrb r1, [r1]
+ subs r0, r1
+ cmp r0, 0x1D
+ ble _0801F990
+ ldr r1, _0801F988 @ =gUnknown_02024A6A
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0801F98C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x8
+ bl AdjustFriendship
+ b _0801F9CC
+ .align 2, 0
+_0801F954: .4byte gUnknown_02024A60
+_0801F958: .4byte gUnknown_02024C08
+_0801F95C: .4byte gUnknown_02024C07
+_0801F960: .4byte gUnknown_081D8C65
+_0801F964: .4byte gUnknown_02024C0C
+_0801F968: .4byte gBitTable
+_0801F96C: .4byte gBattleMons
+_0801F970: .4byte 0x02000000
+_0801F974: .4byte 0x000160ac
+_0801F978: .4byte 0x000160ad
+_0801F97C: .4byte 0x00016103
+_0801F980: .4byte gUnknown_02024C6C
+_0801F984: .4byte gUnknown_030042E0
+_0801F988: .4byte gUnknown_02024A6A
+_0801F98C: .4byte gPlayerParty
+_0801F990:
+ ldr r1, _0801F9A8 @ =gUnknown_02024A6A
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0801F9AC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x6
+ bl AdjustFriendship
+ b _0801F9CC
+ .align 2, 0
+_0801F9A8: .4byte gUnknown_02024A6A
+_0801F9AC: .4byte gPlayerParty
+_0801F9B0:
+ ldr r1, _0801FAE0 @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFE
+ bhi _0801F9BC
+ adds r0, 0x1
+ strb r0, [r1, 0x1]
+_0801F9BC:
+ ldr r2, _0801FAE4 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r1, 0x20]
+_0801F9CC:
+ ldr r0, _0801FAE8 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0801FA02
+ ldr r6, _0801FAEC @ =gBattleMons
+ ldr r0, _0801FAF0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FA02
+ ldr r4, _0801FAF4 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ bl b_movescr_stack_push
+ ldr r1, _0801FAF8 @ =gUnknown_02024BEC
+ adds r0, r7, 0
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ str r0, [r1]
+ ldr r0, _0801FAFC @ =gUnknown_081D9156
+ str r0, [r4]
+_0801FA02:
+ ldr r1, _0801FB00 @ =gUnknown_02024C98
+ ldr r6, _0801FB04 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0801FA1A
+ b _0801FB22
+_0801FA1A:
+ ldr r0, _0801FAE8 @ =gUnknown_02024C6C
+ ldr r5, [r0]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r5, r0
+ cmp r5, 0
+ bne _0801FB22
+ ldr r4, _0801FAF0 @ =gUnknown_02024C07
+ mov r8, r4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _0801FB22
+ ldr r0, _0801FAEC @ =gBattleMons
+ mov r9, r0
+ mov r1, r8
+ ldrb r2, [r1]
+ movs r7, 0x58
+ adds r3, r2, 0
+ muls r3, r7
+ adds r0, r3, r0
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FB22
+ ldr r0, _0801FB08 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xA5
+ beq _0801FB22
+ ldr r1, _0801FB0C @ =0x02000000
+ ldr r4, _0801FB10 @ =0x0001608c
+ adds r0, r2, r4
+ adds r0, r1
+ ldrb r4, [r0]
+ adds r0, r4, r3
+ mov r6, r9
+ adds r6, 0x24
+ adds r0, r6
+ strb r5, [r0]
+ ldr r5, _0801FAF4 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ bl b_movescr_stack_push
+ ldr r0, _0801FB14 @ =gUnknown_081D9468
+ str r0, [r5]
+ ldr r5, _0801FAE4 @ =gUnknown_02024A60
+ mov r1, r8
+ ldrb r0, [r1]
+ strb r0, [r5]
+ adds r1, r4, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r5]
+ muls r0, r7
+ adds r0, r6
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0801FB18 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ lsls r4, 1
+ mov r2, r8
+ ldrb r0, [r2]
+ muls r0, r7
+ adds r0, r4, r0
+ mov r2, r9
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ mov r3, r8
+ ldrb r0, [r3]
+ muls r0, r7
+ adds r4, r0
+ adds r4, r2
+ ldrh r0, [r4]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ b _0801FB22
+ .align 2, 0
+_0801FAE0: .4byte gUnknown_030042E0
+_0801FAE4: .4byte gUnknown_02024A60
+_0801FAE8: .4byte gUnknown_02024C6C
+_0801FAEC: .4byte gBattleMons
+_0801FAF0: .4byte gUnknown_02024C07
+_0801FAF4: .4byte gUnknown_02024C10
+_0801FAF8: .4byte gUnknown_02024BEC
+_0801FAFC: .4byte gUnknown_081D9156
+_0801FB00: .4byte gUnknown_02024C98
+_0801FB04: .4byte gUnknown_02024C08
+_0801FB08: .4byte gUnknown_02024BE6
+_0801FB0C: .4byte 0x02000000
+_0801FB10: .4byte 0x0001608c
+_0801FB14: .4byte gUnknown_081D9468
+_0801FB18: .4byte gUnknown_030041C0
+_0801FB1C:
+ ldr r0, [r6]
+ adds r0, 0x7
+ str r0, [r6]
+_0801FB22:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801F7AC
+
+ thumb_func_start sub_801FB34
+sub_801FB34: @ 801FB34
+ push {r4,r5,lr}
+ ldr r0, _0801FB64 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0801FB5E
+ ldr r5, _0801FB68 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0801FB6C @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x0A_A_A_A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_0801FB5E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FB64: .4byte gUnknown_02024A64
+_0801FB68: .4byte gUnknown_02024C10
+_0801FB6C: .4byte gUnknown_02024A60
+ thumb_func_end sub_801FB34
+
+ thumb_func_start atkE2_cmde2
+atkE2_cmde2: @ 801FB70
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r0, _0801FBC4 @ =gUnknown_02024A64
+ ldr r6, [r0]
+ cmp r6, 0
+ bne _0801FBBC
+ ldr r5, _0801FBC8 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0801FBCC @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r1, _0801FBD0 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r2, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ str r6, [r0]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ bl sub_8010F48
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_0801FBBC:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FBC4: .4byte gUnknown_02024A64
+_0801FBC8: .4byte gUnknown_02024C10
+_0801FBCC: .4byte gUnknown_02024A60
+_0801FBD0: .4byte gBattleMons
+ thumb_func_end atkE2_cmde2
+
+ thumb_func_start atk1C_jumpifstatus
+atk1C_jumpifstatus: @ 801FBD4
+ push {r4,r5,lr}
+ ldr r5, _0801FC30 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ ldrb r4, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ lsls r1, 8
+ adds r4, r1
+ ldrb r1, [r2, 0x4]
+ lsls r1, 16
+ adds r4, r1
+ ldrb r1, [r2, 0x5]
+ lsls r1, 24
+ adds r4, r1
+ ldrb r3, [r2, 0x6]
+ ldrb r1, [r2, 0x7]
+ lsls r1, 8
+ adds r3, r1
+ ldrb r1, [r2, 0x8]
+ lsls r1, 16
+ adds r3, r1
+ ldrb r1, [r2, 0x9]
+ lsls r1, 24
+ adds r3, r1
+ ldr r2, _0801FC34 @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801FC38
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FC38
+ str r3, [r5]
+ b _0801FC40
+ .align 2, 0
+_0801FC30: .4byte gUnknown_02024C10
+_0801FC34: .4byte gBattleMons
+_0801FC38:
+ ldr r1, _0801FC48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_0801FC40:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FC48: .4byte gUnknown_02024C10
+ thumb_func_end atk1C_jumpifstatus
+
+ thumb_func_start atk1D_jumpifsecondarystatus
+atk1D_jumpifsecondarystatus: @ 801FC4C
+ push {r4,r5,lr}
+ ldr r5, _0801FCA8 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, [r5]
+ ldrb r4, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ lsls r1, 8
+ adds r4, r1
+ ldrb r1, [r2, 0x4]
+ lsls r1, 16
+ adds r4, r1
+ ldrb r1, [r2, 0x5]
+ lsls r1, 24
+ adds r4, r1
+ ldrb r3, [r2, 0x6]
+ ldrb r1, [r2, 0x7]
+ lsls r1, 8
+ adds r3, r1
+ ldrb r1, [r2, 0x8]
+ lsls r1, 16
+ adds r3, r1
+ ldrb r1, [r2, 0x9]
+ lsls r1, 24
+ adds r3, r1
+ ldr r2, _0801FCAC @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r0, r2, 0
+ adds r0, 0x50
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _0801FCB0
+ adds r0, r1, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0801FCB0
+ str r3, [r5]
+ b _0801FCB8
+ .align 2, 0
+_0801FCA8: .4byte gUnknown_02024C10
+_0801FCAC: .4byte gBattleMons
+_0801FCB0:
+ ldr r1, _0801FCC0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_0801FCB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FCC0: .4byte gUnknown_02024C10
+ thumb_func_end atk1D_jumpifsecondarystatus
+
+ thumb_func_start atk1E_jumpifability
+atk1E_jumpifability: @ 801FCC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r6, _0801FD18 @ =gUnknown_02024C10
+ ldr r2, [r6]
+ ldrb r5, [r2, 0x2]
+ mov r8, r5
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ adds r7, r1, r0
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x8
+ bne _0801FD24
+ ldr r0, _0801FD1C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xD
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0801FDA0
+ ldr r1, _0801FD20 @ =byte_2024C06
+ strb r5, [r1]
+ str r7, [r6]
+ subs r4, 0x1
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ b _0801FD80
+ .align 2, 0
+_0801FD18: .4byte gUnknown_02024C10
+_0801FD1C: .4byte gUnknown_02024C07
+_0801FD20: .4byte byte_2024C06
+_0801FD24:
+ cmp r0, 0x9
+ bne _0801FD5C
+ ldr r0, _0801FD54 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xC
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0801FDA0
+ ldr r1, _0801FD58 @ =byte_2024C06
+ strb r5, [r1]
+ str r7, [r6]
+ subs r4, 0x1
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ b _0801FD80
+ .align 2, 0
+_0801FD54: .4byte gUnknown_02024C07
+_0801FD58: .4byte byte_2024C06
+_0801FD5C:
+ ldrb r0, [r2, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0801FD90 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r1, [r0]
+ cmp r1, r8
+ bne _0801FDA0
+ ldr r0, _0801FD94 @ =byte_2024C06
+ strb r1, [r0]
+ str r7, [r6]
+ ldrb r1, [r0]
+ adds r0, r4, 0
+_0801FD80:
+ bl sub_81074C4
+ ldr r0, _0801FD98 @ =0x02000000
+ ldr r1, _0801FD9C @ =0x000160f8
+ adds r0, r1
+ strb r4, [r0]
+ b _0801FDA6
+ .align 2, 0
+_0801FD90: .4byte gBattleMons
+_0801FD94: .4byte byte_2024C06
+_0801FD98: .4byte 0x02000000
+_0801FD9C: .4byte 0x000160f8
+_0801FDA0:
+ ldr r0, [r6]
+ adds r0, 0x7
+ str r0, [r6]
+_0801FDA6:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk1E_jumpifability
+
+ thumb_func_start sub_801FDB4
+sub_801FDB4: @ 801FDB4
+ push {r4-r6,lr}
+ ldr r0, _0801FDCC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r4, [r0, 0x1]
+ cmp r4, 0x1
+ bne _0801FDD4
+ ldr r0, _0801FDD0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ b _0801FDDE
+ .align 2, 0
+_0801FDCC: .4byte gUnknown_02024C10
+_0801FDD0: .4byte gUnknown_02024C07
+_0801FDD4:
+ ldr r0, _0801FE14 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r4, 0x1
+_0801FDDE:
+ ands r4, r0
+ ldr r6, _0801FE18 @ =gUnknown_02024C10
+ ldr r3, [r6]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ adds r5, r1, r0
+ ldr r1, _0801FE1C @ =gUnknown_02024C7A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _0801FE20
+ str r5, [r6]
+ b _0801FE26
+ .align 2, 0
+_0801FE14: .4byte gUnknown_02024C08
+_0801FE18: .4byte gUnknown_02024C10
+_0801FE1C: .4byte gUnknown_02024C7A
+_0801FE20:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r6]
+_0801FE26:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801FDB4
+
+ thumb_func_start sub_801FE2C
+sub_801FE2C: @ 801FE2C
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _0801FE60 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0801FE64 @ =gBattleMons
+ ldr r3, [r4]
+ movs r1, 0x58
+ muls r0, r1
+ ldrb r1, [r3, 0x3]
+ adds r0, r1
+ adds r2, 0x18
+ adds r0, r2
+ ldrb r2, [r0]
+ ldrb r0, [r3, 0x2]
+ cmp r0, 0x5
+ bhi _0801FEEA
+ lsls r0, 2
+ ldr r1, _0801FE68 @ =_0801FE6C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0801FE60: .4byte gUnknown_02024C10
+_0801FE64: .4byte gBattleMons
+_0801FE68: .4byte _0801FE6C
+ .align 2, 0
+_0801FE6C:
+ .4byte _0801FE84
+ .4byte _0801FE94
+ .4byte _0801FEA4
+ .4byte _0801FEB4
+ .4byte _0801FEC4
+ .4byte _0801FED8
+_0801FE84:
+ ldr r0, _0801FE90 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bne _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FE90: .4byte gUnknown_02024C10
+_0801FE94:
+ ldr r0, _0801FEA0 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ beq _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FEA0: .4byte gUnknown_02024C10
+_0801FEA4:
+ ldr r0, _0801FEB0 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bls _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FEB0: .4byte gUnknown_02024C10
+_0801FEB4:
+ ldr r0, _0801FEC0 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ cmp r2, r0
+ bcs _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FEC0: .4byte gUnknown_02024C10
+_0801FEC4:
+ ldr r0, _0801FED4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ ands r2, r0
+ cmp r2, 0
+ beq _0801FEEA
+ b _0801FEE4
+ .align 2, 0
+_0801FED4: .4byte gUnknown_02024C10
+_0801FED8:
+ ldr r0, _0801FF0C @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x4]
+ ands r2, r0
+ cmp r2, 0
+ bne _0801FEEA
+_0801FEE4:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0801FEEA:
+ cmp r5, 0
+ beq _0801FF10
+ ldr r3, _0801FF0C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ b _0801FF18
+ .align 2, 0
+_0801FF0C: .4byte gUnknown_02024C10
+_0801FF10:
+ ldr r1, _0801FF20 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+_0801FF18:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0801FF20: .4byte gUnknown_02024C10
+ thumb_func_end sub_801FE2C
+
+ thumb_func_start atk21_jumpifspecialstatusflag
+atk21_jumpifspecialstatusflag: @ 801FF24
+ push {r4-r6,lr}
+ ldr r4, _0801FF78 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _0801FF7C @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ adds r6, r1, r0
+ ldrb r1, [r2, 0x7]
+ ldrb r0, [r2, 0x8]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0xA]
+ lsls r0, 24
+ adds r3, r1, r0
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0
+ beq _0801FF84
+ ldr r0, _0801FF80 @ =gUnknown_02024C98
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r6
+ cmp r0, 0
+ bne _0801FF9C
+ b _0801FF94
+ .align 2, 0
+_0801FF78: .4byte gUnknown_02024C10
+_0801FF7C: .4byte gUnknown_02024A60
+_0801FF80: .4byte gUnknown_02024C98
+_0801FF84:
+ ldr r0, _0801FF98 @ =gUnknown_02024C98
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ ands r0, r6
+ cmp r0, 0
+ beq _0801FF9C
+_0801FF94:
+ str r3, [r4]
+ b _0801FFA2
+ .align 2, 0
+_0801FF98: .4byte gUnknown_02024C98
+_0801FF9C:
+ adds r0, r2, 0
+ adds r0, 0xB
+ str r0, [r4]
+_0801FFA2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk21_jumpifspecialstatusflag
+
+ thumb_func_start sub_801FFA8
+sub_801FFA8: @ 801FFA8
+ push {r4-r6,lr}
+ ldr r4, _0801FFF0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [r4]
+ ldrb r5, [r3, 0x2]
+ ldrb r2, [r3, 0x3]
+ ldrb r1, [r3, 0x4]
+ lsls r1, 8
+ adds r2, r1
+ ldrb r1, [r3, 0x5]
+ lsls r1, 16
+ adds r2, r1
+ ldrb r1, [r3, 0x6]
+ lsls r1, 24
+ adds r6, r2, r1
+ ldr r2, _0801FFF4 @ =gBattleMons
+ movs r1, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r5
+ beq _0801FFEC
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r5
+ bne _0801FFF8
+_0801FFEC:
+ str r6, [r4]
+ b _0801FFFC
+ .align 2, 0
+_0801FFF0: .4byte gUnknown_02024C10
+_0801FFF4: .4byte gBattleMons
+_0801FFF8:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0801FFFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_801FFA8
+
+ thumb_func_start sub_8020004
+sub_8020004: @ 8020004
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ ldr r0, _0802004C @ =0x0201605c
+ mov r10, r0
+ ldr r0, _08020050 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08020054 @ =gUnknown_02024C09
+ strb r0, [r1]
+ ldr r2, _08020058 @ =gUnknown_02024DEA
+ movs r1, 0x2
+ ands r1, r0
+ lsls r1, 24
+ lsrs r1, 25
+ adds r1, r2
+ ldrb r1, [r1]
+ mov r8, r1
+ mov r0, r10
+ subs r0, 0x4D
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _08020040
+ bl _08020996
+_08020040:
+ lsls r0, 2
+ ldr r1, _0802005C @ =_08020060
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802004C: .4byte 0x0201605c
+_08020050: .4byte gUnknown_02024C10
+_08020054: .4byte gUnknown_02024C09
+_08020058: .4byte gUnknown_02024DEA
+_0802005C: .4byte _08020060
+ .align 2, 0
+_08020060:
+ .4byte _0802007C
+ .4byte _080200FC
+ .4byte _08020216
+ .4byte _0802055C
+ .4byte _08020648
+ .4byte _08020910
+ .4byte _0802096C
+_0802007C:
+ ldr r4, _080200A8 @ =gUnknown_02024C09
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08020098
+ ldr r0, _080200AC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _080200B0 @ =0x00000982
+ ands r0, r1
+ cmp r0, 0
+ beq _080200BC
+_08020098:
+ ldr r0, _080200B4 @ =0x02000000
+ ldr r1, _080200B8 @ =0x0001600f
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ bl _08020996
+ .align 2, 0
+_080200A8: .4byte gUnknown_02024C09
+_080200AC: .4byte gUnknown_020239F8
+_080200B0: .4byte 0x00000982
+_080200B4: .4byte 0x02000000
+_080200B8: .4byte 0x0001600f
+_080200BC:
+ ldr r2, _080200E8 @ =0x02000000
+ ldr r3, _080200EC @ =0x0001600f
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080200F0 @ =0x00016113
+ adds r2, r0
+ ldr r3, _080200F4 @ =gBitTable
+ ldr r1, _080200F8 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ bl _08020996
+ .align 2, 0
+_080200E8: .4byte 0x02000000
+_080200EC: .4byte 0x0001600f
+_080200F0: .4byte 0x00016113
+_080200F4: .4byte gBitTable
+_080200F8: .4byte gUnknown_02024A6A
+_080200FC:
+ movs r5, 0
+ movs r7, 0
+ ldr r1, _08020150 @ =gSaveBlock1 + 0x3688
+ mov r9, r1
+_08020104:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08020154 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802016A
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802016A
+ ldr r0, _08020158 @ =gBitTable
+ lsls r1, r7, 2
+ adds r1, r0
+ ldr r0, [r1]
+ mov r2, r8
+ ands r0, r2
+ cmp r0, 0
+ beq _08020138
+ adds r5, 0x1
+_08020138:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0802015C
+ mov r3, r9
+ ldrb r4, [r3]
+ b _08020164
+ .align 2, 0
+_08020150: .4byte gSaveBlock1 + 0x3688
+_08020154: .4byte gPlayerParty
+_08020158: .4byte gBitTable
+_0802015C:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08020164:
+ cmp r4, 0x19
+ bne _0802016A
+ adds r6, 0x1
+_0802016A:
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08020104
+ ldr r3, _080201D0 @ =gBaseStats
+ ldr r2, _080201D4 @ =gBattleMons
+ ldr r0, _080201D8 @ =gUnknown_02024C09
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x9]
+ adds r1, 0x2A
+ ldrb r0, [r1]
+ muls r0, r2
+ movs r1, 0x7
+ bl __divsi3
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r6, 0
+ beq _080201E0
+ lsrs r4, r0, 17
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl __divsi3
+ mov r1, r10
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080201B6
+ movs r0, 0x1
+ strh r0, [r1]
+_080201B6:
+ ldr r5, _080201DC @ =gUnknown_02024DEE
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ strh r0, [r5]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080201FA
+ movs r0, 0x1
+ strh r0, [r5]
+ b _080201FA
+ .align 2, 0
+_080201D0: .4byte gBaseStats
+_080201D4: .4byte gBattleMons
+_080201D8: .4byte gUnknown_02024C09
+_080201DC: .4byte gUnknown_02024DEE
+_080201E0:
+ adds r0, r1, 0
+ adds r1, r5, 0
+ bl __divsi3
+ mov r2, r10
+ strh r0, [r2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080201F6
+ movs r0, 0x1
+ strh r0, [r2]
+_080201F6:
+ ldr r0, _08020248 @ =gUnknown_02024DEE
+ strh r6, [r0]
+_080201FA:
+ ldr r1, _0802024C @ =0x02000000
+ ldr r3, _08020250 @ =0x0001600f
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r2]
+ ldr r2, _08020254 @ =0x00016018
+ adds r0, r1, r2
+ strb r3, [r0]
+ ldr r3, _08020258 @ =0x0001605f
+ adds r1, r3
+ mov r0, r8
+ strb r0, [r1]
+_08020216:
+ ldr r0, _0802025C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08020220
+ b _08020996
+_08020220:
+ ldr r0, _0802024C @ =0x02000000
+ ldr r1, _08020254 @ =0x00016018
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020260 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0802026C
+ ldr r0, _08020264 @ =gSaveBlock1
+ ldr r2, _08020268 @ =0x00003688
+ adds r0, r2
+ ldrb r4, [r0]
+ b _08020274
+ .align 2, 0
+_08020248: .4byte gUnknown_02024DEE
+_0802024C: .4byte 0x02000000
+_08020250: .4byte 0x0001600f
+_08020254: .4byte 0x00016018
+_08020258: .4byte 0x0001605f
+_0802025C: .4byte gUnknown_02024A64
+_08020260: .4byte gPlayerParty
+_08020264: .4byte gSaveBlock1
+_08020268: .4byte 0x00003688
+_0802026C:
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08020274:
+ ldr r5, _08020294 @ =0x02000000
+ cmp r4, 0x19
+ beq _080202A0
+ ldr r3, _08020298 @ =0x0001605f
+ adds r1, r5, r3
+ ldrb r0, [r1]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ bne _080202A0
+ lsrs r0, 1
+ strb r0, [r1]
+ ldr r0, _0802029C @ =0x0001600f
+ adds r1, r5, r0
+ b _080202C8
+ .align 2, 0
+_08020294: .4byte 0x02000000
+_08020298: .4byte 0x0001605f
+_0802029C: .4byte 0x0001600f
+_080202A0:
+ ldr r1, _080202D4 @ =0x00016018
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080202D8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ bne _080202E8
+ ldr r2, _080202DC @ =0x0001605f
+ adds r1, r5, r2
+ ldrb r0, [r1]
+ lsrs r0, 1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r3, _080202E0 @ =0x0001600f
+ adds r1, r5, r3
+_080202C8:
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, _080202E4 @ =gUnknown_02024BEC
+ str r2, [r0]
+ b _08020996
+ .align 2, 0
+_080202D4: .4byte 0x00016018
+_080202D8: .4byte gPlayerParty
+_080202DC: .4byte 0x0001605f
+_080202E0: .4byte 0x0001600f
+_080202E4: .4byte gUnknown_02024BEC
+_080202E8:
+ ldr r0, _0802034C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08020316
+ ldr r0, _08020350 @ =gBattleMons
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08020316
+ ldr r0, _08020354 @ =0x0001601b
+ adds r5, r0
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _08020316
+ bl sub_80325B8
+ ldr r0, _08020358 @ =0x00000161
+ bl PlayBGM
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_08020316:
+ ldr r5, _0802035C @ =0x02000000
+ ldr r1, _08020360 @ =0x00016018
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020364 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _08020332
+ b _0802051E
+_08020332:
+ ldr r2, _08020368 @ =0x0001605f
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ movs r3, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _08020370
+ ldr r1, _0802036C @ =gUnknown_02024BEC
+ mov r3, r10
+ ldrh r0, [r3]
+ str r0, [r1]
+ mov r8, r1
+ b _08020376
+ .align 2, 0
+_0802034C: .4byte gUnknown_020239F8
+_08020350: .4byte gBattleMons
+_08020354: .4byte 0x0001601b
+_08020358: .4byte 0x00000161
+_0802035C: .4byte 0x02000000
+_08020360: .4byte 0x00016018
+_08020364: .4byte gPlayerParty
+_08020368: .4byte 0x0001605f
+_0802036C: .4byte gUnknown_02024BEC
+_08020370:
+ ldr r0, _080203EC @ =gUnknown_02024BEC
+ str r3, [r0]
+ mov r8, r0
+_08020376:
+ cmp r4, 0x19
+ bne _08020386
+ ldr r0, _080203F0 @ =gUnknown_02024DEE
+ ldrh r1, [r0]
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r2]
+_08020386:
+ cmp r4, 0x28
+ bne _0802039C
+ mov r3, r8
+ ldr r1, [r3]
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+_0802039C:
+ ldr r0, _080203F4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080203B8
+ ldr r4, _080203EC @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+_080203B8:
+ ldr r0, _080203F8 @ =0x02000000
+ ldr r2, _080203FC @ =0x00016018
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020400 @ =gPlayerParty
+ adds r0, r1
+ bl sub_8040AA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08020404
+ ldr r4, _080203EC @ =gUnknown_02024BEC
+ ldr r1, [r4]
+ movs r0, 0x96
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ movs r7, 0xA5
+ lsls r7, 1
+ mov r8, r4
+ b _0802040A
+ .align 2, 0
+_080203EC: .4byte gUnknown_02024BEC
+_080203F0: .4byte gUnknown_02024DEE
+_080203F4: .4byte gUnknown_020239F8
+_080203F8: .4byte 0x02000000
+_080203FC: .4byte 0x00016018
+_08020400: .4byte gPlayerParty
+_08020404:
+ ldr r7, _0802043C @ =0x00000149
+ ldr r3, _08020440 @ =gUnknown_02024BEC
+ mov r8, r3
+_0802040A:
+ ldr r0, _08020444 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08020488
+ ldr r1, _08020448 @ =gUnknown_02024A6A
+ ldr r0, _0802044C @ =0x02000000
+ ldr r3, _08020450 @ =0x00016018
+ adds r2, r0, r3
+ ldrh r1, [r1, 0x4]
+ adds r5, r0, 0
+ ldr r4, _08020454 @ =gBitTable
+ ldr r3, _08020458 @ =gUnknown_02024C0C
+ ldrb r2, [r2]
+ cmp r1, r2
+ bne _08020460
+ ldrb r1, [r3]
+ ldr r0, [r4, 0x8]
+ ands r1, r0
+ cmp r1, 0
+ bne _08020460
+ ldr r0, _0802045C @ =0x000160a2
+ adds r1, r5, r0
+ b _0802047C
+ .align 2, 0
+_0802043C: .4byte 0x00000149
+_08020440: .4byte gUnknown_02024BEC
+_08020444: .4byte gUnknown_020239F8
+_08020448: .4byte gUnknown_02024A6A
+_0802044C: .4byte 0x02000000
+_08020450: .4byte 0x00016018
+_08020454: .4byte gBitTable
+_08020458: .4byte gUnknown_02024C0C
+_0802045C: .4byte 0x000160a2
+_08020460:
+ ldrb r2, [r3]
+ ldr r0, [r4]
+ ands r2, r0
+ cmp r2, 0
+ bne _08020478
+ ldr r1, _08020474 @ =0x000160a2
+ adds r0, r5, r1
+ strb r2, [r0]
+ b _08020490
+ .align 2, 0
+_08020474: .4byte 0x000160a2
+_08020478:
+ ldr r2, _08020484 @ =0x000160a2
+ adds r1, r5, r2
+_0802047C:
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08020490
+ .align 2, 0
+_08020484: .4byte 0x000160a2
+_08020488:
+ ldr r0, _08020530 @ =0x02000000
+ ldr r3, _08020534 @ =0x000160a2
+ adds r0, r3
+ strb r1, [r0]
+_08020490:
+ ldr r1, _08020538 @ =gUnknown_030041C0
+ movs r3, 0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r5, 0x4
+ strb r5, [r1, 0x1]
+ ldr r4, _08020530 @ =0x02000000
+ ldr r0, _08020534 @ =0x000160a2
+ adds r6, r4, r0
+ ldrb r0, [r6]
+ strb r0, [r1, 0x2]
+ ldr r0, _0802053C @ =0x00016018
+ adds r4, r0
+ ldrb r0, [r4]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08020540 @ =gUnknown_03004290
+ strb r2, [r1]
+ strb r3, [r1, 0x1]
+ strb r7, [r1, 0x2]
+ movs r3, 0xFF
+ lsls r3, 8
+ ands r7, r3
+ asrs r0, r7, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x4]
+ ldr r1, _08020544 @ =gUnknown_030042B0
+ strb r2, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ strb r5, [r1, 0x2]
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ mov r0, r8
+ ldr r2, [r0]
+ strb r2, [r1, 0x4]
+ adds r0, r2, 0
+ ands r0, r3
+ asrs r0, 8
+ strb r0, [r1, 0x5]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r2
+ asrs r0, 16
+ strb r0, [r1, 0x6]
+ lsrs r2, 24
+ strb r2, [r1, 0x7]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x8]
+ ldrb r1, [r6]
+ movs r0, 0xD
+ bl b_std_message
+ ldrb r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08020548 @ =gPlayerParty
+ adds r0, r1
+ ldr r3, _0802054C @ =gBattleMons
+ ldr r1, _08020550 @ =gUnknown_02024C09
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r1, r3
+ ldrh r1, [r1]
+ bl MonGainEVs
+_0802051E:
+ ldr r1, _08020530 @ =0x02000000
+ ldr r3, _08020554 @ =0x0001605f
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ lsrs r0, 1
+ strb r0, [r2]
+ ldr r0, _08020558 @ =0x0001600f
+ adds r1, r0
+ b _08020618
+ .align 2, 0
+_08020530: .4byte 0x02000000
+_08020534: .4byte 0x000160a2
+_08020538: .4byte gUnknown_030041C0
+_0802053C: .4byte 0x00016018
+_08020540: .4byte gUnknown_03004290
+_08020544: .4byte gUnknown_030042B0
+_08020548: .4byte gPlayerParty
+_0802054C: .4byte gBattleMons
+_08020550: .4byte gUnknown_02024C09
+_08020554: .4byte 0x0001605f
+_08020558: .4byte 0x0001600f
+_0802055C:
+ ldr r0, _08020620 @ =gUnknown_02024A64
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _08020566
+ b _08020996
+_08020566:
+ ldr r1, _08020624 @ =gUnknown_02024260
+ ldr r4, _08020628 @ =0x02000000
+ ldr r3, _0802062C @ =0x000160a2
+ adds r3, r4
+ mov r8, r3
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, _08020630 @ =0x00016018
+ adds r7, r4, r0
+ ldrb r0, [r7]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08020634 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08020612
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x64
+ beq _08020612
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3A
+ bl GetMonData
+ ldr r1, _08020638 @ =0x00017180
+ adds r4, r1
+ strh r0, [r4]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3B
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3C
+ bl GetMonData
+ strh r0, [r4, 0x4]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3E
+ bl GetMonData
+ strh r0, [r4, 0x8]
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x3F
+ bl GetMonData
+ strh r0, [r4, 0xA]
+ ldr r4, _0802063C @ =gUnknown_02024A60
+ mov r2, r8
+ ldrb r0, [r2]
+ strb r0, [r4]
+ ldrb r1, [r7]
+ ldr r0, _08020640 @ =gUnknown_02024BEC
+ ldrh r2, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x19_a_bb
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08020612:
+ ldr r1, _08020628 @ =0x02000000
+ ldr r3, _08020644 @ =0x0001600f
+ adds r1, r3
+_08020618:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08020996
+ .align 2, 0
+_08020620: .4byte gUnknown_02024A64
+_08020624: .4byte gUnknown_02024260
+_08020628: .4byte 0x02000000
+_0802062C: .4byte 0x000160a2
+_08020630: .4byte 0x00016018
+_08020634: .4byte gPlayerParty
+_08020638: .4byte 0x00017180
+_0802063C: .4byte gUnknown_02024A60
+_08020640: .4byte gUnknown_02024BEC
+_08020644: .4byte 0x0001600f
+_08020648:
+ ldr r0, _080208AC @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08020652
+ b _08020996
+_08020652:
+ ldr r1, _080208B0 @ =gUnknown_02024A60
+ ldr r4, _080208B4 @ =0x02000000
+ ldr r2, _080208B8 @ =0x000160a2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r2, _080208BC @ =gUnknown_02024260
+ ldrb r3, [r1]
+ lsls r1, r3, 9
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x21
+ beq _0802066E
+ b _080208F0
+_0802066E:
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ beq _0802067A
+ b _080208F0
+_0802067A:
+ ldr r0, _080208C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080206A8
+ ldr r1, _080208C4 @ =gUnknown_02024A6A
+ lsls r0, r3, 1
+ adds r2, r0, r1
+ ldr r0, _080208C8 @ =0x00016018
+ adds r1, r4, r0
+ ldrh r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _080206A8
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080208CC @ =gPlayerParty
+ adds r0, r1
+ adds r1, r3, 0
+ bl sub_80324F8
+_080206A8:
+ ldr r1, _080208D0 @ =gUnknown_030041C0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r5, _080208B0 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ strb r0, [r1, 0x2]
+ ldr r0, _080208B4 @ =0x02000000
+ ldr r3, _080208C8 @ =0x00016018
+ adds r6, r0, r3
+ ldrb r0, [r6]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r4, _080208D4 @ =gUnknown_03004290
+ strb r2, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ movs r0, 0x3
+ strb r0, [r4, 0x3]
+ ldrb r0, [r6]
+ movs r1, 0x64
+ mov r8, r1
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r7, _080208CC @ =gPlayerParty
+ adds r0, r7
+ movs r1, 0x38
+ bl GetMonData
+ strb r0, [r4, 0x4]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r4, 0x5]
+ bl b_movescr_stack_push_cursor
+ ldr r2, _080208D8 @ =gUnknown_03004324
+ ldr r1, _080208DC @ =gBitTable
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080208E0 @ =gUnknown_02024C10
+ ldr r0, _080208E4 @ =gUnknown_081D8EF3
+ str r0, [r1]
+ ldr r4, _080208E8 @ =gUnknown_02024BEC
+ ldr r2, _080208BC @ =gUnknown_02024260
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r0, r2, 0x2
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r2, 0x3
+ adds r1, r2
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r3, r0
+ str r3, [r4]
+ ldrb r0, [r6]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ movs r1, 0
+ bl AdjustFriendship
+ ldr r0, _080208C4 @ =gUnknown_02024A6A
+ ldrb r1, [r6]
+ ldrh r0, [r0]
+ cmp r0, r1
+ bne _080207EC
+ ldr r4, _080208EC @ =gBattleMons
+ ldrh r0, [r4, 0x28]
+ cmp r0, 0
+ beq _080207EC
+ mov r0, r8
+ muls r0, r1
+ adds r0, r7
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r4, 0
+ adds r1, 0x2A
+ strb r0, [r1]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r4, 0x28]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r4, 0x2C]
+ ldrb r0, [r6]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ movs r1, 0x3B
+ bl GetMonData
+ strh r0, [r4, 0x2]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0x3C
+ bl GetMonData
+ strh r0, [r4, 0x4]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldrb r0, [r6]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7
+ movs r1, 0x3D
+ bl GetMonData
+ strh r0, [r4, 0x6]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0x3E
+ bl GetMonData
+ strh r0, [r4, 0x8]
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0x3F
+ bl GetMonData
+ strh r0, [r4, 0xA]
+_080207EC:
+ ldr r0, _080208C4 @ =gUnknown_02024A6A
+ ldr r1, _080208B4 @ =0x02000000
+ ldr r3, _080208C8 @ =0x00016018
+ adds r7, r1, r3
+ ldrb r2, [r7]
+ ldrh r0, [r0, 0x4]
+ cmp r0, r2
+ bne _080208F6
+ ldr r6, _080208EC @ =gBattleMons
+ movs r0, 0xD8
+ adds r0, r6
+ mov r8, r0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _080208F6
+ ldr r0, _080208C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080208F6
+ movs r5, 0x64
+ adds r0, r2, 0
+ muls r0, r5
+ ldr r4, _080208CC @ =gPlayerParty
+ adds r0, r4
+ movs r1, 0x38
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xDA
+ strb r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ mov r1, r8
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xDC
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3B
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xB2
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3C
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xB4
+ strh r0, [r1]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3D
+ bl GetMonData
+ movs r2, 0xB6
+ adds r2, r6
+ mov r8, r2
+ strh r0, [r2]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3D
+ bl GetMonData
+ mov r3, r8
+ strh r0, [r3]
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x3E
+ bl GetMonData
+ adds r1, r6, 0
+ adds r1, 0xB8
+ strh r0, [r1]
+ b _080208F6
+ .align 2, 0
+_080208AC: .4byte gUnknown_02024A64
+_080208B0: .4byte gUnknown_02024A60
+_080208B4: .4byte 0x02000000
+_080208B8: .4byte 0x000160a2
+_080208BC: .4byte gUnknown_02024260
+_080208C0: .4byte gUnknown_020239F8
+_080208C4: .4byte gUnknown_02024A6A
+_080208C8: .4byte 0x00016018
+_080208CC: .4byte gPlayerParty
+_080208D0: .4byte gUnknown_030041C0
+_080208D4: .4byte gUnknown_03004290
+_080208D8: .4byte gUnknown_03004324
+_080208DC: .4byte gBitTable
+_080208E0: .4byte gUnknown_02024C10
+_080208E4: .4byte gUnknown_081D8EF3
+_080208E8: .4byte gUnknown_02024BEC
+_080208EC: .4byte gBattleMons
+_080208F0:
+ ldr r1, _08020904 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+_080208F6:
+ ldr r0, _08020908 @ =0x02000000
+ ldr r1, _0802090C @ =0x0001600f
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+ b _08020996
+ .align 2, 0
+_08020904: .4byte gUnknown_02024BEC
+_08020908: .4byte 0x02000000
+_0802090C: .4byte 0x0001600f
+_08020910:
+ ldr r0, _08020924 @ =gUnknown_02024BEC
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08020930
+ ldr r0, _08020928 @ =0x02000000
+ ldr r2, _0802092C @ =0x0001600f
+ adds r0, r2
+ movs r1, 0x3
+ strb r1, [r0]
+ b _08020996
+ .align 2, 0
+_08020924: .4byte gUnknown_02024BEC
+_08020928: .4byte 0x02000000
+_0802092C: .4byte 0x0001600f
+_08020930:
+ ldr r2, _08020950 @ =0x02000000
+ ldr r3, _08020954 @ =0x00016018
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _0802095C
+ ldr r0, _08020958 @ =0x0001600f
+ adds r1, r2, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08020996
+ .align 2, 0
+_08020950: .4byte 0x02000000
+_08020954: .4byte 0x00016018
+_08020958: .4byte 0x0001600f
+_0802095C:
+ ldr r3, _08020968 @ =0x0001600f
+ adds r1, r2, r3
+ movs r0, 0x6
+ strb r0, [r1]
+ b _08020996
+ .align 2, 0
+_08020968: .4byte 0x0001600f
+_0802096C:
+ ldr r0, _080209A4 @ =gUnknown_02024A64
+ ldr r5, [r0]
+ cmp r5, 0
+ bne _08020996
+ ldr r4, _080209A8 @ =gBattleMons
+ ldr r2, _080209AC @ =gUnknown_02024C09
+ ldrb r0, [r2]
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r4
+ movs r3, 0
+ strh r5, [r0, 0x2E]
+ ldrb r0, [r2]
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ strb r3, [r0]
+ ldr r1, _080209B0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08020996:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080209A4: .4byte gUnknown_02024A64
+_080209A8: .4byte gBattleMons
+_080209AC: .4byte gUnknown_02024C09
+_080209B0: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020004
+
+ thumb_func_start sub_80209B4
+sub_80209B4: @ 80209B4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r0, _08020AF0 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080209C6
+ b _08020B46
+_080209C6:
+ movs r5, 0
+_080209C8:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08020AF4 @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080209F8
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080209F8
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r0, r6, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+_080209F8:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080209C8
+ cmp r6, 0
+ bne _08020A0C
+ ldr r0, _08020AF8 @ =gUnknown_02024D26
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_08020A0C:
+ movs r6, 0
+ movs r5, 0
+_08020A10:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08020AFC @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08020A40
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08020A40
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r0, r6, r0
+ lsls r0, 16
+ lsrs r6, r0, 16
+_08020A40:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08020A10
+ ldr r2, _08020AF8 @ =gUnknown_02024D26
+ cmp r6, 0
+ bne _08020A54
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08020A54:
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08020B3E
+ ldr r2, _08020B00 @ =gUnknown_020239F8
+ ldrh r1, [r2]
+ movs r0, 0x2
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _08020B3E
+ movs r2, 0
+ movs r5, 0
+ ldr r0, _08020B04 @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ mov r12, r0
+ ldr r7, _08020B08 @ =gUnknown_02024C10
+ cmp r2, r3
+ bge _08020AA0
+ ldr r0, _08020B0C @ =gUnknown_02024C6C
+ movs r1, 0x80
+ lsls r1, 21
+ ldr r6, [r0]
+ adds r4, r3, 0
+ ldr r3, _08020B10 @ =gUnknown_02024D68
+_08020A84:
+ adds r0, r1, 0
+ lsls r0, r5
+ ands r0, r6
+ cmp r0, 0
+ beq _08020A98
+ ldrb r0, [r3]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08020A98
+ adds r2, 0x1
+_08020A98:
+ adds r3, 0x28
+ adds r5, 0x2
+ cmp r5, r4
+ blt _08020A84
+_08020AA0:
+ movs r4, 0
+ movs r5, 0x1
+ mov r0, r12
+ ldrb r3, [r0]
+ cmp r5, r3
+ bge _08020ADA
+ ldr r0, _08020B0C @ =gUnknown_02024C6C
+ movs r1, 0x80
+ lsls r1, 21
+ mov r12, r1
+ ldr r1, [r0]
+ ldr r0, _08020B10 @ =gUnknown_02024D68
+ adds r6, r3, 0
+ adds r3, r0, 0
+ adds r3, 0x14
+_08020ABE:
+ mov r0, r12
+ lsls r0, r5
+ ands r0, r1
+ cmp r0, 0
+ beq _08020AD2
+ ldrb r0, [r3]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08020AD2
+ adds r4, 0x1
+_08020AD2:
+ adds r3, 0x28
+ adds r5, 0x2
+ cmp r5, r6
+ blt _08020ABE
+_08020ADA:
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08020B14
+ adds r0, r4, r2
+ cmp r0, 0x1
+ bgt _08020B1C
+ b _08020B36
+ .align 2, 0
+_08020AF0: .4byte gUnknown_02024A64
+_08020AF4: .4byte gPlayerParty
+_08020AF8: .4byte gUnknown_02024D26
+_08020AFC: .4byte gEnemyParty
+_08020B00: .4byte gUnknown_020239F8
+_08020B04: .4byte gUnknown_02024A68
+_08020B08: .4byte gUnknown_02024C10
+_08020B0C: .4byte gUnknown_02024C6C
+_08020B10: .4byte gUnknown_02024D68
+_08020B14:
+ cmp r4, 0
+ beq _08020B36
+ cmp r2, 0
+ beq _08020B36
+_08020B1C:
+ ldr r2, [r7]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r7]
+ b _08020B46
+_08020B36:
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ b _08020B46
+_08020B3E:
+ ldr r1, _08020B50 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08020B46:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020B50: .4byte gUnknown_02024C10
+ thumb_func_end sub_80209B4
+
+ thumb_func_start sub_8020B54
+sub_8020B54: @ 8020B54
+ ldr r1, _08020B80 @ =gUnknown_02024C68
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08020B84 @ =0x02000000
+ ldr r1, _08020B88 @ =0x0001601f
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08020B8C @ =gCritMultiplier
+ strb r1, [r0]
+ ldr r0, _08020B90 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x3]
+ strb r2, [r0, 0x6]
+ ldr r2, _08020B94 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ subs r1, 0x42
+ ands r0, r1
+ ldr r1, _08020B98 @ =0xffffbfff
+ ands r0, r1
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08020B80: .4byte gUnknown_02024C68
+_08020B84: .4byte 0x02000000
+_08020B88: .4byte 0x0001601f
+_08020B8C: .4byte gCritMultiplier
+_08020B90: .4byte gUnknown_02024D1E
+_08020B94: .4byte gUnknown_02024C6C
+_08020B98: .4byte 0xffffbfff
+ thumb_func_end sub_8020B54
+
+ thumb_func_start atk25_resetflags
+atk25_resetflags: @ 8020B9C
+ push {lr}
+ bl sub_8020B54
+ ldr r1, _08020BB0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020BB0: .4byte gUnknown_02024C10
+ thumb_func_end atk25_resetflags
+
+ thumb_func_start sub_8020BB4
+sub_8020BB4: @ 8020BB4
+ ldr r3, _08020BC4 @ =gUnknown_02024C0E
+ ldr r2, _08020BC8 @ =gUnknown_02024C10
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x1]
+ strb r1, [r3]
+ adds r0, 0x2
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+_08020BC4: .4byte gUnknown_02024C0E
+_08020BC8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020BB4
+
+ thumb_func_start atk27_cmd27
+atk27_cmd27: @ 8020BCC
+ push {lr}
+ ldr r1, _08020BE8 @ =gUnknown_02024C0E
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08020BF0
+ ldr r1, _08020BEC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08020C0A
+ .align 2, 0
+_08020BE8: .4byte gUnknown_02024C0E
+_08020BEC: .4byte gUnknown_02024C10
+_08020BF0:
+ ldr r3, _08020C10 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+_08020C0A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08020C10: .4byte gUnknown_02024C10
+ thumb_func_end atk27_cmd27
+
+ thumb_func_start sub_8020C14
+sub_8020C14: @ 8020C14
+ ldr r3, _08020C30 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ str r1, [r3]
+ bx lr
+ .align 2, 0
+_08020C30: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020C14
+
+ thumb_func_start atk29_jumpifbyte
+atk29_jumpifbyte: @ 8020C34
+ push {r4-r6,lr}
+ ldr r3, _08020C78 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r6, [r1, 0x1]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x6]
+ ldrb r2, [r1, 0x7]
+ ldrb r0, [r1, 0x8]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x9]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 24
+ adds r2, r0
+ adds r1, 0xB
+ str r1, [r3]
+ cmp r6, 0x5
+ bhi _08020CCC
+ lsls r0, r6, 2
+ ldr r1, _08020C7C @ =_08020C80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020C78: .4byte gUnknown_02024C10
+_08020C7C: .4byte _08020C80
+ .align 2, 0
+_08020C80:
+ .4byte _08020C98
+ .4byte _08020CA0
+ .4byte _08020CA8
+ .4byte _08020CB0
+ .4byte _08020CB8
+ .4byte _08020CC2
+_08020C98:
+ ldrb r0, [r5]
+ cmp r0, r4
+ bne _08020CCC
+ b _08020CCA
+_08020CA0:
+ ldrb r0, [r5]
+ cmp r0, r4
+ beq _08020CCC
+ b _08020CCA
+_08020CA8:
+ ldrb r0, [r5]
+ cmp r0, r4
+ bls _08020CCC
+ b _08020CCA
+_08020CB0:
+ ldrb r0, [r5]
+ cmp r0, r4
+ bcs _08020CCC
+ b _08020CCA
+_08020CB8:
+ ldrb r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ beq _08020CCC
+ b _08020CCA
+_08020CC2:
+ ldrb r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ bne _08020CCC
+_08020CCA:
+ str r2, [r3]
+_08020CCC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk29_jumpifbyte
+
+ thumb_func_start sub_8020CD4
+sub_8020CD4: @ 8020CD4
+ push {r4-r6,lr}
+ ldr r3, _08020D20 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r6, [r1, 0x1]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x6]
+ ldrb r0, [r1, 0x7]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r2, [r1, 0x8]
+ ldrb r0, [r1, 0x9]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xA]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 24
+ adds r2, r0
+ adds r1, 0xC
+ str r1, [r3]
+ cmp r6, 0x5
+ bhi _08020D74
+ lsls r0, r6, 2
+ ldr r1, _08020D24 @ =_08020D28
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020D20: .4byte gUnknown_02024C10
+_08020D24: .4byte _08020D28
+ .align 2, 0
+_08020D28:
+ .4byte _08020D40
+ .4byte _08020D48
+ .4byte _08020D50
+ .4byte _08020D58
+ .4byte _08020D60
+ .4byte _08020D6A
+_08020D40:
+ ldrh r0, [r5]
+ cmp r0, r4
+ bne _08020D74
+ b _08020D72
+_08020D48:
+ ldrh r0, [r5]
+ cmp r0, r4
+ beq _08020D74
+ b _08020D72
+_08020D50:
+ ldrh r0, [r5]
+ cmp r0, r4
+ bls _08020D74
+ b _08020D72
+_08020D58:
+ ldrh r0, [r5]
+ cmp r0, r4
+ bcs _08020D74
+ b _08020D72
+_08020D60:
+ ldrh r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ beq _08020D74
+ b _08020D72
+_08020D6A:
+ ldrh r0, [r5]
+ ands r4, r0
+ cmp r4, 0
+ bne _08020D74
+_08020D72:
+ str r2, [r3]
+_08020D74:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020CD4
+
+ thumb_func_start sub_8020D7C
+sub_8020D7C: @ 8020D7C
+ push {r4-r6,lr}
+ ldr r3, _08020DD4 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r6, [r1, 0x1]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x6]
+ ldrb r0, [r1, 0x7]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0x9]
+ lsls r0, 24
+ orrs r4, r0
+ ldrb r2, [r1, 0xA]
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ adds r2, r0
+ adds r1, 0xE
+ str r1, [r3]
+ cmp r6, 0x5
+ bhi _08020E28
+ lsls r0, r6, 2
+ ldr r1, _08020DD8 @ =_08020DDC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08020DD4: .4byte gUnknown_02024C10
+_08020DD8: .4byte _08020DDC
+ .align 2, 0
+_08020DDC:
+ .4byte _08020DF4
+ .4byte _08020DFC
+ .4byte _08020E04
+ .4byte _08020E0C
+ .4byte _08020E14
+ .4byte _08020E1E
+_08020DF4:
+ ldr r0, [r5]
+ cmp r0, r4
+ bne _08020E28
+ b _08020E26
+_08020DFC:
+ ldr r0, [r5]
+ cmp r0, r4
+ beq _08020E28
+ b _08020E26
+_08020E04:
+ ldr r0, [r5]
+ cmp r0, r4
+ bls _08020E28
+ b _08020E26
+_08020E0C:
+ ldr r0, [r5]
+ cmp r0, r4
+ bcs _08020E28
+ b _08020E26
+_08020E14:
+ ldr r0, [r5]
+ ands r0, r4
+ cmp r0, 0
+ beq _08020E28
+ b _08020E26
+_08020E1E:
+ ldr r0, [r5]
+ ands r0, r4
+ cmp r0, 0
+ bne _08020E28
+_08020E26:
+ str r2, [r3]
+_08020E28:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020D7C
+
+ thumb_func_start sub_8020E30
+sub_8020E30: @ 8020E30
+ push {r4-r7,lr}
+ ldr r2, _08020E88 @ =gUnknown_02024C10
+ ldr r3, [r2]
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 24
+ adds r5, r1, r0
+ ldrb r1, [r3, 0x5]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 24
+ adds r4, r1, r0
+ ldrb r6, [r3, 0x9]
+ ldrb r1, [r3, 0xA]
+ ldrb r0, [r3, 0xB]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0xC]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0xD]
+ lsls r0, 24
+ adds r1, r0
+ mov r12, r1
+ movs r1, 0
+ cmp r1, r6
+ bcs _08020EA8
+ ldrb r0, [r5]
+ ldrb r7, [r4]
+ cmp r0, r7
+ beq _08020E8C
+ adds r0, r3, 0
+ b _08020EA4
+ .align 2, 0
+_08020E88: .4byte gUnknown_02024C10
+_08020E8C:
+ adds r5, 0x1
+ adds r4, 0x1
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r6
+ bcs _08020EA8
+ ldrb r0, [r5]
+ ldrb r3, [r4]
+ cmp r0, r3
+ beq _08020E8C
+ ldr r0, [r2]
+_08020EA4:
+ adds r0, 0xE
+ str r0, [r2]
+_08020EA8:
+ cmp r1, r6
+ bne _08020EB0
+ mov r7, r12
+ str r7, [r2]
+_08020EB0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020E30
+
+ thumb_func_start sub_8020EB8
+sub_8020EB8: @ 8020EB8
+ push {r4-r7,lr}
+ movs r7, 0
+ ldr r3, _08020F2C @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r2, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 24
+ adds r4, r2, r0
+ ldrb r6, [r1, 0x9]
+ ldrb r2, [r1, 0xA]
+ ldrb r0, [r1, 0xB]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xD]
+ lsls r0, 24
+ adds r2, r0
+ mov r12, r2
+ movs r1, 0
+ cmp r7, r6
+ bcs _08020F22
+_08020F06:
+ ldrb r0, [r5]
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _08020F14
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_08020F14:
+ adds r5, 0x1
+ adds r4, 0x1
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, r6
+ bcc _08020F06
+_08020F22:
+ cmp r7, r6
+ beq _08020F30
+ mov r0, r12
+ b _08020F34
+ .align 2, 0
+_08020F2C: .4byte gUnknown_02024C10
+_08020F30:
+ ldr r0, [r3]
+ adds r0, 0xE
+_08020F34:
+ str r0, [r3]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8020EB8
+
+ thumb_func_start sub_8020F3C
+sub_8020F3C: @ 8020F3C
+ ldr r3, _08020F60 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08020F60: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020F3C
+
+ thumb_func_start sub_8020F64
+sub_8020F64: @ 8020F64
+ ldr r3, _08020F8C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ ldrb r2, [r1]
+ adds r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08020F8C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020F64
+
+ thumb_func_start sub_8020F90
+sub_8020F90: @ 8020F90
+ ldr r3, _08020FB8 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r2, [r2, 0x5]
+ subs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08020FB8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8020F90
+
+ thumb_func_start atk31_copyarray
+atk31_copyarray: @ 8020FBC
+ push {r4-r6,lr}
+ ldr r3, _0802100C @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ adds r6, r2, r0
+ ldrb r2, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0x9]
+ movs r2, 0
+ cmp r2, r4
+ bge _08021000
+_08020FF2:
+ adds r0, r6, r2
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, r4
+ blt _08020FF2
+_08021000:
+ ldr r0, [r3]
+ adds r0, 0xA
+ str r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802100C: .4byte gUnknown_02024C10
+ thumb_func_end atk31_copyarray
+
+ thumb_func_start atk32_memcpy_with_offset
+atk32_memcpy_with_offset: @ 8021010
+ push {r4-r7,lr}
+ ldr r3, _08021078 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ adds r7, r2, r0
+ ldrb r2, [r1, 0x5]
+ ldrb r0, [r1, 0x6]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0x7]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0x8]
+ lsls r0, 24
+ adds r6, r2, r0
+ ldrb r2, [r1, 0x9]
+ ldrb r0, [r1, 0xA]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r1, 0xB]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r1, 0xC]
+ lsls r0, 24
+ adds r5, r2, r0
+ ldrb r4, [r1, 0xD]
+ movs r2, 0
+ cmp r2, r4
+ bge _0802106C
+_0802105A:
+ adds r0, r7, r2
+ ldrb r1, [r5]
+ adds r1, r2, r1
+ adds r1, r6, r1
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, r4
+ blt _0802105A
+_0802106C:
+ ldr r0, [r3]
+ adds r0, 0xE
+ str r0, [r3]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021078: .4byte gUnknown_02024C10
+ thumb_func_end atk32_memcpy_with_offset
+
+ thumb_func_start sub_802107C
+sub_802107C: @ 802107C
+ ldr r3, _080210A4 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r2, [r2, 0x5]
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_080210A4: .4byte gUnknown_02024C10
+ thumb_func_end sub_802107C
+
+ thumb_func_start atk34_orhalfword
+atk34_orhalfword: @ 80210A8
+ push {r4,lr}
+ ldr r4, _080210DC @ =gUnknown_02024C10
+ ldr r3, [r4]
+ ldrb r2, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ adds r2, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 16
+ adds r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 24
+ adds r2, r0
+ ldrb r1, [r3, 0x5]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2]
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080210DC: .4byte gUnknown_02024C10
+ thumb_func_end atk34_orhalfword
+
+ thumb_func_start atk35_orword
+atk35_orword: @ 80210E0
+ push {r4,lr}
+ ldr r4, _08021120 @ =gUnknown_02024C10
+ ldr r2, [r4]
+ ldrb r3, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r3, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r3, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r3, r0
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ adds r1, r0
+ ldr r0, [r3]
+ orrs r0, r1
+ str r0, [r3]
+ ldr r0, [r4]
+ adds r0, 0x9
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021120: .4byte gUnknown_02024C10
+ thumb_func_end atk35_orword
+
+ thumb_func_start sub_8021124
+sub_8021124: @ 8021124
+ ldr r3, _0802114C @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r2, [r2, 0x5]
+ ldrb r0, [r1]
+ bics r0, r2
+ strb r0, [r1]
+ ldr r0, [r3]
+ adds r0, 0x6
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_0802114C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8021124
+
+ thumb_func_start atk37_bichalfword
+atk37_bichalfword: @ 8021150
+ push {r4,lr}
+ ldr r4, _08021184 @ =gUnknown_02024C10
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ ldrb r0, [r3, 0x2]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r3, 0x3]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 24
+ adds r1, r0
+ ldrb r2, [r3, 0x5]
+ ldrb r0, [r3, 0x6]
+ lsls r0, 8
+ orrs r2, r0
+ ldrh r0, [r1]
+ bics r0, r2
+ strh r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021184: .4byte gUnknown_02024C10
+ thumb_func_end atk37_bichalfword
+
+ thumb_func_start atk38_bicword
+atk38_bicword: @ 8021188
+ push {r4,lr}
+ ldr r4, _080211C8 @ =gUnknown_02024C10
+ ldr r2, [r4]
+ ldrb r3, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ adds r3, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ adds r3, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ adds r3, r0
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ adds r1, r0
+ ldr r0, [r3]
+ bics r0, r1
+ str r0, [r3]
+ ldr r0, [r4]
+ adds r0, 0x9
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080211C8: .4byte gUnknown_02024C10
+ thumb_func_end atk38_bicword
+
+ thumb_func_start atk39_pause
+atk39_pause: @ 80211CC
+ push {r4,r5,lr}
+ ldr r0, _08021200 @ =gUnknown_02024A64
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _080211F8
+ ldr r5, _08021204 @ =gUnknown_02024C10
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r3, _08021208 @ =gUnknown_02024D18
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r1
+ bcc _080211F8
+ strh r4, [r3]
+ adds r0, r2, 0x3
+ str r0, [r5]
+_080211F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021200: .4byte gUnknown_02024A64
+_08021204: .4byte gUnknown_02024C10
+_08021208: .4byte gUnknown_02024D18
+ thumb_func_end atk39_pause
+
+ thumb_func_start sub_802120C
+sub_802120C: @ 802120C
+ push {lr}
+ ldr r0, _08021224 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802121E
+ ldr r1, _08021228 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0802121E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021224: .4byte gUnknown_02024A64
+_08021228: .4byte gUnknown_02024C10
+ thumb_func_end sub_802120C
+
+ thumb_func_start atk3B_8022C68
+atk3B_8022C68: @ 802122C
+ push {lr}
+ ldr r0, _08021240 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _0802124C
+ ldr r0, _08021244 @ =gUnknown_02024A60
+ ldr r1, _08021248 @ =gUnknown_02024C08
+ b _08021250
+ .align 2, 0
+_08021240: .4byte gUnknown_02024C10
+_08021244: .4byte gUnknown_02024A60
+_08021248: .4byte gUnknown_02024C08
+_0802124C:
+ ldr r0, _08021274 @ =gUnknown_02024A60
+ ldr r1, _08021278 @ =gUnknown_02024C07
+_08021250:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldr r0, _0802127C @ =gUnknown_02024BEC
+ ldrh r1, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
+ ldr r0, _08021274 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08021280 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08021274: .4byte gUnknown_02024A60
+_08021278: .4byte gUnknown_02024C07
+_0802127C: .4byte gUnknown_02024BEC
+_08021280: .4byte gUnknown_02024C10
+ thumb_func_end atk3B_8022C68
+
+ thumb_func_start atk3C_return
+atk3C_return: @ 8021284
+ push {lr}
+ bl b_movescr_stack_pop_cursor
+ pop {r0}
+ bx r0
+ thumb_func_end atk3C_return
+
+ thumb_func_start sub_8021290
+sub_8021290: @ 8021290
+ ldr r0, _080212A4 @ =gUnknown_02024C68
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _080212A8 @ =gUnknown_02024A60
+ strb r1, [r0]
+ ldr r1, _080212AC @ =gUnknown_02024A7F
+ movs r0, 0xB
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080212A4: .4byte gUnknown_02024C68
+_080212A8: .4byte gUnknown_02024A60
+_080212AC: .4byte gUnknown_02024A7F
+ thumb_func_end sub_8021290
+
+ thumb_func_start sub_80212B0
+sub_80212B0: @ 80212B0
+ ldr r1, _080212C0 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _080212C4 @ =gUnknown_02024A7F
+ movs r0, 0xB
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080212C0: .4byte gUnknown_02024A60
+_080212C4: .4byte gUnknown_02024A7F
+ thumb_func_end sub_80212B0
+
+ thumb_func_start atk3F_end3
+atk3F_end3: @ 80212C8
+ push {lr}
+ bl b_movescr_stack_pop_cursor
+ ldr r2, _080212F0 @ =0x02017140
+ adds r1, r2, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080212DE
+ subs r0, 0x1
+ strb r0, [r1]
+_080212DE:
+ ldr r0, _080212F4 @ =gUnknown_030042D4
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080212F0: .4byte 0x02017140
+_080212F4: .4byte gUnknown_030042D4
+ thumb_func_end atk3F_end3
+
+ thumb_func_start atk41_call
+atk41_call: @ 80212F8
+ push {r4,lr}
+ ldr r4, _08021324 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x5
+ bl b_movescr_stack_push
+ 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
+_08021324: .4byte gUnknown_02024C10
+ thumb_func_end atk41_call
+
+ thumb_func_start atk42_jumpiftype2
+atk42_jumpiftype2: @ 8021328
+ push {r4,lr}
+ ldr r4, _08021370 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [r4]
+ ldr r2, _08021374 @ =gBattleMons
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r2, [r3, 0x2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ beq _08021356
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _08021378
+_08021356:
+ 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 _0802137C
+ .align 2, 0
+_08021370: .4byte gUnknown_02024C10
+_08021374: .4byte gBattleMons
+_08021378:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0802137C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atk42_jumpiftype2
+
+ thumb_func_start sub_8021384
+sub_8021384: @ 8021384
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _080213BC @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x1]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080213C0
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _080213C6
+ .align 2, 0
+_080213BC: .4byte gUnknown_02024C10
+_080213C0:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_080213C6:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8021384
+
+ thumb_func_start sub_80213D0
+sub_80213D0: @ 80213D0
+ ldr r1, _080213E4 @ =0x02000000
+ ldr r0, _080213E8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r2, _080213EC @ =0x00016060
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080213E4: .4byte 0x02000000
+_080213E8: .4byte gUnknown_02024C07
+_080213EC: .4byte 0x00016060
+ thumb_func_end sub_80213D0
+
+ thumb_func_start atk46_cmd46
+atk46_cmd46: @ 80213F0
+ push {r4-r6,lr}
+ ldr r5, _08021444 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r6, _08021448 @ =gUnknown_02024A60
+ strb r0, [r6]
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ adds r3, r1, r0
+ ldrb r4, [r2, 0x2]
+ adds r0, r4, 0
+ cmp r0, 0x1
+ beq _08021426
+ cmp r0, 0x11
+ beq _08021426
+ cmp r0, 0x2
+ bne _0802144C
+_08021426:
+ ldr r4, _08021444 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x2]
+ ldrh r2, [r3]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldr r0, _08021448 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ b _080214AE
+ .align 2, 0
+_08021444: .4byte gUnknown_02024C10
+_08021448: .4byte gUnknown_02024A60
+_0802144C:
+ ldr r0, _08021464 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802146C
+ adds r0, r2, 0x7
+ bl b_movescr_stack_push
+ ldr r0, _08021468 @ =gUnknown_081D8EEF
+ b _080214AC
+ .align 2, 0
+_08021464: .4byte gUnknown_02024C6C
+_08021468: .4byte gUnknown_081D8EEF
+_0802146C:
+ adds r0, r4, 0
+ subs r0, 0xA
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08021498
+ ldr r1, _08021490 @ =gUnknown_02024C98
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021494 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021498
+ adds r0, r2, 0x7
+ b _080214AC
+ .align 2, 0
+_08021490: .4byte gUnknown_02024C98
+_08021494: .4byte 0x000400c0
+_08021498:
+ ldrb r1, [r2, 0x2]
+ ldrh r2, [r3]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldrb r0, [r6]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x7
+_080214AC:
+ str r0, [r5]
+_080214AE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end atk46_cmd46
+
+ thumb_func_start sub_80214B4
+sub_80214B4: @ 80214B4
+ push {r4-r7,lr}
+ ldr r6, _0802151C @ =gUnknown_02024C10
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r7, _08021520 @ =gUnknown_02024A60
+ strb r0, [r7]
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ adds r3, r1, r0
+ ldrb r1, [r2, 0x6]
+ ldrb r0, [r2, 0x7]
+ lsls r0, 8
+ adds r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 16
+ adds r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 24
+ adds r4, r1, r0
+ ldrb r5, [r3]
+ adds r0, r5, 0
+ cmp r0, 0x1
+ beq _080214FE
+ cmp r0, 0x11
+ beq _080214FE
+ cmp r0, 0x2
+ bne _08021524
+_080214FE:
+ ldrb r1, [r3]
+ ldrh r2, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldr r0, _08021520 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802151C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+ b _0802157A
+ .align 2, 0
+_0802151C: .4byte gUnknown_02024C10
+_08021520: .4byte gUnknown_02024A60
+_08021524:
+ ldr r0, _08021534 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08021538
+ adds r0, r2, 0
+ b _08021576
+ .align 2, 0
+_08021534: .4byte gUnknown_02024C6C
+_08021538:
+ adds r0, r5, 0
+ subs r0, 0xA
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08021564
+ ldr r1, _0802155C @ =gUnknown_02024C98
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021560 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021564
+ adds r0, r2, 0
+ b _08021576
+ .align 2, 0
+_0802155C: .4byte gUnknown_02024C98
+_08021560: .4byte 0x000400c0
+_08021564:
+ ldrb r1, [r3]
+ ldrh r2, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r6]
+_08021576:
+ adds r0, 0xA
+ str r0, [r6]
+_0802157A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80214B4
+
+ thumb_func_start atk47
+atk47: @ 8021580
+ push {r4,lr}
+ movs r3, 0
+ ldr r0, _080215A0 @ =0x02000000
+ ldr r2, _080215A4 @ =0x0001601e
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ movs r2, 0xF0
+ ands r2, r1
+ adds r4, r0, 0
+ cmp r2, 0x20
+ beq _080215B6
+ cmp r2, 0x20
+ bgt _080215A8
+ cmp r2, 0x10
+ beq _080215B2
+ b _080215C0
+ .align 2, 0
+_080215A0: .4byte 0x02000000
+_080215A4: .4byte 0x0001601e
+_080215A8:
+ cmp r2, 0x90
+ beq _080215BA
+ cmp r2, 0xA0
+ beq _080215BE
+ b _080215C0
+_080215B2:
+ movs r3, 0xF
+ b _080215C0
+_080215B6:
+ movs r3, 0x27
+ b _080215C0
+_080215BA:
+ movs r3, 0x16
+ b _080215C0
+_080215BE:
+ movs r3, 0x2E
+_080215C0:
+ ldr r1, _080215EC @ =0x0001601e
+ adds r0, r4, r1
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ adds r0, r3, r0
+ subs r0, 0x1
+ ldr r2, _080215F0 @ =0x000160a4
+ adds r1, r4, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldr r1, _080215F4 @ =0x000160a5
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r1, _080215F8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080215EC: .4byte 0x0001601e
+_080215F0: .4byte 0x000160a4
+_080215F4: .4byte 0x000160a5
+_080215F8: .4byte gUnknown_02024C10
+ thumb_func_end atk47
+
+ thumb_func_start atk48_playstatchangeanimation
+atk48_playstatchangeanimation: @ 80215FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r7, 0
+ movs r0, 0
+ mov r8, r0
+ movs r3, 0
+ ldr r5, _08021670 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ str r3, [sp]
+ bl sub_8015150
+ ldr r2, _08021674 @ =gUnknown_02024A60
+ strb r0, [r2]
+ ldr r0, [r5]
+ ldrb r4, [r0, 0x2]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x1
+ ands r0, r1
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _08021710
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0x15
+ cmp r0, 0
+ beq _0802163C
+ movs r1, 0x2D
+_0802163C:
+ cmp r4, 0
+ beq _080216E4
+ movs r0, 0x1
+ mov r10, r0
+ ldr r0, _08021678 @ =gUnknown_02024A98
+ mov r9, r0
+ lsls r5, r1, 16
+_0802164A:
+ adds r0, r4, 0
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ beq _080216D6
+ ldr r0, _08021670 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802167C
+ ldr r0, _08021674 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7, r0
+ b _080216C4
+ .align 2, 0
+_08021670: .4byte gUnknown_02024C10
+_08021674: .4byte gUnknown_02024A60
+_08021678: .4byte gUnknown_02024A98
+_0802167C:
+ ldr r6, _08021700 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ str r3, [sp]
+ bl battle_get_per_side_status
+ mov r1, r10
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08021704 @ =gUnknown_02024C80
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ ldr r3, [sp]
+ cmp r0, 0
+ bne _080216D6
+ ldr r0, _08021708 @ =gBattleMons
+ ldrb r2, [r6]
+ movs r1, 0x58
+ muls r2, r1
+ adds r0, r2, r0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1D
+ beq _080216D6
+ cmp r0, 0x49
+ beq _080216D6
+ cmp r0, 0x33
+ bne _080216BA
+ cmp r7, 0x6
+ beq _080216D6
+_080216BA:
+ cmp r0, 0x34
+ bne _080216C2
+ cmp r7, 0x1
+ beq _080216D6
+_080216C2:
+ adds r0, r7, r2
+_080216C4:
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ ble _080216D6
+ lsrs r0, r5, 16
+ mov r8, r0
+ adds r3, 0x1
+_080216D6:
+ lsrs r4, 1
+ movs r1, 0x80
+ lsls r1, 9
+ adds r5, r1
+ adds r7, 0x1
+ cmp r4, 0
+ bne _0802164A
+_080216E4:
+ ldr r0, _0802170C @ =gUnknown_02024C10
+ mov r9, r0
+ cmp r3, 0x1
+ ble _08021772
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0x39
+ mov r8, r1
+ cmp r0, 0
+ beq _08021772
+ movs r0, 0x3A
+ b _08021770
+ .align 2, 0
+_08021700: .4byte gUnknown_02024A60
+_08021704: .4byte gUnknown_02024C80
+_08021708: .4byte gBattleMons
+_0802170C: .4byte gUnknown_02024C10
+_08021710:
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0xE
+ cmp r0, 0
+ beq _0802171C
+ movs r1, 0x26
+_0802171C:
+ mov r9, r5
+ cmp r4, 0
+ beq _08021758
+ ldr r6, _0802178C @ =gUnknown_02024A98
+ adds r5, r2, 0
+ lsls r2, r1, 16
+_08021728:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0802174A
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r7, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xB
+ bgt _0802174A
+ lsrs r1, r2, 16
+ mov r8, r1
+ adds r3, 0x1
+_0802174A:
+ lsrs r4, 1
+ movs r0, 0x80
+ lsls r0, 9
+ adds r2, r0
+ adds r7, 0x1
+ cmp r4, 0
+ bne _08021728
+_08021758:
+ cmp r3, 0x1
+ ble _08021772
+ mov r1, r9
+ ldr r0, [r1]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x2
+ ands r0, r1
+ movs r1, 0x37
+ mov r8, r1
+ cmp r0, 0
+ beq _08021772
+ movs r0, 0x38
+_08021770:
+ mov r8, r0
+_08021772:
+ mov r1, r9
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08021790
+ cmp r3, 0x1
+ bgt _08021790
+ adds r0, r2, 0x4
+ mov r1, r9
+ b _080217E6
+ .align 2, 0
+_0802178C: .4byte gUnknown_02024A98
+_08021790:
+ cmp r3, 0
+ beq _080217E0
+ ldr r0, _080217D0 @ =0x02000000
+ ldr r1, _080217D4 @ =0x000160dc
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _080217E0
+ movs r0, 0
+ movs r1, 0x1
+ mov r2, r8
+ str r3, [sp]
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldr r0, _080217D8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _080217DC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x4
+ ands r0, r1
+ ldr r3, [sp]
+ cmp r0, 0
+ beq _080217CC
+ cmp r3, 0x1
+ ble _080217CC
+ movs r0, 0x1
+ strb r0, [r4]
+_080217CC:
+ ldr r1, _080217DC @ =gUnknown_02024C10
+ b _080217E2
+ .align 2, 0
+_080217D0: .4byte 0x02000000
+_080217D4: .4byte 0x000160dc
+_080217D8: .4byte gUnknown_02024A60
+_080217DC: .4byte gUnknown_02024C10
+_080217E0:
+ mov r1, r9
+_080217E2:
+ ldr r0, [r1]
+ adds r0, 0x4
+_080217E6:
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk48_playstatchangeanimation
+
+ thumb_func_start sub_80217F8
+sub_80217F8: @ 80217F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r0, 0
+ mov r10, r0
+ ldr r0, _08021834 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ str r1, [sp, 0x10]
+ ldrb r0, [r0, 0x2]
+ str r0, [sp, 0x14]
+ ldr r1, _08021838 @ =gBattleMons
+ ldr r0, _0802183C @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08021844
+ ldr r1, _08021840 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x7]
+ b _0802184E
+ .align 2, 0
+_08021834: .4byte gUnknown_02024C10
+_08021838: .4byte gBattleMons
+_0802183C: .4byte gUnknown_02024C07
+_08021840: .4byte gEnigmaBerries
+_08021844:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r0, 24
+_0802184E:
+ str r0, [sp, 0x8]
+ ldr r0, _0802186C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r0, _08021870 @ =0x020160e8
+ adds r1, r0
+ str r1, [sp, 0xC]
+ subs r0, 0xCC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080218C0
+ movs r2, 0x3F
+ ands r2, r0
+ str r2, [sp, 0x4]
+ b _080218D2
+ .align 2, 0
+_0802186C: .4byte gUnknown_02024C07
+_08021870: .4byte 0x020160e8
+_08021874:
+ strb r2, [r7]
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ ldr r0, _080218AC @ =0x02000000
+ ldr r3, _080218B0 @ =0x0001600c
+ adds r0, r3
+ strb r4, [r0]
+ bl sub_8020B54
+ ldr r2, _080218B4 @ =gUnknown_081D6BBC
+ mov r4, r8
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ bl b_movescr_stack_push
+ ldr r1, _080218B8 @ =gUnknown_02024C10
+ ldr r0, _080218BC @ =gUnknown_081D9B2D
+ bl _0802229C
+ .align 2, 0
+_080218AC: .4byte 0x02000000
+_080218B0: .4byte 0x0001600c
+_080218B4: .4byte gUnknown_081D6BBC
+_080218B8: .4byte gUnknown_02024C10
+_080218BC: .4byte gUnknown_081D9B2D
+_080218C0:
+ ldr r2, _080218D8 @ =gBattleMoves
+ ldr r0, _080218DC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ str r0, [sp, 0x4]
+_080218D2:
+ ldr r5, _080218E0 @ =0x02000000
+ mov r12, r5
+ b _080218EE
+ .align 2, 0
+_080218D8: .4byte gBattleMoves
+_080218DC: .4byte gUnknown_02024BE6
+_080218E0: .4byte 0x02000000
+_080218E4:
+ mov r0, r10
+ cmp r0, 0
+ beq _080218EE
+ bl _08022286
+_080218EE:
+ ldr r0, _08021908 @ =0x0001600c
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bls _080218FC
+ bl _0802224E
+_080218FC:
+ lsls r0, 2
+ ldr r1, _0802190C @ =_08021910
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08021908: .4byte 0x0001600c
+_0802190C: .4byte _08021910
+ .align 2, 0
+_08021910:
+ .4byte _08021958
+ .4byte _08021A34
+ .4byte _08021AF0
+ .4byte _08021B20
+ .4byte _08021B44
+ .4byte _08021B78
+ .4byte _08021B9C
+ .4byte _08021C40
+ .4byte _08021C78
+ .4byte _08021CA8
+ .4byte _08021CCC
+ .4byte _08021D18
+ .4byte _08021DAC
+ .4byte _08021E30
+ .4byte _08021E70
+ .4byte _08022068
+ .4byte _080221C0
+ .4byte _0802224E
+_08021958:
+ ldr r5, _08021A08 @ =gBattleMons
+ ldr r2, _08021A0C @ =gUnknown_02024C08
+ ldrb r4, [r2]
+ movs r6, 0x58
+ adds r3, r4, 0
+ muls r3, r6
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 16
+ ands r1, r0
+ cmp r1, 0
+ beq _080219FE
+ adds r0, r3, r5
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _080219FE
+ ldr r0, _08021A10 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ cmp r1, r4
+ beq _080219FE
+ adds r0, r1, 0
+ bl battle_side_get_owner
+ adds r4, r0, 0
+ ldr r1, _08021A0C @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ bl battle_side_get_owner
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080219FE
+ ldr r0, _08021A14 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _080219FE
+ ldr r2, _08021A18 @ =gUnknown_02024D28
+ ldr r4, _08021A0C @ =gUnknown_02024C08
+ ldrb r3, [r4]
+ lsls r1, r3, 4
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080219C8
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080219FE
+_080219C8:
+ ldr r2, _08021A1C @ =gBattleMoves
+ ldr r0, _08021A20 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080219FE
+ adds r0, r3, 0
+ muls r0, r6
+ adds r1, r0, r5
+ ldrb r2, [r1, 0x19]
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xB
+ bgt _080219FE
+ adds r0, r2, 0x1
+ strb r0, [r1, 0x19]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08021A24 @ =gUnknown_02024C10
+ ldr r0, _08021A28 @ =gUnknown_081D9132
+ str r0, [r1]
+ movs r5, 0x1
+ mov r10, r5
+_080219FE:
+ ldr r2, _08021A2C @ =0x02000000
+ ldr r0, _08021A30 @ =0x0001600c
+ adds r1, r2, r0
+ b _08021E00
+ .align 2, 0
+_08021A08: .4byte gBattleMons
+_08021A0C: .4byte gUnknown_02024C08
+_08021A10: .4byte gUnknown_02024C07
+_08021A14: .4byte gUnknown_02024C68
+_08021A18: .4byte gUnknown_02024D28
+_08021A1C: .4byte gBattleMoves
+_08021A20: .4byte gUnknown_02024BE6
+_08021A24: .4byte gUnknown_02024C10
+_08021A28: .4byte gUnknown_081D9132
+_08021A2C: .4byte 0x02000000
+_08021A30: .4byte 0x0001600c
+_08021A34:
+ ldr r2, _08021AD0 @ =gBattleMons
+ ldr r1, _08021AD4 @ =gUnknown_02024C08
+ ldrb r4, [r1]
+ movs r3, 0x58
+ mov r12, r3
+ mov r3, r12
+ muls r3, r4
+ adds r7, r2, 0
+ adds r7, 0x4C
+ adds r6, r3, r7
+ ldr r5, [r6]
+ movs r0, 0x20
+ ands r0, r5
+ cmp r0, 0
+ bne _08021A54
+ b _08021DFA
+_08021A54:
+ adds r0, r3, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08021A5E
+ b _08021DFA
+_08021A5E:
+ ldr r0, _08021AD8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _08021A68
+ b _08021DFA
+_08021A68:
+ ldr r0, _08021ADC @ =gUnknown_02024D68
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r0, 0xC
+ adds r1, r0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _08021A7C
+ b _08021DFA
+_08021A7C:
+ ldr r0, _08021AE0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08021A8A
+ b _08021DFA
+_08021A8A:
+ ldr r4, [sp, 0x4]
+ cmp r4, 0xA
+ beq _08021A92
+ b _08021DFA
+_08021A92:
+ movs r0, 0x21
+ negs r0, r0
+ ands r5, r0
+ str r5, [r6]
+ ldr r4, _08021AE4 @ =gUnknown_02024A60
+ ldr r5, _08021AD4 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r4]
+ ldrb r0, [r5]
+ mov r1, r12
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08021AE8 @ =gUnknown_02024C10
+ ldr r0, _08021AEC @ =gUnknown_081D955D
+ str r0, [r1]
+ movs r2, 0x1
+ mov r10, r2
+ b _08021DFA
+ .align 2, 0
+_08021AD0: .4byte gBattleMons
+_08021AD4: .4byte gUnknown_02024C08
+_08021AD8: .4byte gUnknown_02024C07
+_08021ADC: .4byte gUnknown_02024D68
+_08021AE0: .4byte gUnknown_02024C68
+_08021AE4: .4byte gUnknown_02024A60
+_08021AE8: .4byte gUnknown_02024C10
+_08021AEC: .4byte gUnknown_081D955D
+_08021AF0:
+ ldr r0, _08021B14 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x7
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021B0C
+ movs r4, 0x1
+ mov r10, r4
+_08021B0C:
+ ldr r2, _08021B18 @ =0x02000000
+ ldr r5, _08021B1C @ =0x0001600c
+ adds r1, r2, r5
+ b _08021E00
+ .align 2, 0
+_08021B14: .4byte gUnknown_02024C08
+_08021B18: .4byte 0x02000000
+_08021B1C: .4byte 0x0001600c
+_08021B20:
+ ldr r0, _08021B40 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x4
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021B3A
+ b _08021DFA
+_08021B3A:
+ movs r0, 0x1
+ mov r10, r0
+ b _08021DFA
+ .align 2, 0
+_08021B40: .4byte gUnknown_02024C08
+_08021B44:
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x5
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021B68
+ movs r4, 0x1
+ mov r10, r4
+ ldr r5, _08021B64 @ =0x02000000
+ mov r12, r5
+ b _0802224E
+ .align 2, 0
+_08021B64: .4byte 0x02000000
+_08021B68:
+ ldr r2, _08021B70 @ =0x02000000
+ ldr r0, _08021B74 @ =0x0001600c
+ adds r1, r2, r0
+ b _08021E00
+ .align 2, 0
+_08021B70: .4byte 0x02000000
+_08021B74: .4byte 0x0001600c
+_08021B78:
+ ldr r0, _08021B98 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x8
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _08021B92
+ b _08021DFA
+_08021B92:
+ movs r1, 0x1
+ mov r10, r1
+ b _08021DFA
+ .align 2, 0
+_08021B98: .4byte gUnknown_02024C07
+_08021B9C:
+ ldr r0, _08021C28 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _08021BE0
+ ldr r4, [sp, 0x8]
+ cmp r4, 0x1D
+ bne _08021BE0
+ ldr r0, _08021C2C @ =gUnknown_02024BE8
+ ldrh r2, [r0]
+ adds r7, r0, 0
+ cmp r2, 0xA5
+ beq _08021BE0
+ ldr r5, [sp, 0xC]
+ ldrh r1, [r5]
+ cmp r1, 0
+ beq _08021BC8
+ ldr r0, _08021C30 @ =0x0000ffff
+ cmp r1, r0
+ bne _08021BE0
+_08021BC8:
+ cmp r2, 0xE2
+ bne _08021BDA
+ ldr r0, _08021C34 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08021BDA
+ b _08022244
+_08021BDA:
+ ldrh r0, [r7]
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+_08021BE0:
+ movs r4, 0
+ ldr r2, _08021C38 @ =gBattleMons
+ ldr r3, _08021C3C @ =gUnknown_02024C07
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r5, [sp, 0xC]
+ ldrh r1, [r5]
+ mov r9, r3
+ cmp r0, r1
+ beq _08021C18
+ mov r6, r9
+ movs r3, 0x58
+ adds r5, r1, 0
+_08021C02:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08021C18
+ lsls r0, r4, 1
+ ldrb r1, [r6]
+ muls r1, r3
+ adds r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _08021C02
+_08021C18:
+ cmp r4, 0x4
+ beq _08021C1E
+ b _08022244
+_08021C1E:
+ movs r0, 0
+ ldr r1, [sp, 0xC]
+_08021C22:
+ strh r0, [r1]
+ b _08022244
+ .align 2, 0
+_08021C28: .4byte gUnknown_02024C6C
+_08021C2C: .4byte gUnknown_02024BE8
+_08021C30: .4byte 0x0000ffff
+_08021C34: .4byte gUnknown_02024C68
+_08021C38: .4byte gBattleMons
+_08021C3C: .4byte gUnknown_02024C07
+_08021C40:
+ movs r4, 0
+ ldr r0, _08021C6C @ =gUnknown_02024A68
+ ldrb r2, [r0]
+ cmp r4, r2
+ blt _08021C4C
+ b _08022244
+_08021C4C:
+ movs r5, 0
+ ldr r2, _08021C70 @ =0x020160f0
+ ldr r3, _08021C74 @ =gBattleMons
+_08021C52:
+ ldrh r1, [r2]
+ cmp r1, 0
+ beq _08021C5C
+ strh r1, [r3, 0x2E]
+ strh r5, [r2]
+_08021C5C:
+ adds r2, 0x2
+ adds r3, 0x58
+ adds r4, 0x1
+ ldrb r1, [r0]
+ cmp r4, r1
+ blt _08021C52
+ b _08022244
+ .align 2, 0
+_08021C6C: .4byte gUnknown_02024A68
+_08021C70: .4byte 0x020160f0
+_08021C74: .4byte gBattleMons
+_08021C78:
+ movs r0, 0x3
+ movs r1, 0
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021C98
+ movs r2, 0x1
+ mov r10, r2
+ ldr r3, _08021C94 @ =0x02000000
+ mov r12, r3
+ b _0802224E
+ .align 2, 0
+_08021C94: .4byte 0x02000000
+_08021C98:
+ ldr r2, _08021CA0 @ =0x02000000
+ ldr r4, _08021CA4 @ =0x0001600c
+ adds r1, r2, r4
+ b _08021E00
+ .align 2, 0
+_08021CA0: .4byte 0x02000000
+_08021CA4: .4byte 0x0001600c
+_08021CA8:
+ movs r0, 0x4
+ movs r1, 0
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021CBC
+ movs r5, 0x1
+ mov r10, r5
+_08021CBC:
+ ldr r2, _08021CC4 @ =0x02000000
+ ldr r0, _08021CC8 @ =0x0001600c
+ adds r1, r2, r0
+ b _08021E00
+ .align 2, 0
+_08021CC4: .4byte 0x02000000
+_08021CC8: .4byte 0x0001600c
+_08021CCC:
+ ldr r1, _08021D04 @ =gUnknown_02024C98
+ ldr r0, _08021D08 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021D0C @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _08021CE2
+ b _08021DFA
+_08021CE2:
+ ldr r0, _08021D10 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08021CF0
+ b _08021DFA
+_08021CF0:
+ ldr r4, _08021D14 @ =gUnknown_02024A60
+ strb r2, [r4]
+ movs r0, 0
+ movs r1, 0x1
+ bl dp01_build_cmdbuf_x33_a_33_33
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08021DFA
+ .align 2, 0
+_08021D04: .4byte gUnknown_02024C98
+_08021D08: .4byte gUnknown_02024C07
+_08021D0C: .4byte 0x000400c0
+_08021D10: .4byte gUnknown_02024C6C
+_08021D14: .4byte gUnknown_02024A60
+_08021D18:
+ ldr r0, _08021D88 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _08021D44
+ ldr r1, _08021D8C @ =gUnknown_02024C98
+ ldr r0, _08021D90 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08021D94 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08021D44
+ adds r0, r2, 0
+ bl sub_8015660
+ lsls r0, 24
+ cmp r0, 0
+ beq _08021D7E
+_08021D44:
+ ldr r4, _08021D98 @ =gUnknown_02024A60
+ ldr r5, _08021D90 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x33_a_33_33
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _08021D8C @ =gUnknown_02024C98
+ ldrb r2, [r5]
+ lsls r2, 2
+ adds r2, r0
+ ldr r0, [r2]
+ ldr r1, _08021D9C @ =0xfffbff3f
+ ands r0, r1
+ str r0, [r2]
+ ldr r2, _08021DA0 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08021D7E:
+ ldr r2, _08021DA4 @ =0x02000000
+ ldr r4, _08021DA8 @ =0x0001600c
+ adds r1, r2, r4
+ b _08021E00
+ .align 2, 0
+_08021D88: .4byte gUnknown_02024C68
+_08021D8C: .4byte gUnknown_02024C98
+_08021D90: .4byte gUnknown_02024C07
+_08021D94: .4byte 0x000400c0
+_08021D98: .4byte gUnknown_02024A60
+_08021D9C: .4byte 0xfffbff3f
+_08021DA0: .4byte gUnknown_02024D68
+_08021DA4: .4byte 0x02000000
+_08021DA8: .4byte 0x0001600c
+_08021DAC:
+ ldr r2, _08021E0C @ =gUnknown_02024D68
+ ldr r1, _08021E10 @ =gUnknown_02024C08
+ ldrb r3, [r1]
+ lsls r4, r3, 2
+ adds r0, r4, r3
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08021DFA
+ ldr r0, _08021E14 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _08021DFA
+ ldr r5, _08021E18 @ =gUnknown_02024C98
+ adds r0, r4, r5
+ ldr r0, [r0]
+ ldr r1, _08021E1C @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _08021DFA
+ ldr r4, _08021E20 @ =gUnknown_02024A60
+ strb r3, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x33_a_33_33
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _08021E10 @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ lsls r2, 2
+ adds r2, r5
+ ldr r0, [r2]
+ ldr r1, _08021E24 @ =0xfffbff3f
+ ands r0, r1
+ str r0, [r2]
+_08021DFA:
+ ldr r2, _08021E28 @ =0x02000000
+ ldr r3, _08021E2C @ =0x0001600c
+ adds r1, r2, r3
+_08021E00:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ mov r12, r2
+ b _0802224E
+ .align 2, 0
+_08021E0C: .4byte gUnknown_02024D68
+_08021E10: .4byte gUnknown_02024C08
+_08021E14: .4byte gUnknown_02024A68
+_08021E18: .4byte gUnknown_02024C98
+_08021E1C: .4byte 0x000400c0
+_08021E20: .4byte gUnknown_02024A60
+_08021E24: .4byte 0xfffbff3f
+_08021E28: .4byte 0x02000000
+_08021E2C: .4byte 0x0001600c
+_08021E30:
+ movs r4, 0
+ ldr r0, _08021E60 @ =gUnknown_02024A68
+ ldrb r5, [r0]
+ cmp r4, r5
+ blt _08021E3C
+ b _08022244
+_08021E3C:
+ ldr r2, _08021E64 @ =gUnknown_02024CA8
+ ldr r5, _08021E68 @ =0xfeffffff
+ adds r3, r0, 0
+ ldr r1, _08021E6C @ =gUnknown_02024AD0
+_08021E44:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ bne _08021E50
+ ldr r0, [r1]
+ ands r0, r5
+ str r0, [r1]
+_08021E50:
+ adds r2, 0x1C
+ adds r1, 0x58
+ adds r4, 0x1
+ ldrb r0, [r3]
+ cmp r4, r0
+ blt _08021E44
+ b _08022244
+ .align 2, 0
+_08021E60: .4byte gUnknown_02024A68
+_08021E64: .4byte gUnknown_02024CA8
+_08021E68: .4byte 0xfeffffff
+_08021E6C: .4byte gUnknown_02024AD0
+_08021E70:
+ ldr r1, _08021F2C @ =gUnknown_02024C6C
+ ldr r3, [r1]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r3
+ ldr r2, _08021F30 @ =gUnknown_02024C07
+ mov r9, r2
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _08021E9A
+ ldr r0, _08021F34 @ =gUnknown_02024A60
+ ldrb r2, [r2]
+ strb r2, [r0]
+ ldr r1, _08021F38 @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ mov r4, r9
+ strb r0, [r4]
+ strb r2, [r1]
+ ldr r0, _08021F3C @ =0xffffefff
+ ands r3, r0
+ str r3, [r5]
+_08021E9A:
+ ldr r1, _08021F40 @ =gBattleMoves
+ ldr r2, _08021F44 @ =gUnknown_02024BE8
+ ldrh r3, [r2]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r8, r1
+ adds r7, r2, 0
+ cmp r0, 0x7F
+ bne _08021EBE
+ ldr r0, _08021F48 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08021ECA
+_08021EBE:
+ ldr r1, _08021F4C @ =gUnknown_02024C2C
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ strh r3, [r0]
+_08021ECA:
+ ldr r0, _08021F50 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08021F54 @ =gBitTable
+ mov r3, r9
+ ldrb r4, [r3]
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r3, [r0]
+ ands r1, r3
+ adds r6, r2, 0
+ cmp r1, 0
+ beq _08021EE4
+ b _08022244
+_08021EE4:
+ ldr r0, _08021F58 @ =0x000160a6
+ add r0, r12
+ ldrb r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ beq _08021EF2
+ b _08022244
+_08021EF2:
+ ldrh r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0x7F
+ bne _08021F04
+ b _08022244
+_08021F04:
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _08021F68
+ ldr r1, _08021F5C @ =gUnknown_02024C34
+ lsls r0, r4, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _08021F60 @ =gUnknown_02024C4C
+ mov r4, r9
+ ldrb r1, [r4]
+ lsls r1, 1
+ adds r1, r0
+ ldr r0, _08021F64 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _08021F82
+ .align 2, 0
+_08021F2C: .4byte gUnknown_02024C6C
+_08021F30: .4byte gUnknown_02024C07
+_08021F34: .4byte gUnknown_02024A60
+_08021F38: .4byte gUnknown_02024C08
+_08021F3C: .4byte 0xffffefff
+_08021F40: .4byte gBattleMoves
+_08021F44: .4byte gUnknown_02024BE8
+_08021F48: .4byte gUnknown_02024C68
+_08021F4C: .4byte gUnknown_02024C2C
+_08021F50: .4byte gUnknown_02024C0C
+_08021F54: .4byte gBitTable
+_08021F58: .4byte 0x000160a6
+_08021F5C: .4byte gUnknown_02024C34
+_08021F60: .4byte gUnknown_02024C4C
+_08021F64: .4byte gUnknown_02024BE6
+_08021F68:
+ ldr r1, _08021FD0 @ =gUnknown_02024C34
+ lsls r0, r4, 1
+ adds r0, r1
+ ldr r1, _08021FD4 @ =0x0000ffff
+ strh r1, [r0]
+ ldr r1, _08021FD8 @ =gUnknown_02024C4C
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0]
+_08021F82:
+ ldr r2, _08021FDC @ =gUnknown_02024C08
+ ldrb r3, [r2]
+ lsls r0, r3, 2
+ adds r0, r6
+ ldr r0, [r0]
+ lsls r0, 28
+ ldr r1, [r5]
+ ands r1, r0
+ cmp r1, 0
+ bne _08021FA0
+ ldr r0, _08021FE0 @ =gUnknown_02024C5C
+ adds r0, r3, r0
+ mov r3, r9
+ ldrb r1, [r3]
+ strb r1, [r0]
+_08021FA0:
+ ldr r0, [r5]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _0802204C
+ ldr r0, _08021FE4 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0802204C
+ ldrh r2, [r7]
+ ldr r0, _08021FD4 @ =0x0000ffff
+ cmp r2, r0
+ bne _08021FEC
+ ldr r1, _08021FE8 @ =gUnknown_02024C3C
+ ldr r4, _08021FDC @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ strh r2, [r0]
+ b _08022244
+ .align 2, 0
+_08021FD0: .4byte gUnknown_02024C34
+_08021FD4: .4byte 0x0000ffff
+_08021FD8: .4byte gUnknown_02024C4C
+_08021FDC: .4byte gUnknown_02024C08
+_08021FE0: .4byte gUnknown_02024C5C
+_08021FE4: .4byte gUnknown_02024C68
+_08021FE8: .4byte gUnknown_02024C3C
+_08021FEC:
+ ldr r0, _08022014 @ =gUnknown_02024C3C
+ ldr r5, _08022018 @ =gUnknown_02024C08
+ ldrb r1, [r5]
+ lsls r1, 1
+ adds r1, r0
+ ldr r4, _0802201C @ =gUnknown_02024BE6
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldr r0, _08022020 @ =0x0001601c
+ add r0, r12
+ ldrb r3, [r0]
+ cmp r3, 0
+ beq _08022028
+ ldr r0, _08022024 @ =gUnknown_02024C44
+ ldrb r1, [r5]
+ lsls r1, 1
+ adds r1, r0
+ movs r0, 0x3F
+ ands r0, r3
+ b _08021C22
+ .align 2, 0
+_08022014: .4byte gUnknown_02024C3C
+_08022018: .4byte gUnknown_02024C08
+_0802201C: .4byte gUnknown_02024BE6
+_08022020: .4byte 0x0001601c
+_08022024: .4byte gUnknown_02024C44
+_08022028:
+ ldr r0, _08022044 @ =gUnknown_02024C44
+ ldr r1, _08022048 @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ lsls r2, 1
+ adds r2, r0
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x2]
+ strh r0, [r2]
+ b _08022244
+ .align 2, 0
+_08022044: .4byte gUnknown_02024C44
+_08022048: .4byte gUnknown_02024C08
+_0802204C:
+ ldr r0, _0802205C @ =gUnknown_02024C3C
+ ldr r2, _08022060 @ =gUnknown_02024C08
+ ldrb r1, [r2]
+ lsls r1, 1
+ adds r1, r0
+ ldr r0, _08022064 @ =0x0000ffff
+ b _08021C22
+ .align 2, 0
+_0802205C: .4byte gUnknown_02024C3C
+_08022060: .4byte gUnknown_02024C08
+_08022064: .4byte 0x0000ffff
+_08022068:
+ ldr r0, _0802212C @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r6, _08022130 @ =gBitTable
+ ldr r2, _08022134 @ =gUnknown_02024C07
+ ldrb r5, [r2]
+ lsls r0, r5, 2
+ adds r0, r6
+ ldr r4, [r0]
+ ands r1, r4
+ mov r9, r2
+ cmp r1, 0
+ beq _08022082
+ b _08022244
+_08022082:
+ ldr r0, _08022138 @ =0x000160a6
+ add r0, r12
+ ldrb r0, [r0]
+ ands r0, r4
+ cmp r0, 0
+ beq _08022090
+ b _08022244
+_08022090:
+ ldr r1, _0802213C @ =gBattleMoves
+ ldr r4, _08022140 @ =gUnknown_02024BE8
+ ldrh r3, [r4]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802215C
+ ldr r0, _08022144 @ =gUnknown_02024C6C
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _0802215C
+ ldr r2, _08022148 @ =gUnknown_02024C08
+ ldrb r0, [r2]
+ cmp r5, r0
+ bne _080220C0
+ b _08022244
+_080220C0:
+ adds r2, r0, 0
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r0, [r0]
+ lsls r0, 28
+ ands r1, r0
+ cmp r1, 0
+ bne _0802215C
+ ldr r0, _0802214C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _0802215C
+ lsls r0, r2, 1
+ ldr r5, _08022150 @ =0x000160ac
+ adds r0, r5
+ add r0, r12
+ strb r3, [r0]
+ ldr r0, _08022148 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r2, _08022154 @ =0x000160ad
+ adds r1, r2
+ add r1, r12
+ ldrh r0, [r4]
+ lsrs r0, 8
+ strb r0, [r1]
+ ldr r3, _08022148 @ =gUnknown_02024C08
+ ldrb r2, [r3]
+ lsls r2, 2
+ mov r5, r9
+ ldrb r0, [r5]
+ lsrs r0, 1
+ lsls r0, 1
+ ldr r1, _08022158 @ =0x00016100
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4]
+ strb r0, [r2]
+ ldrb r2, [r3]
+ lsls r2, 2
+ ldrb r0, [r5]
+ lsrs r0, 1
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ ldrh r0, [r4]
+ lsrs r0, 8
+ strb r0, [r2]
+ b _08022244
+ .align 2, 0
+_0802212C: .4byte gUnknown_02024C0C
+_08022130: .4byte gBitTable
+_08022134: .4byte gUnknown_02024C07
+_08022138: .4byte 0x000160a6
+_0802213C: .4byte gBattleMoves
+_08022140: .4byte gUnknown_02024BE8
+_08022144: .4byte gUnknown_02024C6C
+_08022148: .4byte gUnknown_02024C08
+_0802214C: .4byte gUnknown_02024C68
+_08022150: .4byte 0x000160ac
+_08022154: .4byte 0x000160ad
+_08022158: .4byte 0x00016100
+_0802215C:
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r2, _080221B4 @ =gUnknown_02024C08
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _08022244
+ ldr r3, _080221B4 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r0, 1
+ ldr r4, _080221B8 @ =0x000160ac
+ adds r0, r4
+ add r0, r12
+ movs r3, 0
+ strb r3, [r0]
+ ldr r5, _080221B4 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ lsls r0, 1
+ ldr r1, _080221BC @ =0x000160ad
+ adds r0, r1
+ add r0, r12
+ strb r3, [r0]
+ ldrb r2, [r5]
+ lsls r2, 2
+ mov r4, r9
+ ldrb r0, [r4]
+ lsrs r0, 1
+ lsls r0, 1
+ adds r1, 0x53
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ strb r3, [r2]
+ ldrb r2, [r5]
+ lsls r2, 2
+ ldrb r0, [r4]
+ lsrs r0, 1
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ adds r2, r0
+ add r2, r12
+ strb r3, [r2]
+ b _08022244
+ .align 2, 0
+_080221B4: .4byte gUnknown_02024C08
+_080221B8: .4byte 0x000160ac
+_080221BC: .4byte 0x000160ad
+_080221C0:
+ ldr r5, _080222B0 @ =gUnknown_02024C6C
+ ldr r2, [r5]
+ movs r0, 0x80
+ lsls r0, 12
+ ands r0, r2
+ cmp r0, 0
+ bne _08022244
+ ldr r0, _080222B4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08022244
+ ldr r1, _080222B8 @ =gUnknown_02024D28
+ ldr r0, _080222BC @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08022244
+ ldr r0, _080222C0 @ =gBattleMoves
+ mov r9, r0
+ ldr r1, _080222C4 @ =gUnknown_02024BE6
+ mov r8, r1
+ ldrh r0, [r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0x8
+ bne _08022244
+ movs r6, 0x80
+ lsls r6, 2
+ adds r4, r6, 0
+ ands r4, r2
+ cmp r4, 0
+ bne _08022244
+ ldr r7, _080222C8 @ =gUnknown_02024C08
+ ldrb r0, [r7]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _080222CC @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _0802223A
+ bl _08021874
+_0802223A:
+ ldr r0, [r5]
+ orrs r0, r6
+ str r0, [r5]
+ ldr r2, _080222D0 @ =0x02000000
+ mov r12, r2
+_08022244:
+ ldr r1, _080222D4 @ =0x0001600c
+ add r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0802224E:
+ ldr r3, [sp, 0x10]
+ cmp r3, 0x1
+ bne _08022262
+ mov r4, r10
+ cmp r4, 0
+ bne _08022262
+ ldr r1, _080222D4 @ =0x0001600c
+ add r1, r12
+ movs r0, 0x11
+ strb r0, [r1]
+_08022262:
+ ldr r5, [sp, 0x10]
+ cmp r5, 0x2
+ bne _08022278
+ ldr r1, _080222D4 @ =0x0001600c
+ add r1, r12
+ ldr r0, [sp, 0x14]
+ ldrb r2, [r1]
+ cmp r0, r2
+ bne _08022278
+ movs r0, 0x11
+ strb r0, [r1]
+_08022278:
+ ldr r0, _080222D4 @ =0x0001600c
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ beq _08022286
+ bl _080218E4
+_08022286:
+ ldr r0, _080222D4 @ =0x0001600c
+ add r0, r12
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bne _0802229E
+ mov r3, r10
+ cmp r3, 0
+ bne _0802229E
+ ldr r1, _080222D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x3
+_0802229C:
+ str r0, [r1]
+_0802229E:
+ 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
+_080222B0: .4byte gUnknown_02024C6C
+_080222B4: .4byte gUnknown_020239F8
+_080222B8: .4byte gUnknown_02024D28
+_080222BC: .4byte gUnknown_02024C07
+_080222C0: .4byte gBattleMoves
+_080222C4: .4byte gUnknown_02024BE6
+_080222C8: .4byte gUnknown_02024C08
+_080222CC: .4byte gBattleMons
+_080222D0: .4byte 0x02000000
+_080222D4: .4byte 0x0001600c
+_080222D8: .4byte gUnknown_02024C10
+ thumb_func_end sub_80217F8
+
+ thumb_func_start atk4A_damageflags
+atk4A_damageflags: @ 80222DC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ movs r5, 0
+ ldr r2, _08022340 @ =gBattleMoves
+ ldr r0, _08022344 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ mov r8, r0
+ ldr r2, _08022348 @ =gBattleMons
+ ldr r3, _0802234C @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r12, r2
+ adds r7, r3, 0
+ cmp r0, 0x1A
+ bne _08022370
+ mov r1, r8
+ cmp r1, 0x4
+ bne _08022370
+ ldr r3, _08022350 @ =byte_2024C06
+ strb r0, [r3]
+ ldr r2, _08022354 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x9
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08022358 @ =gUnknown_02024C3C
+ ldrb r0, [r7]
+ lsls r0, 1
+ adds r0, r1
+ strh r4, [r0]
+ ldr r0, _0802235C @ =gUnknown_02024D1E
+ mov r2, r8
+ strb r2, [r0, 0x6]
+ ldrb r0, [r7]
+ ldrb r1, [r3]
+ bl sub_81074C4
+ b _08022452
+ .align 2, 0
+_08022340: .4byte gBattleMoves
+_08022344: .4byte gUnknown_02024BE6
+_08022348: .4byte gBattleMons
+_0802234C: .4byte gUnknown_02024C08
+_08022350: .4byte byte_2024C06
+_08022354: .4byte gUnknown_02024C68
+_08022358: .4byte gUnknown_02024C3C
+_0802235C: .4byte gUnknown_02024D1E
+_08022360:
+ ldr r0, _0802236C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022452
+ .align 2, 0
+_0802236C: .4byte gUnknown_02024C68
+_08022370:
+ ldr r1, _0802237C @ =gTypeEffectiveness
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r6, r1, 0
+ b _08022432
+ .align 2, 0
+_0802237C: .4byte gTypeEffectiveness
+_08022380:
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ cmp r0, r8
+ bne _0802242C
+ adds r2, r5, 0x1
+ adds r3, r2, r6
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r0, 0x21
+ ldrb r1, [r3]
+ adds r3, r2, 0
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _080223BE
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08022360
+ cmp r1, 0x5
+ bne _080223B2
+ movs r0, 0x4
+ orrs r4, r0
+_080223B2:
+ cmp r1, 0x14
+ bne _080223BE
+ movs r0, 0x2
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_080223BE:
+ adds r2, r3, r6
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0802242C
+ adds r0, 0x21
+ ldrb r1, [r0]
+ cmp r1, r2
+ beq _080223E6
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08022360
+_080223E6:
+ cmp r1, r2
+ beq _080223FC
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bne _080223FC
+ movs r0, 0x4
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_080223FC:
+ adds r2, r3, r6
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r1, r0, 0
+ adds r1, 0x22
+ ldrb r2, [r2]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _0802242C
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, r2
+ beq _0802242C
+ adds r0, r5, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x14
+ bne _0802242C
+ movs r0, 0x2
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+_0802242C:
+ adds r5, 0x3
+ adds r0, r5, r6
+ ldrb r0, [r0]
+_08022432:
+ cmp r0, 0xFF
+ beq _08022452
+ cmp r0, 0xFE
+ bne _08022380
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r12
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 22
+ ands r0, r1
+ cmp r0, 0
+ beq _0802242C
+_08022452:
+ ldr r2, _08022500 @ =gBattleMons
+ ldr r0, _08022504 @ =gUnknown_02024C08
+ mov r8, r0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r6, [r0]
+ cmp r6, 0x19
+ bne _080224CE
+ movs r5, 0x29
+ ands r5, r4
+ cmp r5, 0
+ bne _080224CE
+ ldr r0, _08022508 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ ldr r7, _0802250C @ =gUnknown_02024BE6
+ ldrh r1, [r7]
+ bl move_weather_interaction
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bne _080224CE
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08022494
+ movs r0, 0x6
+ ands r4, r0
+ cmp r4, 0x6
+ bne _080224CE
+_08022494:
+ ldr r2, _08022510 @ =gBattleMoves
+ ldrh r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _080224CE
+ ldr r3, _08022514 @ =byte_2024C06
+ strb r6, [r3]
+ ldr r2, _08022518 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0802251C @ =gUnknown_02024C3C
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ strh r5, [r0]
+ ldr r1, _08022520 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x6]
+ ldrb r0, [r2]
+ ldrb r1, [r3]
+ bl sub_81074C4
+_080224CE:
+ ldr r0, _08022518 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080224EC
+ ldr r2, _08022524 @ =gUnknown_02024D28
+ ldr r0, _08022508 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 4
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+_080224EC:
+ ldr r1, _08022528 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022500: .4byte gBattleMons
+_08022504: .4byte gUnknown_02024C08
+_08022508: .4byte gUnknown_02024C07
+_0802250C: .4byte gUnknown_02024BE6
+_08022510: .4byte gBattleMoves
+_08022514: .4byte byte_2024C06
+_08022518: .4byte gUnknown_02024C68
+_0802251C: .4byte gUnknown_02024C3C
+_08022520: .4byte gUnknown_02024D1E
+_08022524: .4byte gUnknown_02024D28
+_08022528: .4byte gUnknown_02024C10
+ thumb_func_end atk4A_damageflags
+
+ thumb_func_start atk4B_cmd4b
+atk4B_cmd4b: @ 802252C
+ push {r4,lr}
+ ldr r4, _08022568 @ =gUnknown_02024A60
+ ldr r0, _0802256C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r2, _08022570 @ =gUnknown_02024C6C
+ ldr r1, _08022574 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _0802255A
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x06_a
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802255A:
+ ldr r1, _08022578 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022568: .4byte gUnknown_02024A60
+_0802256C: .4byte gUnknown_02024C07
+_08022570: .4byte gUnknown_02024C6C
+_08022574: .4byte gBitTable
+_08022578: .4byte gUnknown_02024C10
+ thumb_func_end atk4B_cmd4b
+
+ thumb_func_start atk4C_switch1
+atk4C_switch1: @ 802257C
+ push {r4-r6,lr}
+ ldr r0, _080225D4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080225CC
+ ldr r5, _080225D8 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _080225DC @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r3, _080225E0 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r3
+ ldr r2, _080225E4 @ =0x02000000
+ ldr r6, _080225E8 @ =0x00016068
+ adds r0, r6
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r1, _080225EC @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x00_a_b_0
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_080225CC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080225D4: .4byte gUnknown_02024A64
+_080225D8: .4byte gUnknown_02024C10
+_080225DC: .4byte gUnknown_02024A60
+_080225E0: .4byte gUnknown_02024A6A
+_080225E4: .4byte 0x02000000
+_080225E8: .4byte 0x00016068
+_080225EC: .4byte gBitTable
+ thumb_func_end atk4C_switch1
+
+ thumb_func_start sub_80225F0
+sub_80225F0: @ 80225F0
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r0, _0802274C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080225FE
+ b _08022744
+_080225FE:
+ ldr r0, _08022750 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08022754 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r6, _08022758 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r5, 0x58
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r6
+ mov r0, sp
+ movs r2, 0x58
+ bl memcpy
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r3, r0, r6
+ movs r2, 0
+ ldr r5, _0802275C @ =gUnknown_02024260
+ adds r7, r4, 0
+_0802262C:
+ adds r0, r3, r2
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r1, 0x4
+ adds r1, r2, r1
+ adds r1, r5
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x57
+ bls _0802262C
+ ldr r4, _08022758 @ =gBattleMons
+ ldrb r0, [r7]
+ movs r6, 0x58
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r3, _08022760 @ =gBaseStats
+ ldrh r1, [r2]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x6]
+ adds r2, 0x21
+ strb r0, [r2]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r4
+ ldrh r2, [r1]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x7]
+ adds r1, 0x22
+ strb r0, [r1]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r4
+ ldrh r0, [r1]
+ ldrb r1, [r1, 0x17]
+ lsrs r1, 7
+ bl GetAbilityBySpecies
+ ldrb r1, [r7]
+ muls r1, r6
+ adds r1, r4
+ adds r1, 0x20
+ strb r0, [r1]
+ ldrb r0, [r7]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08022764 @ =gUnknown_02024DBC
+ adds r0, 0x29
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r3, _08022768 @ =gBitTable
+ ldr r2, _0802276C @ =gUnknown_02024A6A
+ ldrb r5, [r7]
+ lsls r0, r5, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ mov r12, r4
+ cmp r1, 0
+ beq _080226CA
+ adds r0, r5, 0
+ muls r0, r6
+ add r0, r12
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+_080226CA:
+ ldr r2, _08022770 @ =gBattleMoves
+ ldr r0, _08022774 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x7F
+ bne _08022710
+ movs r2, 0
+ adds r4, r7, 0
+ movs r6, 0x58
+ mov r5, r12
+ adds r5, 0x18
+ add r3, sp, 0x18
+_080226EA:
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r2, r1
+ adds r1, r5
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080226EA
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r12
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [sp, 0x50]
+ str r1, [r0]
+_08022710:
+ bl sub_8010B88
+ ldr r0, _08022778 @ =0x02000000
+ ldr r3, _08022754 @ =gUnknown_02024A60
+ ldrb r2, [r3]
+ ldr r1, _0802277C @ =0x00016003
+ adds r0, r1
+ strb r2, [r0]
+ ldr r1, _08022780 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ ldr r2, _0802276C @ =gUnknown_02024A6A
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08022750 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08022744:
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802274C: .4byte gUnknown_02024A64
+_08022750: .4byte gUnknown_02024C10
+_08022754: .4byte gUnknown_02024A60
+_08022758: .4byte gBattleMons
+_0802275C: .4byte gUnknown_02024260
+_08022760: .4byte gBaseStats
+_08022764: .4byte gUnknown_02024DBC
+_08022768: .4byte gBitTable
+_0802276C: .4byte gUnknown_02024A6A
+_08022770: .4byte gBattleMoves
+_08022774: .4byte gUnknown_02024BE6
+_08022778: .4byte 0x02000000
+_0802277C: .4byte 0x00016003
+_08022780: .4byte gUnknown_030041C0
+ thumb_func_end sub_80225F0
+
+ thumb_func_start sub_8022784
+sub_8022784: @ 8022784
+ push {r4,r5,lr}
+ ldr r0, _0802280C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08022806
+ ldr r0, _08022810 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08022814 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080227D0
+ ldr r0, _08022818 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0802281C @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _080227D0
+ ldr r2, _08022820 @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+_080227D0:
+ ldr r2, _08022824 @ =gUnknown_02024C0C
+ ldr r1, _08022828 @ =gBitTable
+ ldr r5, _08022814 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+ ldr r1, _0802282C @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r4, _08022810 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x2]
+ movs r0, 0
+ bl sub_800C704
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+_08022806:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802280C: .4byte gUnknown_02024A64
+_08022810: .4byte gUnknown_02024C10
+_08022814: .4byte gUnknown_02024A60
+_08022818: .4byte gUnknown_020239F8
+_0802281C: .4byte 0x00000902
+_08022820: .4byte gBattleMons
+_08022824: .4byte gUnknown_02024C0C
+_08022828: .4byte gBitTable
+_0802282C: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8022784
+
+ thumb_func_start sub_8022830
+sub_8022830: @ 8022830
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08022894 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x7F
+ ands r0, r1
+ bl sub_8015150
+ ldr r3, _08022898 @ =gUnknown_02024A60
+ strb r0, [r3]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080228A8
+ ldr r1, _0802289C @ =gBattleMons
+ ldrb r3, [r3]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080228A0 @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ bne _0802287C
+ ldr r1, _080228A4 @ =gUnknown_02024C98
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _080228A8
+_0802287C:
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08022A2C
+ .align 2, 0
+_08022894: .4byte gUnknown_02024C10
+_08022898: .4byte gUnknown_02024A60
+_0802289C: .4byte gBattleMons
+_080228A0: .4byte 0x0400e000
+_080228A4: .4byte gUnknown_02024C98
+_080228A8:
+ ldr r5, _08022934 @ =gUnknown_020239F8
+ ldrh r1, [r5]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08022948
+ ldr r4, _08022938 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0802293C @ =gPlayerParty
+ mov r8, r1
+ cmp r0, 0x1
+ bne _080228CC
+ ldr r0, _08022940 @ =gEnemyParty
+ mov r8, r0
+_080228CC:
+ movs r5, 0
+ ldrb r0, [r4]
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803FBFC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _080228E6
+ movs r5, 0x3
+_080228E6:
+ adds r6, r5, 0x3
+ cmp r5, r6
+ bge _0802292E
+ ldr r7, _08022944 @ =gUnknown_02024A6A
+_080228EE:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08022928
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08022928
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08022928
+ ldr r0, _08022938 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, r5
+ bne _0802292E
+_08022928:
+ adds r5, 0x1
+ cmp r5, r6
+ blt _080228EE
+_0802292E:
+ cmp r5, r6
+ beq _080229FC
+ b _08022A24
+ .align 2, 0
+_08022934: .4byte gUnknown_020239F8
+_08022938: .4byte gUnknown_02024A60
+_0802293C: .4byte gPlayerParty
+_08022940: .4byte gEnemyParty
+_08022944: .4byte gUnknown_02024A6A
+_08022948:
+ ldr r0, _08022978 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _08022988
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802297C
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _0802297E
+ .align 2, 0
+_08022978: .4byte gUnknown_02024A60
+_0802297C:
+ adds r6, r7, 0
+_0802297E:
+ ldr r0, _08022984 @ =gEnemyParty
+ mov r8, r0
+ b _080229AE
+ .align 2, 0
+_08022984: .4byte gEnemyParty
+_08022988:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080229A8
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _080229AA
+_080229A8:
+ adds r6, r7, 0
+_080229AA:
+ ldr r1, _08022A18 @ =gPlayerParty
+ mov r8, r1
+_080229AE:
+ movs r5, 0
+_080229B0:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080229F2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080229F2
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _080229F2
+ ldr r1, _08022A1C @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080229F2
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ bne _080229F8
+_080229F2:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080229B0
+_080229F8:
+ cmp r5, 0x6
+ bne _08022A24
+_080229FC:
+ ldr r3, _08022A20 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08022A2C
+ .align 2, 0
+_08022A18: .4byte gPlayerParty
+_08022A1C: .4byte gUnknown_02024A6A
+_08022A20: .4byte gUnknown_02024C10
+_08022A24:
+ ldr r1, _08022A38 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+_08022A2C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022A38: .4byte gUnknown_02024C10
+ thumb_func_end sub_8022830
+
+ thumb_func_start sub_8022A3C
+sub_8022A3C: @ 8022A3C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r4, _08022A84 @ =0x02000000
+ ldr r5, _08022A88 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r3, _08022A8C @ =0x00016064
+ adds r1, r0, r3
+ adds r1, r4
+ ldr r3, _08022A90 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _08022A94 @ =0x0001606c
+ adds r4, r1
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x1
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08022A84: .4byte 0x02000000
+_08022A88: .4byte gUnknown_02024A60
+_08022A8C: .4byte 0x00016064
+_08022A90: .4byte gUnknown_02024A6A
+_08022A94: .4byte 0x0001606c
+ thumb_func_end sub_8022A3C
+
+ thumb_func_start atk50_openpartyscreen
+atk50_openpartyscreen: @ 8022A98
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ ldr r6, _08022B44 @ =gUnknown_02024C10
+ ldr r1, [r6]
+ ldrb r2, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ mov r8, r2
+ ldrb r2, [r1, 0x1]
+ adds r0, r2, 0
+ mov r12, r6
+ cmp r0, 0x5
+ beq _08022ACE
+ b _08022F74
+_08022ACE:
+ ldr r0, _08022B48 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r1, 0x41
+ ands r1, r0
+ cmp r1, 0x1
+ beq _08022BBC
+ ldr r1, _08022B4C @ =gUnknown_02024A60
+ strb r7, [r1]
+ ldr r0, _08022B50 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r7, r0
+ bcc _08022AE8
+ b _08022F62
+_08022AE8:
+ ldr r7, _08022B54 @ =gUnknown_02024C6C
+ ldr r6, _08022B58 @ =gBitTable
+ adds r4, r1, 0
+ ldr r0, _08022B5C @ =gUnknown_02024C0C
+ mov r8, r0
+_08022AF2:
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r7]
+ ands r0, r1
+ cmp r0, 0
+ beq _08022B94
+ adds r0, r2, 0
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022B60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r7]
+ bics r0, r1
+ str r0, [r7]
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022BA2
+ .align 2, 0
+_08022B44: .4byte gUnknown_02024C10
+_08022B48: .4byte gUnknown_020239F8
+_08022B4C: .4byte gUnknown_02024A60
+_08022B50: .4byte gUnknown_02024A68
+_08022B54: .4byte gUnknown_02024C6C
+_08022B58: .4byte gBitTable
+_08022B5C: .4byte gUnknown_02024C0C
+_08022B60:
+ ldr r5, _08022B90 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022BA2
+ movs r0, 0x6
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022BA2
+ .align 2, 0
+_08022B90: .4byte gUnknown_02024D68
+_08022B94:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022BA2:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08022BB8 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08022AF2
+ b _08022F62
+ .align 2, 0
+_08022BB8: .4byte gUnknown_02024A68
+_08022BBC:
+ ands r1, r0
+ cmp r1, 0
+ bne _08022BC4
+ b _08022F62
+_08022BC4:
+ ldr r0, _08022C1C @ =gUnknown_02024C6C
+ mov r8, r0
+ ldr r0, [r0]
+ lsrs r5, r0, 28
+ ldr r6, _08022C20 @ =gBitTable
+ ldr r0, [r6]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022C7E
+ ldr r4, _08022C24 @ =gUnknown_02024A60
+ strb r7, [r4]
+ movs r0, 0
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022C2C
+ ldr r2, _08022C28 @ =gUnknown_02024C0C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ mov r2, r8
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022C7E
+ .align 2, 0
+_08022C1C: .4byte gUnknown_02024C6C
+_08022C20: .4byte gBitTable
+_08022C24: .4byte gUnknown_02024A60
+_08022C28: .4byte gUnknown_02024C0C
+_08022C2C:
+ ldr r6, _08022C60 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022C6C
+ ldr r0, _08022C64 @ =0x02000000
+ ldr r1, _08022C68 @ =0x0001606a
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022C7E
+ .align 2, 0
+_08022C60: .4byte gUnknown_02024D68
+_08022C64: .4byte 0x02000000
+_08022C68: .4byte 0x0001606a
+_08022C6C:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ movs r2, 0x1
+ mov r9, r2
+_08022C7E:
+ ldr r6, _08022CD8 @ =gBitTable
+ ldr r0, [r6, 0x8]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022D40
+ ldr r0, [r6]
+ ands r0, r5
+ cmp r0, 0
+ bne _08022D40
+ ldr r4, _08022CDC @ =gUnknown_02024A60
+ movs r0, 0x2
+ strb r0, [r4]
+ movs r0, 0x2
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022CE8
+ ldr r2, _08022CE0 @ =gUnknown_02024C0C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022CE4 @ =gUnknown_02024C6C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022D40
+ .align 2, 0
+_08022CD8: .4byte gBitTable
+_08022CDC: .4byte gUnknown_02024A60
+_08022CE0: .4byte gUnknown_02024C0C
+_08022CE4: .4byte gUnknown_02024C6C
+_08022CE8:
+ ldr r6, _08022D1C @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022D28
+ ldr r0, _08022D20 @ =0x02000000
+ ldr r1, _08022D24 @ =0x00016068
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022D40
+ .align 2, 0
+_08022D1C: .4byte gUnknown_02024D68
+_08022D20: .4byte 0x02000000
+_08022D24: .4byte 0x00016068
+_08022D28:
+ movs r0, 0x1
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ bne _08022D40
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022D40:
+ ldr r6, _08022D90 @ =gBitTable
+ ldr r0, [r6, 0x4]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022DF6
+ ldr r4, _08022D94 @ =gUnknown_02024A60
+ movs r0, 0x1
+ strb r0, [r4]
+ movs r0, 0x1
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022DA0
+ ldr r2, _08022D98 @ =gUnknown_02024C0C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022D9C @ =gUnknown_02024C6C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022DF6
+ .align 2, 0
+_08022D90: .4byte gBitTable
+_08022D94: .4byte gUnknown_02024A60
+_08022D98: .4byte gUnknown_02024C0C
+_08022D9C: .4byte gUnknown_02024C6C
+_08022DA0:
+ ldr r6, _08022DD4 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022DE0
+ ldr r0, _08022DD8 @ =0x02000000
+ ldr r1, _08022DDC @ =0x0001606b
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022DF6
+ .align 2, 0
+_08022DD4: .4byte gUnknown_02024D68
+_08022DD8: .4byte 0x02000000
+_08022DDC: .4byte 0x0001606b
+_08022DE0:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ movs r0, 0x2
+ mov r2, r9
+ orrs r2, r0
+ mov r9, r2
+_08022DF6:
+ ldr r6, _08022E50 @ =gBitTable
+ ldr r0, [r6, 0xC]
+ ands r0, r5
+ cmp r0, 0
+ beq _08022EB8
+ ldr r0, [r6, 0x4]
+ ands r0, r5
+ cmp r0, 0
+ bne _08022EB8
+ ldr r4, _08022E54 @ =gUnknown_02024A60
+ movs r0, 0x3
+ strb r0, [r4]
+ movs r0, 0x3
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08022E60
+ ldr r2, _08022E58 @ =gUnknown_02024C0C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _08022E5C @ =gUnknown_02024C6C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _08022EB8
+ .align 2, 0
+_08022E50: .4byte gBitTable
+_08022E54: .4byte gUnknown_02024A60
+_08022E58: .4byte gUnknown_02024C0C
+_08022E5C: .4byte gUnknown_02024C6C
+_08022E60:
+ ldr r6, _08022E94 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022EA0
+ ldr r0, _08022E98 @ =0x02000000
+ ldr r1, _08022E9C @ =0x00016069
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08022EB8
+ .align 2, 0
+_08022E94: .4byte gUnknown_02024D68
+_08022E98: .4byte 0x02000000
+_08022E9C: .4byte 0x00016069
+_08022EA0:
+ movs r0, 0x2
+ mov r2, r9
+ ands r2, r0
+ cmp r2, 0
+ bne _08022EB8
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022EB8:
+ ldr r1, _08022EE8 @ =gUnknown_02024D68
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F0C
+ adds r0, r1, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F0C
+ cmp r5, 0
+ beq _08022F0C
+ ldr r0, _08022EEC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r0, _08022EF0 @ =gBitTable
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08022EF8
+ ldr r1, _08022EF4 @ =gUnknown_02024A60
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08022EFC
+ .align 2, 0
+_08022EE8: .4byte gUnknown_02024D68
+_08022EEC: .4byte gUnknown_02024C0C
+_08022EF0: .4byte gBitTable
+_08022EF4: .4byte gUnknown_02024A60
+_08022EF8:
+ ldr r0, _08022F3C @ =gUnknown_02024A60
+ strb r1, [r0]
+_08022EFC:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldr r0, _08022F3C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022F0C:
+ ldr r1, _08022F40 @ =gUnknown_02024D68
+ ldrb r0, [r1, 0x14]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F62
+ adds r0, r1, 0
+ adds r0, 0x3C
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ blt _08022F62
+ cmp r5, 0
+ beq _08022F62
+ ldr r0, _08022F44 @ =gUnknown_02024C0C
+ ldrb r0, [r0]
+ ldr r1, _08022F48 @ =gBitTable
+ ldr r1, [r1, 0x4]
+ ands r0, r1
+ cmp r0, 0
+ beq _08022F4C
+ ldr r1, _08022F3C @ =gUnknown_02024A60
+ movs r0, 0x3
+ b _08022F50
+ .align 2, 0
+_08022F3C: .4byte gUnknown_02024A60
+_08022F40: .4byte gUnknown_02024D68
+_08022F44: .4byte gUnknown_02024C0C
+_08022F48: .4byte gBitTable
+_08022F4C:
+ ldr r1, _08022F6C @ =gUnknown_02024A60
+ movs r0, 0x1
+_08022F50:
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldr r0, _08022F6C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08022F62:
+ ldr r1, _08022F70 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ b _08023302
+ .align 2, 0
+_08022F6C: .4byte gUnknown_02024A60
+_08022F70: .4byte gUnknown_02024C10
+_08022F74:
+ cmp r0, 0x6
+ beq _08022F7A
+ b _08023170
+_08022F7A:
+ ldr r0, _08022FF0 @ =gUnknown_020239F8
+ ldrh r2, [r0]
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08022F88
+ b _0802310C
+_08022F88:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _08022F92
+ b _0802310C
+_08022F92:
+ ldr r7, _08022FF4 @ =gUnknown_02024C6C
+ ldr r0, [r7]
+ lsrs r5, r0, 28
+ ldr r4, _08022FF8 @ =gBitTable
+ ldr r0, [r4, 0x8]
+ ands r0, r5
+ cmp r0, 0
+ beq _0802303A
+ ldr r0, [r4]
+ ands r0, r5
+ cmp r0, 0
+ beq _0802303A
+ ldr r6, _08022FFC @ =gUnknown_02024A60
+ movs r0, 0x2
+ strb r0, [r6]
+ ldr r0, _08023000 @ =gUnknown_02024260
+ ldrb r1, [r0, 0x1]
+ movs r0, 0x2
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _08023008
+ ldr r2, _08023004 @ =gUnknown_02024C0C
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r7]
+ bics r0, r1
+ str r0, [r7]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r6]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0802303A
+ .align 2, 0
+_08022FF0: .4byte gUnknown_020239F8
+_08022FF4: .4byte gUnknown_02024C6C
+_08022FF8: .4byte gBitTable
+_08022FFC: .4byte gUnknown_02024A60
+_08023000: .4byte gUnknown_02024260
+_08023004: .4byte gUnknown_02024C0C
+_08023008:
+ ldr r4, _08023098 @ =gUnknown_02024D68
+ ldrb r0, [r6]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _0802303A
+ ldr r0, _0802309C @ =0x02000000
+ ldr r1, _080230A0 @ =0x00016068
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+_0802303A:
+ ldr r4, _080230A4 @ =gBitTable
+ ldr r0, [r4, 0xC]
+ ands r0, r5
+ cmp r0, 0
+ beq _080230EE
+ ldr r0, [r4, 0x4]
+ ands r5, r0
+ cmp r5, 0
+ beq _080230EE
+ ldr r5, _080230A8 @ =gUnknown_02024A60
+ movs r0, 0x3
+ strb r0, [r5]
+ ldr r0, _080230AC @ =gUnknown_02024260
+ ldr r2, _080230B0 @ =0x00000201
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x3
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _080230BC
+ ldr r2, _080230B4 @ =gUnknown_02024C0C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r2, _080230B8 @ =gUnknown_02024C6C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2A_2A_2A_2A
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _080230EE
+ .align 2, 0
+_08023098: .4byte gUnknown_02024D68
+_0802309C: .4byte 0x02000000
+_080230A0: .4byte 0x00016068
+_080230A4: .4byte gBitTable
+_080230A8: .4byte gUnknown_02024A60
+_080230AC: .4byte gUnknown_02024260
+_080230B0: .4byte 0x00000201
+_080230B4: .4byte gUnknown_02024C0C
+_080230B8: .4byte gUnknown_02024C6C
+_080230BC:
+ ldr r4, _080230FC @ =gUnknown_02024D68
+ ldrb r0, [r5]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 25
+ cmp r0, 0
+ blt _080230EE
+ ldr r0, _08023100 @ =0x02000000
+ ldr r1, _08023104 @ =0x00016069
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8022A3C
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+_080230EE:
+ ldr r1, _08023108 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+ mov r12, r1
+ b _08023110
+ .align 2, 0
+_080230FC: .4byte gUnknown_02024D68
+_08023100: .4byte 0x02000000
+_08023104: .4byte 0x00016069
+_08023108: .4byte gUnknown_02024C10
+_0802310C:
+ adds r0, r1, 0x6
+ str r0, [r6]
+_08023110:
+ ldr r0, _08023160 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ lsrs r5, r0, 28
+ ldr r1, _08023164 @ =gUnknown_02024C09
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _08023168 @ =gBitTable
+ ldr r2, [r4]
+ ands r2, r5
+ ldr r6, _0802316C @ =gUnknown_02024A68
+ cmp r2, 0
+ bne _0802314C
+ adds r7, r6, 0
+ ldrb r0, [r6]
+ cmp r2, r0
+ bcs _0802314C
+ adds r3, r1, 0
+_08023132:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldrb r2, [r3]
+ lsls r0, r2, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ bne _0802314C
+ ldrb r0, [r7]
+ cmp r2, r0
+ bcc _08023132
+_0802314C:
+ ldrb r0, [r1]
+ ldrb r6, [r6]
+ cmp r0, r6
+ beq _08023156
+ b _08023302
+_08023156:
+ mov r1, r8
+ mov r2, r12
+ str r1, [r2]
+ b _08023302
+ .align 2, 0
+_08023160: .4byte gUnknown_02024C6C
+_08023164: .4byte gUnknown_02024C09
+_08023168: .4byte gBitTable
+_0802316C: .4byte gUnknown_02024A68
+_08023170:
+ movs r0, 0x80
+ ands r0, r2
+ movs r5, 0x1
+ cmp r0, 0
+ beq _0802317C
+ movs r5, 0
+_0802317C:
+ movs r0, 0x7F
+ ands r0, r2
+ bl sub_8015150
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _080231A4 @ =gUnknown_02024D68
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 25
+ cmp r0, 0
+ bge _080231A8
+ ldr r0, [r6]
+ adds r0, 0x6
+ str r0, [r6]
+ b _08023302
+ .align 2, 0
+_080231A4: .4byte gUnknown_02024D68
+_080231A8:
+ adds r0, r7, 0
+ movs r1, 0x6
+ movs r2, 0x6
+ bl sub_8018018
+ lsls r0, 24
+ cmp r0, 0
+ beq _080231F8
+ ldr r2, _080231E8 @ =gUnknown_02024A60
+ strb r7, [r2]
+ ldr r3, _080231EC @ =gUnknown_02024C0C
+ ldr r4, _080231F0 @ =gBitTable
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ldrb r1, [r3]
+ orrs r0, r1
+ strb r0, [r3]
+ ldr r3, _080231F4 @ =gUnknown_02024C6C
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r3]
+ bics r0, r1
+ str r0, [r3]
+ mov r0, r8
+ str r0, [r6]
+ b _08023302
+ .align 2, 0
+_080231E8: .4byte gUnknown_02024A60
+_080231EC: .4byte gUnknown_02024C0C
+_080231F0: .4byte gBitTable
+_080231F4: .4byte gUnknown_02024C6C
+_080231F8:
+ ldr r4, _080232A0 @ =gUnknown_02024A60
+ strb r7, [r4]
+ ldr r3, _080232A4 @ =0x02000000
+ ldrb r0, [r4]
+ ldr r2, _080232A8 @ =0x00016064
+ adds r1, r0, r2
+ adds r1, r3
+ ldr r2, _080232AC @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ ldr r1, _080232B0 @ =0x00016068
+ adds r0, r1
+ adds r0, r3
+ ldrb r2, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldr r1, _080232B4 @ =0x0001606c
+ adds r3, r1
+ adds r0, r3
+ str r0, [sp]
+ movs r0, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r6]
+ adds r0, 0x6
+ str r0, [r6]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802325A
+ ldr r1, _080232B8 @ =gUnknown_030042E0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xFE
+ bhi _0802325A
+ adds r0, 0x1
+ strb r0, [r1, 0x2]
+_0802325A:
+ ldr r0, _080232BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080232C4
+ ldr r1, _080232A0 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080232C0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08023302
+ adds r4, r1, 0
+_08023276:
+ ldrb r0, [r4]
+ cmp r0, r7
+ beq _0802328A
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802328A:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _080232C0 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08023276
+ b _08023302
+ .align 2, 0
+_080232A0: .4byte gUnknown_02024A60
+_080232A4: .4byte 0x02000000
+_080232A8: .4byte 0x00016064
+_080232AC: .4byte gUnknown_02024A6A
+_080232B0: .4byte 0x00016068
+_080232B4: .4byte 0x0001606c
+_080232B8: .4byte gUnknown_030042E0
+_080232BC: .4byte gUnknown_020239F8
+_080232C0: .4byte gUnknown_02024A68
+_080232C4:
+ adds r0, r7, 0
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r4, _08023310 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r0, _08023314 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08023318 @ =gBitTable
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080232F4
+ movs r0, 0x2
+ eors r3, r0
+ strb r3, [r4]
+_080232F4:
+ movs r0, 0
+ movs r1, 0x2
+ bl sub_800D1D8
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08023302:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023310: .4byte gUnknown_02024A60
+_08023314: .4byte gUnknown_02024C0C
+_08023318: .4byte gBitTable
+ thumb_func_end atk50_openpartyscreen
+
+ thumb_func_start sub_802331C
+sub_802331C: @ 802331C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0802334C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802332C
+ b _080234FE
+_0802332C:
+ ldr r4, _08023350 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r7, _08023354 @ =gUnknown_02024A60
+ strb r0, [r7]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x1
+ beq _080233A0
+ cmp r0, 0x1
+ bgt _08023358
+ cmp r0, 0
+ beq _0802335E
+ b _080234F6
+ .align 2, 0
+_0802334C: .4byte gUnknown_02024A64
+_08023350: .4byte gUnknown_02024C10
+_08023354: .4byte gUnknown_02024A60
+_08023358:
+ cmp r0, 0x2
+ beq _080233BC
+ b _080234F6
+_0802335E:
+ movs r3, 0
+ ldr r2, _08023390 @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ cmp r3, r0
+ blt _0802336A
+ b _080234F6
+_0802336A:
+ ldr r0, _08023394 @ =0x02000000
+ ldr r1, _08023398 @ =gUnknown_02024260
+ movs r5, 0x80
+ lsls r5, 2
+ adds r4, r2, 0
+ ldr r6, _0802339C @ =0x00016068
+ adds r2, r0, r6
+_08023378:
+ ldrb r0, [r1]
+ cmp r0, 0x22
+ bne _08023382
+ ldrb r0, [r1, 0x1]
+ strb r0, [r2]
+_08023382:
+ adds r1, r5
+ adds r2, 0x1
+ adds r3, 0x1
+ ldrb r0, [r4]
+ cmp r3, r0
+ blt _08023378
+ b _080234F6
+ .align 2, 0
+_08023390: .4byte gUnknown_02024A68
+_08023394: .4byte 0x02000000
+_08023398: .4byte gUnknown_02024260
+_0802339C: .4byte 0x00016068
+_080233A0:
+ ldr r0, _080233B8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080233AE
+ b _080234F6
+_080233AE:
+ ldrb r0, [r7]
+ bl sub_8012258
+ b _080234F6
+ .align 2, 0
+_080233B8: .4byte gUnknown_020239F8
+_080233BC:
+ ldr r1, _08023484 @ =gUnknown_02024D1E
+ ldr r4, _08023488 @ =gUnknown_02024260
+ ldrb r0, [r7]
+ lsls r0, 9
+ adds r2, r4, 0x1
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r6, _0802348C @ =0x02000000
+ ldrb r0, [r7]
+ ldr r3, _08023490 @ =0x00016068
+ adds r1, r0, r3
+ adds r1, r6
+ lsls r0, 9
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08023494 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080234A4
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r5, _08023498 @ =0x0001606c
+ adds r1, r5
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ adds r1, r6
+ lsls r0, 9
+ adds r2, r4, 0x2
+ mov r12, r2
+ add r0, r12
+ ldrb r2, [r0]
+ movs r3, 0xF0
+ adds r0, r3, 0
+ ands r0, r2
+ ldrb r2, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r2, _0802349C @ =0x0001606d
+ adds r1, r2
+ adds r1, r6
+ lsls r0, 9
+ adds r4, 0x3
+ mov r8, r4
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r4, 0x2
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ adds r1, r6
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r7]
+ eors r0, r4
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, r5
+ adds r1, r6
+ ldrb r0, [r7]
+ lsls r0, 9
+ add r0, r12
+ ldrb r0, [r0]
+ ands r3, r0
+ lsrs r3, 4
+ ldrb r0, [r1]
+ orrs r3, r0
+ strb r3, [r1]
+ ldrb r0, [r7]
+ eors r4, r0
+ lsls r1, r4, 1
+ adds r1, r4
+ ldr r3, _080234A0 @ =0x0001606e
+ adds r1, r3
+ adds r1, r6
+ ldrb r0, [r7]
+ lsls r0, 9
+ add r0, r8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _080234AA
+ .align 2, 0
+_08023484: .4byte gUnknown_02024D1E
+_08023488: .4byte gUnknown_02024260
+_0802348C: .4byte 0x02000000
+_08023490: .4byte 0x00016068
+_08023494: .4byte gUnknown_020239F8
+_08023498: .4byte 0x0001606c
+_0802349C: .4byte 0x0001606d
+_080234A0: .4byte 0x0001606e
+_080234A4:
+ ldrb r0, [r7]
+ bl sub_8012258
+_080234AA:
+ ldr r1, _08023508 @ =gUnknown_030041C0
+ movs r5, 0xFD
+ strb r5, [r1]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+ ldr r4, _0802350C @ =gBattleMons
+ ldr r3, _08023510 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ movs r2, 0x58
+ muls r0, r2
+ adds r0, r4
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r3]
+ muls r0, r2
+ adds r0, r4
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r2, _08023514 @ =gUnknown_03004290
+ strb r5, [r2]
+ movs r0, 0x7
+ strb r0, [r2, 0x1]
+ ldr r3, _08023518 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ strb r0, [r2, 0x2]
+ ldr r1, _0802351C @ =gUnknown_02024260
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2, 0x3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r2, 0x4]
+_080234F6:
+ ldr r1, _08023520 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r1]
+_080234FE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023508: .4byte gUnknown_030041C0
+_0802350C: .4byte gBattleMons
+_08023510: .4byte gUnknown_02024C07
+_08023514: .4byte gUnknown_03004290
+_08023518: .4byte gUnknown_02024A60
+_0802351C: .4byte gUnknown_02024260
+_08023520: .4byte gUnknown_02024C10
+ thumb_func_end sub_802331C
+
+ thumb_func_start sub_8023524
+sub_8023524: @ 8023524
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r6, _08023630 @ =gUnknown_02024C10
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08023634 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl sub_80157C4
+ ldr r2, _08023638 @ =gUnknown_02024C6C
+ ldr r1, _0802363C @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 28
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ ldr r2, _08023640 @ =gUnknown_02024D68
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ ldr r5, _08023644 @ =gUnknown_02024C7A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ mov r8, r0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802367C
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802367C
+ ldr r1, _08023648 @ =gBattleMons
+ mov r9, r1
+ ldrb r2, [r4]
+ movs r7, 0x58
+ adds r0, r2, 0
+ muls r0, r7
+ adds r1, r0, r1
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0802367C
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0802367C
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1A
+ beq _0802367C
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r2, [r0]
+ mov r1, r8
+ orrs r1, r2
+ strh r1, [r0]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ ldr r2, _0802364C @ =gUnknown_02024C80
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x6]
+ movs r1, 0x5
+ subs r1, r0
+ lsls r1, 25
+ lsrs r1, 24
+ ldr r5, _08023650 @ =gUnknown_02024BEC
+ ldrb r0, [r4]
+ muls r0, r7
+ add r0, r9
+ ldrh r0, [r0, 0x2C]
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _08023614
+ movs r0, 0x1
+ str r0, [r5]
+_08023614:
+ ldr r0, _08023654 @ =0x02000000
+ ldrb r1, [r4]
+ ldr r2, _08023658 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ bl b_movescr_stack_push_cursor
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08023660
+ ldr r0, _0802365C @ =gUnknown_081D919F
+ str r0, [r6]
+ b _080237B6
+ .align 2, 0
+_08023630: .4byte gUnknown_02024C10
+_08023634: .4byte gUnknown_02024A60
+_08023638: .4byte gUnknown_02024C6C
+_0802363C: .4byte gBitTable
+_08023640: .4byte gUnknown_02024D68
+_08023644: .4byte gUnknown_02024C7A
+_08023648: .4byte gBattleMons
+_0802364C: .4byte gUnknown_02024C80
+_08023650: .4byte gUnknown_02024BEC
+_08023654: .4byte 0x02000000
+_08023658: .4byte 0x00016003
+_0802365C: .4byte gUnknown_081D919F
+_08023660:
+ cmp r0, 0x1
+ bne _08023670
+ ldr r0, _0802366C @ =gUnknown_081D9171
+ str r0, [r6]
+ b _080237B6
+ .align 2, 0
+_0802366C: .4byte gUnknown_081D9171
+_08023670:
+ ldr r0, _08023678 @ =gUnknown_081D91CD
+ str r0, [r6]
+ b _080237B6
+ .align 2, 0
+_08023678: .4byte gUnknown_081D91CD
+_0802367C:
+ ldr r1, _08023754 @ =gBattleMons
+ ldr r5, _08023758 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x36
+ bne _080236A2
+ ldr r1, _0802375C @ =gUnknown_02024CA8
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x18]
+_080236A2:
+ ldrb r1, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080236B8
+ b _080237B6
+_080236B8:
+ ldrb r1, [r5]
+ movs r0, 0
+ movs r2, 0
+ bl sub_801A02C
+ lsls r0, 24
+ cmp r0, 0
+ bne _080237B6
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ ldr r1, _08023760 @ =gUnknown_02024C7A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r2, [r0]
+ ldr r1, _08023764 @ =0x0000fdff
+ ands r1, r2
+ strh r1, [r0]
+ movs r4, 0
+ ldr r0, _08023768 @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ cmp r4, r3
+ bge _08023706
+ ldr r6, _0802376C @ =gUnknown_02024A7A
+ ldr r3, _08023770 @ =gUnknown_02024A76
+ movs r2, 0xC
+ adds r1, r0, 0
+_080236F0:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ ldrb r7, [r5]
+ cmp r0, r7
+ bne _080236FE
+ adds r0, r4, r3
+ strb r2, [r0]
+_080236FE:
+ adds r4, 0x1
+ ldrb r0, [r1]
+ cmp r4, r0
+ blt _080236F0
+_08023706:
+ movs r4, 0
+ ldr r0, _08023768 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _08023736
+ ldr r5, _08023754 @ =gBattleMons
+_08023712:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r1, _08023774 @ =0x020160bc
+ adds r0, r1
+ movs r1, 0x58
+ muls r1, r4
+ adds r1, r5
+ ldrh r1, [r1, 0x28]
+ strh r1, [r0]
+ adds r4, 0x1
+ ldr r0, _08023768 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _08023712
+_08023736:
+ ldr r0, _08023778 @ =gUnknown_02024C10
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x5
+ bne _080237B0
+ ldr r0, _0802377C @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ lsrs r4, r0, 28
+ ldr r1, _08023780 @ =gUnknown_02024C09
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r2, _08023784 @ =gBitTable
+ b _08023796
+ .align 2, 0
+_08023754: .4byte gBattleMons
+_08023758: .4byte gUnknown_02024A60
+_0802375C: .4byte gUnknown_02024CA8
+_08023760: .4byte gUnknown_02024C7A
+_08023764: .4byte 0x0000fdff
+_08023768: .4byte gUnknown_02024A68
+_0802376C: .4byte gUnknown_02024A7A
+_08023770: .4byte gUnknown_02024A76
+_08023774: .4byte 0x020160bc
+_08023778: .4byte gUnknown_02024C10
+_0802377C: .4byte gUnknown_02024C6C
+_08023780: .4byte gUnknown_02024C09
+_08023784: .4byte gBitTable
+_08023788:
+ ldr r0, _080237C4 @ =gUnknown_02024A68
+ ldrb r3, [r1]
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcs _080237B0
+ adds r0, r3, 0x1
+ strb r0, [r1]
+_08023796:
+ ldrb r0, [r1]
+ lsls r0, 2
+ adds r0, r2
+ ldr r3, [r0]
+ adds r0, r4, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08023788
+ ldr r0, _080237C8 @ =gUnknown_02024C0C
+ ldrb r0, [r0]
+ ands r0, r3
+ cmp r0, 0
+ bne _08023788
+_080237B0:
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+_080237B6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080237C4: .4byte gUnknown_02024A68
+_080237C8: .4byte gUnknown_02024C0C
+ thumb_func_end sub_8023524
+
+ thumb_func_start sub_80237CC
+sub_80237CC: @ 80237CC
+ push {lr}
+ ldr r0, _080237DC @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080237E0
+ movs r0, 0
+ b _080237E2
+ .align 2, 0
+_080237DC: .4byte gUnknown_02024C10
+_080237E0:
+ movs r0, 0x1
+_080237E2:
+ bl battle_get_side_with_given_state
+ ldr r1, _08023804 @ =gUnknown_02024A60
+ strb r0, [r1]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x08_8_8_8
+ ldr r0, _08023804 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08023808 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023804: .4byte gUnknown_02024A60
+_08023808: .4byte gUnknown_02024C10
+ thumb_func_end sub_80237CC
+
+ thumb_func_start atk54_802511C
+atk54_802511C: @ 802380C
+ push {r4,r5,lr}
+ ldr r5, _0802383C @ =gUnknown_02024A60
+ ldr r0, _08023840 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r4, _08023844 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2B_aa_0
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802383C: .4byte gUnknown_02024A60
+_08023840: .4byte gUnknown_02024C07
+_08023844: .4byte gUnknown_02024C10
+ thumb_func_end atk54_802511C
+
+ thumb_func_start sub_8023848
+sub_8023848: @ 8023848
+ push {r4,r5,lr}
+ ldr r5, _08023878 @ =gUnknown_02024A60
+ ldr r0, _0802387C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r4, _08023880 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0
+ bl sub_800D074
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r4]
+ adds r0, 0x3
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023878: .4byte gUnknown_02024A60
+_0802387C: .4byte gUnknown_02024C07
+_08023880: .4byte gUnknown_02024C10
+ thumb_func_end sub_8023848
+
+ thumb_func_start atk56_8025194
+atk56_8025194: @ 8023884
+ push {r4,r5,lr}
+ ldr r5, _080238AC @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _080238B0 @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x2D_2D_2D_2D
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080238AC: .4byte gUnknown_02024C10
+_080238B0: .4byte gUnknown_02024A60
+ thumb_func_end atk56_8025194
+
+ thumb_func_start atk57_80251C4_flee
+atk57_80251C4_flee: @ 80238B4
+ push {r4,lr}
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r4, _080238E0 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r0, _080238E4 @ =gUnknown_02024D26
+ ldrb r1, [r0]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x37_a
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _080238E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080238E0: .4byte gUnknown_02024A60
+_080238E4: .4byte gUnknown_02024D26
+_080238E8: .4byte gUnknown_02024C10
+ thumb_func_end atk57_80251C4_flee
+
+ thumb_func_start atk58_cmd58
+atk58_cmd58: @ 80238EC
+ push {r4,r5,lr}
+ ldr r5, _08023918 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0802391C @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0x1
+ bl dp01_build_cmdbuf_x06_a
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023918: .4byte gUnknown_02024C10
+_0802391C: .4byte gUnknown_02024A60
+ thumb_func_end atk58_cmd58
+
+ thumb_func_start atk59_8025230
+atk59_8025230: @ 8023920
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0802399C @ =gUnknown_02024C10
+ ldr r2, [r0]
+ ldrb r6, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r6, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r6, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r6, r0
+ ldrb r4, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r4, r0
+ ldr r0, _080239A0 @ =0x02000000
+ ldr r1, _080239A4 @ =0x00016018
+ adds r7, r0, r1
+ ldrb r1, [r7]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080239A8 @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r2, 0x9]
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _080239AC @ =0x0000fffe
+ cmp r5, r0
+ bne _08023992
+ mov r9, r7
+ mov r8, r5
+ movs r7, 0x64
+_0802397A:
+ mov r3, r9
+ ldrb r0, [r3]
+ muls r0, r7
+ ldr r1, _080239A8 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r8
+ beq _0802397A
+_08023992:
+ cmp r5, 0
+ bne _080239B0
+ ldr r0, _0802399C @ =gUnknown_02024C10
+ str r4, [r0]
+ b _08023A58
+ .align 2, 0
+_0802399C: .4byte gUnknown_02024C10
+_080239A0: .4byte 0x02000000
+_080239A4: .4byte 0x00016018
+_080239A8: .4byte gPlayerParty
+_080239AC: .4byte 0x0000fffe
+_080239B0:
+ ldr r0, _080239C0 @ =0x0000ffff
+ cmp r5, r0
+ bne _080239C8
+ ldr r1, _080239C4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+ b _08023A58
+ .align 2, 0
+_080239C0: .4byte 0x0000ffff
+_080239C4: .4byte gUnknown_02024C10
+_080239C8:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08023A64 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r0, _08023A68 @ =gUnknown_02024A6A
+ ldrb r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r0
+ ldr r0, _08023A6C @ =0x02000000
+ ldr r3, _08023A70 @ =0x00016018
+ adds r0, r3
+ ldrh r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08023A08
+ ldr r3, _08023A74 @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023A08
+ adds r0, r2, r3
+ adds r1, r5, 0
+ bl GiveMoveToBattleMon
+_08023A08:
+ ldr r0, _08023A78 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023A54
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ ldr r1, _08023A64 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r0, _08023A68 @ =gUnknown_02024A6A
+ ldrb r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r0
+ ldr r0, _08023A6C @ =0x02000000
+ ldr r3, _08023A70 @ =0x00016018
+ adds r0, r3
+ ldrh r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08023A54
+ ldr r3, _08023A74 @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023A54
+ adds r0, r2, r3
+ adds r1, r5, 0
+ bl GiveMoveToBattleMon
+_08023A54:
+ ldr r0, _08023A7C @ =gUnknown_02024C10
+ str r6, [r0]
+_08023A58:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023A64: .4byte gUnknown_02024A60
+_08023A68: .4byte gUnknown_02024A6A
+_08023A6C: .4byte 0x02000000
+_08023A70: .4byte 0x00016018
+_08023A74: .4byte gBattleMons
+_08023A78: .4byte gUnknown_020239F8
+_08023A7C: .4byte gUnknown_02024C10
+ thumb_func_end atk59_8025230
+
+ thumb_func_start sub_8023A80
+sub_8023A80: @ 8023A80
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x18
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl sub_802BBD4
+ ldr r4, _08023AC8 @ =gUnknown_03004210
+ ldr r1, _08023ACC @ =gUnknown_08400D7A
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x9
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x19
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08023AD0 @ =0x0000ffff
+ ldr r3, _08023AD4 @ =0x00002d9f
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023AC8: .4byte gUnknown_03004210
+_08023ACC: .4byte gUnknown_08400D7A
+_08023AD0: .4byte 0x0000ffff
+_08023AD4: .4byte 0x00002d9f
+ thumb_func_end sub_8023A80
+
+ thumb_func_start sub_8023AD8
+sub_8023AD8: @ 8023AD8
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x18
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl sub_802BBD4
+ bl sub_814A7FC
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8023AD8
+
+ thumb_func_start sub_8023AF8
+sub_8023AF8: @ 8023AF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _08023B24 @ =gUnknown_02024A60
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08023B28 @ =0x02000000
+ ldr r2, _08023B2C @ =0x0001601a
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x5
+ bls _08023B18
+ b _08023E5C
+_08023B18:
+ lsls r0, 2
+ ldr r1, _08023B30 @ =_08023B34
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08023B24: .4byte gUnknown_02024A60
+_08023B28: .4byte 0x02000000
+_08023B2C: .4byte 0x0001601a
+_08023B30: .4byte _08023B34
+ .align 2, 0
+_08023B34:
+ .4byte _08023B4C
+ .4byte _08023B74
+ .4byte _08023C30
+ .4byte _08023C84
+ .4byte _08023E38
+ .4byte _08023E4C
+_08023B4C:
+ bl sub_8023A80
+ ldr r1, _08023B68 @ =0x02000000
+ ldr r0, _08023B6C @ =0x0001601a
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, _08023B70 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x1]
+ bl sub_802BC6C
+ b _08023E5C
+ .align 2, 0
+_08023B68: .4byte 0x02000000
+_08023B6C: .4byte 0x0001601a
+_08023B70: .4byte gUnknown_02024D1E
+_08023B74:
+ ldr r0, _08023BFC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08023B9A
+ ldr r4, _08023C00 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08023B9A
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023B9A:
+ ldr r0, _08023BFC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023BC0
+ ldr r4, _08023C00 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08023BC0
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023BC0:
+ ldr r0, _08023BFC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023C0C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08023C00 @ =gUnknown_02024D1E
+ ldrb r4, [r0, 0x1]
+ cmp r4, 0
+ bne _08023C1C
+ bl sub_8023AD8
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08023C04 @ =0x02000000
+ ldr r2, _08023C08 @ =0x0001601a
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08023E5A
+ .align 2, 0
+_08023BFC: .4byte gMain
+_08023C00: .4byte gUnknown_02024D1E
+_08023C04: .4byte 0x02000000
+_08023C08: .4byte 0x0001601a
+_08023C0C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08023C16
+ b _08023E5C
+_08023C16:
+ movs r0, 0x5
+ bl PlaySE
+_08023C1C:
+ ldr r0, _08023C28 @ =0x02000000
+ ldr r1, _08023C2C @ =0x0001601a
+ adds r0, r1
+ movs r1, 0x4
+ strb r1, [r0]
+ b _08023E5C
+ .align 2, 0
+_08023C28: .4byte 0x02000000
+_08023C2C: .4byte 0x0001601a
+_08023C30:
+ ldr r0, _08023C68 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023C3E
+ b _08023E5C
+_08023C3E:
+ ldr r0, _08023C6C @ =gPlayerParty
+ ldr r2, _08023C70 @ =0x00016018
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ ldr r2, _08023C74 @ =gPlayerPartyCount
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08023C78 @ =sub_807AD58
+ ldr r4, _08023C7C @ =word_2024E82
+ ldrh r4, [r4]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldr r0, _08023C80 @ =0x0001601a
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08023E5A
+ .align 2, 0
+_08023C68: .4byte gPaletteFade
+_08023C6C: .4byte gPlayerParty
+_08023C70: .4byte 0x00016018
+_08023C74: .4byte gPlayerPartyCount
+_08023C78: .4byte sub_807AD58
+_08023C7C: .4byte word_2024E82
+_08023C80: .4byte 0x0001601a
+_08023C84:
+ ldr r0, _08023CB4 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023C92
+ b _08023E5C
+_08023C92:
+ ldr r0, _08023CB8 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _08023CBC @ =sub_800F808
+ cmp r1, r0
+ beq _08023C9E
+ b _08023E5C
+_08023C9E:
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bne _08023CC8
+ ldr r0, _08023CC0 @ =0x02000000
+ ldr r1, _08023CC4 @ =0x0001601a
+ adds r0, r1
+ strb r5, [r0]
+ b _08023E5C
+ .align 2, 0
+_08023CB4: .4byte gPaletteFade
+_08023CB8: .4byte gMain
+_08023CBC: .4byte sub_800F808
+_08023CC0: .4byte 0x02000000
+_08023CC4: .4byte 0x0001601a
+_08023CC8:
+ ldr r2, _08023D08 @ =0x02000000
+ mov r9, r2
+ ldr r6, _08023D0C @ =0x00016018
+ add r6, r9
+ ldrb r0, [r6]
+ movs r1, 0x64
+ mov r8, r1
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r7, _08023D10 @ =gPlayerParty
+ adds r0, r7
+ adds r1, r5, 0
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8040A00
+ cmp r0, 0
+ beq _08023D20
+ ldr r0, _08023D14 @ =0x0000013f
+ ldr r1, _08023D18 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ bl b_std_message
+ ldr r1, _08023D1C @ =0x0001601a
+ add r1, r9
+ movs r0, 0x5
+ b _08023E5A
+ .align 2, 0
+_08023D08: .4byte 0x02000000
+_08023D0C: .4byte 0x00016018
+_08023D10: .4byte gPlayerParty
+_08023D14: .4byte 0x0000013f
+_08023D18: .4byte gUnknown_02024A60
+_08023D1C: .4byte 0x0001601a
+_08023D20:
+ ldr r3, _08023E10 @ =gUnknown_02024C10
+ 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]
+ ldr r1, _08023E14 @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ adds r1, r5, 0
+ bl RemoveMonPPBonus
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ ldr r7, _08023E18 @ =word_2024E82
+ ldrh r1, [r7]
+ adds r2, r5, 0
+ bl SetMonMoveSlot
+ ldr r0, _08023E1C @ =gUnknown_02024A6A
+ ldrh r0, [r0]
+ ldrb r6, [r6]
+ cmp r0, r6
+ bne _08023DB0
+ ldr r4, _08023E20 @ =gBattleMons
+ ldr r0, [r4, 0x50]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023DB0
+ ldr r0, _08023E24 @ =gUnknown_02024CA8
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08023E28 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08023DB0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl RemoveBattleMonPPBonus
+ ldrh r1, [r7]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl SetBattleMonMoveSlot
+_08023DB0:
+ ldr r0, _08023E2C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023E5C
+ ldr r0, _08023E1C @ =gUnknown_02024A6A
+ ldr r1, _08023E30 @ =0x02000000
+ ldr r2, _08023E34 @ =0x00016018
+ adds r1, r2
+ ldrh r0, [r0, 0x4]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08023E5C
+ ldr r4, _08023E20 @ =gBattleMons
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _08023E5C
+ ldr r0, _08023E24 @ =gUnknown_02024CA8
+ adds r0, 0x50
+ ldrb r1, [r0]
+ lsrs r1, 4
+ ldr r2, _08023E28 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08023E5C
+ adds r4, 0xB0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl RemoveBattleMonPPBonus
+ ldr r0, _08023E18 @ =word_2024E82
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ bl SetBattleMonMoveSlot
+ b _08023E5C
+ .align 2, 0
+_08023E10: .4byte gUnknown_02024C10
+_08023E14: .4byte gUnknown_03004290
+_08023E18: .4byte word_2024E82
+_08023E1C: .4byte gUnknown_02024A6A
+_08023E20: .4byte gBattleMons
+_08023E24: .4byte gUnknown_02024CA8
+_08023E28: .4byte gBitTable
+_08023E2C: .4byte gUnknown_020239F8
+_08023E30: .4byte 0x02000000
+_08023E34: .4byte 0x00016018
+_08023E38:
+ bl sub_8023AD8
+ ldr r1, _08023E48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08023E5C
+ .align 2, 0
+_08023E48: .4byte gUnknown_02024C10
+_08023E4C:
+ ldr r0, _08023E6C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08023E5C
+ ldr r2, _08023E70 @ =0x0001601a
+ adds r1, r5, r2
+ movs r0, 0x2
+_08023E5A:
+ strb r0, [r1]
+_08023E5C:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023E6C: .4byte gUnknown_02024A64
+_08023E70: .4byte 0x0001601a
+ thumb_func_end sub_8023AF8
+
+ thumb_func_start atk5B_80256E0
+atk5B_80256E0: @ 8023E74
+ push {r4,r5,lr}
+ ldr r0, _08023E88 @ =0x02000000
+ ldr r1, _08023E8C @ =0x0001601a
+ adds r5, r0, r1
+ ldrb r4, [r5]
+ cmp r4, 0
+ beq _08023E90
+ cmp r4, 0x1
+ beq _08023EA8
+ b _08023F78
+ .align 2, 0
+_08023E88: .4byte 0x02000000
+_08023E8C: .4byte 0x0001601a
+_08023E90:
+ bl sub_8023A80
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ ldr r0, _08023EA4 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x1]
+ bl sub_802BC6C
+ b _08023F78
+ .align 2, 0
+_08023EA4: .4byte gUnknown_02024D1E
+_08023EA8:
+ ldr r0, _08023F2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08023ECE
+ ldr r4, _08023F30 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08023ECE
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023ECE:
+ ldr r0, _08023F2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08023EF4
+ ldr r4, _08023F30 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08023EF4
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08023EF4:
+ ldr r0, _08023F2C @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023F4C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08023F30 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _08023F38
+ ldr r3, _08023F34 @ =gUnknown_02024C10
+ 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 _08023F40
+ .align 2, 0
+_08023F2C: .4byte gMain
+_08023F30: .4byte gUnknown_02024D1E
+_08023F34: .4byte gUnknown_02024C10
+_08023F38:
+ ldr r1, _08023F48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08023F40:
+ bl sub_8023AD8
+ b _08023F78
+ .align 2, 0
+_08023F48: .4byte gUnknown_02024C10
+_08023F4C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08023F78
+ movs r0, 0x5
+ bl PlaySE
+ ldr r3, _08023F80 @ =gUnknown_02024C10
+ 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]
+ bl sub_8023AD8
+_08023F78:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08023F80: .4byte gUnknown_02024C10
+ thumb_func_end atk5B_80256E0
+
+ thumb_func_start atk5C_cmd5c
+atk5C_cmd5c: @ 8023F84
+ push {r4,lr}
+ ldr r4, _08023FF0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r2, _08023FF4 @ =gUnknown_02024A60
+ strb r0, [r2]
+ ldr r0, _08023FF8 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ bne _08024008
+ ldr r0, _08023FFC @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08023FD6
+ ldr r1, _08024000 @ =gBattleMons
+ ldrb r2, [r2]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _08023FD6
+ ldr r0, _08024004 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _08024008
+_08023FD6:
+ movs r0, 0
+ bl dp01_build_cmdbuf_x29_29_29_29
+ ldr r0, _08023FF4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08023FF0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ b _0802400E
+ .align 2, 0
+_08023FF0: .4byte gUnknown_02024C10
+_08023FF4: .4byte gUnknown_02024A60
+_08023FF8: .4byte gUnknown_02024C68
+_08023FFC: .4byte gUnknown_02024C6C
+_08024000: .4byte gBattleMons
+_08024004: .4byte gUnknown_02024CA8
+_08024008:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+_0802400E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atk5C_cmd5c
+
+ thumb_func_start sub_8024014
+sub_8024014: @ 8024014
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, _08024048 @ =gTrainerBattleOpponent
+ ldrh r2, [r0]
+ movs r1, 0x80
+ lsls r1, 3
+ cmp r2, r1
+ bne _08024058
+ ldr r0, _0802404C @ =0x02017000
+ adds r1, r0, 0
+ adds r1, 0x94
+ ldrb r2, [r1]
+ ldr r1, _08024050 @ =0xfffff056
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r0, _08024054 @ =gSaveBlock1 + 0x490
+ mov r8, r0
+ b _08024140
+ .align 2, 0
+_08024048: .4byte gTrainerBattleOpponent
+_0802404C: .4byte 0x02017000
+_08024050: .4byte 0xfffff056
+_08024054: .4byte gSaveBlock1 + 0x490
+_08024058:
+ ldr r2, _08024074 @ =gTrainers
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r3, r0, 3
+ adds r4, r3, r2
+ ldrb r1, [r4]
+ cmp r1, 0x1
+ beq _080240AE
+ cmp r1, 0x1
+ bgt _08024078
+ cmp r1, 0
+ beq _08024082
+ b _080240C4
+ .align 2, 0
+_08024074: .4byte gTrainers
+_08024078:
+ cmp r1, 0x2
+ beq _08024098
+ cmp r1, 0x3
+ beq _080240AE
+ b _080240C4
+_08024082:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ subs r0, 0x8
+ b _080240C2
+_08024098:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r1
+ subs r0, 0x8
+ b _080240C2
+_080240AE:
+ adds r0, r2, 0
+ adds r0, 0x24
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ subs r0, 0x10
+_080240C2:
+ ldrb r5, [r0, 0x2]
+_080240C4:
+ ldr r0, _08024120 @ =gTrainerMoney
+ lsls r1, r6, 2
+ adds r3, r1, r0
+ ldrb r1, [r3]
+ mov r12, r0
+ lsls r4, r5, 2
+ ldr r5, _08024124 @ =0x02000000
+ ldr r7, _08024128 @ =gUnknown_020239F8
+ ldr r0, _0802412C @ =gSaveBlock1 + 0x490
+ mov r8, r0
+ cmp r1, 0xFF
+ beq _080240FE
+ ldr r2, _08024130 @ =gTrainers
+ ldr r0, _08024134 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r2, [r0, 0x1]
+ adds r1, r3, 0
+_080240EE:
+ ldrb r0, [r1]
+ cmp r0, r2
+ beq _080240FE
+ adds r1, 0x4
+ adds r6, 0x1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _080240EE
+_080240FE:
+ ldr r1, _08024138 @ =0x00016056
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ adds r3, r4, 0
+ muls r3, r0
+ lsls r0, r6, 2
+ add r0, r12
+ ldrb r2, [r0, 0x1]
+ ldrh r1, [r7]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802413C
+ lsls r0, r2, 1
+ adds r4, r3, 0
+ muls r4, r0
+ b _08024140
+ .align 2, 0
+_08024120: .4byte gTrainerMoney
+_08024124: .4byte 0x02000000
+_08024128: .4byte gUnknown_020239F8
+_0802412C: .4byte gSaveBlock1 + 0x490
+_08024130: .4byte gTrainers
+_08024134: .4byte gTrainerBattleOpponent
+_08024138: .4byte 0x00016056
+_0802413C:
+ adds r4, r3, 0
+ muls r4, r2
+_08024140:
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_80B79B8
+ ldr r1, _0802418C @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x4
+ strb r0, [r1, 0x2]
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ strb r4, [r1, 0x4]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r4
+ lsrs r0, 8
+ strb r0, [r1, 0x5]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r4
+ lsrs r0, 16
+ strb r0, [r1, 0x6]
+ lsrs r0, r4, 24
+ strb r0, [r1, 0x7]
+ movs r0, 0xFF
+ strb r0, [r1, 0x8]
+ ldr r1, _08024190 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802418C: .4byte gUnknown_030041C0
+_08024190: .4byte gUnknown_02024C10
+ thumb_func_end sub_8024014
+
+ thumb_func_start atk5E_8025A70
+atk5E_8025A70: @ 8024194
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _080241B8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r6, _080241BC @ =gUnknown_02024A60
+ strb r0, [r6]
+ ldr r5, _080241C0 @ =gUnknown_02024D1E
+ ldrb r0, [r5]
+ mov r8, r4
+ cmp r0, 0
+ beq _080241C4
+ cmp r0, 0x1
+ beq _080241DC
+ b _08024230
+ .align 2, 0
+_080241B8: .4byte gUnknown_02024C10
+_080241BC: .4byte gUnknown_02024A60
+_080241C0: .4byte gUnknown_02024D1E
+_080241C4:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x00_a_b_0
+ ldrb r0, [r6]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _08024230
+_080241DC:
+ ldr r0, _0802423C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08024230
+ ldrb r0, [r6]
+ lsls r0, 9
+ ldr r1, _08024240 @ =gUnknown_02024264
+ adds r0, r1
+ mov r12, r0
+ movs r2, 0
+ adds r4, r6, 0
+ movs r5, 0x58
+ ldr r6, _08024244 @ =gUnknown_02024AA4
+ adds r7, r6, 0
+ subs r7, 0x18
+ mov r3, r12
+ adds r3, 0xC
+_080241FE:
+ lsls r1, r2, 1
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r1, r0
+ adds r1, r7
+ ldrh r0, [r3]
+ strh r0, [r1]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r2, r1
+ adds r1, r6
+ mov r0, r12
+ adds r0, 0x24
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r3, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _080241FE
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08024230:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802423C: .4byte gUnknown_02024A64
+_08024240: .4byte gUnknown_02024264
+_08024244: .4byte gUnknown_02024AA4
+ thumb_func_end atk5E_8025A70
+
+ thumb_func_start atk5F_8025B24
+atk5F_8025B24: @ 8024248
+ push {lr}
+ ldr r0, _08024270 @ =gUnknown_02024A60
+ ldr r2, _08024274 @ =gUnknown_02024C07
+ ldrb r3, [r2]
+ strb r3, [r0]
+ ldr r1, _08024278 @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ ldr r2, _0802427C @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08024284
+ ldr r0, _08024280 @ =0xffffefff
+ ands r1, r0
+ b _08024286
+ .align 2, 0
+_08024270: .4byte gUnknown_02024A60
+_08024274: .4byte gUnknown_02024C07
+_08024278: .4byte gUnknown_02024C08
+_0802427C: .4byte gUnknown_02024C6C
+_08024280: .4byte 0xffffefff
+_08024284:
+ orrs r1, r3
+_08024286:
+ str r1, [r2]
+ ldr r1, _08024294 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024294: .4byte gUnknown_02024C10
+ thumb_func_end atk5F_8025B24
+
+ thumb_func_start atk60_cmd60
+atk60_cmd60: @ 8024298
+ push {lr}
+ ldr r0, _080242C0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080242B2
+ ldr r0, _080242C4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sav12_xor_increment
+_080242B2:
+ ldr r1, _080242C4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080242C0: .4byte gUnknown_02024C07
+_080242C4: .4byte gUnknown_02024C10
+ thumb_func_end atk60_cmd60
+
+ thumb_func_start atk61_8025BA4
+atk61_8025BA4: @ 80242C8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x30
+ ldr r0, _0802432C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802437C
+ ldr r0, _08024330 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024334 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldrb r0, [r1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _08024338 @ =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _080242FA
+ ldr r0, _0802433C @ =gPlayerParty
+ mov r8, r0
+_080242FA:
+ movs r7, 0
+ add r6, sp, 0x4
+ mov r5, sp
+_08024300:
+ movs r0, 0x64
+ muls r0, r7
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08024324
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ bne _08024344
+_08024324:
+ ldr r0, _08024340 @ =0x0000ffff
+ strh r0, [r5]
+ movs r0, 0
+ b _08024356
+ .align 2, 0
+_0802432C: .4byte gUnknown_02024A64
+_08024330: .4byte gUnknown_02024C10
+_08024334: .4byte gUnknown_02024A60
+_08024338: .4byte gEnemyParty
+_0802433C: .4byte gPlayerParty
+_08024340: .4byte 0x0000ffff
+_08024344:
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r5]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+_08024356:
+ str r0, [r6]
+ adds r6, 0x8
+ adds r5, 0x8
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08024300
+ movs r0, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl dp01_build_cmdbuf_x30_TODO
+ ldr r0, _08024388 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802438C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0802437C:
+ add sp, 0x30
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024388: .4byte gUnknown_02024A60
+_0802438C: .4byte gUnknown_02024C10
+ thumb_func_end atk61_8025BA4
+
+ thumb_func_start atk62_08025C6C
+atk62_08025C6C: @ 8024390
+ push {r4,r5,lr}
+ ldr r5, _080243B8 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _080243BC @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x31_31_31_31
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080243B8: .4byte gUnknown_02024C10
+_080243BC: .4byte gUnknown_02024A60
+ thumb_func_end atk62_08025C6C
+
+ thumb_func_start atk63_jumptoattack
+atk63_jumptoattack: @ 80243C0
+ push {r4,lr}
+ ldr r0, _080243D8 @ =gUnknown_02024C10
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0
+ beq _080243E4
+ ldr r0, _080243DC @ =gUnknown_02024BE6
+ ldr r1, _080243E0 @ =gUnknown_02024BEA
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _080243F2
+ .align 2, 0
+_080243D8: .4byte gUnknown_02024C10
+_080243DC: .4byte gUnknown_02024BE6
+_080243E0: .4byte gUnknown_02024BEA
+_080243E4:
+ ldr r2, _08024410 @ =gUnknown_02024BE8
+ ldr r1, _08024414 @ =gUnknown_02024BE6
+ ldr r0, _08024418 @ =gUnknown_02024BEA
+ ldrh r0, [r0]
+ strh r0, [r1]
+ strh r0, [r2]
+ adds r0, r1, 0
+_080243F2:
+ ldr r3, _0802441C @ =gUnknown_081D6BBC
+ ldr r2, _08024420 @ =gBattleMoves
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024410: .4byte gUnknown_02024BE8
+_08024414: .4byte gUnknown_02024BE6
+_08024418: .4byte gUnknown_02024BEA
+_0802441C: .4byte gUnknown_081D6BBC
+_08024420: .4byte gBattleMoves
+ thumb_func_end atk63_jumptoattack
+
+ thumb_func_start atk64_statusanimation
+atk64_statusanimation: @ 8024424
+ push {r4,lr}
+ ldr r0, _08024494 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802448C
+ ldr r0, _08024498 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _0802449C @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r1, _080244A0 @ =gUnknown_02024C98
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080244A4 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _08024484
+ ldr r0, _080244A8 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _08024484
+ ldr r0, _080244AC @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08024484
+ ldr r1, _080244B0 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r2, [r0]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x1B_aaaa_b
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_08024484:
+ ldr r1, _08024498 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_0802448C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024494: .4byte gUnknown_02024A64
+_08024498: .4byte gUnknown_02024C10
+_0802449C: .4byte gUnknown_02024A60
+_080244A0: .4byte gUnknown_02024C98
+_080244A4: .4byte 0x000400c0
+_080244A8: .4byte gUnknown_02024CA8
+_080244AC: .4byte gUnknown_02024C6C
+_080244B0: .4byte gBattleMons
+ thumb_func_end atk64_statusanimation
+
+ thumb_func_start atk65_8025D90
+atk65_8025D90: @ 80244B4
+ push {r4,r5,lr}
+ ldr r0, _0802453C @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08024534
+ ldr r4, _08024540 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _08024544 @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r1, [r4]
+ ldrb r3, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r3, r0
+ ldr r1, _08024548 @ =gUnknown_02024C98
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0802454C @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802452C
+ ldr r0, _08024550 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _0802452C
+ ldr r0, _08024554 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802452C
+ ldr r1, _08024558 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r2, [r0]
+ ands r2, r3
+ movs r0, 0
+ movs r1, 0x1
+ bl dp01_build_cmdbuf_x1B_aaaa_b
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802452C:
+ ldr r1, _08024540 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x6
+ str r0, [r1]
+_08024534:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802453C: .4byte gUnknown_02024A64
+_08024540: .4byte gUnknown_02024C10
+_08024544: .4byte gUnknown_02024A60
+_08024548: .4byte gUnknown_02024C98
+_0802454C: .4byte 0x000400c0
+_08024550: .4byte gUnknown_02024CA8
+_08024554: .4byte gUnknown_02024C6C
+_08024558: .4byte gBattleMons
+ thumb_func_end atk65_8025D90
+
+ thumb_func_start atk66_8025E38
+atk66_8025E38: @ 802455C
+ push {r4,r5,lr}
+ ldr r0, _080245D4 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080245CE
+ ldr r4, _080245D8 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _080245DC @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r4, [r4]
+ ldrb r2, [r4, 0x3]
+ ldrb r0, [r4, 0x4]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r4, 0x5]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r4, 0x6]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _080245E0 @ =gUnknown_02024C98
+ ldrb r3, [r5]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080245E4 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _080245C6
+ ldr r0, _080245E8 @ =gUnknown_02024CA8
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ bne _080245C6
+ ldr r0, _080245EC @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _080245C6
+ ldrb r1, [r4, 0x2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x1B_aaaa_b
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080245C6:
+ ldr r1, _080245D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x7
+ str r0, [r1]
+_080245CE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080245D4: .4byte gUnknown_02024A64
+_080245D8: .4byte gUnknown_02024C10
+_080245DC: .4byte gUnknown_02024A60
+_080245E0: .4byte gUnknown_02024C98
+_080245E4: .4byte 0x000400c0
+_080245E8: .4byte gUnknown_02024CA8
+_080245EC: .4byte gUnknown_02024C6C
+ thumb_func_end atk66_8025E38
+
+ thumb_func_start atk67_8025ECC
+atk67_8025ECC: @ 80245F0
+ push {r4,r5,lr}
+ ldr r5, _08024600 @ =gUnknown_02024D1E
+ ldrb r4, [r5]
+ cmp r4, 0
+ beq _08024604
+ cmp r4, 0x1
+ beq _08024616
+ b _08024696
+ .align 2, 0
+_08024600: .4byte gUnknown_02024D1E
+_08024604:
+ bl sub_8023A80
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ strb r4, [r5, 0x1]
+ bl sub_802BC6C
+ b _08024696
+_08024616:
+ ldr r0, _08024674 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802463A
+ ldrb r0, [r5, 0x1]
+ cmp r0, 0
+ beq _0802463A
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r5, 0x1]
+ bl sub_802BC6C
+_0802463A:
+ ldr r0, _08024674 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08024660
+ ldr r4, _08024678 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08024660
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08024660:
+ ldr r0, _08024674 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802467C
+ ldr r1, _08024678 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ b _08024684
+ .align 2, 0
+_08024674: .4byte gMain
+_08024678: .4byte gUnknown_02024D1E
+_0802467C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08024696
+_08024684:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8023AD8
+ ldr r1, _0802469C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08024696:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802469C: .4byte gUnknown_02024C10
+ thumb_func_end atk67_8025ECC
+
+ thumb_func_start sub_80246A0
+sub_80246A0: @ 80246A0
+ push {r4,r5,lr}
+ movs r1, 0
+ ldr r2, _080246CC @ =gUnknown_02024A68
+ ldr r5, _080246D0 @ =gUnknown_02024C10
+ ldrb r0, [r2]
+ cmp r1, r0
+ bge _080246BE
+ ldr r4, _080246D4 @ =gUnknown_02024A76
+ movs r3, 0xC
+_080246B2:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r1, 0x1
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _080246B2
+_080246BE:
+ ldr r0, [r5]
+ adds r0, 0x1
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080246CC: .4byte gUnknown_02024A68
+_080246D0: .4byte gUnknown_02024C10
+_080246D4: .4byte gUnknown_02024A76
+ thumb_func_end sub_80246A0
+
+ thumb_func_start atk69_8025FE0
+atk69_8025FE0: @ 80246D8
+ push {r4-r7,lr}
+ ldr r7, _08024700 @ =gBattleMons
+ ldr r6, _08024704 @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _0802470C
+ ldr r1, _08024708 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _08024726
+ .align 2, 0
+_08024700: .4byte gBattleMons
+_08024704: .4byte gUnknown_02024C08
+_08024708: .4byte gEnigmaBerries
+_0802470C:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08024726:
+ ldr r1, _080247E8 @ =gUnknown_02024C0B
+ ldr r5, _080247EC @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _08024764
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _08024764
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _080247F0 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_08024764:
+ ldr r2, _080247F4 @ =gBattleMons
+ ldr r3, _080247EC @ =gUnknown_02024C08
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r2, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r1, r0
+ adds r5, r2, 0
+ cmp r1, 0
+ bne _08024834
+ ldr r2, _080247F8 @ =gBattleMoves
+ ldr r0, _080247FC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x65
+ beq _080247B6
+ ldr r0, _08024800 @ =gUnknown_02024D28
+ lsls r1, r4, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 30
+ cmp r0, 0
+ blt _080247B6
+ ldr r0, _080247F0 @ =gUnknown_02024D68
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08024834
+_080247B6:
+ ldrb r0, [r3]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r5
+ ldrh r1, [r0, 0x28]
+ ldr r2, _08024804 @ =gUnknown_02024BEC
+ ldr r0, [r2]
+ cmp r1, r0
+ bgt _08024834
+ subs r0, r1, 0x1
+ str r0, [r2]
+ ldr r1, _08024800 @ =gUnknown_02024D28
+ ldrb r3, [r3]
+ lsls r0, r3, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 30
+ cmp r0, 0
+ bge _0802480C
+ ldr r0, _08024808 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ b _08024834
+ .align 2, 0
+_080247E8: .4byte gUnknown_02024C0B
+_080247EC: .4byte gUnknown_02024C08
+_080247F0: .4byte gUnknown_02024D68
+_080247F4: .4byte gBattleMons
+_080247F8: .4byte gBattleMoves
+_080247FC: .4byte gUnknown_02024BE6
+_08024800: .4byte gUnknown_02024D28
+_08024804: .4byte gUnknown_02024BEC
+_08024808: .4byte gUnknown_02024C68
+_0802480C:
+ ldr r0, _08024844 @ =gUnknown_02024D68
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08024834
+ ldr r2, _08024848 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0802484C @ =gUnknown_02024C04
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r5
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+_08024834:
+ ldr r1, _08024850 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024844: .4byte gUnknown_02024D68
+_08024848: .4byte gUnknown_02024C68
+_0802484C: .4byte gUnknown_02024C04
+_08024850: .4byte gUnknown_02024C10
+ thumb_func_end atk69_8025FE0
+
+ thumb_func_start atk6A_stash_item_for_side
+atk6A_stash_item_for_side: @ 8024854
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _080248B0 @ =gUnknown_02024C10
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _080248B4 @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldrb r4, [r5]
+ lsls r1, r4, 1
+ ldr r0, _080248B8 @ =0x020160cc
+ adds r1, r0
+ ldr r2, _080248BC @ =gBattleMons
+ movs r3, 0x58
+ adds r0, r4, 0
+ muls r0, r3
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r2, 0x2E
+ adds r0, r2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080248B0: .4byte gUnknown_02024C10
+_080248B4: .4byte gUnknown_02024A60
+_080248B8: .4byte 0x020160cc
+_080248BC: .4byte gBattleMons
+ thumb_func_end atk6A_stash_item_for_side
+
+ thumb_func_start sub_80248C0
+sub_80248C0: @ 80248C0
+ ldr r1, _080248EC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x7
+ strb r0, [r1, 0x1]
+ ldr r2, _080248F0 @ =gUnknown_02024C07
+ ldrb r0, [r2]
+ strb r0, [r1, 0x2]
+ ldr r3, _080248F4 @ =gUnknown_02024A6A
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _080248F8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_080248EC: .4byte gUnknown_030041C0
+_080248F0: .4byte gUnknown_02024C07
+_080248F4: .4byte gUnknown_02024A6A
+_080248F8: .4byte gUnknown_02024C10
+ thumb_func_end sub_80248C0
+
+ thumb_func_start sub_80248FC
+sub_80248FC: @ 80248FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ movs r1, 0
+ movs r7, 0
+ ldr r0, _08024928 @ =0x02000000
+ mov r10, r0
+ ldr r4, _0802492C @ =0x0001609c
+ add r4, r10
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _0802491C
+ b _08024AF4
+_0802491C:
+ cmp r0, 0x1
+ bgt _08024930
+ cmp r0, 0
+ beq _0802493E
+ b _08024C38
+ .align 2, 0
+_08024928: .4byte 0x02000000
+_0802492C: .4byte 0x0001609c
+_08024930:
+ cmp r0, 0x2
+ bne _08024936
+ b _08024C04
+_08024936:
+ cmp r0, 0x3
+ bne _0802493C
+ b _08024C30
+_0802493C:
+ b _08024C38
+_0802493E:
+ str r1, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl sub_802BBD4
+ ldr r0, _0802499C @ =gStringVar4
+ ldr r1, _080249A0 @ =gUnknown_08400D9F
+ bl StringCopy
+ adds r5, r0, 0
+ movs r1, 0
+ mov r8, r1
+_0802495A:
+ movs r2, 0
+ mov r9, r2
+ ldr r0, _080249A4 @ =gUnknown_0840165C
+ mov r1, r8
+ lsls r4, r1, 2
+ adds r0, r4, r0
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringAppend
+ adds r5, r0, 0
+ ldr r0, _080249A8 @ =0x02000000
+ ldr r2, _080249AC @ =0x00016018
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080249B0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _080249B4 @ =gLevelUpStatBoxStats
+ add r1, r8
+ ldrb r1, [r1]
+ bl GetMonData
+ lsls r0, 16
+ lsrs r1, r0, 16
+ mov r0, r8
+ cmp r0, 0x5
+ bhi _08024A1A
+ ldr r0, _080249B8 @ =_080249BC
+ adds r0, r4, r0
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802499C: .4byte gStringVar4
+_080249A0: .4byte gUnknown_08400D9F
+_080249A4: .4byte gUnknown_0840165C
+_080249A8: .4byte 0x02000000
+_080249AC: .4byte 0x00016018
+_080249B0: .4byte gPlayerParty
+_080249B4: .4byte gLevelUpStatBoxStats
+_080249B8: .4byte _080249BC
+ .align 2, 0
+_080249BC:
+ .4byte _080249D4
+ .4byte _080249E0
+ .4byte _080249EC
+ .4byte _080249F8
+ .4byte _08024A04
+ .4byte _08024A10
+_080249D4:
+ ldr r0, _080249DC @ =0x02017180
+ ldrh r0, [r0]
+ b _08024A14
+ .align 2, 0
+_080249DC: .4byte 0x02017180
+_080249E0:
+ ldr r0, _080249E8 @ =0x02017180
+ ldrh r0, [r0, 0x8]
+ b _08024A14
+ .align 2, 0
+_080249E8: .4byte 0x02017180
+_080249EC:
+ ldr r0, _080249F4 @ =0x02017180
+ ldrh r0, [r0, 0x2]
+ b _08024A14
+ .align 2, 0
+_080249F4: .4byte 0x02017180
+_080249F8:
+ ldr r0, _08024A00 @ =0x02017180
+ ldrh r0, [r0, 0xA]
+ b _08024A14
+ .align 2, 0
+_08024A00: .4byte 0x02017180
+_08024A04:
+ ldr r0, _08024A0C @ =0x02017180
+ ldrh r0, [r0, 0x4]
+ b _08024A14
+ .align 2, 0
+_08024A0C: .4byte 0x02017180
+_08024A10:
+ ldr r0, _08024A54 @ =0x02017180
+ ldrh r0, [r0, 0x6]
+_08024A14:
+ subs r0, r1, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+_08024A1A:
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08024A2C
+ negs r0, r0
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r1, 0x1
+ add r9, r1
+_08024A2C:
+ movs r0, 0xFC
+ strb r0, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r1, 0x1
+ mov r2, r8
+ ands r1, r2
+ lsls r0, r1, 3
+ adds r0, r1
+ adds r0, 0x5
+ lsls r0, 3
+ adds r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ mov r0, r9
+ cmp r0, 0
+ beq _08024A5C
+ ldr r1, _08024A58 @ =gUnknown_08400DAC
+ b _08024A5E
+ .align 2, 0
+_08024A54: .4byte 0x02017180
+_08024A58: .4byte gUnknown_08400DAC
+_08024A5C:
+ ldr r1, _08024AA4 @ =gUnknown_08400DAA
+_08024A5E:
+ adds r0, r5, 0
+ bl StringCopy
+ adds r5, r0, 0
+ movs r6, 0xFC
+ strb r6, [r5]
+ movs r4, 0x14
+ strb r4, [r5, 0x1]
+ movs r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ lsls r1, r7, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ strb r6, [r5]
+ strb r4, [r5, 0x1]
+ movs r0, 0
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0x1
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08024AA8
+ movs r0, 0xFE
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ adds r5, 0x1
+ b _08024AB8
+ .align 2, 0
+_08024AA4: .4byte gUnknown_08400DAA
+_08024AA8:
+ strb r6, [r5]
+ movs r0, 0x11
+ strb r0, [r5, 0x1]
+ movs r0, 0x8
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0xFF
+ strb r0, [r5]
+_08024AB8:
+ movs r2, 0x1
+ add r8, r2
+ mov r0, r8
+ cmp r0, 0x5
+ bgt _08024AC4
+ b _0802495A
+_08024AC4:
+ ldr r4, _08024AE4 @ =gUnknown_03004210
+ ldr r1, _08024AE8 @ =gStringVar4
+ adds r2, 0xFF
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0xC
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08024AEC @ =0x02000000
+ ldr r2, _08024AF0 @ =0x0001609c
+ adds r1, r2
+ b _08024BEA
+ .align 2, 0
+_08024AE4: .4byte gUnknown_03004210
+_08024AE8: .4byte gStringVar4
+_08024AEC: .4byte 0x02000000
+_08024AF0: .4byte 0x0001609c
+_08024AF4:
+ ldr r0, _08024B94 @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ bne _08024AFE
+ b _08024C38
+_08024AFE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08024B98 @ =gStringVar4
+ ldr r1, _08024B9C @ =gUnknown_08400D9F
+ bl StringCopy
+ adds r5, r0, 0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r0
+ movs r6, 0xFC
+ movs r7, 0x14
+ ldr r1, _08024BA0 @ =0x00016018
+ add r10, r1
+_08024B1C:
+ ldr r1, _08024BA4 @ =gUnknown_0840165C
+ mov r2, r8
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl StringAppend
+ adds r5, r0, 0
+ mov r0, r10
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08024BA8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _08024BAC @ =gLevelUpStatBoxStats
+ add r1, r8
+ ldrb r1, [r1]
+ bl GetMonData
+ adds r1, r0, 0
+ strb r6, [r5]
+ movs r0, 0x13
+ strb r0, [r5, 0x1]
+ movs r4, 0x1
+ mov r2, r8
+ ands r4, r2
+ lsls r0, r4, 3
+ adds r0, r4
+ adds r0, 0x5
+ lsls r0, 3
+ adds r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ strb r6, [r5]
+ strb r7, [r5, 0x1]
+ movs r0, 0x6
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r5, r0, 0
+ strb r6, [r5]
+ strb r7, [r5, 0x1]
+ mov r0, r9
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ cmp r4, 0
+ beq _08024BB0
+ movs r0, 0xFE
+ strb r0, [r5]
+ movs r0, 0xFF
+ strb r0, [r5, 0x1]
+ adds r5, 0x1
+ b _08024BC0
+ .align 2, 0
+_08024B94: .4byte gMain
+_08024B98: .4byte gStringVar4
+_08024B9C: .4byte gUnknown_08400D9F
+_08024BA0: .4byte 0x00016018
+_08024BA4: .4byte gUnknown_0840165C
+_08024BA8: .4byte gPlayerParty
+_08024BAC: .4byte gLevelUpStatBoxStats
+_08024BB0:
+ strb r6, [r5]
+ movs r0, 0x11
+ strb r0, [r5, 0x1]
+ movs r0, 0x8
+ strb r0, [r5, 0x2]
+ adds r5, 0x3
+ movs r0, 0xFF
+ strb r0, [r5]
+_08024BC0:
+ movs r1, 0x1
+ add r8, r1
+ mov r2, r8
+ cmp r2, 0x5
+ ble _08024B1C
+ ldr r4, _08024BF4 @ =gUnknown_03004210
+ ldr r1, _08024BF8 @ =gStringVar4
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0xC
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08024BFC @ =0x02000000
+ ldr r0, _08024C00 @ =0x0001609c
+ adds r1, r0
+_08024BEA:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08024C38
+ .align 2, 0
+_08024BF4: .4byte gUnknown_03004210
+_08024BF8: .4byte gStringVar4
+_08024BFC: .4byte 0x02000000
+_08024C00: .4byte 0x0001609c
+_08024C04:
+ ldr r0, _08024C2C @ =gMain
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ beq _08024C38
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl sub_802BBD4
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08024C38
+ .align 2, 0
+_08024C2C: .4byte gMain
+_08024C30:
+ ldr r1, _08024C48 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08024C38:
+ 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
+_08024C48: .4byte gUnknown_02024C10
+ thumb_func_end sub_80248FC
+
+ thumb_func_start sub_8024C4C
+sub_8024C4C: @ 8024C4C
+ push {lr}
+ bl sub_80156DC
+ ldr r1, _08024C60 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024C60: .4byte gUnknown_02024C10
+ thumb_func_end sub_8024C4C
+
+ thumb_func_start atk6E_state0_side_becomes_attacker
+atk6E_state0_side_becomes_attacker: @ 8024C64
+ push {lr}
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08024C7C @ =gUnknown_02024C07
+ strb r0, [r1]
+ ldr r1, _08024C80 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024C7C: .4byte gUnknown_02024C07
+_08024C80: .4byte gUnknown_02024C10
+ thumb_func_end atk6E_state0_side_becomes_attacker
+
+ thumb_func_start atk6F_8026810
+atk6F_8026810: @ 8024C84
+ push {r4,r5,lr}
+ ldr r5, _08024CB0 @ =gUnknown_02024C10
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r4, _08024CB4 @ =gUnknown_02024A60
+ strb r0, [r4]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x33_a_33_33
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024CB0: .4byte gUnknown_02024C10
+_08024CB4: .4byte gUnknown_02024A60
+ thumb_func_end atk6F_8026810
+
+ thumb_func_start atk70_record_ability_usage_of_side
+atk70_record_ability_usage_of_side: @ 8024CB8
+ push {r4,lr}
+ ldr r4, _08024CE0 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024CE4 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldrb r0, [r1]
+ ldr r1, _08024CE8 @ =byte_2024C06
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024CE0: .4byte gUnknown_02024C10
+_08024CE4: .4byte gUnknown_02024A60
+_08024CE8: .4byte byte_2024C06
+ thumb_func_end atk70_record_ability_usage_of_side
+
+ thumb_func_start sub_8024CEC
+sub_8024CEC: @ 8024CEC
+ ldr r2, _08024D0C @ =gUnknown_03004290
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x2
+ strb r0, [r2, 0x1]
+ ldr r0, _08024D10 @ =word_2024E82
+ ldrh r1, [r0]
+ strb r1, [r2, 0x2]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r2, 0x3]
+ movs r0, 0xFF
+ strb r0, [r2, 0x4]
+ bx lr
+ .align 2, 0
+_08024D0C: .4byte gUnknown_03004290
+_08024D10: .4byte word_2024E82
+ thumb_func_end sub_8024CEC
+
+ thumb_func_start atk71_80268A0
+atk71_80268A0: @ 8024D14
+ push {lr}
+ bl sub_8024CEC
+ ldr r1, _08024D28 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024D28: .4byte gUnknown_02024C10
+ thumb_func_end atk71_80268A0
+
+ thumb_func_start atk72_flee
+atk72_flee: @ 8024D2C
+ push {lr}
+ ldr r0, _08024D58 @ =gUnknown_02024C09
+ ldrb r0, [r0]
+ bl sub_8014AB8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08024D60
+ ldr r3, _08024D5C @ =gUnknown_02024C10
+ 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 _08024D68
+ .align 2, 0
+_08024D58: .4byte gUnknown_02024C09
+_08024D5C: .4byte gUnknown_02024C10
+_08024D60:
+ ldr r1, _08024D6C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08024D68:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024D6C: .4byte gUnknown_02024C10
+ thumb_func_end atk72_flee
+
+ thumb_func_start atk73_cmd73
+atk73_cmd73: @ 8024D70
+ push {r4,r5,lr}
+ ldr r0, _08024DC0 @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r5, 0x1
+ ands r5, r0
+ cmp r5, 0
+ bne _08024E12
+ ldr r0, _08024DC4 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024DC8 @ =gUnknown_02024A60
+ strb r0, [r1]
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08024DCC @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r4, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r4
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ cmp r0, 0
+ bne _08024DAE
+ movs r0, 0x1
+_08024DAE:
+ cmp r0, 0x45
+ bgt _08024DB6
+ cmp r4, 0
+ bne _08024DD8
+_08024DB6:
+ ldr r0, _08024DD0 @ =0x02000000
+ ldr r1, _08024DD4 @ =0x000160c1
+ adds r0, r1
+ strb r5, [r0]
+ b _08024E12
+ .align 2, 0
+_08024DC0: .4byte gUnknown_020239F8
+_08024DC4: .4byte gUnknown_02024C10
+_08024DC8: .4byte gUnknown_02024A60
+_08024DCC: .4byte gBattleMons
+_08024DD0: .4byte 0x02000000
+_08024DD4: .4byte 0x000160c1
+_08024DD8:
+ cmp r0, 0x27
+ ble _08024DF0
+ ldr r0, _08024DE8 @ =0x02000000
+ ldr r1, _08024DEC @ =0x000160c1
+ adds r0, r1
+ movs r1, 0x1
+ b _08024E10
+ .align 2, 0
+_08024DE8: .4byte 0x02000000
+_08024DEC: .4byte 0x000160c1
+_08024DF0:
+ cmp r0, 0x9
+ ble _08024E08
+ ldr r0, _08024E00 @ =0x02000000
+ ldr r1, _08024E04 @ =0x000160c1
+ adds r0, r1
+ movs r1, 0x2
+ b _08024E10
+ .align 2, 0
+_08024E00: .4byte 0x02000000
+_08024E04: .4byte 0x000160c1
+_08024E08:
+ ldr r0, _08024E20 @ =0x02000000
+ ldr r1, _08024E24 @ =0x000160c1
+ adds r0, r1
+ movs r1, 0x3
+_08024E10:
+ strb r1, [r0]
+_08024E12:
+ ldr r1, _08024E28 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024E20: .4byte 0x02000000
+_08024E24: .4byte 0x000160c1
+_08024E28: .4byte gUnknown_02024C10
+ thumb_func_end atk73_cmd73
+
+ thumb_func_start atk74_hp_tresholds_2
+atk74_hp_tresholds_2: @ 8024E2C
+ push {r4-r7,lr}
+ ldr r0, _08024E8C @ =gUnknown_020239F8
+ ldrh r0, [r0]
+ movs r7, 0x1
+ ands r7, r0
+ cmp r7, 0
+ bne _08024ED0
+ ldr r0, _08024E90 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ adds r4, r0, 0
+ ldr r0, _08024E94 @ =gUnknown_02024A60
+ strb r4, [r0]
+ movs r0, 0x1
+ eors r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _08024E98 @ =0x02000000
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ ldr r1, _08024E9C @ =0x000160bc
+ adds r0, r1
+ adds r0, r6
+ ldrb r5, [r0]
+ ldr r1, _08024EA0 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r4, [r0, 0x28]
+ subs r1, r5, r4
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r5, 0
+ bl __divsi3
+ adds r1, r0, 0
+ cmp r4, r5
+ bcc _08024EA8
+ ldr r1, _08024EA4 @ =0x000160c1
+ adds r0, r6, r1
+ strb r7, [r0]
+ b _08024ED0
+ .align 2, 0
+_08024E8C: .4byte gUnknown_020239F8
+_08024E90: .4byte gUnknown_02024C10
+_08024E94: .4byte gUnknown_02024A60
+_08024E98: .4byte 0x02000000
+_08024E9C: .4byte 0x000160bc
+_08024EA0: .4byte gBattleMons
+_08024EA4: .4byte 0x000160c1
+_08024EA8:
+ cmp r0, 0x1D
+ bgt _08024EB8
+ ldr r0, _08024EB4 @ =0x000160c1
+ adds r1, r6, r0
+ movs r0, 0x1
+ b _08024ECE
+ .align 2, 0
+_08024EB4: .4byte 0x000160c1
+_08024EB8:
+ cmp r1, 0x45
+ bgt _08024EC8
+ ldr r0, _08024EC4 @ =0x000160c1
+ adds r1, r6, r0
+ movs r0, 0x2
+ b _08024ECE
+ .align 2, 0
+_08024EC4: .4byte 0x000160c1
+_08024EC8:
+ ldr r0, _08024EE0 @ =0x000160c1
+ adds r1, r6, r0
+ movs r0, 0x3
+_08024ECE:
+ strb r0, [r1]
+_08024ED0:
+ ldr r1, _08024EE4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024EE0: .4byte 0x000160c1
+_08024EE4: .4byte gUnknown_02024C10
+ thumb_func_end atk74_hp_tresholds_2
+
+ thumb_func_start atk75_8026A58
+atk75_8026A58: @ 8024EE8
+ push {lr}
+ sub sp, 0x4
+ ldr r2, _08024F28 @ =gUnknown_02024E6C
+ ldr r1, _08024F2C @ =gUnknown_02024C07
+ ldrb r0, [r1]
+ strb r0, [r2]
+ ldr r2, _08024F30 @ =gUnknown_02024A6A
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r1, _08024F34 @ =gEnemyParty
+ adds r0, r1
+ ldr r1, _08024F38 @ =gUnknown_02024C04
+ ldrh r1, [r1]
+ lsls r2, 24
+ lsrs r2, 24
+ movs r3, 0x1
+ str r3, [sp]
+ movs r3, 0
+ bl sub_803E1B0
+ ldr r1, _08024F3C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08024F28: .4byte gUnknown_02024E6C
+_08024F2C: .4byte gUnknown_02024C07
+_08024F30: .4byte gUnknown_02024A6A
+_08024F34: .4byte gEnemyParty
+_08024F38: .4byte gUnknown_02024C04
+_08024F3C: .4byte gUnknown_02024C10
+ thumb_func_end atk75_8026A58
+
+ thumb_func_start sub_8024F40
+sub_8024F40: @ 8024F40
+ push {r4-r6,lr}
+ ldr r4, _08024F64 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _08024F68 @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x6
+ bls _08024F5A
+ b _08025112
+_08024F5A:
+ lsls r0, 2
+ ldr r1, _08024F6C @ =_08024F70
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08024F64: .4byte gUnknown_02024C10
+_08024F68: .4byte gUnknown_02024A60
+_08024F6C: .4byte _08024F70
+ .align 2, 0
+_08024F70:
+ .4byte _08024F8C
+ .4byte _08024F9C
+ .4byte _08024FFC
+ .4byte _0802500C
+ .4byte _08025024
+ .4byte _08025060
+ .4byte _08025098
+_08024F8C:
+ ldr r0, _08024F98 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl b_cancel_multi_turn_move_maybe
+ b _08025112
+ .align 2, 0
+_08024F98: .4byte gUnknown_02024A60
+_08024F9C:
+ ldr r1, _08024FD8 @ =gUnknown_02024C07
+ ldr r4, _08024FDC @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldrb r0, [r1]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08024FE0 @ =gUnknown_02024C80
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r2
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08024FE8
+ ldr r1, _08024FE4 @ =gBattleMons
+ ldrb r2, [r2, 0x9]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r1
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08024FE8
+ strb r2, [r4]
+ b _08025112
+ .align 2, 0
+_08024FD8: .4byte gUnknown_02024C07
+_08024FDC: .4byte gUnknown_02024C08
+_08024FE0: .4byte gUnknown_02024C80
+_08024FE4: .4byte gBattleMons
+_08024FE8:
+ ldr r0, _08024FF4 @ =gUnknown_02024C08
+ ldr r1, _08024FF8 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08025112
+ .align 2, 0
+_08024FF4: .4byte gUnknown_02024C08
+_08024FF8: .4byte gUnknown_02024A60
+_08024FFC:
+ bl sub_8012028
+ ldr r1, _08025008 @ =gUnknown_02024D1E
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_08025008: .4byte gUnknown_02024D1E
+_0802500C:
+ ldr r0, _0802501C @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08025020 @ =gUnknown_02024C08
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_0802501C: .4byte gUnknown_02024BE6
+_08025020: .4byte gUnknown_02024C08
+_08025024:
+ ldr r2, _08025044 @ =gUnknown_02024C6C
+ ldr r1, _08025048 @ =gBitTable
+ ldr r0, _0802504C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ lsls r0, 28
+ ldr r2, [r2]
+ ands r2, r0
+ cmp r2, 0
+ beq _08025054
+ ldr r1, _08025050 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_08025044: .4byte gUnknown_02024C6C
+_08025048: .4byte gBitTable
+_0802504C: .4byte gUnknown_02024A60
+_08025050: .4byte gUnknown_02024D1E
+_08025054:
+ ldr r0, _0802505C @ =gUnknown_02024D1E
+ strb r2, [r0]
+ b _08025112
+ .align 2, 0
+_0802505C: .4byte gUnknown_02024D1E
+_08025060:
+ ldr r4, _08025090 @ =gUnknown_02024D68
+ ldr r3, _08025094 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x9
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _08025112
+ .align 2, 0
+_08025090: .4byte gUnknown_02024D68
+_08025094: .4byte gUnknown_02024A60
+_08025098:
+ ldr r3, _080250B8 @ =gUnknown_02024A6A
+ ldr r0, _080250BC @ =0x02000000
+ ldr r1, _080250C0 @ =0x00016018
+ adds r0, r1
+ ldrh r2, [r3]
+ ldrb r1, [r0]
+ cmp r2, r1
+ beq _080250B2
+ ldrh r0, [r3, 0x4]
+ cmp r0, r1
+ bne _08025112
+ cmp r2, r0
+ bne _080250C8
+_080250B2:
+ ldr r1, _080250C4 @ =gUnknown_02024A60
+ movs r0, 0
+ b _080250CC
+ .align 2, 0
+_080250B8: .4byte gUnknown_02024A6A
+_080250BC: .4byte 0x02000000
+_080250C0: .4byte 0x00016018
+_080250C4: .4byte gUnknown_02024A60
+_080250C8:
+ ldr r1, _08025120 @ =gUnknown_02024A60
+ movs r0, 0x2
+_080250CC:
+ strb r0, [r1]
+ adds r5, r1, 0
+ ldrb r2, [r5]
+ lsls r1, r2, 1
+ ldr r0, _08025124 @ =0x020160e8
+ adds r4, r1, r0
+ movs r3, 0
+ ldr r1, _08025128 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ ldrh r2, [r4]
+ cmp r0, r2
+ beq _0802510A
+ adds r6, r5, 0
+ movs r5, 0x58
+ adds r2, r1, 0
+_080250F2:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _0802510A
+ lsls r1, r3, 1
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ ldrh r1, [r4]
+ cmp r0, r1
+ bne _080250F2
+_0802510A:
+ cmp r3, 0x4
+ bne _08025112
+ movs r0, 0
+ strh r0, [r4]
+_08025112:
+ ldr r1, _0802512C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025120: .4byte gUnknown_02024A60
+_08025124: .4byte 0x020160e8
+_08025128: .4byte gBattleMons
+_0802512C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8024F40
+
+ thumb_func_start atk77_setprotect
+atk77_setprotect: @ 8025130
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0x1
+ ldr r2, _080251FC @ =gUnknown_02024C4C
+ ldr r1, _08025200 @ =gUnknown_02024C07
+ ldrb r3, [r1]
+ lsls r0, r3, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ mov r8, r1
+ ldr r7, _08025204 @ =gUnknown_02024CA8
+ cmp r0, 0xB6
+ beq _08025160
+ cmp r0, 0xC5
+ beq _08025160
+ cmp r0, 0xCB
+ beq _08025160
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r7
+ movs r1, 0
+ strb r1, [r0, 0x8]
+_08025160:
+ ldr r0, _08025208 @ =gUnknown_02024A7E
+ ldrb r1, [r0]
+ ldr r0, _0802520C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08025170
+ movs r6, 0
+_08025170:
+ ldr r2, _08025210 @ =gProtectSuccessRates
+ mov r5, r8
+ ldrb r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r4, [r0, 0x8]
+ lsls r4, 1
+ adds r4, r2
+ bl Random
+ ldrh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bls _08025224
+ cmp r6, 0
+ beq _08025224
+ ldr r4, _08025214 @ =gBattleMoves
+ ldr r3, _08025218 @ =gUnknown_02024BE6
+ ldrh r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ cmp r0, 0x6F
+ bne _080251C0
+ ldr r0, _0802521C @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08025220 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+_080251C0:
+ ldrh r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ cmp r0, 0x74
+ bne _080251E6
+ ldr r0, _0802521C @ =gUnknown_02024D28
+ ldrb r1, [r5]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _08025220 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+_080251E6:
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r0, [r1, 0x8]
+ adds r0, 0x1
+ strb r0, [r1, 0x8]
+ b _08025246
+ .align 2, 0
+_080251FC: .4byte gUnknown_02024C4C
+_08025200: .4byte gUnknown_02024C07
+_08025204: .4byte gUnknown_02024CA8
+_08025208: .4byte gUnknown_02024A7E
+_0802520C: .4byte gUnknown_02024A68
+_08025210: .4byte gProtectSuccessRates
+_08025214: .4byte gBattleMoves
+_08025218: .4byte gUnknown_02024BE6
+_0802521C: .4byte gUnknown_02024D28
+_08025220: .4byte gUnknown_02024D1E
+_08025224:
+ ldr r2, _08025258 @ =gUnknown_02024CA8
+ ldr r0, _0802525C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x8]
+ ldr r1, _08025260 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ ldr r2, _08025264 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_08025246:
+ ldr r1, _08025268 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025258: .4byte gUnknown_02024CA8
+_0802525C: .4byte gUnknown_02024C07
+_08025260: .4byte gUnknown_02024D1E
+_08025264: .4byte gUnknown_02024C68
+_08025268: .4byte gUnknown_02024C10
+ thumb_func_end atk77_setprotect
+
+ thumb_func_start atk78_faintifabilitynotdamp
+atk78_faintifabilitynotdamp: @ 802526C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08025328 @ =gUnknown_02024A64
+ ldr r2, [r0]
+ cmp r2, 0
+ bne _08025370
+ ldr r1, _0802532C @ =gUnknown_02024C08
+ strb r2, [r1]
+ ldr r0, _08025330 @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ adds r5, r1, 0
+ mov r8, r0
+ ldr r6, _08025334 @ =gBattleMons
+ cmp r2, r3
+ bcs _080252B8
+ adds r0, r6, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ beq _080252B8
+ adds r2, r3, 0
+ adds r4, r6, 0
+ movs r3, 0x58
+_0802529C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r2
+ bcs _080252B8
+ ldrb r0, [r5]
+ muls r0, r3
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _0802529C
+_080252B8:
+ ldrb r0, [r5]
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08025354
+ ldr r4, _08025338 @ =gUnknown_02024A60
+ ldr r7, _0802533C @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ strb r0, [r4]
+ ldr r2, _08025340 @ =gUnknown_02024BEC
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ str r0, [r2]
+ ldr r1, _08025344 @ =0x00007fff
+ movs r0, 0
+ bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08025348 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ movs r0, 0
+ strb r0, [r5]
+ mov r2, r8
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08025370
+ adds r3, r5, 0
+ ldrb r5, [r7]
+ ldr r7, _0802534C @ =gBitTable
+ adds r4, r0, 0
+ ldr r6, _08025350 @ =gUnknown_02024C0C
+_08025304:
+ ldrb r2, [r3]
+ cmp r2, r5
+ beq _0802531A
+ ldrb r0, [r6]
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r7
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _08025370
+_0802531A:
+ adds r0, r2, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcc _08025304
+ b _08025370
+ .align 2, 0
+_08025328: .4byte gUnknown_02024A64
+_0802532C: .4byte gUnknown_02024C08
+_08025330: .4byte gUnknown_02024A68
+_08025334: .4byte gBattleMons
+_08025338: .4byte gUnknown_02024A60
+_0802533C: .4byte gUnknown_02024C07
+_08025340: .4byte gUnknown_02024BEC
+_08025344: .4byte 0x00007fff
+_08025348: .4byte gUnknown_02024C10
+_0802534C: .4byte gBitTable
+_08025350: .4byte gUnknown_02024C0C
+_08025354:
+ ldr r1, _0802537C @ =byte_2024C06
+ movs r0, 0x6
+ strb r0, [r1]
+ ldrb r0, [r5]
+ movs r1, 0x58
+ muls r1, r0
+ adds r1, r6
+ adds r1, 0x20
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r1, _08025380 @ =gUnknown_02024C10
+ ldr r0, _08025384 @ =gUnknown_081D9834
+ str r0, [r1]
+_08025370:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802537C: .4byte byte_2024C06
+_08025380: .4byte gUnknown_02024C10
+_08025384: .4byte gUnknown_081D9834
+ thumb_func_end atk78_faintifabilitynotdamp
+
+ thumb_func_start atk79_setuserhptozero
+atk79_setuserhptozero: @ 8025388
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080253D4 @ =gUnknown_02024A64
+ ldr r3, [r0]
+ cmp r3, 0
+ bne _080253CC
+ ldr r4, _080253D8 @ =gUnknown_02024A60
+ ldr r0, _080253DC @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _080253E0 @ =gBattleMons
+ ldrb r0, [r4]
+ movs r2, 0x58
+ muls r0, r2
+ adds r0, r1
+ strh r3, [r0, 0x28]
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r1, 0x28
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2A
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _080253E4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_080253CC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080253D4: .4byte gUnknown_02024A64
+_080253D8: .4byte gUnknown_02024A60
+_080253DC: .4byte gUnknown_02024C07
+_080253E0: .4byte gBattleMons
+_080253E4: .4byte gUnknown_02024C10
+ thumb_func_end atk79_setuserhptozero
+
+ thumb_func_start sub_80253E8
+sub_80253E8: @ 80253E8
+ push {r4-r7,lr}
+ ldr r3, _08025460 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r4, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r4, r0
+ ldr r0, _08025464 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r7, r3, 0
+ cmp r0, 0
+ beq _08025480
+ ldr r0, _08025468 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r2, _0802546C @ =gUnknown_02024C07
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r0, 0
+ ldr r6, _08025470 @ =gUnknown_02024C0C
+ ldr r5, _08025474 @ =gBitTable
+ ldr r0, _08025478 @ =gUnknown_02024A68
+ mov r12, r0
+ ldrb r0, [r2]
+ cmp r1, r0
+ bne _0802543E
+_0802542E:
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0802542E
+_0802543E:
+ ldrb r0, [r6]
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r5
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ bne _0802542E
+ ldrb r0, [r3]
+ mov r2, r12
+ ldrb r2, [r2]
+ cmp r0, r2
+ bcc _0802547C
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ b _08025484
+ .align 2, 0
+_08025460: .4byte gUnknown_02024C10
+_08025464: .4byte gUnknown_020239F8
+_08025468: .4byte gUnknown_02024C08
+_0802546C: .4byte gUnknown_02024C07
+_08025470: .4byte gUnknown_02024C0C
+_08025474: .4byte gBitTable
+_08025478: .4byte gUnknown_02024A68
+_0802547C:
+ str r4, [r7]
+ b _08025484
+_08025480:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08025484:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80253E8
+
+ thumb_func_start sub_802548C
+sub_802548C: @ 802548C
+ push {r4-r6,lr}
+ ldr r4, _080254E8 @ =gUnknown_02024C10
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r2, r0
+ ldrb r0, [r1, 0x5]
+ ldr r3, _080254EC @ =gUnknown_02024C08
+ cmp r0, 0x1
+ bne _080254B4
+ ldr r0, _080254F0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r3]
+_080254B4:
+ ldr r1, _080254F4 @ =gUnknown_02024BEC
+ ldr r6, _080254F8 @ =gBattleMons
+ ldrb r0, [r3]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _080254CE
+ movs r0, 0x1
+ str r0, [r1]
+_080254CE:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldrb r0, [r3]
+ muls r0, r5
+ adds r0, r6
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ bne _080254FC
+ str r2, [r4]
+ b _08025502
+ .align 2, 0
+_080254E8: .4byte gUnknown_02024C10
+_080254EC: .4byte gUnknown_02024C08
+_080254F0: .4byte gUnknown_02024C07
+_080254F4: .4byte gUnknown_02024BEC
+_080254F8: .4byte gBattleMons
+_080254FC:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_08025502:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802548C
+
+ thumb_func_start sub_8025508
+sub_8025508: @ 8025508
+ push {r4-r7,lr}
+ ldr r3, _0802556C @ =0x02000000
+ ldr r4, _08025570 @ =gUnknown_02024C07
+ ldrb r2, [r4]
+ lsls r1, r2, 1
+ ldr r5, _08025574 @ =0x000160ac
+ adds r0, r1, r5
+ adds r0, r3
+ ldrb r7, [r0]
+ ldr r0, _08025578 @ =0x000160ad
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r7, r0
+ lsls r2, 2
+ ldr r1, _0802557C @ =0x00016100
+ adds r0, r2, r1
+ adds r0, r3
+ ldrb r6, [r0]
+ adds r5, 0x55
+ adds r0, r2, r5
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r6, r0
+ adds r1, 0x2
+ adds r0, r2, r1
+ adds r0, r3
+ ldrb r5, [r0]
+ ldr r0, _08025580 @ =0x00016103
+ adds r2, r0
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r5, r0
+ cmp r7, 0
+ beq _08025594
+ ldr r0, _08025584 @ =0x0000ffff
+ cmp r7, r0
+ beq _08025594
+ ldr r2, _08025588 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802558C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08025590 @ =gUnknown_02024BE6
+ strh r7, [r4]
+ b _0802565C
+ .align 2, 0
+_0802556C: .4byte 0x02000000
+_08025570: .4byte gUnknown_02024C07
+_08025574: .4byte 0x000160ac
+_08025578: .4byte 0x000160ad
+_0802557C: .4byte 0x00016100
+_08025580: .4byte 0x00016103
+_08025584: .4byte 0x0000ffff
+_08025588: .4byte gUnknown_02024C6C
+_0802558C: .4byte 0xfffffbff
+_08025590: .4byte gUnknown_02024BE6
+_08025594:
+ cmp r6, 0
+ beq _08025644
+ cmp r5, 0
+ beq _08025618
+ ldr r0, _080255C4 @ =0x0000ffff
+ cmp r6, r0
+ beq _08025618
+ cmp r5, r0
+ beq _08025618
+ ldr r2, _080255C8 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _080255CC @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080255D4
+ ldr r0, _080255D0 @ =gUnknown_02024BE6
+ strh r6, [r0]
+ b _080255D8
+ .align 2, 0
+_080255C4: .4byte 0x0000ffff
+_080255C8: .4byte gUnknown_02024C6C
+_080255CC: .4byte 0xfffffbff
+_080255D0: .4byte gUnknown_02024BE6
+_080255D4:
+ ldr r0, _08025604 @ =gUnknown_02024BE6
+ strh r5, [r0]
+_080255D8:
+ adds r5, r0, 0
+ ldrh r0, [r5]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08025608 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r4, _0802560C @ =gUnknown_02024C10
+ ldr r3, _08025610 @ =gUnknown_081D6BBC
+ ldr r2, _08025614 @ =gBattleMoves
+ ldrh r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r4]
+ b _080256C0
+ .align 2, 0
+_08025604: .4byte gUnknown_02024BE6
+_08025608: .4byte gUnknown_02024C08
+_0802560C: .4byte gUnknown_02024C10
+_08025610: .4byte gUnknown_081D6BBC
+_08025614: .4byte gBattleMoves
+_08025618:
+ cmp r6, 0
+ beq _08025644
+ ldr r0, _08025634 @ =0x0000ffff
+ cmp r6, r0
+ beq _08025644
+ ldr r2, _08025638 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802563C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08025640 @ =gUnknown_02024BE6
+ strh r6, [r4]
+ b _0802565C
+ .align 2, 0
+_08025634: .4byte 0x0000ffff
+_08025638: .4byte gUnknown_02024C6C
+_0802563C: .4byte 0xfffffbff
+_08025640: .4byte gUnknown_02024BE6
+_08025644:
+ cmp r5, 0
+ beq _080256A4
+ ldr r0, _08025684 @ =0x0000ffff
+ cmp r5, r0
+ beq _080256A4
+ ldr r2, _08025688 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802568C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08025690 @ =gUnknown_02024BE6
+ strh r5, [r4]
+_0802565C:
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08025694 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r5, _08025698 @ =gUnknown_02024C10
+ ldr r3, _0802569C @ =gUnknown_081D6BBC
+ ldr r2, _080256A0 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r5]
+ b _080256C0
+ .align 2, 0
+_08025684: .4byte 0x0000ffff
+_08025688: .4byte gUnknown_02024C6C
+_0802568C: .4byte 0xfffffbff
+_08025690: .4byte gUnknown_02024BE6
+_08025694: .4byte gUnknown_02024C08
+_08025698: .4byte gUnknown_02024C10
+_0802569C: .4byte gUnknown_081D6BBC
+_080256A0: .4byte gBattleMoves
+_080256A4:
+ ldr r2, _080256C8 @ =gUnknown_02024D68
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _080256CC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_080256C0:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080256C8: .4byte gUnknown_02024D68
+_080256CC: .4byte gUnknown_02024C10
+ thumb_func_end sub_8025508
+
+ thumb_func_start sub_80256D0
+sub_80256D0: @ 80256D0
+ push {lr}
+ ldr r2, _080256F0 @ =word_2024DB8
+ ldrh r0, [r2]
+ movs r1, 0x7
+ ands r1, r0
+ cmp r1, 0
+ beq _080256FC
+ ldr r2, _080256F4 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080256F8 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _0802570C
+ .align 2, 0
+_080256F0: .4byte word_2024DB8
+_080256F4: .4byte gUnknown_02024C68
+_080256F8: .4byte gUnknown_02024D1E
+_080256FC:
+ movs r0, 0x1
+ strh r0, [r2]
+ ldr r0, _08025718 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+ ldr r0, _0802571C @ =gUnknown_02024DBC
+ adds r0, 0x28
+ movs r1, 0x5
+ strb r1, [r0]
+_0802570C:
+ ldr r1, _08025720 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025718: .4byte gUnknown_02024D1E
+_0802571C: .4byte gUnknown_02024DBC
+_08025720: .4byte gUnknown_02024C10
+ thumb_func_end sub_80256D0
+
+ thumb_func_start atk7E_setreflect
+atk7E_setreflect: @ 8025724
+ push {r4-r6,lr}
+ ldr r5, _08025754 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ ldr r6, _08025758 @ =gUnknown_02024C7A
+ movs r4, 0x1
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08025764
+ ldr r2, _0802575C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08025760 @ =gUnknown_02024D1E
+ movs r0, 0
+ b _080257C4
+ .align 2, 0
+_08025754: .4byte gUnknown_02024C07
+_08025758: .4byte gUnknown_02024C7A
+_0802575C: .4byte gUnknown_02024C68
+_08025760: .4byte gUnknown_02024D1E
+_08025764:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r1]
+ movs r2, 0x1
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ ldr r2, _080257B4 @ =gUnknown_02024C80
+ adds r1, r4, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0]
+ ldr r0, _080257B8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080257C0
+ movs r0, 0x1
+ bl sub_803C348
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bne _080257C0
+ ldr r0, _080257BC @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+ b _080257C6
+ .align 2, 0
+_080257B4: .4byte gUnknown_02024C80
+_080257B8: .4byte gUnknown_020239F8
+_080257BC: .4byte gUnknown_02024D1E
+_080257C0:
+ ldr r1, _080257D4 @ =gUnknown_02024D1E
+ movs r0, 0x1
+_080257C4:
+ strb r0, [r1, 0x5]
+_080257C6:
+ ldr r1, _080257D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080257D4: .4byte gUnknown_02024D1E
+_080257D8: .4byte gUnknown_02024C10
+ thumb_func_end atk7E_setreflect
+
+ thumb_func_start sub_80257DC
+sub_80257DC: @ 80257DC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r7, _0802581C @ =gUnknown_02024C68
+ ldrb r5, [r7]
+ movs r0, 0x29
+ ands r0, r5
+ cmp r0, 0
+ bne _0802580E
+ ldr r0, _08025820 @ =gUnknown_02024C98
+ mov r9, r0
+ ldr r1, _08025824 @ =gUnknown_02024C08
+ mov r8, r1
+ ldrb r4, [r1]
+ lsls r0, r4, 2
+ mov r2, r9
+ adds r6, r0, r2
+ ldr r2, [r6]
+ movs r0, 0x4
+ mov r12, r0
+ adds r3, r2, 0
+ ands r3, r0
+ cmp r3, 0
+ beq _0802582C
+_0802580E:
+ movs r0, 0x1
+ orrs r0, r5
+ strb r0, [r7]
+ ldr r1, _08025828 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0802587C
+ .align 2, 0
+_0802581C: .4byte gUnknown_02024C68
+_08025820: .4byte gUnknown_02024C98
+_08025824: .4byte gUnknown_02024C08
+_08025828: .4byte gUnknown_02024D1E
+_0802582C:
+ ldr r1, _08025858 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, r0, r1
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ beq _08025848
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bne _08025860
+_08025848:
+ movs r0, 0x1
+ orrs r0, r5
+ strb r0, [r7]
+ ldr r1, _0802585C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _0802587C
+ .align 2, 0
+_08025858: .4byte gBattleMons
+_0802585C: .4byte gUnknown_02024D1E
+_08025860:
+ ldr r0, _08025890 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ orrs r2, r0
+ str r2, [r6]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 2
+ add r1, r9
+ ldr r0, [r1]
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1]
+ ldr r0, _08025894 @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+_0802587C:
+ ldr r1, _08025898 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025890: .4byte gUnknown_02024C07
+_08025894: .4byte gUnknown_02024D1E
+_08025898: .4byte gUnknown_02024C10
+ thumb_func_end sub_80257DC
+
+ thumb_func_start atk80_manipulatedamage
+atk80_manipulatedamage: @ 802589C
+ push {r4,lr}
+ ldr r1, _080258B4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ ldrb r2, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r2, 0x1
+ beq _080258CC
+ cmp r2, 0x1
+ bgt _080258B8
+ cmp r2, 0
+ beq _080258BE
+ b _0802590C
+ .align 2, 0
+_080258B4: .4byte gUnknown_02024C10
+_080258B8:
+ cmp r2, 0x2
+ beq _08025904
+ b _0802590C
+_080258BE:
+ ldr r1, _080258C8 @ =gUnknown_02024BEC
+ ldr r0, [r1]
+ negs r0, r0
+ b _0802590A
+ .align 2, 0
+_080258C8: .4byte gUnknown_02024BEC
+_080258CC:
+ ldr r3, _080258F8 @ =gUnknown_02024BEC
+ ldr r0, [r3]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [r3]
+ cmp r0, 0
+ bne _080258DE
+ str r2, [r3]
+_080258DE:
+ ldr r2, _080258FC @ =gBattleMons
+ ldr r0, _08025900 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2C]
+ lsrs r1, r0, 1
+ ldr r0, [r3]
+ cmp r1, r0
+ bge _0802590C
+ str r1, [r3]
+ b _0802590C
+ .align 2, 0
+_080258F8: .4byte gUnknown_02024BEC
+_080258FC: .4byte gBattleMons
+_08025900: .4byte gUnknown_02024C08
+_08025904:
+ ldr r1, _08025918 @ =gUnknown_02024BEC
+ ldr r0, [r1]
+ lsls r0, 1
+_0802590A:
+ str r0, [r1]
+_0802590C:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025918: .4byte gUnknown_02024BEC
+ thumb_func_end atk80_manipulatedamage
+
+ thumb_func_start atk81_setrest
+atk81_setrest: @ 802591C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r0, _08025974 @ =gUnknown_02024C10
+ mov r12, r0
+ ldr r1, [r0]
+ ldrb r6, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r6, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r6, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r6, r0
+ ldr r5, _08025978 @ =gUnknown_02024A60
+ ldr r2, _0802597C @ =gUnknown_02024C08
+ ldr r0, _08025980 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r2]
+ strb r0, [r5]
+ ldr r4, _08025984 @ =gUnknown_02024BEC
+ ldr r1, _08025988 @ =gBattleMons
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ adds r0, r1
+ ldrh r0, [r0, 0x2C]
+ negs r0, r0
+ str r0, [r4]
+ ldrb r0, [r2]
+ adds r4, r0, 0
+ muls r4, r3
+ adds r0, r4, r1
+ ldrh r3, [r0, 0x28]
+ adds r7, r5, 0
+ adds r5, r2, 0
+ adds r2, r1, 0
+ ldrh r0, [r0, 0x2C]
+ cmp r3, r0
+ bne _0802598C
+ mov r0, r12
+ str r6, [r0]
+ b _080259DC
+ .align 2, 0
+_08025974: .4byte gUnknown_02024C10
+_08025978: .4byte gUnknown_02024A60
+_0802597C: .4byte gUnknown_02024C08
+_08025980: .4byte gUnknown_02024C07
+_08025984: .4byte gUnknown_02024BEC
+_08025988: .4byte gBattleMons
+_0802598C:
+ adds r0, r2, 0
+ adds r0, 0x4C
+ adds r0, r4, r0
+ ldr r1, [r0]
+ movs r0, 0xF8
+ ands r1, r0
+ cmp r1, 0
+ beq _080259A8
+ ldr r1, _080259A4 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _080259AC
+ .align 2, 0
+_080259A4: .4byte gUnknown_02024D1E
+_080259A8:
+ ldr r0, _080259E4 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+_080259AC:
+ ldrb r0, [r5]
+ movs r3, 0x58
+ muls r0, r3
+ adds r2, 0x4C
+ adds r0, r2
+ movs r1, 0x3
+ str r1, [r0]
+ ldrb r0, [r7]
+ muls r0, r3
+ adds r0, r2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _080259E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_080259DC:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080259E4: .4byte gUnknown_02024D1E
+_080259E8: .4byte gUnknown_02024C10
+ thumb_func_end atk81_setrest
+
+ thumb_func_start atk82_jumpifnotfirstturn
+atk82_jumpifnotfirstturn: @ 80259EC
+ push {r4,r5,lr}
+ ldr r5, _08025A20 @ =gUnknown_02024C10
+ ldr r4, [r5]
+ ldrb r3, [r4, 0x1]
+ ldrb r0, [r4, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r4, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldr r2, _08025A24 @ =gUnknown_02024CA8
+ ldr r0, _08025A28 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08025A2C
+ adds r0, r4, 0x5
+ str r0, [r5]
+ b _08025A2E
+ .align 2, 0
+_08025A20: .4byte gUnknown_02024C10
+_08025A24: .4byte gUnknown_02024CA8
+_08025A28: .4byte gUnknown_02024C07
+_08025A2C:
+ str r3, [r5]
+_08025A2E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end atk82_jumpifnotfirstturn
+
+ thumb_func_start sub_8025A34
+sub_8025A34: @ 8025A34
+ ldr r1, _08025A40 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08025A40: .4byte gUnknown_02024C10
+ thumb_func_end sub_8025A34
+
+ thumb_func_start sub_8025A44
+sub_8025A44: @ 8025A44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ movs r2, 0
+ ldr r0, _08025A9C @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ mov r8, r0
+ cmp r2, r1
+ bge _08025AB8
+ ldr r0, _08025AA0 @ =gBattleMons
+ mov r12, r0
+ movs r0, 0x58
+ muls r0, r3
+ add r0, r12
+ adds r5, r0, 0
+ adds r5, 0x20
+ ldr r6, _08025AA4 @ =0x02016003
+ movs r3, 0
+ ldr r7, _08025AA8 @ =gUnknown_02024D1E
+ adds r4, r1, 0
+_08025A70:
+ mov r0, r12
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x70
+ ands r0, r1
+ cmp r0, 0
+ beq _08025AB0
+ ldrb r0, [r5]
+ cmp r0, 0x2B
+ beq _08025AB0
+ movs r3, 0
+ strb r2, [r6]
+ ldr r1, _08025AAC @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08025AD0
+ cmp r0, r2
+ beq _08025AC4
+ movs r0, 0x1
+ strb r0, [r7, 0x5]
+ b _08025AB8
+ .align 2, 0
+_08025A9C: .4byte gUnknown_02024A68
+_08025AA0: .4byte gBattleMons
+_08025AA4: .4byte 0x02016003
+_08025AA8: .4byte gUnknown_02024D1E
+_08025AAC: .4byte gUnknown_02024C08
+_08025AB0:
+ adds r3, 0x58
+ adds r2, 0x1
+ cmp r2, r4
+ blt _08025A70
+_08025AB8:
+ mov r1, r8
+ ldrb r1, [r1]
+ cmp r2, r1
+ beq _08025AD4
+ movs r0, 0x1
+ b _08025AD6
+_08025AC4:
+ ldr r0, _08025ACC @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+ b _08025AB8
+ .align 2, 0
+_08025ACC: .4byte gUnknown_02024D1E
+_08025AD0:
+ strb r2, [r1]
+ b _08025AB8
+_08025AD4:
+ movs r0, 0
+_08025AD6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8025A44
+
+ thumb_func_start sub_8025AE0
+sub_8025AE0: @ 8025AE0
+ push {r4-r6,lr}
+ ldr r5, _08025B0C @ =gUnknown_02024C10
+ ldr r1, [r5]
+ ldrb r4, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r4, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r4, r0
+ ldr r6, _08025B10 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ bl sub_8025A44
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025B14
+ str r4, [r5]
+ b _08025B56
+ .align 2, 0
+_08025B0C: .4byte gUnknown_02024C10
+_08025B10: .4byte gUnknown_02024C08
+_08025B14:
+ ldr r1, _08025B44 @ =gBattleMons
+ ldrb r3, [r6]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r1, r0, 0
+ cmp r1, 0xF
+ beq _08025B2C
+ cmp r1, 0x48
+ bne _08025B50
+_08025B2C:
+ ldr r2, _08025B48 @ =byte_2024C06
+ strb r0, [r2]
+ ldr r1, _08025B4C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ str r4, [r5]
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ bl sub_81074C4
+ b _08025B56
+ .align 2, 0
+_08025B44: .4byte gBattleMons
+_08025B48: .4byte byte_2024C06
+_08025B4C: .4byte gUnknown_02024D1E
+_08025B50:
+ ldr r0, [r5]
+ adds r0, 0x5
+ str r0, [r5]
+_08025B56:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8025AE0
+
+ thumb_func_start sub_8025B5C
+sub_8025B5C: @ 8025B5C
+ push {r4,r5,lr}
+ ldr r5, _08025B84 @ =gUnknown_02024CA8
+ ldr r4, _08025B88 @ =gUnknown_02024C07
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0x3
+ bne _08025B94
+ ldr r2, _08025B8C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08025B90 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08025BBE
+ .align 2, 0
+_08025B84: .4byte gUnknown_02024CA8
+_08025B88: .4byte gUnknown_02024C07
+_08025B8C: .4byte gUnknown_02024C68
+_08025B90: .4byte gUnknown_02024D1E
+_08025B94:
+ adds r0, 0x1
+ movs r3, 0
+ strb r0, [r1, 0x9]
+ ldr r2, _08025BCC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ strb r0, [r2, 0x2]
+ strb r0, [r2, 0x3]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x9]
+ strb r0, [r2, 0x4]
+ movs r0, 0xFF
+ strb r0, [r2, 0x5]
+ ldr r0, _08025BD0 @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+_08025BBE:
+ ldr r1, _08025BD4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025BCC: .4byte gUnknown_030041C0
+_08025BD0: .4byte gUnknown_02024D1E
+_08025BD4: .4byte gUnknown_02024C10
+ thumb_func_end sub_8025B5C
+
+ thumb_func_start atk86_stockpiletobasedamage
+atk86_stockpiletobasedamage: @ 8025BD8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ ldr r3, _08025C10 @ =gUnknown_02024C10
+ ldr r1, [r3]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r7, _08025C14 @ =gUnknown_02024CA8
+ ldr r6, _08025C18 @ =gUnknown_02024C07
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0
+ bne _08025C1C
+ str r2, [r3]
+ b _08025CC2
+ .align 2, 0
+_08025C10: .4byte gUnknown_02024C10
+_08025C14: .4byte gUnknown_02024CA8
+_08025C18: .4byte gUnknown_02024C07
+_08025C1C:
+ ldr r0, _08025CD0 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ beq _08025CA8
+ ldr r0, _08025CD4 @ =gUnknown_02024BEC
+ mov r8, r0
+ ldr r4, _08025CD8 @ =gUnknown_02024C7A
+ ldr r5, _08025CDC @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ ldrb r0, [r6]
+ movs r4, 0x58
+ muls r0, r4
+ ldr r2, _08025CE0 @ =gBattleMons
+ adds r0, r2
+ ldrb r1, [r5]
+ muls r1, r4
+ adds r1, r2
+ ldr r2, _08025CE4 @ =gUnknown_02024BE6
+ ldrh r2, [r2]
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ ldrb r4, [r6]
+ str r4, [sp, 0x8]
+ ldrb r4, [r5]
+ str r4, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldrb r2, [r6]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r7
+ ldrb r1, [r1, 0x9]
+ adds r3, r0, 0
+ muls r3, r1
+ mov r1, r8
+ str r3, [r1]
+ ldr r2, _08025CE8 @ =0x02000000
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x9]
+ ldr r1, _08025CEC @ =0x00016002
+ adds r2, r1
+ strb r0, [r2]
+ ldr r1, _08025CF0 @ =gUnknown_02024D28
+ ldrb r0, [r6]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08025CA8
+ lsls r0, r3, 4
+ subs r0, r3
+ movs r1, 0xA
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+_08025CA8:
+ ldr r2, _08025CF4 @ =gUnknown_02024CA8
+ ldr r0, _08025CF8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x9]
+ ldr r1, _08025CFC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08025CC2:
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025CD0: .4byte gUnknown_02024D1E
+_08025CD4: .4byte gUnknown_02024BEC
+_08025CD8: .4byte gUnknown_02024C7A
+_08025CDC: .4byte gUnknown_02024C08
+_08025CE0: .4byte gBattleMons
+_08025CE4: .4byte gUnknown_02024BE6
+_08025CE8: .4byte 0x02000000
+_08025CEC: .4byte 0x00016002
+_08025CF0: .4byte gUnknown_02024D28
+_08025CF4: .4byte gUnknown_02024CA8
+_08025CF8: .4byte gUnknown_02024C07
+_08025CFC: .4byte gUnknown_02024C10
+ thumb_func_end atk86_stockpiletobasedamage
+
+ thumb_func_start sub_8025D00
+sub_8025D00: @ 8025D00
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _08025D40 @ =gUnknown_02024C10
+ ldr r1, [r7]
+ ldrb r2, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r0, _08025D44 @ =gUnknown_02024CA8
+ mov r8, r0
+ ldr r6, _08025D48 @ =gUnknown_02024C07
+ ldrb r3, [r6]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ mov r1, r8
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x9]
+ cmp r1, 0
+ bne _08025D50
+ str r2, [r7]
+ ldr r0, _08025D4C @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+ b _08025DD0
+ .align 2, 0
+_08025D40: .4byte gUnknown_02024C10
+_08025D44: .4byte gUnknown_02024CA8
+_08025D48: .4byte gUnknown_02024C07
+_08025D4C: .4byte gUnknown_02024D1E
+_08025D50:
+ ldr r1, _08025D74 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x2C]
+ ldrh r3, [r1, 0x28]
+ cmp r0, r3
+ bne _08025D80
+ movs r0, 0
+ strb r0, [r4, 0x9]
+ str r2, [r7]
+ ldr r1, _08025D78 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ strb r0, [r1]
+ ldr r1, _08025D7C @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08025DD0
+ .align 2, 0
+_08025D74: .4byte gBattleMons
+_08025D78: .4byte gUnknown_02024C08
+_08025D7C: .4byte gUnknown_02024D1E
+_08025D80:
+ ldr r5, _08025DDC @ =gUnknown_02024BEC
+ ldrh r0, [r1, 0x2C]
+ ldrb r1, [r4, 0x9]
+ movs r2, 0x3
+ subs r2, r1
+ movs r4, 0x1
+ adds r1, r4, 0
+ lsls r1, r2
+ bl __divsi3
+ str r0, [r5]
+ cmp r0, 0
+ bne _08025D9C
+ str r4, [r5]
+_08025D9C:
+ ldr r0, [r5]
+ negs r0, r0
+ str r0, [r5]
+ ldr r2, _08025DE0 @ =0x02000000
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x9]
+ ldr r1, _08025DE4 @ =0x00016002
+ adds r2, r1
+ movs r3, 0
+ strb r0, [r2]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ strb r3, [r0, 0x9]
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ ldr r1, _08025DE8 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ strb r0, [r1]
+_08025DD0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025DDC: .4byte gUnknown_02024BEC
+_08025DE0: .4byte 0x02000000
+_08025DE4: .4byte 0x00016002
+_08025DE8: .4byte gUnknown_02024C08
+ thumb_func_end sub_8025D00
+
+ thumb_func_start atk88_negativedamage
+atk88_negativedamage: @ 8025DEC
+ push {lr}
+ ldr r2, _08025E14 @ =gUnknown_02024BEC
+ ldr r0, _08025E18 @ =gUnknown_02024BF0
+ ldr r0, [r0]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ negs r0, r0
+ str r0, [r2]
+ cmp r0, 0
+ bne _08025E08
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r2]
+_08025E08:
+ ldr r1, _08025E1C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08025E14: .4byte gUnknown_02024BEC
+_08025E18: .4byte gUnknown_02024BF0
+_08025E1C: .4byte gUnknown_02024C10
+ thumb_func_end atk88_negativedamage
+
+ thumb_func_start sub_8025E20
+sub_8025E20: @ 8025E20
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0
+ mov r9, r0
+ mov r10, r0
+ movs r0, 0x40
+ ands r0, r5
+ cmp r0, 0
+ beq _08025E54
+ ldr r0, _08025E4C @ =gUnknown_02024A60
+ ldr r1, _08025E50 @ =gUnknown_02024C07
+ b _08025E58
+ .align 2, 0
+_08025E4C: .4byte gUnknown_02024A60
+_08025E50: .4byte gUnknown_02024C07
+_08025E54:
+ ldr r0, _08025EF8 @ =gUnknown_02024A60
+ ldr r1, _08025EFC @ =gUnknown_02024C08
+_08025E58:
+ ldrb r1, [r1]
+ strb r1, [r0]
+ movs r0, 0xBF
+ ands r5, r0
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ beq _08025E72
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+_08025E72:
+ movs r0, 0x7F
+ ands r5, r0
+ movs r0, 0x20
+ ands r0, r5
+ cmp r0, 0
+ beq _08025E88
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_08025E88:
+ movs r0, 0xDF
+ ands r5, r0
+ ldr r1, _08025F00 @ =gUnknown_030041C0
+ movs r4, 0
+ movs r2, 0xFD
+ strb r2, [r1]
+ movs r0, 0x5
+ strb r0, [r1, 0x1]
+ strb r7, [r1, 0x2]
+ movs r3, 0x1
+ negs r3, r3
+ mov r12, r3
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ lsls r0, r6, 24
+ cmp r0, 0
+ blt _08025EAC
+ b _080261B0
+_08025EAC:
+ ldr r4, _08025F04 @ =gUnknown_02024C80
+ ldr r1, _08025EF8 @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08025F54
+ mov r2, r9
+ cmp r2, 0
+ bne _08025F54
+ ldr r0, _08025F08 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xAE
+ beq _08025F84
+ cmp r5, 0x1
+ bne _08025F74
+ ldr r4, _08025F0C @ =gUnknown_02024D68
+ ldr r3, _08025EF8 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08025F14
+ ldr r0, _08025F10 @ =gUnknown_02024C10
+ mov r4, r8
+ str r4, [r0]
+ b _08025F74
+ .align 2, 0
+_08025EF8: .4byte gUnknown_02024A60
+_08025EFC: .4byte gUnknown_02024C08
+_08025F00: .4byte gUnknown_030041C0
+_08025F04: .4byte gUnknown_02024C80
+_08025F08: .4byte gUnknown_02024BE6
+_08025F0C: .4byte gUnknown_02024D68
+_08025F10: .4byte gUnknown_02024C10
+_08025F14:
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08025F40 @ =0x02000000
+ ldr r6, _08025F44 @ =gUnknown_02024A60
+ ldrb r1, [r6]
+ ldr r2, _08025F48 @ =0x00016003
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, _08025F4C @ =gUnknown_02024C10
+ ldr r0, _08025F50 @ =gUnknown_081D9128
+ str r0, [r1]
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _08025F74
+ .align 2, 0
+_08025F40: .4byte 0x02000000
+_08025F44: .4byte gUnknown_02024A60
+_08025F48: .4byte 0x00016003
+_08025F4C: .4byte gUnknown_02024C10
+_08025F50: .4byte gUnknown_081D9128
+_08025F54:
+ ldr r0, _08025F78 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xAE
+ beq _08025F84
+ mov r3, r10
+ cmp r3, 0x1
+ beq _08025F84
+ movs r0, 0
+ bl sub_801C108
+ lsls r0, 24
+ cmp r0, 0
+ beq _08025F84
+ ldr r1, _08025F7C @ =gUnknown_02024C10
+ ldr r0, _08025F80 @ =BattleScript_1D83D6
+ str r0, [r1]
+_08025F74:
+ movs r0, 0x1
+ b _080262A4
+ .align 2, 0
+_08025F78: .4byte gUnknown_02024BE6
+_08025F7C: .4byte gUnknown_02024C10
+_08025F80: .4byte BattleScript_1D83D6
+_08025F84:
+ ldr r2, _08025FCC @ =gBattleMons
+ ldr r1, _08025FD0 @ =gUnknown_02024A60
+ ldrb r3, [r1]
+ movs r4, 0x58
+ adds r0, r3, 0
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ mov r10, r2
+ cmp r0, 0x1D
+ beq _08025FA0
+ cmp r0, 0x49
+ bne _08026040
+_08025FA0:
+ mov r0, r9
+ cmp r0, 0
+ bne _08026040
+ ldr r0, _08025FD4 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xAE
+ beq _08026040
+ cmp r5, 0x1
+ bne _08025F74
+ ldr r4, _08025FD8 @ =gUnknown_02024D68
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08025FE0
+ ldr r0, _08025FDC @ =gUnknown_02024C10
+ mov r1, r8
+ str r1, [r0]
+ b _08025F74
+ .align 2, 0
+_08025FCC: .4byte gBattleMons
+_08025FD0: .4byte gUnknown_02024A60
+_08025FD4: .4byte gUnknown_02024BE6
+_08025FD8: .4byte gUnknown_02024D68
+_08025FDC: .4byte gUnknown_02024C10
+_08025FE0:
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08026028 @ =0x02000000
+ ldr r2, _0802602C @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ ldr r3, _08026030 @ =0x00016003
+ adds r0, r3
+ strb r1, [r0]
+ ldr r1, _08026034 @ =gUnknown_02024C10
+ ldr r0, _08026038 @ =gUnknown_081D989B
+ str r0, [r1]
+ ldr r1, _0802603C @ =byte_2024C06
+ ldrb r0, [r2]
+ movs r6, 0x58
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ ldr r0, _0802602C @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ b _08025F74
+ .align 2, 0
+_08026028: .4byte 0x02000000
+_0802602C: .4byte gUnknown_02024A60
+_08026030: .4byte 0x00016003
+_08026034: .4byte gUnknown_02024C10
+_08026038: .4byte gUnknown_081D989B
+_0802603C: .4byte byte_2024C06
+_08026040:
+ ldr r1, _08026090 @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ movs r4, 0x58
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x33
+ bne _080260A8
+ mov r2, r9
+ cmp r2, 0
+ bne _080260A8
+ cmp r7, 0x6
+ bne _080260A8
+ cmp r5, 0x1
+ bne _08025F74
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08026094 @ =0x02000000
+ ldr r3, _08026090 @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ ldr r6, _08026098 @ =0x00016003
+ adds r0, r6
+ strb r1, [r0]
+ ldr r1, _0802609C @ =gUnknown_02024C10
+ ldr r0, _080260A0 @ =gUnknown_081D9903
+ str r0, [r1]
+ ldr r1, _080260A4 @ =byte_2024C06
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _08025F74
+ .align 2, 0
+_08026090: .4byte gUnknown_02024A60
+_08026094: .4byte 0x02000000
+_08026098: .4byte 0x00016003
+_0802609C: .4byte gUnknown_02024C10
+_080260A0: .4byte gUnknown_081D9903
+_080260A4: .4byte byte_2024C06
+_080260A8:
+ ldr r1, _080260FC @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ movs r4, 0x58
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x34
+ bne _08026114
+ mov r2, r9
+ cmp r2, 0
+ bne _08026114
+ cmp r7, 0x1
+ bne _08026114
+ cmp r5, 0x1
+ beq _080260CA
+ b _08025F74
+_080260CA:
+ mov r0, r8
+ bl b_movescr_stack_push
+ ldr r0, _08026100 @ =0x02000000
+ ldr r3, _080260FC @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ ldr r6, _08026104 @ =0x00016003
+ adds r0, r6
+ strb r1, [r0]
+ ldr r1, _08026108 @ =gUnknown_02024C10
+ ldr r0, _0802610C @ =gUnknown_081D9903
+ str r0, [r1]
+ ldr r1, _08026110 @ =byte_2024C06
+ ldrb r0, [r3]
+ muls r0, r4
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _08025F74
+ .align 2, 0
+_080260FC: .4byte gUnknown_02024A60
+_08026100: .4byte 0x02000000
+_08026104: .4byte 0x00016003
+_08026108: .4byte gUnknown_02024C10
+_0802610C: .4byte gUnknown_081D9903
+_08026110: .4byte byte_2024C06
+_08026114:
+ ldr r0, _080261A0 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r10
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bne _0802612C
+ cmp r5, 0
+ bne _0802612C
+ b _08025F74
+_0802612C:
+ lsls r0, r6, 24
+ asrs r0, 28
+ movs r1, 0x7
+ ands r0, r1
+ negs r0, r0
+ lsls r0, 24
+ ldr r3, _080261A4 @ =gUnknown_03004290
+ movs r4, 0
+ movs r1, 0xFD
+ strb r1, [r3]
+ movs r2, 0x1
+ lsrs r6, r0, 24
+ asrs r0, 24
+ subs r1, 0xFF
+ cmp r0, r1
+ bne _08026156
+ strb r4, [r3, 0x1]
+ movs r0, 0xD3
+ strb r0, [r3, 0x2]
+ strb r4, [r3, 0x3]
+ movs r2, 0x4
+_08026156:
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ movs r0, 0xD4
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080261A0 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r7, r0
+ mov r1, r10
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0
+ beq _08026206
+ movs r1, 0
+ ldr r0, _080261A8 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ ldr r3, _080261AC @ =gUnknown_02024D1E
+ mov r8, r3
+ cmp r0, r2
+ bne _0802619A
+ movs r1, 0x1
+_0802619A:
+ mov r4, r8
+ strb r1, [r4, 0x5]
+ b _08026234
+ .align 2, 0
+_080261A0: .4byte gUnknown_02024A60
+_080261A4: .4byte gUnknown_03004290
+_080261A8: .4byte gUnknown_02024C08
+_080261AC: .4byte gUnknown_02024D1E
+_080261B0:
+ asrs r6, r0, 28
+ movs r0, 0x7
+ ands r6, r0
+ ldr r3, _08026210 @ =gUnknown_03004290
+ strb r2, [r3]
+ movs r2, 0x1
+ cmp r6, 0x2
+ bne _080261CA
+ strb r4, [r3, 0x1]
+ movs r0, 0xD1
+ strb r0, [r3, 0x2]
+ strb r4, [r3, 0x3]
+ movs r2, 0x4
+_080261CA:
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ movs r0, 0xD2
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r0, r2, r3
+ strb r4, [r0]
+ adds r2, 0x1
+ adds r1, r2, r3
+ ldrb r0, [r1]
+ mov r2, r12
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r2, _08026214 @ =gBattleMons
+ ldr r4, _08026218 @ =gUnknown_02024A60
+ ldrb r3, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ adds r0, r7, r0
+ adds r1, r2, 0
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ mov r10, r2
+ cmp r0, 0xC
+ bne _08026220
+_08026206:
+ ldr r1, _0802621C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ mov r8, r1
+ b _08026234
+ .align 2, 0
+_08026210: .4byte gUnknown_03004290
+_08026214: .4byte gBattleMons
+_08026218: .4byte gUnknown_02024A60
+_0802621C: .4byte gUnknown_02024D1E
+_08026220:
+ movs r1, 0
+ ldr r0, _080262B4 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ ldr r2, _080262B8 @ =gUnknown_02024D1E
+ mov r8, r2
+ cmp r0, r3
+ bne _08026230
+ movs r1, 0x1
+_08026230:
+ mov r3, r8
+ strb r1, [r3, 0x5]
+_08026234:
+ ldr r2, _080262BC @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ movs r4, 0x58
+ adds r1, r0, 0
+ muls r1, r4
+ adds r1, r7, r1
+ mov r3, r10
+ adds r3, 0x18
+ adds r1, r3
+ lsls r0, r6, 24
+ asrs r0, 24
+ ldrb r6, [r1]
+ adds r0, r6
+ strb r0, [r1]
+ ldrb r0, [r2]
+ muls r0, r4
+ adds r0, r7, r0
+ adds r1, r0, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _08026264
+ movs r0, 0
+ strb r0, [r1]
+_08026264:
+ ldr r1, _080262BC @ =gUnknown_02024A60
+ ldrb r0, [r1]
+ muls r0, r4
+ adds r0, r7, r0
+ adds r1, r0, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0xC
+ ble _0802627A
+ movs r0, 0xC
+ strb r0, [r1]
+_0802627A:
+ mov r2, r8
+ ldrb r0, [r2, 0x5]
+ cmp r0, 0x2
+ bne _080262A2
+ movs r3, 0x1
+ ands r3, r5
+ cmp r3, 0
+ beq _08026294
+ ldr r0, _080262C0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+_08026294:
+ mov r4, r8
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0x2
+ bne _080262A2
+ cmp r3, 0
+ bne _080262A2
+ b _08025F74
+_080262A2:
+ movs r0, 0
+_080262A4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080262B4: .4byte gUnknown_02024C08
+_080262B8: .4byte gUnknown_02024D1E
+_080262BC: .4byte gUnknown_02024A60
+_080262C0: .4byte gUnknown_02024C68
+ thumb_func_end sub_8025E20
+
+ thumb_func_start atk89_statbuffchange
+atk89_statbuffchange: @ 80262C4
+ push {r4,r5,lr}
+ ldr r5, _0802630C @ =gUnknown_02024C10
+ ldr r2, [r5]
+ ldrb r3, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r3, r0
+ ldr r0, _08026310 @ =0x02000000
+ ldr r1, _08026314 @ =0x0001601e
+ adds r0, r1
+ ldrb r4, [r0]
+ movs r0, 0xF0
+ ands r0, r4
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xF
+ ands r1, r4
+ ldrb r2, [r2, 0x1]
+ bl sub_8025E20
+ lsls r0, 24
+ cmp r0, 0
+ bne _08026304
+ ldr r0, [r5]
+ adds r0, 0x6
+ str r0, [r5]
+_08026304:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802630C: .4byte gUnknown_02024C10
+_08026310: .4byte 0x02000000
+_08026314: .4byte 0x0001601e
+ thumb_func_end atk89_statbuffchange
+
+ thumb_func_start atk8A_normalisebuffs
+atk8A_normalisebuffs: @ 8026318
+ push {r4-r7,lr}
+ movs r2, 0
+ ldr r0, _08026360 @ =gUnknown_02024A68
+ ldrb r1, [r0]
+ ldr r0, _08026364 @ =gUnknown_02024C10
+ mov r12, r0
+ cmp r2, r1
+ bge _08026350
+ ldr r0, _08026368 @ =gBattleMons
+ movs r4, 0x6
+ adds r5, r1, 0
+ movs r7, 0x58
+ adds r6, r0, 0
+ adds r6, 0x18
+_08026334:
+ adds r3, r2, 0x1
+ movs r1, 0x7
+ adds r0, r2, 0
+ muls r0, r7
+ adds r0, r6
+ adds r0, 0x7
+_08026340:
+ strb r4, [r0]
+ subs r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08026340
+ adds r2, r3, 0
+ cmp r2, r5
+ blt _08026334
+_08026350:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026360: .4byte gUnknown_02024A68
+_08026364: .4byte gUnknown_02024C10
+_08026368: .4byte gBattleMons
+ thumb_func_end atk8A_normalisebuffs
+
+ thumb_func_start atk8B_setbide
+atk8B_setbide: @ 802636C
+ push {r4,r5,lr}
+ ldr r4, _080263C4 @ =gBattleMons
+ ldr r3, _080263C8 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ movs r5, 0x58
+ adds r2, r0, 0
+ muls r2, r5
+ adds r4, 0x50
+ adds r2, r4
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 5
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _080263CC @ =gUnknown_02024C54
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _080263D0 @ =gUnknown_02024BE6
+ ldrh r1, [r1]
+ movs r2, 0
+ strh r1, [r0]
+ ldr r1, _080263D4 @ =gUnknown_02024BF4
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ str r2, [r0]
+ ldrb r0, [r3]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 2
+ orrs r0, r2
+ str r0, [r1]
+ ldr r1, _080263D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080263C4: .4byte gBattleMons
+_080263C8: .4byte gUnknown_02024C07
+_080263CC: .4byte gUnknown_02024C54
+_080263D0: .4byte gUnknown_02024BE6
+_080263D4: .4byte gUnknown_02024BF4
+_080263D8: .4byte gUnknown_02024C10
+ thumb_func_end atk8B_setbide
+
+ thumb_func_start atk8C_confuseifrepeatingattackends
+atk8C_confuseifrepeatingattackends: @ 80263DC
+ push {lr}
+ ldr r1, _0802640C @ =gBattleMons
+ ldr r0, _08026410 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xC0
+ lsls r1, 4
+ ands r0, r1
+ cmp r0, 0
+ bne _080263FE
+ ldr r1, _08026414 @ =gUnknown_02024D1E
+ movs r0, 0x75
+ strb r0, [r1, 0x3]
+_080263FE:
+ ldr r1, _08026418 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802640C: .4byte gBattleMons
+_08026410: .4byte gUnknown_02024C07
+_08026414: .4byte gUnknown_02024D1E
+_08026418: .4byte gUnknown_02024C10
+ thumb_func_end atk8C_confuseifrepeatingattackends
+
+ thumb_func_start atk8D_setloopcounter
+atk8D_setloopcounter: @ 802641C
+ push {r4,r5,lr}
+ ldr r0, _08026430 @ =gUnknown_02024C10
+ ldr r0, [r0]
+ ldrb r1, [r0, 0x1]
+ cmp r1, 0
+ beq _08026438
+ ldr r0, _08026434 @ =gUnknown_02024C0E
+ strb r1, [r0]
+ b _08026452
+ .align 2, 0
+_08026430: .4byte gUnknown_02024C10
+_08026434: .4byte gUnknown_02024C0E
+_08026438:
+ ldr r4, _08026460 @ =gUnknown_02024C0E
+ bl Random
+ movs r5, 0x3
+ ands r0, r5
+ strb r0, [r4]
+ cmp r0, 0x1
+ bls _0802644E
+ bl Random
+ ands r0, r5
+_0802644E:
+ adds r0, 0x2
+ strb r0, [r4]
+_08026452:
+ ldr r1, _08026464 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026460: .4byte gUnknown_02024C0E
+_08026464: .4byte gUnknown_02024C10
+ thumb_func_end atk8D_setloopcounter
+
+ thumb_func_start sub_8026468
+sub_8026468: @ 8026468
+ push {r4,lr}
+ ldr r1, _080264A8 @ =0x02000000
+ ldr r0, _080264AC @ =0x000160e0
+ adds r2, r1, r0
+ movs r3, 0
+ movs r0, 0xFD
+ strb r0, [r2]
+ ldr r2, _080264B0 @ =0x000160e1
+ adds r0, r1, r2
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r4, _080264B4 @ =0x000160e2
+ adds r0, r1, r4
+ strb r2, [r0]
+ adds r4, 0x1
+ adds r0, r1, r4
+ strb r2, [r0]
+ ldr r2, _080264B8 @ =0x000160e4
+ adds r0, r1, r2
+ strb r3, [r0]
+ adds r4, 0x2
+ adds r1, r4
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _080264BC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080264A8: .4byte 0x02000000
+_080264AC: .4byte 0x000160e0
+_080264B0: .4byte 0x000160e1
+_080264B4: .4byte 0x000160e2
+_080264B8: .4byte 0x000160e4
+_080264BC: .4byte gUnknown_02024C10
+ thumb_func_end sub_8026468
+
+ thumb_func_start sub_80264C0
+sub_80264C0: @ 80264C0
+ push {r4-r7,lr}
+ ldr r6, _080264F4 @ =gBattleMons
+ ldr r7, _080264F8 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ movs r5, 0x58
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r6
+ adds r1, 0x2A
+ ldr r4, _080264FC @ =gUnknown_02024C08
+ ldrb r3, [r4]
+ adds r0, r3, 0
+ muls r0, r5
+ adds r0, r6
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _0802650C
+ ldr r0, _08026500 @ =0x02000000
+ ldr r2, _08026504 @ =0x00016064
+ adds r1, r3, r2
+ adds r1, r0
+ ldr r2, _08026508 @ =gUnknown_02024A6A
+ lsls r0, r3, 1
+ b _08026568
+ .align 2, 0
+_080264F4: .4byte gBattleMons
+_080264F8: .4byte gUnknown_02024C07
+_080264FC: .4byte gUnknown_02024C08
+_08026500: .4byte 0x02000000
+_08026504: .4byte 0x00016064
+_08026508: .4byte gUnknown_02024A6A
+_0802650C:
+ bl Random
+ movs r3, 0xFF
+ ands r3, r0
+ ldrb r0, [r7]
+ muls r0, r5
+ adds r0, r6
+ adds r0, 0x2A
+ ldrb r2, [r0]
+ ldrb r4, [r4]
+ adds r0, r4, 0
+ muls r0, r5
+ adds r0, r6
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ adds r2, r1
+ adds r0, r3, 0
+ muls r0, r2
+ asrs r0, 8
+ adds r0, 0x1
+ lsrs r1, 2
+ cmp r0, r1
+ bhi _0802655C
+ ldr r3, _08026558 @ =gUnknown_02024C10
+ 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]
+ movs r0, 0
+ b _08026576
+ .align 2, 0
+_08026558: .4byte gUnknown_02024C10
+_0802655C:
+ ldr r0, _0802657C @ =0x02000000
+ ldr r2, _08026580 @ =0x00016064
+ adds r1, r4, r2
+ adds r1, r0
+ ldr r2, _08026584 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+_08026568:
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08026588 @ =gUnknown_02024C10
+ ldr r0, _0802658C @ =gUnknown_081D90FC
+ str r0, [r1]
+ movs r0, 0x1
+_08026576:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0802657C: .4byte 0x02000000
+_08026580: .4byte 0x00016064
+_08026584: .4byte gUnknown_02024A6A
+_08026588: .4byte gUnknown_02024C10
+_0802658C: .4byte gUnknown_081D90FC
+ thumb_func_end sub_80264C0
+
+ thumb_func_start sub_8026590
+sub_8026590: @ 8026590
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _08026628 @ =gUnknown_020239F8
+ ldrh r1, [r4]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080265A4
+ b _0802687C
+_080265A4:
+ ldr r5, _0802662C @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _08026630 @ =gEnemyParty
+ mov r8, r1
+ cmp r0, 0
+ bne _080265BA
+ ldr r2, _08026634 @ =gPlayerParty
+ mov r8, r2
+_080265BA:
+ ldrh r1, [r4]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08026638
+ movs r7, 0
+ movs r6, 0
+ ldrb r0, [r5]
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803FBFC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _080265E0
+ movs r6, 0x3
+_080265E0:
+ adds r5, r6, 0
+ adds r0, r5, 0x3
+ cmp r5, r0
+ bge _08026678
+_080265E8:
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802661A
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0802661A
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802661A
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0802661A:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r6, 0x3
+ cmp r5, r0
+ blt _080265E8
+ b _08026678
+ .align 2, 0
+_08026628: .4byte gUnknown_020239F8
+_0802662C: .4byte gUnknown_02024C08
+_08026630: .4byte gEnemyParty
+_08026634: .4byte gPlayerParty
+_08026638:
+ movs r7, 0
+ movs r5, 0
+_0802663C:
+ movs r0, 0x64
+ muls r0, r5
+ mov r2, r8
+ adds r4, r2, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802666E
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0802666E
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802666E
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+_0802666E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0802663C
+_08026678:
+ cmp r7, 0x1
+ bhi _08026688
+ ldr r0, _080266BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x41
+ ands r0, r1
+ cmp r0, 0x1
+ bne _080266A0
+_08026688:
+ cmp r7, 0x2
+ bhi _080266C4
+ ldr r0, _080266BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080266C4
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080266C4
+_080266A0:
+ ldr r3, _080266C0 @ =gUnknown_02024C10
+ 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 _08026880
+ .align 2, 0
+_080266BC: .4byte gUnknown_020239F8
+_080266C0: .4byte gUnknown_02024C10
+_080266C4:
+ bl sub_80264C0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080266D0
+ b _08026880
+_080266D0:
+ ldr r0, _08026710 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08026774
+_080266DC:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08026714 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ bl sub_803FC34
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_803FBFC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _08026718
+ adds r0, r6, 0x3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0802671A
+ .align 2, 0
+_08026710: .4byte gUnknown_020239F8
+_08026714: .4byte gUnknown_02024C08
+_08026718:
+ adds r5, r6, 0
+_0802671A:
+ ldr r4, _0802676C @ =gUnknown_02024A6A
+ ldr r0, _08026770 @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ lsls r1, r2, 1
+ adds r1, r4
+ lsls r0, r5, 16
+ lsrs r3, r0, 16
+ ldrh r1, [r1]
+ cmp r3, r1
+ beq _080266DC
+ movs r0, 0x2
+ eors r2, r0
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r3, r0
+ beq _080266DC
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080266DC
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _080266DC
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080266DC
+ b _08026832
+ .align 2, 0
+_0802676C: .4byte gUnknown_02024A6A
+_08026770: .4byte gUnknown_02024C08
+_08026774:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080267E4
+ ldr r6, _080267DC @ =gUnknown_02024A6A
+_0802677E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _080267E0 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r6
+ adds r2, r5, 0
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802677E
+ movs r0, 0x2
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802677E
+ movs r0, 0x64
+ muls r0, r5
+ mov r2, r8
+ adds r4, r2, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0802677E
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _0802677E
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0802677E
+ b _08026832
+ .align 2, 0
+_080267DC: .4byte gUnknown_02024A6A
+_080267E0: .4byte gUnknown_02024C08
+_080267E4:
+ ldr r6, _0802686C @ =gUnknown_02024A6A
+_080267E6:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08026870 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _080267E6
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _080267E6
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0x1
+ beq _080267E6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080267E6
+_08026832:
+ ldr r0, _08026874 @ =0x02000000
+ ldr r4, _08026870 @ =gUnknown_02024C08
+ ldrb r1, [r4]
+ ldr r2, _08026878 @ =0x00016068
+ adds r1, r2
+ adds r1, r0
+ strb r5, [r1]
+ bl sub_806B528
+ lsls r0, 24
+ cmp r0, 0
+ bne _08026850
+ ldrb r0, [r4]
+ bl sub_8012258
+_08026850:
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8094B6C
+ ldrb r1, [r4]
+ movs r0, 0x2
+ eors r0, r1
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_8094B6C
+ b _08026880
+ .align 2, 0
+_0802686C: .4byte gUnknown_02024A6A
+_08026870: .4byte gUnknown_02024C08
+_08026874: .4byte 0x02000000
+_08026878: .4byte 0x00016068
+_0802687C:
+ bl sub_80264C0
+_08026880:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8026590
+
+ thumb_func_start sub_802688C
+sub_802688C: @ 802688C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ ldr r2, _08026920 @ =gBattleMons
+ ldr r3, _08026924 @ =gUnknown_02024C07
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r2, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+ mov r8, r2
+ cmp r0, 0
+ beq _080268CE
+ movs r5, 0x58
+ adds r2, r1, 0
+_080268B4:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bhi _080268CE
+ lsls r1, r6, 1
+ ldrb r0, [r3]
+ muls r0, r5
+ adds r1, r0
+ adds r1, r2
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _080268B4
+_080268CE:
+ movs r3, 0
+ cmp r3, r6
+ bcs _08026950
+ ldr r0, _08026928 @ =gBattleMoves
+ mov r10, r0
+ ldr r5, _08026920 @ =gBattleMons
+ mov r12, r5
+ ldr r7, _08026924 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ movs r4, 0x58
+ adds r5, r0, 0
+ muls r5, r4
+ movs r0, 0xC
+ add r0, r12
+ mov r9, r0
+_080268EC:
+ lsls r0, r3, 1
+ adds r0, r5
+ add r0, r9
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ ldrb r2, [r0, 0x2]
+ cmp r2, 0x9
+ bne _0802692E
+ mov r0, r8
+ adds r1, r5, r0
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _0802691A
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _0802692C
+_0802691A:
+ movs r2, 0x7
+ b _0802692E
+ .align 2, 0
+_08026920: .4byte gBattleMons
+_08026924: .4byte gUnknown_02024C07
+_08026928: .4byte gBattleMoves
+_0802692C:
+ movs r2, 0
+_0802692E:
+ ldrb r0, [r7]
+ muls r0, r4
+ add r0, r12
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r2, r1
+ beq _08026946
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r2, r0
+ bne _08026950
+_08026946:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r6
+ bcc _080268EC
+_08026950:
+ cmp r3, r6
+ bne _08026974
+ ldr r3, _08026970 @ =gUnknown_02024C10
+ 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 _08026A18
+ .align 2, 0
+_08026970: .4byte gUnknown_02024C10
+_08026974:
+ movs r7, 0x3
+ ldr r5, _080269CC @ =gBattleMoves
+ mov r9, r5
+_0802697A:
+ bl Random
+ adds r3, r0, 0
+ ands r3, r7
+ cmp r3, r6
+ bcs _0802697A
+ ldr r4, _080269D0 @ =gBattleMons
+ lsls r1, r3, 1
+ ldr r3, _080269D4 @ =gUnknown_02024C07
+ ldrb r2, [r3]
+ movs r0, 0x58
+ adds r5, r2, 0
+ muls r5, r0
+ adds r1, r5
+ adds r0, r4, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrb r2, [r0, 0x2]
+ mov r8, r4
+ adds r4, r3, 0
+ cmp r2, 0x9
+ bne _080269DA
+ mov r0, r8
+ adds r2, r5, r0
+ adds r0, r2, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ beq _080269C8
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bne _080269D8
+_080269C8:
+ movs r2, 0x7
+ b _080269DA
+ .align 2, 0
+_080269CC: .4byte gBattleMoves
+_080269D0: .4byte gBattleMons
+_080269D4: .4byte gUnknown_02024C07
+_080269D8:
+ movs r2, 0
+_080269DA:
+ ldrb r0, [r4]
+ movs r3, 0x58
+ muls r0, r3
+ add r0, r8
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r5, [r1]
+ cmp r2, r5
+ beq _0802697A
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r2, r0
+ beq _0802697A
+ strb r2, [r1]
+ ldrb r0, [r4]
+ muls r0, r3
+ add r0, r8
+ adds r0, 0x22
+ strb r2, [r0]
+ ldr r1, _08026A28 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _08026A2C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08026A18:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026A28: .4byte gUnknown_030041C0
+_08026A2C: .4byte gUnknown_02024C10
+ thumb_func_end sub_802688C
+
+ thumb_func_start atk91_givemoney
+atk91_givemoney: @ 8026A30
+ push {r4,lr}
+ ldr r0, _08026A8C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08026AAC
+ ldr r4, _08026A90 @ =gUnknown_02024D1A
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _08026AAC
+ ldr r0, _08026A94 @ =gSaveBlock1 + 0x490
+ ldrh r2, [r4]
+ ldr r1, _08026A98 @ =0x02000000
+ ldr r3, _08026A9C @ =0x00016056
+ adds r1, r3
+ ldrb r1, [r1]
+ muls r1, r2
+ bl sub_80B79B8
+ ldr r1, _08026AA0 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ movs r0, 0x5
+ strb r0, [r1, 0x3]
+ ldrh r2, [r4]
+ strb r2, [r1, 0x4]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r2
+ lsrs r0, 8
+ strb r0, [r1, 0x5]
+ movs r0, 0xFF
+ strb r0, [r1, 0x6]
+ ldr r4, _08026AA4 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ adds r0, 0x1
+ bl b_movescr_stack_push
+ ldr r0, _08026AA8 @ =gUnknown_081D95DB
+ str r0, [r4]
+ b _08026AB4
+ .align 2, 0
+_08026A8C: .4byte gUnknown_020239F8
+_08026A90: .4byte gUnknown_02024D1A
+_08026A94: .4byte gSaveBlock1 + 0x490
+_08026A98: .4byte 0x02000000
+_08026A9C: .4byte 0x00016056
+_08026AA0: .4byte gUnknown_030041C0
+_08026AA4: .4byte gUnknown_02024C10
+_08026AA8: .4byte gUnknown_081D95DB
+_08026AAC:
+ ldr r1, _08026ABC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_08026AB4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026ABC: .4byte gUnknown_02024C10
+ thumb_func_end atk91_givemoney
+
+ thumb_func_start atk92_setlightscreen
+atk92_setlightscreen: @ 8026AC0
+ push {r4-r6,lr}
+ ldr r4, _08026AF0 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r6, _08026AF4 @ =gUnknown_02024C7A
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08026B00
+ ldr r2, _08026AF8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08026AFC @ =gUnknown_02024D1E
+ movs r0, 0
+ b _08026B60
+ .align 2, 0
+_08026AF0: .4byte gUnknown_02024C07
+_08026AF4: .4byte gUnknown_02024C7A
+_08026AF8: .4byte gUnknown_02024C68
+_08026AFC: .4byte gUnknown_02024D1E
+_08026B00:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r2, _08026B50 @ =gUnknown_02024C80
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0, 0x1]
+ ldr r0, _08026B54 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08026B5C
+ movs r0, 0x1
+ bl sub_803C348
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08026B5C
+ ldr r1, _08026B58 @ =gUnknown_02024D1E
+ movs r0, 0x4
+ b _08026B60
+ .align 2, 0
+_08026B50: .4byte gUnknown_02024C80
+_08026B54: .4byte gUnknown_020239F8
+_08026B58: .4byte gUnknown_02024D1E
+_08026B5C:
+ ldr r1, _08026B70 @ =gUnknown_02024D1E
+ movs r0, 0x3
+_08026B60:
+ strb r0, [r1, 0x5]
+ ldr r1, _08026B74 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026B70: .4byte gUnknown_02024D1E
+_08026B74: .4byte gUnknown_02024C10
+ thumb_func_end atk92_setlightscreen
+
+ thumb_func_start sub_8026B78
+sub_8026B78: @ 8026B78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, _08026BA8 @ =gBattleMons
+ ldr r6, _08026BAC @ =gUnknown_02024C08
+ ldrb r2, [r6]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r0, r7
+ ldrh r0, [r1, 0x2E]
+ cmp r0, 0xAF
+ bne _08026BB4
+ ldr r1, _08026BB0 @ =gEnigmaBerries
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r4, [r0, 0x7]
+ ldrb r6, [r0, 0x1A]
+ b _08026BCE
+ .align 2, 0
+_08026BA8: .4byte gBattleMons
+_08026BAC: .4byte gUnknown_02024C08
+_08026BB0: .4byte gEnigmaBerries
+_08026BB4:
+ ldrh r0, [r1, 0x2E]
+ bl ItemId_GetHoldEffect
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7
+ ldrh r0, [r0, 0x2E]
+ bl ItemId_GetHoldEffectParam
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08026BCE:
+ ldr r1, _08026C4C @ =gUnknown_02024C0B
+ ldr r5, _08026C50 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ strb r0, [r1]
+ cmp r4, 0x27
+ bne _08026C0C
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcs _08026C0C
+ ldrb r0, [r5]
+ movs r1, 0x27
+ bl sub_81074F8
+ ldr r2, _08026C54 @ =gUnknown_02024D68
+ ldrb r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_08026C0C:
+ ldr r0, _08026C58 @ =gBattleMons
+ mov r8, r0
+ ldr r1, _08026C50 @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ mov r3, r8
+ adds r5, r0, r3
+ adds r0, r5, 0
+ adds r0, 0x20
+ ldrb r3, [r0]
+ mov r10, r8
+ cmp r3, 0x5
+ bne _08026C6C
+ ldr r2, _08026C5C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08026C60 @ =byte_2024C06
+ strb r3, [r0]
+ ldr r1, _08026C64 @ =gUnknown_02024C10
+ ldr r0, _08026C68 @ =gUnknown_081D9826
+ str r0, [r1]
+ ldr r1, _08026C50 @ =gUnknown_02024C08
+ ldrb r0, [r1]
+ movs r1, 0x5
+ bl sub_81074C4
+ b _08026E40
+ .align 2, 0
+_08026C4C: .4byte gUnknown_02024C0B
+_08026C50: .4byte gUnknown_02024C08
+_08026C54: .4byte gUnknown_02024D68
+_08026C58: .4byte gBattleMons
+_08026C5C: .4byte gUnknown_02024C68
+_08026C60: .4byte byte_2024C06
+_08026C64: .4byte gUnknown_02024C10
+_08026C68: .4byte gUnknown_081D9826
+_08026C6C:
+ ldr r1, _08026CE0 @ =gUnknown_02024C98
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x18
+ ands r0, r1
+ cmp r0, 0
+ bne _08026CF4
+ ldr r1, _08026CE4 @ =gBattleMoves
+ ldr r0, _08026CE8 @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldr r7, _08026CEC @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r1, 0x2A
+ ldrb r1, [r1]
+ subs r0, r1
+ ldrb r2, [r2, 0x3]
+ adds r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, 0x1
+ cmp r0, r4
+ bge _08026CDC
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ add r1, r10
+ adds r1, 0x2A
+ ldr r2, _08026CF0 @ =gUnknown_02024C08
+ ldrb r0, [r2]
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ movs r4, 0x1
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcs _08026D20
+_08026CDC:
+ mov r10, r8
+ b _08026DE0
+ .align 2, 0
+_08026CE0: .4byte gUnknown_02024C98
+_08026CE4: .4byte gBattleMoves
+_08026CE8: .4byte gUnknown_02024BE6
+_08026CEC: .4byte gUnknown_02024C07
+_08026CF0: .4byte gUnknown_02024C08
+_08026CF4:
+ ldr r0, _08026D4C @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, _08026D50 @ =gUnknown_02024C07
+ ldrb r0, [r1, 0x15]
+ movs r4, 0
+ ldrb r3, [r2]
+ cmp r0, r3
+ bne _08026D20
+ ldrb r0, [r2]
+ muls r0, r6
+ add r0, r10
+ adds r0, 0x2A
+ adds r1, r5, 0
+ adds r1, 0x2A
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08026D20
+ movs r4, 0x1
+_08026D20:
+ cmp r4, 0
+ beq _08026DE0
+ ldr r0, _08026D54 @ =gUnknown_02024D28
+ ldr r1, _08026D58 @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 30
+ cmp r0, 0
+ bge _08026D64
+ ldr r1, _08026D5C @ =gUnknown_02024BEC
+ movs r0, 0x58
+ muls r0, r2
+ add r0, r10
+ ldrh r0, [r0, 0x28]
+ subs r0, 0x1
+ str r0, [r1]
+ ldr r2, _08026D60 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x40
+ b _08026DC6
+ .align 2, 0
+_08026D4C: .4byte gUnknown_02024CA8
+_08026D50: .4byte gUnknown_02024C07
+_08026D54: .4byte gUnknown_02024D28
+_08026D58: .4byte gUnknown_02024C08
+_08026D5C: .4byte gUnknown_02024BEC
+_08026D60: .4byte gUnknown_02024C68
+_08026D64:
+ ldr r0, _08026DA0 @ =gUnknown_02024D68
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08026DB4
+ ldr r1, _08026DA4 @ =gUnknown_02024BEC
+ movs r3, 0x58
+ adds r0, r2, 0
+ muls r0, r3
+ add r0, r10
+ ldrh r0, [r0, 0x28]
+ subs r0, 0x1
+ str r0, [r1]
+ ldr r2, _08026DA8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08026DAC @ =gUnknown_02024C04
+ ldr r2, _08026DB0 @ =gUnknown_02024C08
+ ldrb r0, [r2]
+ muls r0, r3
+ add r0, r10
+ ldrh r0, [r0, 0x2E]
+ strh r0, [r1]
+ b _08026DCA
+ .align 2, 0
+_08026DA0: .4byte gUnknown_02024D68
+_08026DA4: .4byte gUnknown_02024BEC
+_08026DA8: .4byte gUnknown_02024C68
+_08026DAC: .4byte gUnknown_02024C04
+_08026DB0: .4byte gUnknown_02024C08
+_08026DB4:
+ ldr r1, _08026DD4 @ =gUnknown_02024BEC
+ movs r0, 0x58
+ muls r0, r2
+ add r0, r10
+ ldrh r0, [r0, 0x28]
+ str r0, [r1]
+ ldr r2, _08026DD8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x10
+_08026DC6:
+ orrs r0, r1
+ strb r0, [r2]
+_08026DCA:
+ ldr r1, _08026DDC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08026E40
+ .align 2, 0
+_08026DD4: .4byte gUnknown_02024BEC
+_08026DD8: .4byte gUnknown_02024C68
+_08026DDC: .4byte gUnknown_02024C10
+_08026DE0:
+ ldr r2, _08026E10 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08026E14 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ add r1, r10
+ adds r1, 0x2A
+ ldr r3, _08026E18 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ muls r0, r2
+ add r0, r10
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _08026E20
+ ldr r1, _08026E1C @ =gUnknown_02024D1E
+ movs r0, 0
+ b _08026E24
+ .align 2, 0
+_08026E10: .4byte gUnknown_02024C68
+_08026E14: .4byte gUnknown_02024C07
+_08026E18: .4byte gUnknown_02024C08
+_08026E1C: .4byte gUnknown_02024D1E
+_08026E20:
+ ldr r1, _08026E50 @ =gUnknown_02024D1E
+ movs r0, 0x1
+_08026E24:
+ strb r0, [r1, 0x5]
+ ldr r3, _08026E54 @ =gUnknown_02024C10
+ 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]
+_08026E40:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026E50: .4byte gUnknown_02024D1E
+_08026E54: .4byte gUnknown_02024C10
+ thumb_func_end sub_8026B78
+
+ thumb_func_start atk94_gethalfcurrentenemyhp
+atk94_gethalfcurrentenemyhp: @ 8026E58
+ push {lr}
+ ldr r3, _08026E84 @ =gUnknown_02024BEC
+ ldr r2, _08026E88 @ =gBattleMons
+ ldr r0, _08026E8C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ lsrs r0, 1
+ str r0, [r3]
+ cmp r0, 0
+ bne _08026E76
+ movs r0, 0x1
+ str r0, [r3]
+_08026E76:
+ ldr r1, _08026E90 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026E84: .4byte gUnknown_02024BEC
+_08026E88: .4byte gBattleMons
+_08026E8C: .4byte gUnknown_02024C08
+_08026E90: .4byte gUnknown_02024C10
+ thumb_func_end atk94_gethalfcurrentenemyhp
+
+ thumb_func_start sub_8026E94
+sub_8026E94: @ 8026E94
+ push {lr}
+ ldr r2, _08026EB4 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08026EC0
+ ldr r2, _08026EB8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08026EBC @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _08026ED2
+ .align 2, 0
+_08026EB4: .4byte word_2024DB8
+_08026EB8: .4byte gUnknown_02024C68
+_08026EBC: .4byte gUnknown_02024D1E
+_08026EC0:
+ movs r0, 0x8
+ strh r0, [r2]
+ ldr r1, _08026EE0 @ =gUnknown_02024D1E
+ movs r0, 0x3
+ strb r0, [r1, 0x5]
+ ldr r0, _08026EE4 @ =gUnknown_02024DBC
+ adds r0, 0x28
+ movs r1, 0x5
+ strb r1, [r0]
+_08026ED2:
+ ldr r1, _08026EE8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08026EE0: .4byte gUnknown_02024D1E
+_08026EE4: .4byte gUnknown_02024DBC
+_08026EE8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8026E94
+
+ thumb_func_start sub_8026EEC
+sub_8026EEC: @ 8026EEC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08026F0A
+ b _0802701C
+_08026F0A:
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _08026F20
+ b _0802701C
+_08026F20:
+ ldr r2, _08026F94 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x18
+ ands r0, r1
+ adds r4, r2, 0
+ ldr r5, _08026F98 @ =gUnknown_02024C07
+ cmp r0, 0
+ beq _08026FAE
+ ldr r0, _08026F9C @ =gBattleMons
+ ldrb r2, [r5]
+ movs r1, 0x58
+ muls r1, r2
+ adds r3, r1, r0
+ adds r0, r3, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _08026FA8
+ cmp r0, 0x8
+ beq _08026FA8
+ cmp r0, 0x4
+ beq _08026FA8
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _08026FA8
+ cmp r0, 0x8
+ beq _08026FA8
+ cmp r0, 0x4
+ beq _08026FA8
+ adds r0, r3, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ beq _08026FA8
+ ldr r0, _08026FA0 @ =gUnknown_02024C98
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08026FA8
+ movs r0, 0x80
+ lsls r0, 11
+ ands r1, r0
+ cmp r1, 0
+ bne _08026FA8
+ ldr r1, _08026FA4 @ =gUnknown_02024BEC
+ ldrh r0, [r3, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08026FAE
+ movs r0, 0x1
+ b _08026FAC
+ .align 2, 0
+_08026F94: .4byte word_2024DB8
+_08026F98: .4byte gUnknown_02024C07
+_08026F9C: .4byte gBattleMons
+_08026FA0: .4byte gUnknown_02024C98
+_08026FA4: .4byte gUnknown_02024BEC
+_08026FA8:
+ ldr r1, _08027004 @ =gUnknown_02024BEC
+ movs r0, 0
+_08026FAC:
+ str r0, [r1]
+_08026FAE:
+ ldrh r1, [r4]
+ movs r4, 0x80
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08027024
+ ldr r1, _08027008 @ =gBattleMons
+ ldrb r3, [r5]
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r0, r1
+ adds r0, r2, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ beq _08027010
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xF
+ beq _08027010
+ ldr r0, _0802700C @ =gUnknown_02024C98
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r1, [r1]
+ adds r0, r1, 0
+ ands r0, r4
+ cmp r0, 0
+ bne _08027010
+ movs r0, 0x80
+ lsls r0, 11
+ ands r1, r0
+ cmp r1, 0
+ bne _08027010
+ ldr r1, _08027004 @ =gUnknown_02024BEC
+ ldrh r0, [r2, 0x2C]
+ lsrs r0, 4
+ str r0, [r1]
+ cmp r0, 0
+ bne _08027024
+ movs r0, 0x1
+ str r0, [r1]
+ b _08027024
+ .align 2, 0
+_08027004: .4byte gUnknown_02024BEC
+_08027008: .4byte gBattleMons
+_0802700C: .4byte gUnknown_02024C98
+_08027010:
+ ldr r1, _08027018 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+ b _08027024
+ .align 2, 0
+_08027018: .4byte gUnknown_02024BEC
+_0802701C:
+ ldr r1, _08027050 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+ ldr r5, _08027054 @ =gUnknown_02024C07
+_08027024:
+ ldr r0, _08027058 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802705C @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0802703E
+ ldr r1, _08027050 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+_0802703E:
+ ldr r1, _08027060 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027050: .4byte gUnknown_02024BEC
+_08027054: .4byte gUnknown_02024C07
+_08027058: .4byte gUnknown_02024C0C
+_0802705C: .4byte gBitTable
+_08027060: .4byte gUnknown_02024C10
+ thumb_func_end sub_8026EEC
+
+ thumb_func_start sub_8027064
+sub_8027064: @ 8027064
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08027090 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802709C
+ ldr r1, _08027094 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08027098 @ =gPlayerParty
+ b _080270AC
+ .align 2, 0
+_08027090: .4byte gUnknown_02024C07
+_08027094: .4byte gUnknown_02024A6A
+_08027098: .4byte gPlayerParty
+_0802709C:
+ ldr r1, _080270D0 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080270D4 @ =gEnemyParty
+_080270AC:
+ adds r5, r1, r0
+ ldr r4, _080270D8 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080270E0
+ ldr r1, _080270D0 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _080270DC @ =gPlayerParty
+ b _080270F0
+ .align 2, 0
+_080270D0: .4byte gUnknown_02024A6A
+_080270D4: .4byte gEnemyParty
+_080270D8: .4byte gUnknown_02024C08
+_080270DC: .4byte gPlayerParty
+_080270E0:
+ ldr r1, _0802714C @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08027150 @ =gEnemyParty
+_080270F0:
+ adds r4, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r7, r0, 0
+ ldr r5, _08027154 @ =gUnknown_02024C08
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ ldr r1, _08027158 @ =gBattleMons
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r2, [r0]
+ cmp r2, 0xC
+ bne _08027168
+ ldr r1, _0802715C @ =gUnknown_02024C10
+ ldr r0, _08027160 @ =gUnknown_081D98C9
+ str r0, [r1]
+ ldr r0, _08027164 @ =byte_2024C06
+ strb r2, [r0]
+ ldrb r0, [r5]
+ movs r1, 0xC
+ bl sub_81074C4
+ b _0802721C
+ .align 2, 0
+_0802714C: .4byte gUnknown_02024A6A
+_08027150: .4byte gEnemyParty
+_08027154: .4byte gUnknown_02024C08
+_08027158: .4byte gBattleMons
+_0802715C: .4byte gUnknown_02024C10
+_08027160: .4byte gUnknown_081D98C9
+_08027164: .4byte byte_2024C06
+_08027168:
+ mov r0, r10
+ mov r1, r9
+ bl GetGenderFromSpeciesAndPersonality
+ adds r4, r0, 0
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _080271CA
+ ldr r1, _080271E8 @ =gUnknown_02024C98
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080271EC @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ bne _080271CA
+ adds r0, r2, 0
+ muls r0, r6
+ ldr r4, _080271F0 @ =gBattleMons
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r0, r1
+ cmp r0, 0
+ bne _080271CA
+ mov r0, r10
+ mov r1, r9
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _080271CA
+ mov r0, r8
+ adds r1, r7, 0
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _080271F8
+_080271CA:
+ ldr r3, _080271F4 @ =gUnknown_02024C10
+ 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 _0802721C
+ .align 2, 0
+_080271E8: .4byte gUnknown_02024C98
+_080271EC: .4byte 0x000400c0
+_080271F0: .4byte gBattleMons
+_080271F4: .4byte gUnknown_02024C10
+_080271F8:
+ ldrb r0, [r5]
+ adds r2, r0, 0
+ muls r2, r6
+ adds r2, r4
+ ldr r1, _0802722C @ =gBitTable
+ ldr r0, _08027230 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ lsls r1, 16
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08027234 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802721C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802722C: .4byte gBitTable
+_08027230: .4byte gUnknown_02024C07
+_08027234: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027064
+
+ thumb_func_start sub_8027238
+sub_8027238: @ 8027238
+ push {r4-r7,lr}
+ ldr r0, _08027280 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08027324
+ ldr r5, _08027284 @ =gUnknown_02024C10
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x4
+ beq _08027290
+ bl sub_8015150
+ ldr r4, _08027288 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r3, _0802728C @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ adds r3, 0x50
+ adds r2, r3
+ ldr r2, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x1A_aaaa_bbbb
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ b _08027324
+ .align 2, 0
+_08027280: .4byte gUnknown_02024A64
+_08027284: .4byte gUnknown_02024C10
+_08027288: .4byte gUnknown_02024A60
+_0802728C: .4byte gBattleMons
+_08027290:
+ ldr r4, _0802732C @ =gUnknown_02024A60
+ ldr r5, _08027330 @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ strb r0, [r4]
+ ldr r6, _08027334 @ =gUnknown_02024C0C
+ ldrb r1, [r6]
+ ldr r7, _08027338 @ =gBitTable
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080272CC
+ ldr r3, _0802733C @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ adds r3, 0x50
+ adds r2, r3
+ ldr r2, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x1A_aaaa_bbbb
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080272CC:
+ ldr r0, _08027340 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802731C
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ strb r0, [r4]
+ ldrb r1, [r6]
+ ldrb r2, [r4]
+ lsls r0, r2, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802731C
+ ldr r3, _0802733C @ =gBattleMons
+ movs r0, 0x58
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ adds r3, 0x50
+ adds r2, r3
+ ldr r2, [r2]
+ movs r0, 0
+ bl dp01_build_cmdbuf_x1A_aaaa_bbbb
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802731C:
+ ldr r1, _08027344 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+_08027324:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802732C: .4byte gUnknown_02024A60
+_08027330: .4byte gUnknown_02024C07
+_08027334: .4byte gUnknown_02024C0C
+_08027338: .4byte gBitTable
+_0802733C: .4byte gBattleMons
+_08027340: .4byte gUnknown_020239F8
+_08027344: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027238
+
+ thumb_func_start sub_8027348
+sub_8027348: @ 8027348
+ push {r4-r6,lr}
+ ldr r6, _08027378 @ =gUnknown_02024C80
+ ldr r4, _0802737C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08027388
+ ldr r2, _08027380 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08027384 @ =gUnknown_02024D1E
+ strb r5, [r0, 0x5]
+ b _080273C0
+ .align 2, 0
+_08027378: .4byte gUnknown_02024C80
+_0802737C: .4byte gUnknown_02024C07
+_08027380: .4byte gUnknown_02024C68
+_08027384: .4byte gUnknown_02024D1E
+_08027388:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5
+ strb r1, [r0, 0x2]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r2, _080273D0 @ =gUnknown_02024C7A
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ movs r3, 0
+ orrs r0, r2
+ strh r0, [r1]
+ ldr r0, _080273D4 @ =gUnknown_02024D1E
+ strb r3, [r0, 0x5]
+_080273C0:
+ ldr r1, _080273D8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080273D0: .4byte gUnknown_02024C7A
+_080273D4: .4byte gUnknown_02024D1E
+_080273D8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027348
+
+ thumb_func_start atk9A_setincreasedcriticalchance
+atk9A_setincreasedcriticalchance: @ 80273DC
+ push {lr}
+ ldr r1, _0802740C @ =gBattleMons
+ ldr r0, _08027410 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r3, 0x80
+ lsls r3, 13
+ adds r2, r1, 0
+ ands r2, r3
+ cmp r2, 0
+ beq _0802741C
+ ldr r2, _08027414 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08027418 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _08027424
+ .align 2, 0
+_0802740C: .4byte gBattleMons
+_08027410: .4byte gUnknown_02024C07
+_08027414: .4byte gUnknown_02024C68
+_08027418: .4byte gUnknown_02024D1E
+_0802741C:
+ orrs r1, r3
+ str r1, [r0]
+ ldr r0, _08027430 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x5]
+_08027424:
+ ldr r1, _08027434 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027430: .4byte gUnknown_02024D1E
+_08027434: .4byte gUnknown_02024C10
+ thumb_func_end atk9A_setincreasedcriticalchance
+
+ thumb_func_start atk9B_transformdataexecution
+atk9B_transformdataexecution: @ 8027438
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _08027490 @ =gUnknown_02024BE8
+ ldr r2, _08027494 @ =0x0000ffff
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08027498 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r7, _0802749C @ =gBattleMons
+ ldr r0, _080274A0 @ =gUnknown_02024C08
+ mov r12, r0
+ ldrb r1, [r0]
+ movs r6, 0x58
+ adds r0, r1, 0
+ muls r0, r6
+ adds r5, r7, 0
+ adds r5, 0x50
+ adds r0, r5
+ ldr r0, [r0]
+ movs r4, 0x80
+ lsls r4, 14
+ ands r0, r4
+ cmp r0, 0
+ bne _0802747E
+ ldr r0, _080274A4 @ =gUnknown_02024C98
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, [r1]
+ ldr r0, _080274A8 @ =0x000400c0
+ ands r2, r0
+ cmp r2, 0
+ beq _080274B4
+_0802747E:
+ ldr r2, _080274AC @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080274B0 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ b _080275C8
+ .align 2, 0
+_08027490: .4byte gUnknown_02024BE8
+_08027494: .4byte 0x0000ffff
+_08027498: .4byte gUnknown_02024C10
+_0802749C: .4byte gBattleMons
+_080274A0: .4byte gUnknown_02024C08
+_080274A4: .4byte gUnknown_02024C98
+_080274A8: .4byte 0x000400c0
+_080274AC: .4byte gUnknown_02024C68
+_080274B0: .4byte gUnknown_02024D1E
+_080274B4:
+ ldr r3, _08027588 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ ldr r0, [r1]
+ orrs r0, r4
+ str r0, [r1]
+ ldr r4, _0802758C @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r2, [r0, 0x4]
+ ldrb r0, [r3]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0xB]
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r2, r12
+ ldrb r1, [r2]
+ muls r1, r6
+ adds r2, r7, 0
+ adds r2, 0x48
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r0]
+ ldrb r0, [r3]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x18]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1, 0x18]
+ ldr r1, _08027590 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x6
+ strb r0, [r1, 0x1]
+ mov r2, r12
+ ldrb r0, [r2]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r2]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldrb r0, [r3]
+ muls r0, r6
+ adds r5, r0, r7
+ ldrb r0, [r2]
+ muls r0, r6
+ adds r2, r0, r7
+ movs r4, 0
+ adds r6, r3, 0
+ ldr r0, _08027594 @ =gUnknown_02024A60
+ mov r8, r0
+_0802754C:
+ adds r0, r5, r4
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x23
+ bls _0802754C
+ movs r4, 0
+ ldr r7, _08027598 @ =gBattleMoves
+ ldr r3, _0802759C @ =gUnknown_02024A8C
+ adds r5, r3, 0
+ adds r5, 0x18
+_08027564:
+ lsls r1, r4, 1
+ ldrb r2, [r6]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, r2
+ adds r1, r3
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r1, [r0, 0x4]
+ cmp r1, 0x4
+ bhi _080275A0
+ adds r0, r4, r2
+ adds r0, r5
+ b _080275A6
+ .align 2, 0
+_08027588: .4byte gUnknown_02024C07
+_0802758C: .4byte gUnknown_02024CA8
+_08027590: .4byte gUnknown_030041C0
+_08027594: .4byte gUnknown_02024A60
+_08027598: .4byte gBattleMoves
+_0802759C: .4byte gUnknown_02024A8C
+_080275A0:
+ adds r0, r4, r2
+ adds r0, r5
+ movs r1, 0x5
+_080275A6:
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08027564
+ ldrb r0, [r6]
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0
+ movs r1, 0x2
+ bl dp01_build_cmdbuf_x38_a
+ mov r2, r8
+ ldrb r0, [r2]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _080275D4 @ =gUnknown_02024D1E
+ movs r0, 0
+_080275C8:
+ strb r0, [r1, 0x5]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080275D4: .4byte gUnknown_02024D1E
+ thumb_func_end atk9B_transformdataexecution
+
+ thumb_func_start sub_80275D8
+sub_80275D8: @ 80275D8
+ push {r4-r7,lr}
+ ldr r7, _08027608 @ =gBattleMons
+ ldr r6, _0802760C @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r3, r0, r7
+ ldrh r0, [r3, 0x2C]
+ lsrs r1, r0, 2
+ adds r2, r1, 0
+ cmp r1, 0
+ bne _080275F2
+ movs r2, 0x1
+_080275F2:
+ ldrh r0, [r3, 0x28]
+ cmp r0, r2
+ bhi _08027618
+ ldr r1, _08027610 @ =gUnknown_02024BEC
+ movs r0, 0
+ str r0, [r1]
+ ldr r1, _08027614 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0802766C
+ .align 2, 0
+_08027608: .4byte gBattleMons
+_0802760C: .4byte gUnknown_02024C07
+_08027610: .4byte gUnknown_02024BEC
+_08027614: .4byte gUnknown_02024D1E
+_08027618:
+ ldr r4, _0802767C @ =gUnknown_02024BEC
+ str r1, [r4]
+ cmp r1, 0
+ bne _08027624
+ movs r0, 0x1
+ str r0, [r4]
+_08027624:
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r3, r7, 0
+ adds r3, 0x50
+ adds r2, r3
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 17
+ orrs r0, r1
+ str r0, [r2]
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r3
+ ldr r0, [r1]
+ ldr r2, _08027680 @ =0xffff1fff
+ ands r0, r2
+ str r0, [r1]
+ ldr r2, _08027684 @ =gUnknown_02024CA8
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, [r4]
+ movs r2, 0
+ strb r1, [r0, 0xA]
+ ldr r0, _08027688 @ =gUnknown_02024D1E
+ strb r2, [r0, 0x5]
+ ldr r2, _0802768C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ str r0, [r2]
+_0802766C:
+ ldr r1, _08027690 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802767C: .4byte gUnknown_02024BEC
+_08027680: .4byte 0xffff1fff
+_08027684: .4byte gUnknown_02024CA8
+_08027688: .4byte gUnknown_02024D1E
+_0802768C: .4byte gUnknown_02024C6C
+_08027690: .4byte gUnknown_02024C10
+ thumb_func_end sub_80275D8
+
+ thumb_func_start sub_8027694
+sub_8027694: @ 8027694
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r3, 0
+ ldr r0, _080276D4 @ =gUnknown_081FACFE
+ ldrh r1, [r0]
+ ldr r4, _080276D8 @ =0x0000fffe
+ adds r5, r0, 0
+ cmp r1, r4
+ beq _080276BC
+ cmp r1, r2
+ beq _080276BC
+ adds r1, r5, 0
+_080276AE:
+ adds r1, 0x2
+ adds r3, 0x1
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _080276BC
+ cmp r0, r2
+ bne _080276AE
+_080276BC:
+ lsls r0, r3, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ ldr r0, _080276D8 @ =0x0000fffe
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080276D4: .4byte gUnknown_081FACFE
+_080276D8: .4byte 0x0000fffe
+ thumb_func_end sub_8027694
+
+ thumb_func_start atk9D_copyattack
+atk9D_copyattack: @ 80276DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08027754 @ =gUnknown_02024BE8
+ ldr r1, _08027758 @ =0x0000ffff
+ adds r7, r1, 0
+ strh r7, [r0]
+ ldr r5, _0802775C @ =gUnknown_02024C34
+ ldr r6, _08027760 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ bl sub_8027694
+ lsls r0, 24
+ cmp r0, 0
+ bne _08027736
+ ldr r3, _08027764 @ =gBattleMons
+ ldr r2, _08027768 @ =gUnknown_02024C07
+ ldrb r1, [r2]
+ movs r0, 0x58
+ adds r4, r1, 0
+ muls r4, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r4, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 14
+ ands r1, r0
+ mov r12, r3
+ mov r9, r2
+ cmp r1, 0
+ bne _08027736
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08027736
+ cmp r1, r7
+ bne _08027770
+_08027736:
+ ldr r3, _0802776C @ =gUnknown_02024C10
+ 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 _080278A8
+ .align 2, 0
+_08027754: .4byte gUnknown_02024BE8
+_08027758: .4byte 0x0000ffff
+_0802775C: .4byte gUnknown_02024C34
+_08027760: .4byte gUnknown_02024C08
+_08027764: .4byte gBattleMons
+_08027768: .4byte gUnknown_02024C07
+_0802776C: .4byte gUnknown_02024C10
+_08027770:
+ movs r2, 0
+ mov r3, r12
+ adds r3, 0xC
+ adds r0, r4, r3
+ ldrh r0, [r0]
+ ldr r4, _08027800 @ =gUnknown_02024C10
+ mov r10, r4
+ cmp r0, r1
+ beq _080277AA
+ mov r8, r3
+ adds r7, r5, 0
+ adds r5, r6, 0
+ mov r4, r9
+ movs r3, 0x58
+_0802778C:
+ adds r2, 0x1
+ cmp r2, 0x3
+ bgt _080277AA
+ lsls r1, r2, 1
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r1, r0
+ add r1, r8
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r1, [r1]
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0802778C
+_080277AA:
+ cmp r2, 0x4
+ bne _0802788C
+ ldr r5, _08027804 @ =gUnknown_02024BE4
+ ldrb r1, [r5]
+ lsls r1, 1
+ mov r2, r9
+ ldrb r0, [r2]
+ movs r6, 0x58
+ muls r0, r6
+ adds r1, r0
+ mov r0, r12
+ adds r0, 0xC
+ adds r1, r0
+ ldr r2, _08027808 @ =gUnknown_02024C34
+ ldr r3, _0802780C @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r4, _08027810 @ =gBattleMoves
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r4, [r0, 0x4]
+ cmp r4, 0x4
+ bhi _08027814
+ mov r1, r9
+ ldrb r0, [r1]
+ muls r0, r6
+ ldrb r1, [r5]
+ adds r0, r1
+ mov r1, r12
+ adds r1, 0x24
+ adds r0, r1
+ strb r4, [r0]
+ b _08027828
+ .align 2, 0
+_08027800: .4byte gUnknown_02024C10
+_08027804: .4byte gUnknown_02024BE4
+_08027808: .4byte gUnknown_02024C34
+_0802780C: .4byte gUnknown_02024C08
+_08027810: .4byte gBattleMoves
+_08027814:
+ mov r4, r9
+ ldrb r0, [r4]
+ muls r0, r6
+ ldrb r1, [r5]
+ adds r0, r1
+ mov r1, r12
+ adds r1, 0x24
+ adds r0, r1
+ movs r1, 0x5
+ strb r1, [r0]
+_08027828:
+ ldr r1, _08027880 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08027884 @ =gUnknown_02024CA8
+ mov r2, r9
+ ldrb r0, [r2]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ adds r2, r1
+ ldrb r4, [r2, 0x18]
+ lsrs r3, r4, 4
+ ldr r1, _08027888 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ orrs r1, r3
+ lsls r1, 4
+ movs r0, 0xF
+ ands r0, r4
+ orrs r0, r1
+ strb r0, [r2, 0x18]
+ mov r4, r10
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ b _080278A8
+ .align 2, 0
+_08027880: .4byte gUnknown_030041C0
+_08027884: .4byte gUnknown_02024CA8
+_08027888: .4byte gBitTable
+_0802788C:
+ mov r0, r10
+ ldr r2, [r0]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ mov r2, r10
+ str r1, [r2]
+_080278A8:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atk9D_copyattack
+
+ thumb_func_start sub_80278B8
+sub_80278B8: @ 80278B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _08027938 @ =gUnknown_02024BE6
+ movs r6, 0xB1
+ lsls r6, 1
+ ldr r5, _0802793C @ =gUnknown_081FACFE
+ ldr r0, _08027940 @ =gUnknown_02024C10
+ mov r8, r0
+_080278CA:
+ bl Random
+ ldr r2, _08027944 @ =0x000001ff
+ adds r1, r2, 0
+ ands r0, r1
+ adds r0, 0x1
+ strh r0, [r7]
+ cmp r0, r6
+ bhi _080278CA
+ movs r0, 0x3
+_080278DE:
+ subs r0, 0x1
+ cmp r0, 0
+ bge _080278DE
+ ldr r4, _08027938 @ =gUnknown_02024BE6
+ ldrh r2, [r4]
+ ldr r3, _08027948 @ =0x0000ffff
+ subs r0, r5, 0x2
+_080278EC:
+ adds r0, 0x2
+ ldrh r1, [r0]
+ cmp r1, r2
+ beq _080278F8
+ cmp r1, r3
+ bne _080278EC
+_080278F8:
+ ldr r0, _08027948 @ =0x0000ffff
+ cmp r1, r0
+ bne _080278CA
+ ldr r2, _0802794C @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08027950 @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r3, _08027954 @ =gUnknown_081D6BBC
+ ldr r2, _08027958 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ mov r1, r8
+ str r0, [r1]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _0802795C @ =gUnknown_02024C08
+ strb r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027938: .4byte gUnknown_02024BE6
+_0802793C: .4byte gUnknown_081FACFE
+_08027940: .4byte gUnknown_02024C10
+_08027944: .4byte 0x000001ff
+_08027948: .4byte 0x0000ffff
+_0802794C: .4byte gUnknown_02024C6C
+_08027950: .4byte 0xfffffbff
+_08027954: .4byte gUnknown_081D6BBC
+_08027958: .4byte gBattleMoves
+_0802795C: .4byte gUnknown_02024C08
+ thumb_func_end sub_80278B8
+
+ thumb_func_start sub_8027960
+sub_8027960: @ 8027960
+ ldr r3, _08027980 @ =gUnknown_02024BEC
+ ldr r2, _08027984 @ =gBattleMons
+ ldr r0, _08027988 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r0, [r0]
+ str r0, [r3]
+ ldr r1, _0802798C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08027980: .4byte gUnknown_02024BEC
+_08027984: .4byte gBattleMons
+_08027988: .4byte gUnknown_02024C07
+_0802798C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027960
+
+ thumb_func_start atkA0_psywavedamageeffect
+atkA0_psywavedamageeffect: @ 8027990
+ push {r4,lr}
+ movs r4, 0xF
+_08027994:
+ bl Random
+ adds r3, r4, 0
+ ands r3, r0
+ cmp r3, 0xA
+ bgt _08027994
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r3, r0, 1
+ ldr r4, _080279D4 @ =gUnknown_02024BEC
+ ldr r2, _080279D8 @ =gBattleMons
+ ldr r0, _080279DC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ adds r0, 0x32
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ ldr r1, _080279E0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080279D4: .4byte gUnknown_02024BEC
+_080279D8: .4byte gBattleMons
+_080279DC: .4byte gUnknown_02024C07
+_080279E0: .4byte gUnknown_02024C10
+ thumb_func_end atkA0_psywavedamageeffect
+
+ thumb_func_start atkA1_counterdamagecalculator
+atkA1_counterdamagecalculator: @ 80279E4
+ push {r4-r6,lr}
+ ldr r4, _08027A54 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _08027A58 @ =gUnknown_02024D28
+ ldrb r0, [r4]
+ lsls r0, 4
+ adds r0, r5
+ ldrb r0, [r0, 0xC]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r0, r5, 0x4
+ adds r0, r1, r0
+ ldr r3, [r0]
+ cmp r3, 0
+ beq _08027A98
+ cmp r6, r2
+ beq _08027A98
+ ldr r6, _08027A5C @ =gBattleMons
+ adds r0, r1, r5
+ ldrb r0, [r0, 0xC]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027A98
+ ldr r1, _08027A60 @ =gUnknown_02024BEC
+ lsls r0, r3, 1
+ str r0, [r1]
+ ldr r1, _08027A64 @ =gUnknown_02024C80
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08027A6C
+ ldrb r1, [r1, 0x9]
+ adds r0, r1, 0
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027A6C
+ ldr r0, _08027A68 @ =gUnknown_02024C08
+ strb r1, [r0]
+ b _08027A7C
+ .align 2, 0
+_08027A54: .4byte gUnknown_02024C07
+_08027A58: .4byte gUnknown_02024D28
+_08027A5C: .4byte gBattleMons
+_08027A60: .4byte gUnknown_02024BEC
+_08027A64: .4byte gUnknown_02024C80
+_08027A68: .4byte gUnknown_02024C08
+_08027A6C:
+ ldr r2, _08027A88 @ =gUnknown_02024C08
+ ldr r1, _08027A8C @ =gUnknown_02024D28
+ ldr r0, _08027A90 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0xC]
+ strb r0, [r2]
+_08027A7C:
+ ldr r1, _08027A94 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027AC8
+ .align 2, 0
+_08027A88: .4byte gUnknown_02024C08
+_08027A8C: .4byte gUnknown_02024D28
+_08027A90: .4byte gUnknown_02024C07
+_08027A94: .4byte gUnknown_02024C10
+_08027A98:
+ ldr r2, _08027AD0 @ =gUnknown_02024D68
+ ldr r0, _08027AD4 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r3, _08027AD8 @ =gUnknown_02024C10
+ 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]
+_08027AC8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027AD0: .4byte gUnknown_02024D68
+_08027AD4: .4byte gUnknown_02024C07
+_08027AD8: .4byte gUnknown_02024C10
+ thumb_func_end atkA1_counterdamagecalculator
+
+ thumb_func_start atkA2_mirrorcoatdamagecalculator
+atkA2_mirrorcoatdamagecalculator: @ 8027ADC
+ push {r4-r6,lr}
+ ldr r4, _08027B4C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _08027B50 @ =gUnknown_02024D28
+ ldrb r0, [r4]
+ lsls r0, 4
+ adds r0, r5
+ ldrb r0, [r0, 0xD]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r3, [r0]
+ cmp r3, 0
+ beq _08027B90
+ cmp r6, r2
+ beq _08027B90
+ ldr r6, _08027B54 @ =gBattleMons
+ adds r0, r1, r5
+ ldrb r0, [r0, 0xD]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027B90
+ ldr r1, _08027B58 @ =gUnknown_02024BEC
+ lsls r0, r3, 1
+ str r0, [r1]
+ ldr r1, _08027B5C @ =gUnknown_02024C80
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08027B64
+ ldrb r1, [r1, 0x9]
+ adds r0, r1, 0
+ muls r0, r4
+ adds r0, r6
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _08027B64
+ ldr r0, _08027B60 @ =gUnknown_02024C08
+ strb r1, [r0]
+ b _08027B74
+ .align 2, 0
+_08027B4C: .4byte gUnknown_02024C07
+_08027B50: .4byte gUnknown_02024D28
+_08027B54: .4byte gBattleMons
+_08027B58: .4byte gUnknown_02024BEC
+_08027B5C: .4byte gUnknown_02024C80
+_08027B60: .4byte gUnknown_02024C08
+_08027B64:
+ ldr r2, _08027B80 @ =gUnknown_02024C08
+ ldr r1, _08027B84 @ =gUnknown_02024D28
+ ldr r0, _08027B88 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0, 0xD]
+ strb r0, [r2]
+_08027B74:
+ ldr r1, _08027B8C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027BC0
+ .align 2, 0
+_08027B80: .4byte gUnknown_02024C08
+_08027B84: .4byte gUnknown_02024D28
+_08027B88: .4byte gUnknown_02024C07
+_08027B8C: .4byte gUnknown_02024C10
+_08027B90:
+ ldr r2, _08027BC8 @ =gUnknown_02024D68
+ ldr r0, _08027BCC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r3, _08027BD0 @ =gUnknown_02024C10
+ 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]
+_08027BC0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027BC8: .4byte gUnknown_02024D68
+_08027BCC: .4byte gUnknown_02024C07
+_08027BD0: .4byte gUnknown_02024C10
+ thumb_func_end atkA2_mirrorcoatdamagecalculator
+
+ thumb_func_start atkA3_disablelastusedattack
+atkA3_disablelastusedattack: @ 8027BD4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r4, 0
+ ldr r2, _08027CD4 @ =gBattleMons
+ ldr r3, _08027CD8 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ movs r0, 0x58
+ muls r0, r1
+ adds r7, r2, 0
+ adds r7, 0xC
+ adds r0, r7
+ ldr r5, _08027CDC @ =gUnknown_02024C34
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r0]
+ mov r9, r2
+ adds r6, r3, 0
+ ldr r2, _08027CE0 @ =gUnknown_02024CA8
+ mov r8, r2
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08027C28
+ mov r12, r6
+ movs r3, 0x58
+_08027C08:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _08027C28
+ lsls r2, r4, 1
+ mov r0, r12
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ muls r0, r3
+ adds r2, r0
+ adds r2, r7
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08027C08
+_08027C28:
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrh r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08027CEC
+ cmp r4, 0x4
+ beq _08027CEC
+ movs r5, 0x58
+ adds r0, r1, 0
+ muls r0, r5
+ adds r0, r4, r0
+ mov r1, r9
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08027CEC
+ ldr r1, _08027CE4 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ lsls r2, r4, 1
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r2, r0
+ mov r3, r9
+ adds r3, 0xC
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r2, r0
+ adds r0, r3
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r8
+ muls r1, r5
+ adds r2, r1
+ adds r2, r3
+ ldrh r1, [r2]
+ strh r1, [r0, 0x4]
+ bl Random
+ ldrb r2, [r6]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r8
+ movs r2, 0x3
+ ands r2, r0
+ adds r2, 0x2
+ ldrb r3, [r1, 0xB]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xB]
+ ldrb r0, [r6]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrb r3, [r1, 0xB]
+ lsls r2, r3, 28
+ lsrs r2, 24
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xB]
+ ldr r1, _08027CE8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027D06
+ .align 2, 0
+_08027CD4: .4byte gBattleMons
+_08027CD8: .4byte gUnknown_02024C08
+_08027CDC: .4byte gUnknown_02024C34
+_08027CE0: .4byte gUnknown_02024CA8
+_08027CE4: .4byte gUnknown_030041C0
+_08027CE8: .4byte gUnknown_02024C10
+_08027CEC:
+ ldr r3, _08027D14 @ =gUnknown_02024C10
+ 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]
+_08027D06:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027D14: .4byte gUnknown_02024C10
+ thumb_func_end atkA3_disablelastusedattack
+
+ thumb_func_start atkA4_setencore
+atkA4_setencore: @ 8027D18
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ ldr r3, _08027E0C @ =gBattleMons
+ ldr r4, _08027E10 @ =gUnknown_02024C08
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r6, r3, 0
+ adds r6, 0xC
+ adds r0, r6
+ ldr r2, _08027E14 @ =gUnknown_02024C34
+ lsls r1, 1
+ adds r1, r2
+ ldrh r0, [r0]
+ mov r10, r3
+ mov r8, r2
+ ldr r2, _08027E18 @ =gUnknown_02024CA8
+ mov r9, r2
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08027D72
+ mov r12, r4
+ adds r7, r6, 0
+ mov r6, r8
+ movs r3, 0x58
+_08027D52:
+ adds r5, 0x1
+ cmp r5, 0x3
+ bgt _08027D72
+ lsls r2, r5, 1
+ mov r0, r12
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ muls r0, r3
+ adds r2, r0
+ adds r2, r7
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08027D52
+_08027D72:
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrh r2, [r0]
+ cmp r2, 0xA5
+ beq _08027D86
+ cmp r2, 0xE3
+ beq _08027D86
+ cmp r2, 0x77
+ bne _08027D88
+_08027D86:
+ movs r5, 0x4
+_08027D88:
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r2, r9
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x6]
+ cmp r0, 0
+ bne _08027E20
+ cmp r5, 0x4
+ beq _08027E20
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ adds r0, r5, r2
+ mov r1, r10
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08027E20
+ lsls r0, r5, 1
+ adds r0, r2
+ subs r1, 0x18
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3, 0x6]
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r9
+ strb r5, [r0, 0xC]
+ bl Random
+ ldrb r2, [r4]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ add r1, r9
+ movs r2, 0x3
+ ands r2, r0
+ adds r2, 0x3
+ ldrb r3, [r1, 0xE]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xE]
+ ldrb r0, [r4]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldrb r3, [r1, 0xE]
+ lsls r2, r3, 28
+ lsrs r2, 24
+ movs r0, 0xF
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1, 0xE]
+ ldr r1, _08027E1C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027E3A
+ .align 2, 0
+_08027E0C: .4byte gBattleMons
+_08027E10: .4byte gUnknown_02024C08
+_08027E14: .4byte gUnknown_02024C34
+_08027E18: .4byte gUnknown_02024CA8
+_08027E1C: .4byte gUnknown_02024C10
+_08027E20:
+ ldr r3, _08027E48 @ =gUnknown_02024C10
+ 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]
+_08027E3A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027E48: .4byte gUnknown_02024C10
+ thumb_func_end atkA4_setencore
+
+ thumb_func_start sub_8027E4C
+sub_8027E4C: @ 8027E4C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r7, _08027EEC @ =gBattleMons
+ ldr r0, _08027EF0 @ =gUnknown_02024C08
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r6, 0x58
+ adds r2, r0, 0
+ muls r2, r6
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _08027F18
+ ldr r1, _08027EF4 @ =gUnknown_02024C07
+ mov r12, r1
+ ldrb r0, [r1]
+ muls r0, r6
+ adds r0, r7
+ ldrh r4, [r0, 0x28]
+ adds r0, r2, r7
+ ldrh r2, [r0, 0x28]
+ adds r4, r2
+ asrs r4, 1
+ ldr r5, _08027EF8 @ =gUnknown_02024BEC
+ mov r9, r5
+ subs r2, r4
+ str r2, [r5]
+ ldr r3, _08027EFC @ =0x02000000
+ ldr r1, _08027F00 @ =0x00016014
+ adds r0, r3, r1
+ strb r2, [r0]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r2
+ asrs r0, 8
+ ldr r5, _08027F04 @ =0x00016015
+ adds r1, r3, r5
+ strb r0, [r1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r2
+ asrs r0, 16
+ adds r5, 0x1
+ adds r1, r3, r5
+ strb r0, [r1]
+ lsrs r2, 24
+ ldr r0, _08027F08 @ =0x00016017
+ adds r3, r0
+ strb r2, [r3]
+ mov r1, r12
+ ldrb r0, [r1]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0, 0x28]
+ subs r0, r4
+ mov r5, r9
+ str r0, [r5]
+ ldr r2, _08027F0C @ =gUnknown_02024D68
+ mov r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, _08027F10 @ =0x0000ffff
+ str r1, [r0]
+ ldr r1, _08027F14 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08027F32
+ .align 2, 0
+_08027EEC: .4byte gBattleMons
+_08027EF0: .4byte gUnknown_02024C08
+_08027EF4: .4byte gUnknown_02024C07
+_08027EF8: .4byte gUnknown_02024BEC
+_08027EFC: .4byte 0x02000000
+_08027F00: .4byte 0x00016014
+_08027F04: .4byte 0x00016015
+_08027F08: .4byte 0x00016017
+_08027F0C: .4byte gUnknown_02024D68
+_08027F10: .4byte 0x0000ffff
+_08027F14: .4byte gUnknown_02024C10
+_08027F18:
+ ldr r3, _08027F40 @ =gUnknown_02024C10
+ 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]
+_08027F32:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08027F40: .4byte gUnknown_02024C10
+ thumb_func_end sub_8027E4C
+
+ thumb_func_start sub_8027F44
+sub_8027F44: @ 8027F44
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _08027FA8 @ =gUnknown_02024C3C
+ ldr r4, _08027FAC @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ cmp r1, 0
+ beq _08027F8C
+ ldr r0, _08027FB0 @ =0x0000ffff
+ cmp r1, r0
+ beq _08027F8C
+ ldrh r0, [r2]
+ bl sub_8028350
+ lsls r0, 24
+ cmp r0, 0
+ beq _08028024
+ ldr r2, _08027FB4 @ =gUnknown_02024D28
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08028024
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08028024
+_08027F8C:
+ ldr r3, _08027FB8 @ =gUnknown_02024C10
+ 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 _08028110
+ .align 2, 0
+_08027FA8: .4byte gUnknown_02024C3C
+_08027FAC: .4byte gUnknown_02024C07
+_08027FB0: .4byte 0x0000ffff
+_08027FB4: .4byte gUnknown_02024D28
+_08027FB8: .4byte gUnknown_02024C10
+_08027FBC:
+ mov r0, r12
+ strb r5, [r0]
+ mov r1, r10
+ ldrb r0, [r1]
+ muls r0, r2
+ adds r0, r7
+ adds r0, 0x22
+ strb r5, [r0]
+ ldr r1, _08027FE0 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r5, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _08027FE4 @ =gUnknown_02024C10
+ b _08028012
+ .align 2, 0
+_08027FE0: .4byte gUnknown_030041C0
+_08027FE4: .4byte gUnknown_02024C10
+_08027FE8:
+ mov r0, r8
+ adds r0, 0x1
+ adds r0, r3
+ ldrb r2, [r0]
+ strb r2, [r4]
+ mov r4, r10
+ ldrb r0, [r4]
+ muls r0, r6
+ ldr r7, _0802801C @ =gBattleMons
+ adds r0, r7
+ adds r0, 0x22
+ strb r2, [r0]
+ ldr r1, _08028020 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ mov r1, r12
+_08028012:
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08028110
+ .align 2, 0
+_0802801C: .4byte gBattleMons
+_08028020: .4byte gUnknown_030041C0
+_08028024:
+ movs r4, 0
+ mov r8, r4
+ movs r7, 0x7F
+ mov r9, r7
+_0802802C:
+ bl Random
+ mov r4, r9
+ ands r4, r0
+ cmp r4, 0x70
+ bhi _0802802C
+ lsls r0, r4, 1
+ adds r4, r0, r4
+ ldr r6, _08028120 @ =gTypeEffectiveness
+ adds r3, r4, r6
+ ldr r1, _08028124 @ =gUnknown_02024C44
+ ldr r2, _08028128 @ =gUnknown_02024C07
+ ldrb r5, [r2]
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrb r1, [r3]
+ mov r10, r2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08028088
+ adds r0, r4, 0x2
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _08028088
+ ldr r7, _0802812C @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r5, 0
+ muls r0, r2
+ adds r3, r0, r7
+ movs r0, 0x21
+ adds r0, r3
+ mov r12, r0
+ adds r0, r4, 0x1
+ adds r0, r6
+ ldrb r5, [r0]
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r1, r5, 0
+ cmp r0, r1
+ beq _08028088
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08027FBC
+_08028088:
+ movs r7, 0x1
+ add r8, r7
+ ldr r0, _08028130 @ =0x000003e7
+ cmp r8, r0
+ ble _0802802C
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _08028134 @ =gUnknown_02024C10
+ mov r12, r1
+ ldr r3, _08028120 @ =gTypeEffectiveness
+ adds r0, r4, 0x1
+ adds r0, r3
+ mov r9, r0
+ adds r5, r3, 0
+_080280A4:
+ ldrb r1, [r5]
+ cmp r1, 0xFF
+ bgt _080280AE
+ cmp r1, 0xFE
+ bge _080280E8
+_080280AE:
+ mov r4, r10
+ ldrb r2, [r4]
+ lsls r0, r2, 1
+ ldr r7, _08028124 @ =gUnknown_02024C44
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _080280E8
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0x5
+ bhi _080280E8
+ movs r6, 0x58
+ adds r0, r2, 0
+ muls r0, r6
+ ldr r1, _0802812C @ =gBattleMons
+ adds r2, r0, r1
+ adds r4, r2, 0
+ adds r4, 0x21
+ ldrb r0, [r4]
+ mov r7, r9
+ ldrb r1, [r7]
+ cmp r0, r1
+ beq _080280E8
+ adds r0, r2, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _080280E8
+ b _08027FE8
+_080280E8:
+ adds r5, 0x3
+ movs r0, 0x3
+ add r8, r0
+ ldr r0, _08028138 @ =0x0000014f
+ cmp r8, r0
+ bls _080280A4
+ mov r1, r12
+ ldr r2, [r1]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ mov r4, r12
+ str r1, [r4]
+_08028110:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028120: .4byte gTypeEffectiveness
+_08028124: .4byte gUnknown_02024C44
+_08028128: .4byte gUnknown_02024C07
+_0802812C: .4byte gBattleMons
+_08028130: .4byte 0x000003e7
+_08028134: .4byte gUnknown_02024C10
+_08028138: .4byte 0x0000014f
+ thumb_func_end sub_8027F44
+
+ thumb_func_start atkA7_setalwayshitflag
+atkA7_setalwayshitflag: @ 802813C
+ push {r4,lr}
+ ldr r4, _08028180 @ =gUnknown_02024C98
+ ldr r3, _08028184 @ =gUnknown_02024C08
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x19
+ negs r2, r2
+ ands r0, r2
+ str r0, [r1]
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x10
+ orrs r0, r2
+ str r0, [r1]
+ ldr r2, _08028188 @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0802818C @ =gUnknown_02024C07
+ ldrb r1, [r1]
+ strb r1, [r0, 0x15]
+ ldr r1, _08028190 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028180: .4byte gUnknown_02024C98
+_08028184: .4byte gUnknown_02024C08
+_08028188: .4byte gUnknown_02024CA8
+_0802818C: .4byte gUnknown_02024C07
+_08028190: .4byte gUnknown_02024C10
+ thumb_func_end atkA7_setalwayshitflag
+
+ thumb_func_start atkA8_copymovepermanently
+atkA8_copymovepermanently: @ 8028194
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ ldr r0, _080282F4 @ =gUnknown_02024BE8
+ ldr r1, _080282F8 @ =0x0000ffff
+ adds r5, r1, 0
+ strh r5, [r0]
+ ldr r3, _080282FC @ =gBattleMons
+ ldr r2, _08028300 @ =gUnknown_02024C07
+ ldrb r1, [r2]
+ movs r0, 0x58
+ adds r4, r1, 0
+ muls r4, r0
+ adds r0, r3, 0
+ adds r0, 0x50
+ adds r0, r4, r0
+ ldr r1, [r0]
+ movs r0, 0x80
+ lsls r0, 14
+ ands r1, r0
+ mov r12, r3
+ mov r10, r2
+ cmp r1, 0
+ beq _080281CC
+ b _08028320
+_080281CC:
+ ldr r0, _08028304 @ =gUnknown_02024C2C
+ ldr r2, _08028308 @ =gUnknown_02024C08
+ ldrb r1, [r2]
+ lsls r1, 1
+ adds r1, r0
+ ldrh r1, [r1]
+ mov r9, r0
+ mov r8, r2
+ cmp r1, 0xA5
+ bne _080281E2
+ b _08028320
+_080281E2:
+ cmp r1, 0
+ bne _080281E8
+ b _08028320
+_080281E8:
+ cmp r1, r5
+ bne _080281EE
+ b _08028320
+_080281EE:
+ cmp r1, 0xA6
+ bne _080281F4
+ b _08028320
+_080281F4:
+ movs r7, 0
+ mov r5, r9
+ mov r0, r12
+ adds r0, 0xC
+ adds r1, r4, r0
+ mov r3, r8
+_08028200:
+ ldrh r2, [r1]
+ cmp r2, 0xA6
+ beq _08028212
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802821A
+_08028212:
+ adds r1, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08028200
+_0802821A:
+ cmp r7, 0x4
+ beq _08028220
+ b _08028320
+_08028220:
+ ldr r4, _0802830C @ =gUnknown_02024BE4
+ ldrb r1, [r4]
+ lsls r1, 1
+ mov r2, r10
+ ldrb r0, [r2]
+ movs r3, 0x58
+ muls r0, r3
+ adds r1, r0
+ mov r6, r12
+ adds r6, 0xC
+ adds r1, r6
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r1]
+ mov r1, r10
+ ldrb r0, [r1]
+ adds r2, r0, 0
+ muls r2, r3
+ ldrb r4, [r4]
+ adds r2, r4
+ mov r5, r12
+ adds r5, 0x24
+ adds r2, r5
+ ldr r4, _08028310 @ =gBattleMoves
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ add r0, r9
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x4]
+ strb r0, [r2]
+ ldr r1, _08028314 @ =gUnknown_02024A60
+ mov r2, r10
+ ldrb r0, [r2]
+ strb r0, [r1]
+ movs r7, 0
+ ldrb r0, [r2]
+ muls r0, r3
+ adds r4, r0, r5
+ adds r3, r0, 0
+ add r2, sp, 0x4
+ add r5, sp, 0xC
+_08028282:
+ adds r0, r3, r6
+ ldrh r0, [r0]
+ strh r0, [r2]
+ adds r1, r5, r7
+ ldrb r0, [r4]
+ strb r0, [r1]
+ adds r4, 0x1
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08028282
+ add r2, sp, 0x4
+ mov r0, r10
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r12
+ adds r0, 0x3B
+ ldrb r0, [r0]
+ strb r0, [r2, 0xC]
+ str r2, [sp]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0x10
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldr r0, _08028314 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08028318 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldr r3, _08028304 @ =gUnknown_02024C2C
+ ldr r2, _08028308 @ =gUnknown_02024C08
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0802831C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802833A
+ .align 2, 0
+_080282F4: .4byte gUnknown_02024BE8
+_080282F8: .4byte 0x0000ffff
+_080282FC: .4byte gBattleMons
+_08028300: .4byte gUnknown_02024C07
+_08028304: .4byte gUnknown_02024C2C
+_08028308: .4byte gUnknown_02024C08
+_0802830C: .4byte gUnknown_02024BE4
+_08028310: .4byte gBattleMoves
+_08028314: .4byte gUnknown_02024A60
+_08028318: .4byte gUnknown_030041C0
+_0802831C: .4byte gUnknown_02024C10
+_08028320:
+ ldr r3, _0802834C @ =gUnknown_02024C10
+ 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]
+_0802833A:
+ 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
+_0802834C: .4byte gUnknown_02024C10
+ thumb_func_end atkA8_copymovepermanently
+
+ thumb_func_start sub_8028350
+sub_8028350: @ 8028350
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08028380 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1]
+ cmp r0, 0x91
+ beq _0802837A
+ cmp r0, 0x27
+ beq _0802837A
+ cmp r0, 0x4B
+ beq _0802837A
+ cmp r0, 0x97
+ beq _0802837A
+ cmp r0, 0x9B
+ beq _0802837A
+ cmp r0, 0x1A
+ bne _08028384
+_0802837A:
+ movs r0, 0x1
+ b _08028386
+ .align 2, 0
+_08028380: .4byte gBattleMoves
+_08028384:
+ movs r0, 0
+_08028386:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8028350
+
+ thumb_func_start sub_802838C
+sub_802838C: @ 802838C
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _080283AA
+ cmp r1, 0xD6
+ beq _080283AA
+ movs r0, 0x89
+ lsls r0, 1
+ cmp r1, r0
+ beq _080283AA
+ cmp r1, 0x77
+ beq _080283AA
+ cmp r1, 0x76
+ bne _080283AE
+_080283AA:
+ movs r0, 0x1
+ b _080283B0
+_080283AE:
+ movs r0, 0
+_080283B0:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_802838C
+
+ thumb_func_start move_weather_interaction
+move_weather_interaction: @ 80283B4
+ push {lr}
+ lsls r1, 16
+ lsrs r2, r1, 16
+ ldr r1, _0802840C @ =gBattleMoves
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x97
+ bne _080283D8
+ ldr r0, _08028410 @ =word_2024DB8
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ bne _08028418
+_080283D8:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0x91
+ beq _080283FA
+ cmp r0, 0x27
+ beq _080283FA
+ cmp r0, 0x4B
+ beq _080283FA
+ cmp r0, 0x97
+ beq _080283FA
+ cmp r0, 0x9B
+ beq _080283FA
+ cmp r0, 0x1A
+ bne _08028418
+_080283FA:
+ ldr r0, _08028414 @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 20
+ ands r0, r1
+ cmp r0, 0
+ beq _08028418
+ movs r0, 0x1
+ b _0802841A
+ .align 2, 0
+_0802840C: .4byte gBattleMoves
+_08028410: .4byte word_2024DB8
+_08028414: .4byte gUnknown_02024C6C
+_08028418:
+ movs r0, 0x2
+_0802841A:
+ pop {r1}
+ bx r1
+ thumb_func_end move_weather_interaction
+
+ thumb_func_start sub_8028420
+sub_8028420: @ 8028420
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r6, 0
+ movs r5, 0
+ ldr r0, _080284B0 @ =gUnknown_02024C07
+ mov r9, r0
+ movs r1, 0x58
+ mov r8, r1
+ ldr r7, _080284B4 @ =gUnknown_02024A8C
+ movs r0, 0x84
+ lsls r0, 1
+ mov r10, r0
+_0802843E:
+ lsls r4, r5, 1
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r4, r0
+ adds r0, r7
+ ldrh r0, [r0]
+ bl sub_802838C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802847E
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r4, r0
+ adds r0, r7
+ ldrh r1, [r0]
+ cmp r1, r10
+ beq _0802847E
+ cmp r1, 0xFD
+ beq _0802847E
+ adds r0, r1, 0
+ bl sub_8028350
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802848C
+_0802847E:
+ ldr r1, _080284B8 @ =gBitTable
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ orrs r6, r0
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+_0802848C:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0802843E
+ ldr r0, _080284B0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ adds r1, r6, 0
+ movs r2, 0xFD
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xF
+ bne _080284C0
+ ldr r1, _080284BC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08028524
+ .align 2, 0
+_080284B0: .4byte gUnknown_02024C07
+_080284B4: .4byte gUnknown_02024A8C
+_080284B8: .4byte gBitTable
+_080284BC: .4byte gUnknown_02024C10
+_080284C0:
+ movs r7, 0x3
+ ldr r4, _08028534 @ =gBitTable
+_080284C4:
+ bl Random
+ adds r5, r7, 0
+ ands r5, r0
+ lsls r0, r5, 2
+ adds r0, r4
+ ldr r0, [r0]
+ ands r0, r6
+ cmp r0, 0
+ bne _080284C4
+ ldr r4, _08028538 @ =gUnknown_02024BEA
+ ldr r2, _0802853C @ =gBattleMons
+ lsls r1, r5, 1
+ ldr r0, _08028540 @ =gUnknown_02024C07
+ ldrb r3, [r0]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, r0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r0, [r1]
+ strh r0, [r4]
+ ldr r0, _08028544 @ =gUnknown_02024BE4
+ strb r5, [r0]
+ ldr r2, _08028548 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802854C @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08028550 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r3, _08028554 @ =gUnknown_02024C10
+ 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]
+_08028524:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028534: .4byte gBitTable
+_08028538: .4byte gUnknown_02024BEA
+_0802853C: .4byte gBattleMons
+_08028540: .4byte gUnknown_02024C07
+_08028544: .4byte gUnknown_02024BE4
+_08028548: .4byte gUnknown_02024C6C
+_0802854C: .4byte 0xfffffbff
+_08028550: .4byte gUnknown_02024C08
+_08028554: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028420
+
+ thumb_func_start sub_8028558
+sub_8028558: @ 8028558
+ ldr r1, _0802857C @ =gBattleMons
+ ldr r0, _08028580 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 18
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08028584 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0802857C: .4byte gBattleMons
+_08028580: .4byte gUnknown_02024C07
+_08028584: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028558
+
+ thumb_func_start b_feature_update_destiny_bond
+b_feature_update_destiny_bond: @ 8028588
+ push {r4,r5,lr}
+ ldr r0, _080285D8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080285DC @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _080285E0 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _080285D2
+ cmp r5, r3
+ beq _080285D2
+ ldr r2, _080285E4 @ =gUnknown_02024C6C
+ ldr r1, [r2]
+ movs r0, 0x80
+ lsls r0, 17
+ ands r0, r1
+ cmp r0, 0
+ bne _080285D2
+ movs r0, 0x40
+ orrs r1, r0
+ str r1, [r2]
+_080285D2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080285D8: .4byte gUnknown_02024C07
+_080285DC: .4byte gUnknown_02024C08
+_080285E0: .4byte gBattleMons
+_080285E4: .4byte gUnknown_02024C6C
+ thumb_func_end b_feature_update_destiny_bond
+
+ thumb_func_start atkAB_802A458
+atkAB_802A458: @ 80285E8
+ push {lr}
+ bl b_feature_update_destiny_bond
+ ldr r1, _080285FC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080285FC: .4byte gUnknown_02024C10
+ thumb_func_end atkAB_802A458
+
+ thumb_func_start atkAC_remaininghptopower
+atkAC_remaininghptopower: @ 8028600
+ push {lr}
+ ldr r2, _08028654 @ =gBattleMons
+ ldr r0, _08028658 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ movs r2, 0x28
+ ldrsh r0, [r1, r2]
+ movs r2, 0x2C
+ ldrsh r1, [r1, r2]
+ movs r2, 0x30
+ bl sub_80461D4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0
+ ldr r0, _0802865C @ =gUnknown_081FAD26
+ ldrb r2, [r0]
+ cmp r1, r2
+ ble _0802863A
+ adds r2, r0, 0
+_0802862C:
+ adds r3, 0x2
+ cmp r3, 0xB
+ bgt _0802863A
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ bgt _0802862C
+_0802863A:
+ ldr r2, _08028660 @ =gUnknown_02024DEC
+ ldr r1, _0802865C @ =gUnknown_081FAD26
+ adds r0, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ ldr r1, _08028664 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028654: .4byte gBattleMons
+_08028658: .4byte gUnknown_02024C07
+_0802865C: .4byte gUnknown_081FAD26
+_08028660: .4byte gUnknown_02024DEC
+_08028664: .4byte gUnknown_02024C10
+ thumb_func_end atkAC_remaininghptopower
+
+ thumb_func_start sub_8028668
+sub_8028668: @ 8028668
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r4, _080287F8 @ =gUnknown_02024C34
+ ldr r1, _080287FC @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r3, [r0]
+ mov r8, r1
+ cmp r3, 0
+ bne _08028688
+ b _08028828
+_08028688:
+ ldr r0, _08028800 @ =0x0000ffff
+ cmp r3, r0
+ bne _08028690
+ b _08028828
+_08028690:
+ ldr r1, _08028804 @ =gUnknown_02024C98
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08028808 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _080286A2
+ b _08028828
+_080286A2:
+ movs r7, 0
+ ldr r0, _0802880C @ =gBattleMons
+ movs r1, 0x58
+ muls r1, r2
+ adds r2, r0, 0
+ adds r2, 0xC
+ adds r1, r2
+ ldrh r1, [r1]
+ cmp r3, r1
+ beq _080286DA
+ adds r6, r4, 0
+ mov r5, r8
+ adds r4, r2, 0
+ movs r3, 0x58
+_080286BE:
+ adds r7, 0x1
+ cmp r7, 0x3
+ bgt _080286DA
+ ldrb r0, [r5]
+ lsls r2, r0, 1
+ adds r2, r6
+ lsls r1, r7, 1
+ muls r0, r3
+ adds r1, r0
+ adds r1, r4
+ ldrh r0, [r2]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _080286BE
+_080286DA:
+ cmp r7, 0x4
+ bne _080286E0
+ b _08028828
+_080286E0:
+ mov r4, r8
+ ldrb r0, [r4]
+ movs r1, 0x58
+ mov r9, r1
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7, r0
+ ldr r1, _0802880C @ =gBattleMons
+ adds r1, 0x24
+ mov r10, r1
+ add r0, r10
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _08028700
+ b _08028828
+_08028700:
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ adds r6, r1, 0x2
+ ldrb r0, [r4]
+ mov r3, r9
+ muls r3, r0
+ adds r0, r3, 0
+ adds r0, r7, r0
+ add r0, r10
+ ldrb r0, [r0]
+ cmp r0, r6
+ bge _0802871E
+ adds r6, r0, 0
+_0802871E:
+ ldr r1, _08028810 @ =gUnknown_030041C0
+ movs r5, 0xFD
+ strb r5, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldr r2, _080287F8 @ =gUnknown_02024C34
+ mov r3, r8
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r4, _08028814 @ =gUnknown_03004290
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ strb r5, [r4]
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ strb r6, [r4, 0x4]
+ subs r0, 0x2
+ strb r0, [r4, 0x5]
+ mov r1, r8
+ ldrb r0, [r1]
+ mov r1, r9
+ muls r1, r0
+ adds r1, r7, r1
+ add r1, r10
+ ldrb r0, [r1]
+ subs r0, r6
+ strb r0, [r1]
+ ldr r4, _08028818 @ =gUnknown_02024A60
+ mov r3, r8
+ ldrb r0, [r3]
+ strb r0, [r4]
+ ldr r1, _0802881C @ =gUnknown_02024CA8
+ ldrb r3, [r4]
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x18]
+ lsrs r1, 4
+ ldr r2, _08028820 @ =gBitTable
+ lsls r0, r7, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _080287D2
+ mov r2, r9
+ muls r2, r3
+ ldr r0, _0802880C @ =gBattleMons
+ adds r0, 0x50
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ bne _080287D2
+ adds r1, r7, 0
+ adds r1, 0x9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r3, r10
+ adds r0, r2, r3
+ adds r0, r7
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+_080287D2:
+ ldr r1, _08028824 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r1, _0802880C @ =gBattleMons
+ ldr r0, _080287FC @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r0, r7, r0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08028842
+ adds r0, r2, 0
+ bl b_cancel_multi_turn_move_maybe
+ b _08028842
+ .align 2, 0
+_080287F8: .4byte gUnknown_02024C34
+_080287FC: .4byte gUnknown_02024C08
+_08028800: .4byte 0x0000ffff
+_08028804: .4byte gUnknown_02024C98
+_08028808: .4byte 0x000400c0
+_0802880C: .4byte gBattleMons
+_08028810: .4byte gUnknown_030041C0
+_08028814: .4byte gUnknown_03004290
+_08028818: .4byte gUnknown_02024A60
+_0802881C: .4byte gUnknown_02024CA8
+_08028820: .4byte gBitTable
+_08028824: .4byte gUnknown_02024C10
+_08028828:
+ ldr r3, _08028854 @ =gUnknown_02024C10
+ 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]
+_08028842:
+ 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
+_08028854: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028668
+
+ thumb_func_start sub_8028858
+sub_8028858: @ 8028858
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r4, 0
+ str r4, [sp, 0x4]
+ movs r7, 0
+ ldr r0, _080288AC @ =gUnknown_02024BE6
+ ldrh r0, [r0]
+ cmp r0, 0xD7
+ beq _08028872
+ b _08028A26
+_08028872:
+ ldr r5, _080288B0 @ =gUnknown_02024D1E
+ strb r7, [r5, 0x5]
+ ldr r6, _080288B4 @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _080288B8 @ =gEnemyParty
+ mov r9, r1
+ cmp r0, 0
+ bne _0802888C
+ ldr r2, _080288BC @ =gPlayerParty
+ mov r9, r2
+_0802888C:
+ ldr r4, _080288C0 @ =gBattleMons
+ ldrb r3, [r6]
+ movs r0, 0x58
+ adds r2, r3, 0
+ muls r2, r0
+ adds r0, r2, r4
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0x2B
+ beq _080288C4
+ adds r0, r4, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ str r7, [r0]
+ b _080288D4
+ .align 2, 0
+_080288AC: .4byte gUnknown_02024BE6
+_080288B0: .4byte gUnknown_02024D1E
+_080288B4: .4byte gUnknown_02024C07
+_080288B8: .4byte gEnemyParty
+_080288BC: .4byte gPlayerParty
+_080288C0: .4byte gBattleMons
+_080288C4:
+ ldrb r1, [r1]
+ adds r0, r3, 0
+ bl sub_81074C4
+ ldrb r0, [r5, 0x5]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+_080288D4:
+ ldr r4, _08028934 @ =gUnknown_02024A60
+ ldr r0, _08028938 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r6, 0x2
+ eors r0, r6
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _0802893C @ =0x02000000
+ ldr r2, _08028940 @ =0x00016003
+ adds r1, r2
+ strb r0, [r1]
+ strb r0, [r4]
+ ldr r0, _08028944 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08028964
+ ldr r0, _08028948 @ =gUnknown_02024C0C
+ ldrb r2, [r0]
+ ldr r1, _0802894C @ =gBitTable
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _08028964
+ ldr r5, _08028950 @ =gBattleMons
+ movs r0, 0x58
+ adds r4, r3, 0
+ muls r4, r0
+ adds r0, r4, r5
+ adds r1, r0, 0
+ adds r1, 0x20
+ ldrb r0, [r1]
+ cmp r0, 0x2B
+ beq _08028954
+ adds r0, r5, 0
+ adds r0, 0x4C
+ adds r0, r4, r0
+ str r2, [r0]
+ b _08028964
+ .align 2, 0
+_08028934: .4byte gUnknown_02024A60
+_08028938: .4byte gUnknown_02024C07
+_0802893C: .4byte 0x02000000
+_08028940: .4byte 0x00016003
+_08028944: .4byte gUnknown_020239F8
+_08028948: .4byte gUnknown_02024C0C
+_0802894C: .4byte gBitTable
+_08028950: .4byte gBattleMons
+_08028954:
+ ldrb r1, [r1]
+ adds r0, r3, 0
+ bl sub_81074C4
+ ldr r1, _080289AC @ =gUnknown_02024D1E
+ ldrb r0, [r1, 0x5]
+ orrs r0, r6
+ strb r0, [r1, 0x5]
+_08028964:
+ movs r6, 0
+ ldr r0, _080289B0 @ =gBattleMons
+ mov r8, r0
+_0802896A:
+ movs r0, 0x64
+ adds r4, r6, 0
+ muls r4, r0
+ add r4, r9
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r5, 0
+ beq _08028A1E
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ beq _08028A1E
+ ldr r2, _080289B4 @ =gUnknown_02024A6A
+ ldr r0, _080289B8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _080289BC
+ movs r0, 0x58
+ muls r0, r1
+ b _080289EC
+ .align 2, 0
+_080289AC: .4byte gUnknown_02024D1E
+_080289B0: .4byte gBattleMons
+_080289B4: .4byte gUnknown_02024A6A
+_080289B8: .4byte gUnknown_02024C07
+_080289BC:
+ ldr r0, _080289F4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08028A04
+ ldr r0, _080289F8 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ bne _08028A04
+ ldr r0, _080289FC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08028A00 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08028A04
+ movs r0, 0x58
+ muls r0, r3
+_080289EC:
+ add r0, r8
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _08028A10
+ .align 2, 0
+_080289F4: .4byte gUnknown_020239F8
+_080289F8: .4byte gUnknown_02024A60
+_080289FC: .4byte gUnknown_02024C0C
+_08028A00: .4byte gBitTable
+_08028A04:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl GetAbilityBySpecies
+ lsls r0, 24
+ lsrs r0, 24
+_08028A10:
+ cmp r0, 0x2B
+ beq _08028A1E
+ movs r0, 0x1
+ lsls r0, r6
+ orrs r7, r0
+ lsls r0, r7, 24
+ lsrs r7, r0, 24
+_08028A1E:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0802896A
+ b _08028A7E
+_08028A26:
+ ldr r1, _08028AB4 @ =gUnknown_02024D1E
+ movs r0, 0x4
+ strb r0, [r1, 0x5]
+ movs r7, 0x3F
+ ldr r2, _08028AB8 @ =gBattleMons
+ ldr r1, _08028ABC @ =gUnknown_02024C07
+ ldrb r0, [r1]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r2, 0
+ adds r5, 0x4C
+ adds r0, r5
+ str r4, [r0]
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r3, _08028AC0 @ =gUnknown_02024A60
+ strb r0, [r3]
+ ldr r0, _08028AC4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08028A7E
+ ldr r0, _08028AC8 @ =gUnknown_02024C0C
+ ldrb r2, [r0]
+ ldr r1, _08028ACC @ =gBitTable
+ ldrb r3, [r3]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ bne _08028A7E
+ adds r0, r3, 0
+ muls r0, r6
+ adds r0, r5
+ str r2, [r0]
+_08028A7E:
+ ldr r4, _08028AC0 @ =gUnknown_02024A60
+ ldr r0, _08028ABC @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ add r1, sp, 0x4
+ str r1, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ adds r2, r7, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08028AD0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028AB4: .4byte gUnknown_02024D1E
+_08028AB8: .4byte gBattleMons
+_08028ABC: .4byte gUnknown_02024C07
+_08028AC0: .4byte gUnknown_02024A60
+_08028AC4: .4byte gUnknown_020239F8
+_08028AC8: .4byte gUnknown_02024C0C
+_08028ACC: .4byte gBitTable
+_08028AD0: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028858
+
+ thumb_func_start sub_8028AD4
+sub_8028AD4: @ 8028AD4
+ push {r4-r7,lr}
+ ldr r7, _08028B24 @ =gBattleMons
+ ldr r0, _08028B28 @ =gUnknown_02024C08
+ ldrb r3, [r0]
+ movs r6, 0x58
+ adds r1, r3, 0
+ muls r1, r6
+ adds r0, r7, 0
+ adds r0, 0x50
+ adds r4, r1, r0
+ ldr r2, [r4]
+ movs r5, 0x80
+ lsls r5, 21
+ adds r0, r2, 0
+ ands r0, r5
+ cmp r0, 0
+ bne _08028B06
+ ldr r1, _08028B2C @ =gUnknown_02024C98
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _08028B30 @ =0x000400c0
+ ands r0, r1
+ cmp r0, 0
+ beq _08028B38
+_08028B06:
+ ldr r3, _08028B34 @ =gUnknown_02024C10
+ 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 _08028B5C
+ .align 2, 0
+_08028B24: .4byte gBattleMons
+_08028B28: .4byte gUnknown_02024C08
+_08028B2C: .4byte gUnknown_02024C98
+_08028B30: .4byte 0x000400c0
+_08028B34: .4byte gUnknown_02024C10
+_08028B38:
+ orrs r2, r5
+ str r2, [r4]
+ ldr r1, _08028B64 @ =gUnknown_02024BEC
+ ldr r0, _08028B68 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _08028B54
+ movs r0, 0x1
+ str r0, [r1]
+_08028B54:
+ ldr r1, _08028B6C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08028B5C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028B64: .4byte gUnknown_02024BEC
+_08028B68: .4byte gUnknown_02024C07
+_08028B6C: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028AD4
+
+ thumb_func_start sub_8028B70
+sub_8028B70: @ 8028B70
+ push {r4,lr}
+ ldr r4, _08028BC4 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08028BC8 @ =gUnknown_02024C80
+ lsls r2, r0, 1
+ adds r0, r2, r0
+ lsls r0, 2
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x6]
+ cmp r0, 0x3
+ bne _08028BD4
+ ldr r2, _08028BCC @ =gUnknown_02024D68
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r3, _08028BD0 @ =gUnknown_02024C10
+ 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 _08028BEE
+ .align 2, 0
+_08028BC4: .4byte gUnknown_02024C07
+_08028BC8: .4byte gUnknown_02024C80
+_08028BCC: .4byte gUnknown_02024D68
+_08028BD0: .4byte gUnknown_02024C10
+_08028BD4:
+ ldr r1, _08028BF4 @ =gUnknown_02024C7A
+ adds r1, r2, r1
+ ldrh r2, [r1]
+ movs r0, 0x10
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r3, 0x6]
+ adds r0, 0x1
+ strb r0, [r3, 0x6]
+ ldr r1, _08028BF8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08028BEE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028BF4: .4byte gUnknown_02024C7A
+_08028BF8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028B70
+
+ thumb_func_start sub_8028BFC
+sub_8028BFC: @ 8028BFC
+ ldr r1, _08028C20 @ =gBattleMons
+ ldr r0, _08028C24 @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 22
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08028C28 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08028C20: .4byte gBattleMons
+_08028C24: .4byte gUnknown_02024C08
+_08028C28: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028BFC
+
+ thumb_func_start atkB2_setperishsong
+atkB2_setperishsong: @ 8028C2C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _08028C70 @ =gUnknown_02024A68
+ adds r7, r0, 0
+ ldr r0, _08028C74 @ =gUnknown_02024C07
+ mov r8, r0
+ ldrb r1, [r7]
+ cmp r6, r1
+ bge _08028C98
+ movs r5, 0x20
+ ldr r0, _08028C78 @ =gBattleMons
+ mov r12, r0
+ ldr r0, _08028C7C @ =gUnknown_02024CA8
+ adds r4, r0, 0
+ adds r4, 0xF
+ ldr r2, _08028C80 @ =gUnknown_02024C98
+_08028C54:
+ ldr r1, [r2]
+ adds r0, r1, 0
+ ands r0, r5
+ cmp r0, 0
+ bne _08028C6C
+ movs r0, 0x58
+ muls r0, r3
+ add r0, r12
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x2B
+ bne _08028C84
+_08028C6C:
+ adds r6, 0x1
+ b _08028C8C
+ .align 2, 0
+_08028C70: .4byte gUnknown_02024A68
+_08028C74: .4byte gUnknown_02024C07
+_08028C78: .4byte gBattleMons
+_08028C7C: .4byte gUnknown_02024CA8
+_08028C80: .4byte gUnknown_02024C98
+_08028C84:
+ orrs r1, r5
+ str r1, [r2]
+ movs r0, 0x33
+ strb r0, [r4]
+_08028C8C:
+ adds r4, 0x1C
+ adds r2, 0x4
+ adds r3, 0x1
+ ldrb r0, [r7]
+ cmp r3, r0
+ blt _08028C54
+_08028C98:
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_80153D0
+ ldr r0, _08028CC4 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bne _08028CCC
+ ldr r3, _08028CC8 @ =gUnknown_02024C10
+ 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 _08028CD4
+ .align 2, 0
+_08028CC4: .4byte gUnknown_02024A68
+_08028CC8: .4byte gUnknown_02024C10
+_08028CCC:
+ ldr r1, _08028CE0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08028CD4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028CE0: .4byte gUnknown_02024C10
+ thumb_func_end atkB2_setperishsong
+
+ thumb_func_start atkB3_rolloutdamagecalculation
+atkB3_rolloutdamagecalculation: @ 8028CE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08028D08 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08028D18
+ ldr r0, _08028D0C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl b_cancel_multi_turn_move_maybe
+ ldr r1, _08028D10 @ =gUnknown_02024C10
+ ldr r0, _08028D14 @ =BattleScript_1D6F74
+ str r0, [r1]
+ b _08028E30
+ .align 2, 0
+_08028D08: .4byte gUnknown_02024C68
+_08028D0C: .4byte gUnknown_02024C07
+_08028D10: .4byte gUnknown_02024C10
+_08028D14: .4byte BattleScript_1D6F74
+_08028D18:
+ ldr r2, _08028E3C @ =gBattleMons
+ ldr r1, _08028E40 @ =gUnknown_02024C07
+ ldrb r3, [r1]
+ movs r5, 0x58
+ adds r0, r3, 0
+ muls r0, r5
+ adds r4, r2, 0
+ adds r4, 0x50
+ adds r0, r4
+ ldr r0, [r0]
+ movs r7, 0x80
+ lsls r7, 5
+ ands r0, r7
+ adds r6, r1, 0
+ mov r9, r2
+ ldr r1, _08028E44 @ =gUnknown_02024CA8
+ mov r12, r1
+ ldr r2, _08028E48 @ =gUnknown_02024BE6
+ mov r8, r2
+ cmp r0, 0
+ bne _08028D8A
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ add r0, r12
+ ldrb r2, [r0, 0x11]
+ movs r1, 0x10
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x5
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r2, [r0, 0x11]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x50
+ orrs r1, r2
+ strb r1, [r0, 0x11]
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r4
+ ldr r0, [r1]
+ orrs r0, r7
+ str r0, [r1]
+ ldr r1, _08028E4C @ =gUnknown_02024C54
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r1
+ mov r2, r8
+ ldrh r1, [r2]
+ strh r1, [r0]
+_08028D8A:
+ ldrb r0, [r6]
+ lsls r2, r0, 3
+ subs r2, r0
+ lsls r2, 2
+ add r2, r12
+ ldrb r3, [r2, 0x11]
+ lsls r1, r3, 28
+ lsrs r1, 28
+ subs r1, 0x1
+ movs r0, 0xF
+ ands r1, r0
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x11]
+ cmp r1, 0
+ bne _08028DBE
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r5
+ adds r1, r4
+ ldr r0, [r1]
+ ldr r2, _08028E50 @ =0xffffefff
+ ands r0, r2
+ str r0, [r1]
+_08028DBE:
+ ldr r3, _08028E54 @ =gUnknown_02024DEC
+ ldr r2, _08028E58 @ =gBattleMoves
+ mov r0, r8
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r3]
+ movs r2, 0x1
+ ldrb r1, [r6]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ mov r1, r12
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x11]
+ lsls r0, 28
+ lsrs r0, 28
+ movs r1, 0x5
+ subs r1, r0
+ ldr r7, _08028E5C @ =gUnknown_02024C10
+ adds r5, r3, 0
+ cmp r2, r1
+ bge _08028E0C
+ adds r1, r5, 0
+ adds r3, r4, 0
+ movs r4, 0x5
+_08028DF8:
+ ldrh r0, [r1]
+ lsls r0, 1
+ strh r0, [r1]
+ adds r2, 0x1
+ ldrb r0, [r3, 0x11]
+ lsls r0, 28
+ lsrs r0, 28
+ subs r0, r4, r0
+ cmp r2, r0
+ blt _08028DF8
+_08028E0C:
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r9
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 23
+ ands r0, r1
+ cmp r0, 0
+ beq _08028E2A
+ ldrh r0, [r5]
+ lsls r0, 1
+ strh r0, [r5]
+_08028E2A:
+ ldr r0, [r7]
+ adds r0, 0x1
+ str r0, [r7]
+_08028E30:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028E3C: .4byte gBattleMons
+_08028E40: .4byte gUnknown_02024C07
+_08028E44: .4byte gUnknown_02024CA8
+_08028E48: .4byte gUnknown_02024BE6
+_08028E4C: .4byte gUnknown_02024C54
+_08028E50: .4byte 0xffffefff
+_08028E54: .4byte gUnknown_02024DEC
+_08028E58: .4byte gBattleMoves
+_08028E5C: .4byte gUnknown_02024C10
+ thumb_func_end atkB3_rolloutdamagecalculation
+
+ thumb_func_start atkB4_jumpifconfusedandattackmaxed
+atkB4_jumpifconfusedandattackmaxed: @ 8028E60
+ push {r4,r5,lr}
+ ldr r5, _08028EB0 @ =gBattleMons
+ ldr r0, _08028EB4 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r3, r1, 0
+ muls r3, r0
+ adds r0, r5, 0
+ adds r0, 0x50
+ adds r0, r3, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ ldr r4, _08028EB8 @ =gUnknown_02024C10
+ cmp r0, 0
+ beq _08028EBC
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x1]
+ adds r0, r3
+ adds r1, r5, 0
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0xC
+ bne _08028EBC
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08028EC2
+ .align 2, 0
+_08028EB0: .4byte gBattleMons
+_08028EB4: .4byte gUnknown_02024C08
+_08028EB8: .4byte gUnknown_02024C10
+_08028EBC:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_08028EC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end atkB4_jumpifconfusedandattackmaxed
+
+ thumb_func_start sub_8028EC8
+sub_8028EC8: @ 8028EC8
+ push {r4,r5,lr}
+ ldr r0, _08028EF0 @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _08028F04
+ ldr r2, _08028EF4 @ =gUnknown_02024CA8
+ ldr r0, _08028EF8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0, 0x10]
+ ldr r1, _08028EFC @ =gUnknown_02024C10
+ ldr r0, _08028F00 @ =BattleScript_1D6F74
+ str r0, [r1]
+ b _08028F5C
+ .align 2, 0
+_08028EF0: .4byte gUnknown_02024C68
+_08028EF4: .4byte gUnknown_02024CA8
+_08028EF8: .4byte gUnknown_02024C07
+_08028EFC: .4byte gUnknown_02024C10
+_08028F00: .4byte BattleScript_1D6F74
+_08028F04:
+ ldr r5, _08028F64 @ =gUnknown_02024CA8
+ ldr r4, _08028F68 @ =gUnknown_02024C07
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0x5
+ beq _08028F1C
+ adds r0, 0x1
+ strb r0, [r1, 0x10]
+_08028F1C:
+ ldr r3, _08028F6C @ =gUnknown_02024DEC
+ ldr r2, _08028F70 @ =gBattleMoves
+ ldr r0, _08028F74 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ strh r0, [r3]
+ movs r2, 0x1
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r4, _08028F78 @ =gUnknown_02024C10
+ ldrb r1, [r0, 0x10]
+ cmp r2, r1
+ bge _08028F56
+ adds r1, r3, 0
+ adds r3, r0, 0
+_08028F48:
+ ldrh r0, [r1]
+ lsls r0, 1
+ strh r0, [r1]
+ adds r2, 0x1
+ ldrb r0, [r3, 0x10]
+ cmp r2, r0
+ blt _08028F48
+_08028F56:
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+_08028F5C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028F64: .4byte gUnknown_02024CA8
+_08028F68: .4byte gUnknown_02024C07
+_08028F6C: .4byte gUnknown_02024DEC
+_08028F70: .4byte gBattleMoves
+_08028F74: .4byte gUnknown_02024BE6
+_08028F78: .4byte gUnknown_02024C10
+ thumb_func_end sub_8028EC8
+
+ thumb_func_start atkB6_happinesstodamagecalculation
+atkB6_happinesstodamagecalculation: @ 8028F7C
+ push {r4,lr}
+ ldr r2, _08028FA8 @ =gBattleMoves
+ ldr r0, _08028FAC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x79
+ bne _08028FBC
+ ldr r4, _08028FB0 @ =gUnknown_02024DEC
+ ldr r2, _08028FB4 @ =gBattleMons
+ ldr r0, _08028FB8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ b _08028FD2
+ .align 2, 0
+_08028FA8: .4byte gBattleMoves
+_08028FAC: .4byte gUnknown_02024BE6
+_08028FB0: .4byte gUnknown_02024DEC
+_08028FB4: .4byte gBattleMons
+_08028FB8: .4byte gUnknown_02024C07
+_08028FBC:
+ ldr r4, _08028FF0 @ =gUnknown_02024DEC
+ ldr r2, _08028FF4 @ =gBattleMons
+ ldr r0, _08028FF8 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ movs r1, 0xFF
+ subs r1, r0
+_08028FD2:
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ movs r1, 0x19
+ bl __divsi3
+ strh r0, [r4]
+ ldr r1, _08028FFC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08028FF0: .4byte gUnknown_02024DEC
+_08028FF4: .4byte gBattleMons
+_08028FF8: .4byte gUnknown_02024C07
+_08028FFC: .4byte gUnknown_02024C10
+ thumb_func_end atkB6_happinesstodamagecalculation
+
+ thumb_func_start atkB7_presentdamagecalculation
+atkB7_presentdamagecalculation: @ 8029000
+ push {r4,lr}
+ bl Random
+ movs r4, 0xFF
+ ands r4, r0
+ cmp r4, 0x65
+ bgt _0802901C
+ ldr r1, _08029018 @ =gUnknown_02024DEC
+ movs r0, 0x28
+ strh r0, [r1]
+ b _0802905E
+ .align 2, 0
+_08029018: .4byte gUnknown_02024DEC
+_0802901C:
+ cmp r4, 0xB1
+ bgt _0802902C
+ ldr r1, _08029028 @ =gUnknown_02024DEC
+ movs r0, 0x50
+ strh r0, [r1]
+ b _0802905E
+ .align 2, 0
+_08029028: .4byte gUnknown_02024DEC
+_0802902C:
+ cmp r4, 0xCB
+ bgt _0802903C
+ ldr r1, _08029038 @ =gUnknown_02024DEC
+ movs r0, 0x78
+ strh r0, [r1]
+ b _0802905E
+ .align 2, 0
+_08029038: .4byte gUnknown_02024DEC
+_0802903C:
+ ldr r3, _08029068 @ =gUnknown_02024BEC
+ ldr r2, _0802906C @ =gBattleMons
+ ldr r0, _08029070 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 2
+ str r0, [r3]
+ cmp r0, 0
+ bne _08029058
+ movs r0, 0x1
+ str r0, [r3]
+_08029058:
+ ldr r0, [r3]
+ negs r0, r0
+ str r0, [r3]
+_0802905E:
+ cmp r4, 0xCB
+ bgt _0802907C
+ ldr r1, _08029074 @ =gUnknown_02024C10
+ ldr r0, _08029078 @ =BattleScript_1D6F44
+ b _080290AC
+ .align 2, 0
+_08029068: .4byte gUnknown_02024BEC
+_0802906C: .4byte gBattleMons
+_08029070: .4byte gUnknown_02024C08
+_08029074: .4byte gUnknown_02024C10
+_08029078: .4byte BattleScript_1D6F44
+_0802907C:
+ ldr r2, _08029098 @ =gBattleMons
+ ldr r0, _0802909C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x2C]
+ ldrh r0, [r0, 0x28]
+ cmp r1, r0
+ bne _080290A8
+ ldr r1, _080290A0 @ =gUnknown_02024C10
+ ldr r0, _080290A4 @ =BattleScript_1D83B5
+ b _080290AC
+ .align 2, 0
+_08029098: .4byte gBattleMons
+_0802909C: .4byte gUnknown_02024C08
+_080290A0: .4byte gUnknown_02024C10
+_080290A4: .4byte BattleScript_1D83B5
+_080290A8:
+ ldr r1, _080290B4 @ =gUnknown_02024C10
+ ldr r0, _080290B8 @ =BattleScript_1D839B
+_080290AC:
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080290B4: .4byte gUnknown_02024C10
+_080290B8: .4byte BattleScript_1D839B
+ thumb_func_end atkB7_presentdamagecalculation
+
+ thumb_func_start sub_80290BC
+sub_80290BC: @ 80290BC
+ push {r4-r6,lr}
+ ldr r4, _080290F0 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r6, _080290F4 @ =gUnknown_02024C7A
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08029100
+ ldr r2, _080290F8 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _080290FC @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ b _08029132
+ .align 2, 0
+_080290F0: .4byte gUnknown_02024C07
+_080290F4: .4byte gUnknown_02024C7A
+_080290F8: .4byte gUnknown_02024C68
+_080290FC: .4byte gUnknown_02024D1E
+_08029100:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r6
+ ldrh r0, [r1]
+ movs r2, 0x20
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r2, _08029140 @ =gUnknown_02024C80
+ adds r1, r5, 0
+ ands r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strb r1, [r0, 0x7]
+ ldr r0, _08029144 @ =gUnknown_02024D1E
+ strb r1, [r0, 0x5]
+_08029132:
+ ldr r1, _08029148 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029140: .4byte gUnknown_02024C80
+_08029144: .4byte gUnknown_02024D1E
+_08029148: .4byte gUnknown_02024C10
+ thumb_func_end sub_80290BC
+
+ thumb_func_start atkB9_magnitudedamagecalculation
+atkB9_magnitudedamagecalculation: @ 802914C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bgt _08029178
+ ldr r1, _08029174 @ =gUnknown_02024DEC
+ movs r0, 0xA
+ strh r0, [r1]
+ movs r3, 0x4
+ b _080291E4
+ .align 2, 0
+_08029174: .4byte gUnknown_02024DEC
+_08029178:
+ cmp r3, 0xE
+ bgt _0802918C
+ ldr r1, _08029188 @ =gUnknown_02024DEC
+ movs r0, 0x1E
+ strh r0, [r1]
+ movs r3, 0x5
+ b _080291E4
+ .align 2, 0
+_08029188: .4byte gUnknown_02024DEC
+_0802918C:
+ cmp r3, 0x22
+ bgt _080291A0
+ ldr r1, _0802919C @ =gUnknown_02024DEC
+ movs r0, 0x32
+ strh r0, [r1]
+ movs r3, 0x6
+ b _080291E4
+ .align 2, 0
+_0802919C: .4byte gUnknown_02024DEC
+_080291A0:
+ cmp r3, 0x40
+ bgt _080291B4
+ ldr r1, _080291B0 @ =gUnknown_02024DEC
+ movs r0, 0x46
+ strh r0, [r1]
+ movs r3, 0x7
+ b _080291E4
+ .align 2, 0
+_080291B0: .4byte gUnknown_02024DEC
+_080291B4:
+ cmp r3, 0x54
+ bgt _080291C8
+ ldr r1, _080291C4 @ =gUnknown_02024DEC
+ movs r0, 0x5A
+ strh r0, [r1]
+ movs r3, 0x8
+ b _080291E4
+ .align 2, 0
+_080291C4: .4byte gUnknown_02024DEC
+_080291C8:
+ cmp r3, 0x5E
+ bgt _080291DC
+ ldr r1, _080291D8 @ =gUnknown_02024DEC
+ movs r0, 0x6E
+ strh r0, [r1]
+ movs r3, 0x9
+ b _080291E4
+ .align 2, 0
+_080291D8: .4byte gUnknown_02024DEC
+_080291DC:
+ ldr r1, _08029250 @ =gUnknown_02024DEC
+ movs r0, 0x96
+ strh r0, [r1]
+ movs r3, 0xA
+_080291E4:
+ ldr r1, _08029254 @ =gUnknown_030041C0
+ movs r2, 0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ strb r0, [r1, 0x2]
+ movs r0, 0x2
+ strb r0, [r1, 0x3]
+ strb r3, [r1, 0x4]
+ movs r0, 0xFF
+ strb r0, [r1, 0x5]
+ ldr r1, _08029258 @ =gUnknown_02024C08
+ strb r2, [r1]
+ ldr r0, _0802925C @ =gUnknown_02024A68
+ ldrb r3, [r0]
+ adds r6, r1, 0
+ ldr r0, _08029260 @ =gUnknown_02024C10
+ mov r8, r0
+ cmp r2, r3
+ bcs _0802923C
+ adds r4, r6, 0
+ ldr r0, _08029264 @ =gUnknown_02024C07
+ ldrb r5, [r0]
+ ldr r1, _08029268 @ =gBitTable
+ mov r12, r1
+ ldr r7, _0802926C @ =gUnknown_02024C0C
+_0802921A:
+ ldrb r2, [r4]
+ cmp r2, r5
+ beq _08029230
+ ldrb r0, [r7]
+ ldrb r1, [r6]
+ lsls r1, 2
+ add r1, r12
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _0802923C
+_08029230:
+ adds r0, r2, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r3
+ bcc _0802921A
+_0802923C:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029250: .4byte gUnknown_02024DEC
+_08029254: .4byte gUnknown_030041C0
+_08029258: .4byte gUnknown_02024C08
+_0802925C: .4byte gUnknown_02024A68
+_08029260: .4byte gUnknown_02024C10
+_08029264: .4byte gUnknown_02024C07
+_08029268: .4byte gBitTable
+_0802926C: .4byte gUnknown_02024C0C
+ thumb_func_end atkB9_magnitudedamagecalculation
+
+ thumb_func_start sub_8029270
+sub_8029270: @ 8029270
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08029294 @ =gUnknown_02024C0E
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080292A0
+ ldr r0, _08029298 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802929C
+ movs r0, 0x1
+ b _080292BA
+ .align 2, 0
+_08029294: .4byte gUnknown_02024C0E
+_08029298: .4byte gUnknown_02024C07
+_0802929C:
+ movs r0, 0
+ b _080292BA
+_080292A0:
+ ldr r0, _080292B4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080292B8
+ movs r0, 0x3
+ b _080292BA
+ .align 2, 0
+_080292B4: .4byte gUnknown_02024C07
+_080292B8:
+ movs r0, 0x2
+_080292BA:
+ bl battle_get_side_with_given_state
+ ldr r1, _0802937C @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r0, _08029380 @ =gUnknown_02024C18
+ ldr r1, _0802937C @ =gUnknown_02024C08
+ mov r9, r1
+ ldrb r3, [r1]
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080293BC
+ ldr r5, _08029384 @ =gUnknown_02024C07
+ ldr r0, _08029388 @ =0x02000000
+ ldr r2, _0802938C @ =0x00016010
+ adds r1, r3, r2
+ adds r1, r0
+ ldrb r2, [r5]
+ mov r10, r0
+ ldrb r1, [r1]
+ cmp r2, r1
+ bne _080293BC
+ ldr r4, _08029390 @ =gBattleMons
+ movs r2, 0x58
+ adds r0, r3, 0
+ muls r0, r2
+ adds r1, r4, 0
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x27
+ ands r0, r1
+ cmp r0, 0
+ bne _080293BC
+ ldrb r0, [r5]
+ muls r0, r2
+ adds r0, r4
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ beq _080293BC
+ ldr r0, _08029394 @ =gUnknown_02024CA8
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x18]
+ lsls r0, 31
+ cmp r0, 0
+ bne _080293BC
+ ldr r0, _08029398 @ =gUnknown_02024C60
+ lsls r1, r3, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0xE4
+ bne _080293BC
+ movs r1, 0
+ ldr r0, _0802939C @ =gUnknown_02024A68
+ ldr r7, _080293A0 @ =gUnknown_02024BE6
+ mov r8, r7
+ ldr r2, _080293A4 @ =gUnknown_02024C6C
+ mov r12, r2
+ ldrb r7, [r0]
+ cmp r1, r7
+ bge _0802935A
+ ldr r6, _080293A8 @ =gUnknown_02024A7A
+ mov r5, r9
+ ldr r4, _080293AC @ =gUnknown_02024A76
+ movs r3, 0xB
+ adds r2, r0, 0
+_08029344:
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ ldrb r7, [r5]
+ cmp r0, r7
+ bne _08029352
+ adds r0, r1, r4
+ strb r3, [r0]
+_08029352:
+ adds r1, 0x1
+ ldrb r0, [r2]
+ cmp r1, r0
+ blt _08029344
+_0802935A:
+ movs r0, 0xE4
+ mov r1, r8
+ strh r0, [r1]
+ ldr r2, _080293B0 @ =gUnknown_02024C10
+ ldr r0, [r2]
+ adds r0, 0x5
+ str r0, [r2]
+ ldr r1, _080293B4 @ =0x00016002
+ add r1, r10
+ movs r0, 0x1
+ strb r0, [r1]
+ mov r7, r12
+ ldr r0, [r7]
+ ldr r1, _080293B8 @ =0xfffffbff
+ ands r0, r1
+ str r0, [r7]
+ b _080293D6
+ .align 2, 0
+_0802937C: .4byte gUnknown_02024C08
+_08029380: .4byte gUnknown_02024C18
+_08029384: .4byte gUnknown_02024C07
+_08029388: .4byte 0x02000000
+_0802938C: .4byte 0x00016010
+_08029390: .4byte gBattleMons
+_08029394: .4byte gUnknown_02024CA8
+_08029398: .4byte gUnknown_02024C60
+_0802939C: .4byte gUnknown_02024A68
+_080293A0: .4byte gUnknown_02024BE6
+_080293A4: .4byte gUnknown_02024C6C
+_080293A8: .4byte gUnknown_02024A7A
+_080293AC: .4byte gUnknown_02024A76
+_080293B0: .4byte gUnknown_02024C10
+_080293B4: .4byte 0x00016002
+_080293B8: .4byte 0xfffffbff
+_080293BC:
+ ldr r3, _080293E4 @ =gUnknown_02024C10
+ 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]
+_080293D6:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080293E4: .4byte gUnknown_02024C10
+ thumb_func_end sub_8029270
+
+ thumb_func_start sub_80293E8
+sub_80293E8: @ 80293E8
+ push {lr}
+ ldr r2, _08029408 @ =word_2024DB8
+ ldrh r1, [r2]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08029414
+ ldr r2, _0802940C @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08029410 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _08029426
+ .align 2, 0
+_08029408: .4byte word_2024DB8
+_0802940C: .4byte gUnknown_02024C68
+_08029410: .4byte gUnknown_02024D1E
+_08029414:
+ movs r0, 0x20
+ strh r0, [r2]
+ ldr r1, _08029434 @ =gUnknown_02024D1E
+ movs r0, 0x4
+ strb r0, [r1, 0x5]
+ ldr r0, _08029438 @ =gUnknown_02024DBC
+ adds r0, 0x28
+ movs r1, 0x5
+ strb r1, [r0]
+_08029426:
+ ldr r1, _0802943C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029434: .4byte gUnknown_02024D1E
+_08029438: .4byte gUnknown_02024DBC
+_0802943C: .4byte gUnknown_02024C10
+ thumb_func_end sub_80293E8
+
+ thumb_func_start atkBC_maxattackhalvehp
+atkBC_maxattackhalvehp: @ 8029440
+ push {r4,r5,lr}
+ ldr r5, _0802948C @ =gBattleMons
+ ldr r4, _08029490 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ movs r3, 0x58
+ muls r0, r3
+ adds r2, r0, r5
+ ldrh r0, [r2, 0x2C]
+ lsrs r1, r0, 1
+ cmp r1, 0
+ bne _08029458
+ movs r1, 0x1
+_08029458:
+ movs r0, 0x19
+ ldrsb r0, [r2, r0]
+ cmp r0, 0xB
+ bgt _0802949C
+ ldrh r0, [r2, 0x28]
+ cmp r0, r1
+ bls _0802949C
+ movs r0, 0xC
+ strb r0, [r2, 0x19]
+ ldr r1, _08029494 @ =gUnknown_02024BEC
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r0, r5
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _08029480
+ movs r0, 0x1
+ str r0, [r1]
+_08029480:
+ ldr r1, _08029498 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _080294B6
+ .align 2, 0
+_0802948C: .4byte gBattleMons
+_08029490: .4byte gUnknown_02024C07
+_08029494: .4byte gUnknown_02024BEC
+_08029498: .4byte gUnknown_02024C10
+_0802949C:
+ ldr r3, _080294BC @ =gUnknown_02024C10
+ 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]
+_080294B6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080294BC: .4byte gUnknown_02024C10
+ thumb_func_end atkBC_maxattackhalvehp
+
+ thumb_func_start atkBD_copyfoestats
+atkBD_copyfoestats: @ 80294C0
+ push {r4-r7,lr}
+ movs r2, 0
+ ldr r7, _080294F8 @ =gUnknown_02024C10
+ ldr r6, _080294FC @ =gUnknown_02024C07
+ movs r4, 0x58
+ ldr r3, _08029500 @ =gUnknown_02024A98
+ ldr r5, _08029504 @ =gUnknown_02024C08
+_080294CE:
+ ldrb r0, [r6]
+ adds r1, r0, 0
+ muls r1, r4
+ adds r1, r2, r1
+ adds r1, r3
+ ldrb r0, [r5]
+ muls r0, r4
+ adds r0, r2, r0
+ adds r0, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _080294CE
+ ldr r0, [r7]
+ adds r0, 0x5
+ str r0, [r7]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080294F8: .4byte gUnknown_02024C10
+_080294FC: .4byte gUnknown_02024C07
+_08029500: .4byte gUnknown_02024A98
+_08029504: .4byte gUnknown_02024C08
+ thumb_func_end atkBD_copyfoestats
+
+ thumb_func_start atkBE_breakfree
+atkBE_breakfree: @ 8029508
+ push {r4,r5,lr}
+ ldr r1, _08029570 @ =gBattleMons
+ ldr r5, _08029574 @ =gUnknown_02024C07
+ ldrb r2, [r5]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r3, r0, r1
+ ldr r1, [r3]
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _08029594
+ ldr r0, _08029578 @ =0xffff1fff
+ ands r1, r0
+ str r1, [r3]
+ ldr r1, _0802957C @ =gUnknown_02024C08
+ ldr r2, _08029580 @ =0x02000000
+ ldrb r0, [r5]
+ ldr r3, _08029584 @ =0x00016020
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _08029588 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r5]
+ lsls r0, 1
+ subs r3, 0x1C
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r3, 0x1
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _0802958C @ =gUnknown_02024C10
+ ldr r0, _08029590 @ =gUnknown_081D92C2
+ b _0802963E
+ .align 2, 0
+_08029570: .4byte gBattleMons
+_08029574: .4byte gUnknown_02024C07
+_08029578: .4byte 0xffff1fff
+_0802957C: .4byte gUnknown_02024C08
+_08029580: .4byte 0x02000000
+_08029584: .4byte 0x00016020
+_08029588: .4byte gUnknown_030041C0
+_0802958C: .4byte gUnknown_02024C10
+_08029590: .4byte gUnknown_081D92C2
+_08029594:
+ ldr r4, _080295C8 @ =gUnknown_02024C98
+ lsls r0, r2, 2
+ adds r3, r0, r4
+ ldr r1, [r3]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080295D4
+ movs r0, 0x5
+ negs r0, r0
+ ands r1, r0
+ str r1, [r3]
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, [r1]
+ movs r2, 0x4
+ negs r2, r2
+ ands r0, r2
+ str r0, [r1]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _080295CC @ =gUnknown_02024C10
+ ldr r0, _080295D0 @ =gUnknown_081D92C9
+ b _0802963E
+ .align 2, 0
+_080295C8: .4byte gUnknown_02024C98
+_080295CC: .4byte gUnknown_02024C10
+_080295D0: .4byte gUnknown_081D92C9
+_080295D4:
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ ldr r4, _08029624 @ =gUnknown_02024C7A
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08029638
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r2, [r0]
+ ldr r1, _08029628 @ =0x0000ffef
+ ands r1, r2
+ movs r4, 0
+ strh r1, [r0]
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ ldr r2, _0802962C @ =gUnknown_02024C80
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strb r4, [r1, 0x6]
+ bl b_movescr_stack_push_cursor
+ ldr r1, _08029630 @ =gUnknown_02024C10
+ ldr r0, _08029634 @ =gUnknown_081D92D0
+ b _0802963E
+ .align 2, 0
+_08029624: .4byte gUnknown_02024C7A
+_08029628: .4byte 0x0000ffef
+_0802962C: .4byte gUnknown_02024C80
+_08029630: .4byte gUnknown_02024C10
+_08029634: .4byte gUnknown_081D92D0
+_08029638:
+ ldr r1, _08029648 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+_0802963E:
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029648: .4byte gUnknown_02024C10
+ thumb_func_end atkBE_breakfree
+
+ thumb_func_start sub_802964C
+sub_802964C: @ 802964C
+ ldr r1, _08029670 @ =gBattleMons
+ ldr r0, _08029674 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r2, r0
+ adds r1, 0x50
+ adds r2, r1
+ ldr r0, [r2]
+ movs r1, 0x80
+ lsls r1, 23
+ orrs r0, r1
+ str r0, [r2]
+ ldr r1, _08029678 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08029670: .4byte gBattleMons
+_08029674: .4byte gUnknown_02024C07
+_08029678: .4byte gUnknown_02024C10
+ thumb_func_end sub_802964C
+
+ thumb_func_start atkC0_recoverbasedonsunlight
+atkC0_recoverbasedonsunlight: @ 802967C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r1, _080296E8 @ =gUnknown_02024C08
+ ldr r5, _080296EC @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ strb r0, [r1]
+ ldr r7, _080296F0 @ =gBattleMons
+ ldrb r0, [r5]
+ movs r6, 0x58
+ muls r0, r6
+ adds r0, r7
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ beq _0802975C
+ ldr r4, _080296F4 @ =word_2024DB8
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _080296CE
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080296CE
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080296FC
+_080296CE:
+ ldr r3, _080296F8 @ =gUnknown_02024BEC
+ ldr r2, _080296F0 @ =gBattleMons
+ ldr r0, _080296EC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r3]
+ adds r1, r3, 0
+ b _08029736
+ .align 2, 0
+_080296E8: .4byte gUnknown_02024C08
+_080296EC: .4byte gUnknown_02024C07
+_080296F0: .4byte gBattleMons
+_080296F4: .4byte word_2024DB8
+_080296F8: .4byte gUnknown_02024BEC
+_080296FC:
+ ldrh r1, [r4]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _08029728
+ ldr r4, _08029724 @ =gUnknown_02024BEC
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r7
+ ldrh r1, [r0, 0x2C]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0x1E
+ bl __divsi3
+ str r0, [r4]
+ adds r1, r4, 0
+ b _08029736
+ .align 2, 0
+_08029724: .4byte gUnknown_02024BEC
+_08029728:
+ ldr r1, _08029754 @ =gUnknown_02024BEC
+ ldrb r0, [r5]
+ muls r0, r6
+ adds r0, r7
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 2
+ str r0, [r1]
+_08029736:
+ adds r2, r1, 0
+ ldr r0, [r2]
+ cmp r0, 0
+ bne _08029742
+ movs r0, 0x1
+ str r0, [r2]
+_08029742:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldr r1, _08029758 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _08029776
+ .align 2, 0
+_08029754: .4byte gUnknown_02024BEC
+_08029758: .4byte gUnknown_02024C10
+_0802975C:
+ ldr r3, _08029780 @ =gUnknown_02024C10
+ 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]
+_08029776:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029780: .4byte gUnknown_02024C10
+ thumb_func_end atkC0_recoverbasedonsunlight
+
+ thumb_func_start sub_8029784
+sub_8029784: @ 8029784
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, _08029894 @ =gBattleMons
+ ldr r0, _08029898 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r4, r1, 0
+ muls r4, r0
+ adds r4, r2
+ ldrb r0, [r4, 0x14]
+ mov r10, r0
+ mov r7, r10
+ lsls r7, 27
+ adds r0, r7, 0
+ lsrs r0, 27
+ mov r10, r0
+ movs r1, 0x2
+ mov r2, r10
+ ands r2, r1
+ asrs r2, 1
+ ldrh r7, [r4, 0x14]
+ mov r9, r7
+ mov r0, r9
+ lsls r0, 22
+ mov r9, r0
+ lsrs r3, r0, 27
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r2, r0
+ ldrb r7, [r4, 0x15]
+ mov r8, r7
+ mov r0, r8
+ lsls r0, 25
+ mov r8, r0
+ lsrs r3, r0, 27
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 1
+ orrs r2, r0
+ ldr r6, [r4, 0x14]
+ lsls r6, 12
+ lsrs r3, r6, 27
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 2
+ orrs r2, r0
+ ldrh r5, [r4, 0x16]
+ lsls r5, 23
+ lsrs r3, r5, 27
+ adds r0, r1, 0
+ ands r0, r3
+ lsls r0, 3
+ orrs r2, r0
+ ldrb r3, [r4, 0x17]
+ lsls r3, 26
+ lsrs r0, r3, 27
+ ands r1, r0
+ lsls r1, 4
+ orrs r2, r1
+ movs r1, 0x1
+ adds r4, r1, 0
+ mov r7, r10
+ ands r4, r7
+ mov r0, r9
+ lsrs r0, 27
+ mov r9, r0
+ adds r0, r1, 0
+ mov r7, r9
+ ands r0, r7
+ lsls r0, 1
+ orrs r4, r0
+ mov r0, r8
+ lsrs r0, 27
+ mov r8, r0
+ adds r0, r1, 0
+ mov r7, r8
+ ands r0, r7
+ lsls r0, 2
+ orrs r4, r0
+ lsrs r6, 27
+ adds r0, r1, 0
+ ands r0, r6
+ lsls r0, 3
+ orrs r4, r0
+ lsrs r5, 27
+ adds r0, r1, 0
+ ands r0, r5
+ lsls r0, 4
+ orrs r4, r0
+ lsrs r3, 27
+ ands r1, r3
+ lsls r1, 5
+ orrs r4, r1
+ ldr r5, _0802989C @ =gUnknown_02024DEC
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ movs r1, 0x3F
+ bl __divsi3
+ adds r0, 0x1E
+ strh r0, [r5]
+ ldr r5, _080298A0 @ =0x02000000
+ lsls r0, r4, 4
+ subs r0, r4
+ movs r1, 0x3F
+ bl __divsi3
+ adds r1, r0, 0x1
+ ldr r0, _080298A4 @ =0x0001601c
+ adds r5, r0
+ strb r1, [r5]
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0x8
+ bls _08029876
+ adds r0, r1, 0x1
+ strb r0, [r5]
+_08029876:
+ ldrb r0, [r5]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r5]
+ ldr r1, _080298A8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029894: .4byte gBattleMons
+_08029898: .4byte gUnknown_02024C07
+_0802989C: .4byte gUnknown_02024DEC
+_080298A0: .4byte 0x02000000
+_080298A4: .4byte 0x0001601c
+_080298A8: .4byte gUnknown_02024C10
+ thumb_func_end sub_8029784
+
+ thumb_func_start atkC2_selectnexttarget
+atkC2_selectnexttarget: @ 80298AC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08029908 @ =gUnknown_02024C08
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _0802990C @ =gUnknown_02024A68
+ ldrb r1, [r1]
+ adds r6, r0, 0
+ ldr r0, _08029910 @ =gUnknown_02024C10
+ mov r8, r0
+ cmp r1, 0
+ beq _080298F6
+ adds r3, r6, 0
+ ldr r0, _08029914 @ =gUnknown_02024C07
+ ldrb r5, [r0]
+ ldr r0, _08029918 @ =gBitTable
+ mov r12, r0
+ adds r4, r1, 0
+ ldr r7, _0802991C @ =gUnknown_02024C0C
+_080298D4:
+ ldrb r2, [r3]
+ cmp r2, r5
+ beq _080298EA
+ ldrb r0, [r7]
+ ldrb r1, [r6]
+ lsls r1, 2
+ add r1, r12
+ ldr r1, [r1]
+ ands r0, r1
+ cmp r0, 0
+ beq _080298F6
+_080298EA:
+ adds r0, r2, 0x1
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcc _080298D4
+_080298F6:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029908: .4byte gUnknown_02024C08
+_0802990C: .4byte gUnknown_02024A68
+_08029910: .4byte gUnknown_02024C10
+_08029914: .4byte gUnknown_02024C07
+_08029918: .4byte gBitTable
+_0802991C: .4byte gUnknown_02024C0C
+ thumb_func_end atkC2_selectnexttarget
+
+ thumb_func_start atkC3_setfutureattack
+atkC3_setfutureattack: @ 8029920
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r0, _08029958 @ =gUnknown_02024DBC
+ mov r8, r0
+ ldr r7, _0802995C @ =gUnknown_02024C08
+ ldrb r1, [r7]
+ adds r0, r1, r0
+ ldrb r6, [r0]
+ cmp r6, 0
+ beq _08029964
+ ldr r3, _08029960 @ =gUnknown_02024C10
+ 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 _08029A2E
+ .align 2, 0
+_08029958: .4byte gUnknown_02024DBC
+_0802995C: .4byte gUnknown_02024C08
+_08029960: .4byte gUnknown_02024C10
+_08029964:
+ lsls r1, 1
+ mov r0, r8
+ adds r0, 0x18
+ adds r1, r0
+ ldr r2, _08029A04 @ =gUnknown_02024BE6
+ mov r9, r2
+ ldrh r0, [r2]
+ strh r0, [r1]
+ mov r0, r8
+ adds r0, 0x4
+ ldrb r4, [r7]
+ adds r0, r4
+ ldr r5, _08029A08 @ =gUnknown_02024C07
+ ldrb r1, [r5]
+ strb r1, [r0]
+ ldrb r0, [r7]
+ add r0, r8
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r4, _08029A0C @ =gUnknown_02024C7A
+ ldrb r0, [r7]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ mov r10, r1
+ ands r1, r0
+ lsls r1, 1
+ adds r1, r4
+ ldrh r3, [r1]
+ ldrb r0, [r5]
+ movs r4, 0x58
+ muls r0, r4
+ ldr r2, _08029A10 @ =gBattleMons
+ adds r0, r2
+ ldrb r1, [r7]
+ muls r1, r4
+ adds r1, r2
+ mov r4, r9
+ ldrh r2, [r4]
+ str r6, [sp]
+ str r6, [sp, 0x4]
+ ldrb r4, [r5]
+ str r4, [sp, 0x8]
+ ldrb r4, [r7]
+ str r4, [sp, 0xC]
+ bl CalculateBaseDamage
+ ldrb r1, [r7]
+ lsls r1, 2
+ mov r2, r8
+ adds r2, 0x8
+ adds r1, r2
+ str r0, [r1]
+ ldr r1, _08029A14 @ =gUnknown_02024D28
+ ldrb r0, [r5]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _080299F2
+ ldrb r4, [r7]
+ lsls r4, 2
+ adds r4, r2
+ ldr r1, [r4]
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ str r0, [r4]
+_080299F2:
+ mov r0, r9
+ ldrh r1, [r0]
+ ldr r0, _08029A18 @ =0x00000161
+ cmp r1, r0
+ bne _08029A20
+ ldr r0, _08029A1C @ =gUnknown_02024D1E
+ mov r1, r10
+ strb r1, [r0, 0x5]
+ b _08029A26
+ .align 2, 0
+_08029A04: .4byte gUnknown_02024BE6
+_08029A08: .4byte gUnknown_02024C07
+_08029A0C: .4byte gUnknown_02024C7A
+_08029A10: .4byte gBattleMons
+_08029A14: .4byte gUnknown_02024D28
+_08029A18: .4byte 0x00000161
+_08029A1C: .4byte gUnknown_02024D1E
+_08029A20:
+ ldr r1, _08029A40 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+_08029A26:
+ ldr r1, _08029A44 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08029A2E:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029A40: .4byte gUnknown_02024D1E
+_08029A44: .4byte gUnknown_02024C10
+ thumb_func_end atkC3_setfutureattack
+
+ thumb_func_start atkC4_802B910
+atkC4_802B910: @ 8029A48
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08029A8C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r7, _08029A90 @ =gEnemyParty
+ cmp r0, 0
+ bne _08029A62
+ ldr r7, _08029A94 @ =gPlayerParty
+_08029A62:
+ ldr r2, _08029A98 @ =gBattleMons
+ ldr r0, _08029A9C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _08029AA4
+ ldr r3, _08029AA0 @ =gUnknown_02024C10
+ 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]
+ b _08029C40
+ .align 2, 0
+_08029A8C: .4byte gUnknown_02024C07
+_08029A90: .4byte gEnemyParty
+_08029A94: .4byte gPlayerParty
+_08029A98: .4byte gBattleMons
+_08029A9C: .4byte gUnknown_02024C08
+_08029AA0: .4byte gUnknown_02024C10
+_08029AA4:
+ ldr r6, _08029BE0 @ =gUnknown_02024D1E
+ ldrb r0, [r6]
+ mov r8, r0
+ cmp r0, 0x5
+ bls _08029AB0
+ b _08029C0C
+_08029AB0:
+ adds r4, r6, 0
+ movs r5, 0x64
+_08029AB4:
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08029AF8
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08029AF8
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08029AF8
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r7, r0
+ movs r1, 0x37
+ bl GetMonData
+ cmp r0, 0
+ beq _08029B08
+_08029AF8:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r6, r4, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bls _08029AB4
+_08029B08:
+ ldr r1, _08029BE0 @ =gUnknown_02024D1E
+ mov r9, r1
+ ldrb r2, [r1]
+ cmp r2, 0x5
+ bhi _08029C0C
+ ldr r1, _08029BE4 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r6, _08029BE8 @ =gUnknown_02024C07
+ ldrb r0, [r6]
+ strb r0, [r1, 0x2]
+ strb r2, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _08029BEC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+ ldr r2, _08029BF0 @ =gUnknown_02024BEC
+ mov r8, r2
+ ldr r5, _08029BF4 @ =gBaseStats
+ mov r1, r9
+ ldrb r0, [r1]
+ movs r4, 0x64
+ muls r0, r4
+ adds r0, r7, r0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r3, [r1, 0x1]
+ mov r2, r8
+ str r3, [r2]
+ ldr r2, _08029BF8 @ =gBattleMoves
+ ldr r0, _08029BFC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ muls r0, r3
+ mov r1, r8
+ str r0, [r1]
+ mov r2, r9
+ ldrb r0, [r2]
+ muls r0, r4
+ adds r0, r7, r0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 1
+ movs r1, 0x5
+ bl __udivsi3
+ adds r0, 0x2
+ mov r2, r8
+ ldr r1, [r2]
+ muls r0, r1
+ str r0, [r2]
+ ldr r3, _08029C00 @ =gBattleMons
+ ldr r1, _08029C04 @ =gUnknown_02024C08
+ ldrb r2, [r1]
+ movs r1, 0x58
+ muls r1, r2
+ adds r1, r3
+ ldrh r2, [r1]
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrb r1, [r1, 0x2]
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+ movs r1, 0x32
+ bl __divsi3
+ adds r2, r0, 0x2
+ mov r0, r8
+ str r2, [r0]
+ ldr r1, _08029C08 @ =gUnknown_02024D28
+ ldrb r0, [r6]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ bge _08029BD4
+ lsls r0, r2, 4
+ subs r0, r2
+ movs r1, 0xA
+ bl __divsi3
+ mov r1, r8
+ str r0, [r1]
+_08029BD4:
+ mov r2, r9
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ b _08029C46
+ .align 2, 0
+_08029BE0: .4byte gUnknown_02024D1E
+_08029BE4: .4byte gUnknown_030041C0
+_08029BE8: .4byte gUnknown_02024C07
+_08029BEC: .4byte gUnknown_02024C10
+_08029BF0: .4byte gUnknown_02024BEC
+_08029BF4: .4byte gBaseStats
+_08029BF8: .4byte gBattleMoves
+_08029BFC: .4byte gUnknown_02024BE6
+_08029C00: .4byte gBattleMons
+_08029C04: .4byte gUnknown_02024C08
+_08029C08: .4byte gUnknown_02024D28
+_08029C0C:
+ mov r0, r8
+ cmp r0, 0
+ beq _08029C2C
+ ldr r3, _08029C28 @ =gUnknown_02024C10
+ 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]
+ b _08029C40
+ .align 2, 0
+_08029C28: .4byte gUnknown_02024C10
+_08029C2C:
+ ldr r3, _08029C54 @ =gUnknown_02024C10
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+_08029C40:
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+_08029C46:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029C54: .4byte gUnknown_02024C10
+ thumb_func_end atkC4_802B910
+
+ thumb_func_start atkC5_hidepreattack
+atkC5_hidepreattack: @ 8029C58
+ push {lr}
+ ldr r0, _08029C6C @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ cmp r1, 0x5B
+ beq _08029C98
+ cmp r1, 0x5B
+ bgt _08029C70
+ cmp r1, 0x13
+ beq _08029C7C
+ b _08029CC4
+ .align 2, 0
+_08029C6C: .4byte gUnknown_02024BE6
+_08029C70:
+ ldr r0, _08029C8C @ =0x00000123
+ cmp r1, r0
+ beq _08029CB0
+ adds r0, 0x31
+ cmp r1, r0
+ bne _08029CC4
+_08029C7C:
+ ldr r2, _08029C90 @ =gUnknown_02024C98
+ ldr r0, _08029C94 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x40
+ b _08029CC0
+ .align 2, 0
+_08029C8C: .4byte 0x00000123
+_08029C90: .4byte gUnknown_02024C98
+_08029C94: .4byte gUnknown_02024C07
+_08029C98:
+ ldr r2, _08029CA8 @ =gUnknown_02024C98
+ ldr r0, _08029CAC @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x80
+ b _08029CC0
+ .align 2, 0
+_08029CA8: .4byte gUnknown_02024C98
+_08029CAC: .4byte gUnknown_02024C07
+_08029CB0:
+ ldr r2, _08029CD0 @ =gUnknown_02024C98
+ ldr r0, _08029CD4 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 11
+_08029CC0:
+ orrs r0, r2
+ str r0, [r1]
+_08029CC4:
+ ldr r1, _08029CD8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029CD0: .4byte gUnknown_02024C98
+_08029CD4: .4byte gUnknown_02024C07
+_08029CD8: .4byte gUnknown_02024C10
+ thumb_func_end atkC5_hidepreattack
+
+ thumb_func_start atkC6_unhidepostattack
+atkC6_unhidepostattack: @ 8029CDC
+ push {lr}
+ ldr r0, _08029CF0 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ cmp r1, 0x5B
+ beq _08029D20
+ cmp r1, 0x5B
+ bgt _08029CF4
+ cmp r1, 0x13
+ beq _08029D00
+ b _08029D4E
+ .align 2, 0
+_08029CF0: .4byte gUnknown_02024BE6
+_08029CF4:
+ ldr r0, _08029D14 @ =0x00000123
+ cmp r1, r0
+ beq _08029D3C
+ adds r0, 0x31
+ cmp r1, r0
+ bne _08029D4E
+_08029D00:
+ ldr r2, _08029D18 @ =gUnknown_02024C98
+ ldr r0, _08029D1C @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x41
+ negs r2, r2
+ b _08029D4A
+ .align 2, 0
+_08029D14: .4byte 0x00000123
+_08029D18: .4byte gUnknown_02024C98
+_08029D1C: .4byte gUnknown_02024C07
+_08029D20:
+ ldr r2, _08029D34 @ =gUnknown_02024C98
+ ldr r0, _08029D38 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x81
+ negs r2, r2
+ b _08029D4A
+ .align 2, 0
+_08029D34: .4byte gUnknown_02024C98
+_08029D38: .4byte gUnknown_02024C07
+_08029D3C:
+ ldr r2, _08029D5C @ =gUnknown_02024C98
+ ldr r0, _08029D60 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ ldr r2, _08029D64 @ =0xfffbffff
+_08029D4A:
+ ands r0, r2
+ str r0, [r1]
+_08029D4E:
+ ldr r1, _08029D68 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029D5C: .4byte gUnknown_02024C98
+_08029D60: .4byte gUnknown_02024C07
+_08029D64: .4byte 0xfffbffff
+_08029D68: .4byte gUnknown_02024C10
+ thumb_func_end atkC6_unhidepostattack
+
+ thumb_func_start atkC7_setminimize
+atkC7_setminimize: @ 8029D6C
+ push {lr}
+ ldr r0, _08029D9C @ =gUnknown_02024C6C
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 18
+ ands r0, r1
+ cmp r0, 0
+ beq _08029D90
+ ldr r2, _08029DA0 @ =gUnknown_02024C98
+ ldr r0, _08029DA4 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 1
+ orrs r0, r2
+ str r0, [r1]
+_08029D90:
+ ldr r1, _08029DA8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029D9C: .4byte gUnknown_02024C6C
+_08029DA0: .4byte gUnknown_02024C98
+_08029DA4: .4byte gUnknown_02024C07
+_08029DA8: .4byte gUnknown_02024C10
+ thumb_func_end atkC7_setminimize
+
+ thumb_func_start sub_8029DAC
+sub_8029DAC: @ 8029DAC
+ push {lr}
+ ldr r3, _08029DD0 @ =word_2024DB8
+ ldrh r1, [r3]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08029DDC
+ ldr r2, _08029DD4 @ =gUnknown_02024C68
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _08029DD8 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ strb r0, [r1, 0x5]
+ b _08029DEA
+ .align 2, 0
+_08029DD0: .4byte word_2024DB8
+_08029DD4: .4byte gUnknown_02024C68
+_08029DD8: .4byte gUnknown_02024D1E
+_08029DDC:
+ strh r2, [r3]
+ ldr r0, _08029DF8 @ =gUnknown_02024D1E
+ movs r1, 0x5
+ strb r1, [r0, 0x5]
+ ldr r0, _08029DFC @ =gUnknown_02024DBC
+ adds r0, 0x28
+ strb r1, [r0]
+_08029DEA:
+ ldr r1, _08029E00 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029DF8: .4byte gUnknown_02024D1E
+_08029DFC: .4byte gUnknown_02024DBC
+_08029E00: .4byte gUnknown_02024C10
+ thumb_func_end sub_8029DAC
+
+ thumb_func_start atkC9_jumpifattackandspecialattackcannotfall
+atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04
+ push {r4,lr}
+ ldr r2, _08029E48 @ =gBattleMons
+ ldr r0, _08029E4C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ movs r0, 0x19
+ ldrsb r0, [r1, r0]
+ adds r3, r2, 0
+ cmp r0, 0
+ bne _08029E58
+ movs r0, 0x1C
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bne _08029E58
+ ldr r0, _08029E50 @ =gUnknown_02024D1E
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x1
+ beq _08029E58
+ ldr r3, _08029E54 @ =gUnknown_02024C10
+ 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 _08029E84
+ .align 2, 0
+_08029E48: .4byte gBattleMons
+_08029E4C: .4byte gUnknown_02024C08
+_08029E50: .4byte gUnknown_02024D1E
+_08029E54: .4byte gUnknown_02024C10
+_08029E58:
+ ldr r4, _08029E8C @ =gUnknown_02024A60
+ ldr r0, _08029E90 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r2, _08029E94 @ =gUnknown_02024BEC
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ ldrh r0, [r0, 0x28]
+ str r0, [r2]
+ ldr r1, _08029E98 @ =0x00007fff
+ movs r0, 0
+ bl dp01_build_cmdbuf_x18_0_aa_health_bar_update
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _08029E9C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08029E84:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029E8C: .4byte gUnknown_02024A60
+_08029E90: .4byte gUnknown_02024C07
+_08029E94: .4byte gUnknown_02024BEC
+_08029E98: .4byte 0x00007fff
+_08029E9C: .4byte gUnknown_02024C10
+ thumb_func_end atkC9_jumpifattackandspecialattackcannotfall
+
+ thumb_func_start atkCA_setforcedtarget
+atkCA_setforcedtarget: @ 8029EA0
+ push {r4,r5,lr}
+ ldr r4, _08029EE0 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ ldr r5, _08029EE4 @ =gUnknown_02024C80
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x1
+ strb r0, [r1, 0x8]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r4]
+ strb r0, [r1, 0x9]
+ ldr r1, _08029EE8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029EE0: .4byte gUnknown_02024C07
+_08029EE4: .4byte gUnknown_02024C80
+_08029EE8: .4byte gUnknown_02024C10
+ thumb_func_end atkCA_setforcedtarget
+
+ thumb_func_start atkCB_setcharge
+atkCB_setcharge: @ 8029EEC
+ push {r4,lr}
+ ldr r0, _08029F40 @ =gUnknown_02024C98
+ ldr r3, _08029F44 @ =gUnknown_02024C07
+ ldrb r1, [r3]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 2
+ orrs r0, r2
+ str r0, [r1]
+ ldr r4, _08029F48 @ =gUnknown_02024CA8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0, 0x12]
+ movs r1, 0x10
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x12]
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0, 0x12]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x12]
+ ldr r1, _08029F4C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029F40: .4byte gUnknown_02024C98
+_08029F44: .4byte gUnknown_02024C07
+_08029F48: .4byte gUnknown_02024CA8
+_08029F4C: .4byte gUnknown_02024C10
+ thumb_func_end atkCB_setcharge
+
+ thumb_func_start atkCC_callterrainattack
+atkCC_callterrainattack: @ 8029F50
+ push {r4,lr}
+ ldr r2, _08029FA0 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _08029FA4 @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _08029FA8 @ =gUnknown_02024BE6
+ ldr r1, _08029FAC @ =gNaturePowerMoves
+ ldr r0, _08029FB0 @ =gUnknown_0300428C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _08029FB4 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r3, _08029FB8 @ =gUnknown_081D6BBC
+ ldr r2, _08029FBC @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ bl b_movescr_stack_push
+ ldr r1, _08029FC0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08029FA0: .4byte gUnknown_02024C6C
+_08029FA4: .4byte 0xfffffbff
+_08029FA8: .4byte gUnknown_02024BE6
+_08029FAC: .4byte gNaturePowerMoves
+_08029FB0: .4byte gUnknown_0300428C
+_08029FB4: .4byte gUnknown_02024C08
+_08029FB8: .4byte gUnknown_081D6BBC
+_08029FBC: .4byte gBattleMoves
+_08029FC0: .4byte gUnknown_02024C10
+ thumb_func_end atkCC_callterrainattack
+
+ thumb_func_start atkCD_cureifburnedparalysedorpoisoned
+atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r1, _0802A010 @ =gBattleMons
+ ldr r3, _0802A014 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ movs r6, 0x58
+ muls r0, r6
+ adds r5, r1, 0
+ adds r5, 0x4C
+ adds r2, r0, r5
+ ldr r0, [r2]
+ movs r1, 0xD8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A020
+ movs r0, 0
+ str r0, [r2]
+ ldr r1, _0802A018 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r4, _0802A01C @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ strb r0, [r4]
+ ldrb r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r2, 0
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ b _0802A03A
+ .align 2, 0
+_0802A010: .4byte gBattleMons
+_0802A014: .4byte gUnknown_02024C07
+_0802A018: .4byte gUnknown_02024C10
+_0802A01C: .4byte gUnknown_02024A60
+_0802A020:
+ ldr r3, _0802A044 @ =gUnknown_02024C10
+ 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]
+_0802A03A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A044: .4byte gUnknown_02024C10
+ thumb_func_end atkCD_cureifburnedparalysedorpoisoned
+
+ thumb_func_start atkCE_settorment
+atkCE_settorment: @ 802A048
+ push {lr}
+ ldr r1, _0802A080 @ =gBattleMons
+ ldr r0, _0802A084 @ =gUnknown_02024C08
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r1, [r0]
+ movs r2, 0x80
+ lsls r2, 24
+ cmp r1, 0
+ bge _0802A08C
+ ldr r3, _0802A088 @ =gUnknown_02024C10
+ 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 _0802A098
+ .align 2, 0
+_0802A080: .4byte gBattleMons
+_0802A084: .4byte gUnknown_02024C08
+_0802A088: .4byte gUnknown_02024C10
+_0802A08C:
+ orrs r1, r2
+ str r1, [r0]
+ ldr r1, _0802A09C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A098:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A09C: .4byte gUnknown_02024C10
+ thumb_func_end atkCE_settorment
+
+ thumb_func_start atkCF_jumpifnodamage
+atkCF_jumpifnodamage: @ 802A0A0
+ push {lr}
+ ldr r2, _0802A0CC @ =gUnknown_02024D28
+ ldr r0, _0802A0D0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r0, r2, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0802A0C0
+ adds r0, r2, 0
+ adds r0, 0x8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802A0D8
+_0802A0C0:
+ ldr r1, _0802A0D4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A0F2
+ .align 2, 0
+_0802A0CC: .4byte gUnknown_02024D28
+_0802A0D0: .4byte gUnknown_02024C07
+_0802A0D4: .4byte gUnknown_02024C10
+_0802A0D8:
+ ldr r3, _0802A0F8 @ =gUnknown_02024C10
+ 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]
+_0802A0F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A0F8: .4byte gUnknown_02024C10
+ thumb_func_end atkCF_jumpifnodamage
+
+ thumb_func_start atkD0_settaunt
+atkD0_settaunt: @ 802A0FC
+ push {r4,lr}
+ ldr r4, _0802A140 @ =gUnknown_02024CA8
+ ldr r3, _0802A144 @ =gUnknown_02024C08
+ ldrb r0, [r3]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r2, r1, r4
+ ldrb r1, [r2, 0x13]
+ lsls r0, r1, 28
+ cmp r0, 0
+ bne _0802A14C
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2, 0x13]
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0, 0x13]
+ movs r1, 0xF
+ ands r1, r2
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0, 0x13]
+ ldr r1, _0802A148 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A166
+ .align 2, 0
+_0802A140: .4byte gUnknown_02024CA8
+_0802A144: .4byte gUnknown_02024C08
+_0802A148: .4byte gUnknown_02024C10
+_0802A14C:
+ ldr r3, _0802A16C @ =gUnknown_02024C10
+ 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]
+_0802A166:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A16C: .4byte gUnknown_02024C10
+ thumb_func_end atkD0_settaunt
+
+ thumb_func_start sub_802A170
+sub_802A170: @ 802A170
+ push {r4,lr}
+ ldr r4, _0802A1D8 @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r3, _0802A1DC @ =gUnknown_02024C08
+ strb r0, [r3]
+ ldr r0, _0802A1E0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A1F4
+ ldr r0, _0802A1E4 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802A1E8 @ =gBitTable
+ ldrb r3, [r3]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802A1F4
+ ldr r1, _0802A1EC @ =gUnknown_02024D28
+ ldrb r0, [r4]
+ lsls r0, 4
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 28
+ cmp r0, 0
+ blt _0802A1F4
+ lsls r0, r3, 4
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ lsls r0, r1, 28
+ cmp r0, 0
+ blt _0802A1F4
+ movs r0, 0x8
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r1, _0802A1F0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A20E
+ .align 2, 0
+_0802A1D8: .4byte gUnknown_02024C07
+_0802A1DC: .4byte gUnknown_02024C08
+_0802A1E0: .4byte gUnknown_020239F8
+_0802A1E4: .4byte gUnknown_02024C0C
+_0802A1E8: .4byte gBitTable
+_0802A1EC: .4byte gUnknown_02024D28
+_0802A1F0: .4byte gUnknown_02024C10
+_0802A1F4:
+ ldr r3, _0802A214 @ =gUnknown_02024C10
+ 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]
+_0802A20E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A214: .4byte gUnknown_02024C10
+ thumb_func_end sub_802A170
+
+ thumb_func_start sub_802A218
+sub_802A218: @ 802A218
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r0, _0802A30C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802A24C
+ ldr r0, _0802A310 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0802A314 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0802A24C
+ ldr r0, _0802A318 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _0802A2EE
+_0802A24C:
+ ldr r4, _0802A30C @ =gUnknown_02024C07
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0802A310 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ ldr r0, _0802A314 @ =0x00000902
+ ands r0, r1
+ cmp r0, 0
+ bne _0802A290
+ ldr r0, _0802A318 @ =gTrainerBattleOpponent
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _0802A290
+ ldr r0, _0802A31C @ =gUnknown_02024DBC
+ adds r0, 0x29
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r3, _0802A320 @ =gBitTable
+ ldr r2, _0802A324 @ =gUnknown_02024A6A
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802A2EE
+_0802A290:
+ ldr r0, _0802A328 @ =gBattleMons
+ mov r9, r0
+ ldr r1, _0802A30C @ =gUnknown_02024C07
+ ldrb r4, [r1]
+ movs r2, 0x58
+ mov r8, r2
+ mov r0, r8
+ muls r0, r4
+ mov r3, r9
+ adds r5, r0, r3
+ ldrh r3, [r5, 0x2E]
+ adds r1, r3, 0
+ cmp r1, 0
+ bne _0802A2BE
+ ldr r0, _0802A32C @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ beq _0802A2EE
+_0802A2BE:
+ cmp r1, 0xAF
+ beq _0802A2EE
+ ldr r7, _0802A32C @ =gUnknown_02024C08
+ ldrb r0, [r7]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ mov r1, r9
+ adds r2, r0, r1
+ ldrh r1, [r2, 0x2E]
+ cmp r1, 0xAF
+ beq _0802A2EE
+ adds r0, r3, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bls _0802A2EE
+ adds r0, r1, 0
+ subs r0, 0x79
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xB
+ bhi _0802A334
+_0802A2EE:
+ ldr r3, _0802A330 @ =gUnknown_02024C10
+ 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 _0802A49A
+ .align 2, 0
+_0802A30C: .4byte gUnknown_02024C07
+_0802A310: .4byte gUnknown_020239F8
+_0802A314: .4byte 0x00000902
+_0802A318: .4byte gTrainerBattleOpponent
+_0802A31C: .4byte gUnknown_02024DBC
+_0802A320: .4byte gBitTable
+_0802A324: .4byte gUnknown_02024A6A
+_0802A328: .4byte gBattleMons
+_0802A32C: .4byte gUnknown_02024C08
+_0802A330: .4byte gUnknown_02024C10
+_0802A334:
+ adds r0, r2, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x3C
+ bne _0802A36C
+ ldr r1, _0802A360 @ =gUnknown_02024C10
+ ldr r0, _0802A364 @ =gUnknown_081D9913
+ str r0, [r1]
+ ldr r1, _0802A368 @ =byte_2024C06
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ ldrb r1, [r1]
+ bl sub_81074C4
+ b _0802A49A
+ .align 2, 0
+_0802A360: .4byte gUnknown_02024C10
+_0802A364: .4byte gUnknown_081D9913
+_0802A368: .4byte byte_2024C06
+_0802A36C:
+ lsls r0, r4, 1
+ ldr r4, _0802A458 @ =0x020160f0
+ adds r6, r0, r4
+ ldrh r5, [r5, 0x2E]
+ mov r10, r5
+ strh r1, [r6]
+ ldr r3, _0802A45C @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ mov r3, r10
+ strh r3, [r0, 0x2E]
+ ldr r5, _0802A460 @ =gUnknown_02024A60
+ ldr r1, _0802A45C @ =gUnknown_02024C07
+ ldrb r0, [r1]
+ strb r0, [r5]
+ str r6, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldr r2, _0802A45C @ =gUnknown_02024C07
+ ldrb r0, [r2]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldrb r0, [r7]
+ strb r0, [r5]
+ ldrb r0, [r7]
+ mov r3, r8
+ muls r3, r0
+ adds r0, r3, 0
+ mov r1, r9
+ adds r1, 0x2E
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r0, _0802A464 @ =0xfffe9f10
+ adds r4, r0
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r2, _0802A468 @ =0x000160e8
+ adds r0, r2
+ adds r0, r4
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ ldr r1, _0802A46C @ =0x000160e9
+ adds r0, r1
+ adds r0, r4
+ movs r3, 0
+ strb r3, [r0]
+ ldr r3, _0802A45C @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r2
+ adds r0, r4
+ movs r2, 0
+ strb r2, [r0]
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r4
+ strb r2, [r0]
+ ldr r1, _0802A470 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r1, _0802A474 @ =gUnknown_030041C0
+ movs r3, 0xFD
+ strb r3, [r1]
+ movs r2, 0xA
+ strb r2, [r1, 0x1]
+ ldrh r0, [r6]
+ strb r0, [r1, 0x2]
+ ldrh r0, [r6]
+ lsrs r0, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0802A478 @ =gUnknown_03004290
+ strb r3, [r1]
+ strb r2, [r1, 0x1]
+ mov r3, r10
+ strb r3, [r1, 0x2]
+ mov r2, r10
+ lsrs r0, r2, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0x1
+ negs r0, r0
+ strb r0, [r1, 0x4]
+ cmp r2, 0
+ beq _0802A480
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _0802A494
+ ldr r1, _0802A47C @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _0802A498
+ .align 2, 0
+_0802A458: .4byte 0x020160f0
+_0802A45C: .4byte gUnknown_02024C07
+_0802A460: .4byte gUnknown_02024A60
+_0802A464: .4byte 0xfffe9f10
+_0802A468: .4byte 0x000160e8
+_0802A46C: .4byte 0x000160e9
+_0802A470: .4byte gUnknown_02024C10
+_0802A474: .4byte gUnknown_030041C0
+_0802A478: .4byte gUnknown_03004290
+_0802A47C: .4byte gUnknown_02024D1E
+_0802A480:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _0802A494
+ ldr r0, _0802A490 @ =gUnknown_02024D1E
+ movs r3, 0
+ strb r3, [r0, 0x5]
+ b _0802A49A
+ .align 2, 0
+_0802A490: .4byte gUnknown_02024D1E
+_0802A494:
+ ldr r1, _0802A4AC @ =gUnknown_02024D1E
+ movs r0, 0x1
+_0802A498:
+ strb r0, [r1, 0x5]
+_0802A49A:
+ 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
+_0802A4AC: .4byte gUnknown_02024D1E
+ thumb_func_end sub_802A218
+
+ thumb_func_start sub_802A4B0
+sub_802A4B0: @ 802A4B0
+ push {r4,lr}
+ ldr r3, _0802A4F0 @ =gBattleMons
+ ldr r4, _0802A4F4 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ movs r2, 0x58
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r1, [r0]
+ adds r0, r1, 0
+ cmp r0, 0
+ beq _0802A504
+ cmp r0, 0x19
+ beq _0802A504
+ ldr r0, _0802A4F8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r1, _0802A4FC @ =byte_2024C06
+ ldrb r0, [r4]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r1, _0802A500 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A51E
+ .align 2, 0
+_0802A4F0: .4byte gBattleMons
+_0802A4F4: .4byte gUnknown_02024C08
+_0802A4F8: .4byte gUnknown_02024C07
+_0802A4FC: .4byte byte_2024C06
+_0802A500: .4byte gUnknown_02024C10
+_0802A504:
+ ldr r3, _0802A524 @ =gUnknown_02024C10
+ 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]
+_0802A51E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A524: .4byte gUnknown_02024C10
+ thumb_func_end sub_802A4B0
+
+ thumb_func_start atkD4_802C408
+atkD4_802C408: @ 802A528
+ push {r4-r7,lr}
+ ldr r7, _0802A53C @ =gUnknown_02024C10
+ ldr r2, [r7]
+ ldrb r3, [r2, 0x1]
+ cmp r3, 0
+ beq _0802A540
+ cmp r3, 0x1
+ beq _0802A578
+ b _0802A5F4
+ .align 2, 0
+_0802A53C: .4byte gUnknown_02024C10
+_0802A540:
+ ldr r1, _0802A56C @ =gUnknown_02024DBC
+ ldr r4, _0802A570 @ =gUnknown_02024C07
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r5, [r4]
+ adds r3, r0, r5
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0802A5C4
+ movs r0, 0x2
+ strb r0, [r3]
+ ldrb r0, [r4]
+ adds r1, 0x24
+ adds r1, r0, r1
+ ldr r2, _0802A574 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldr r0, [r7]
+ adds r0, 0x6
+ b _0802A5F2
+ .align 2, 0
+_0802A56C: .4byte gUnknown_02024DBC
+_0802A570: .4byte gUnknown_02024C07
+_0802A574: .4byte gUnknown_02024A6A
+_0802A578:
+ ldr r1, _0802A5DC @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x1]
+ ldr r4, _0802A5E0 @ =gUnknown_02024C08
+ ldrb r0, [r4]
+ strb r0, [r1, 0x2]
+ ldr r0, _0802A5E4 @ =gUnknown_02024DBC
+ adds r0, 0x24
+ ldrb r5, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ ldr r1, _0802A5E8 @ =gUnknown_02024BEC
+ ldr r6, _0802A5EC @ =gBattleMons
+ ldrb r0, [r4]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r6
+ ldrh r0, [r0, 0x2C]
+ lsrs r0, 1
+ str r0, [r1]
+ cmp r0, 0
+ bne _0802A5B0
+ str r3, [r1]
+_0802A5B0:
+ ldr r0, [r1]
+ negs r0, r0
+ str r0, [r1]
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r0, r6
+ ldrh r1, [r0, 0x28]
+ ldrh r0, [r0, 0x2C]
+ cmp r1, r0
+ bne _0802A5F0
+_0802A5C4:
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r7]
+ b _0802A5F4
+ .align 2, 0
+_0802A5DC: .4byte gUnknown_030041C0
+_0802A5E0: .4byte gUnknown_02024C08
+_0802A5E4: .4byte gUnknown_02024DBC
+_0802A5E8: .4byte gUnknown_02024BEC
+_0802A5EC: .4byte gBattleMons
+_0802A5F0:
+ adds r0, r2, 0x6
+_0802A5F2:
+ str r0, [r7]
+_0802A5F4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end atkD4_802C408
+
+ thumb_func_start sub_802A5FC
+sub_802A5FC: @ 802A5FC
+ push {lr}
+ ldr r1, _0802A634 @ =gUnknown_02024C98
+ ldr r0, _0802A638 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 3
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0802A640
+ ldr r3, _0802A63C @ =gUnknown_02024C10
+ 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 _0802A64C
+ .align 2, 0
+_0802A634: .4byte gUnknown_02024C98
+_0802A638: .4byte gUnknown_02024C07
+_0802A63C: .4byte gUnknown_02024C10
+_0802A640:
+ orrs r1, r3
+ str r1, [r2]
+ ldr r1, _0802A650 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A64C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A650: .4byte gUnknown_02024C10
+ thumb_func_end sub_802A5FC
+
+ thumb_func_start atkD6_doubledamagedealtifdamaged
+atkD6_doubledamagedealtifdamaged: @ 802A654
+ push {lr}
+ ldr r3, _0802A6A4 @ =gUnknown_02024D28
+ ldr r0, _0802A6A8 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r0, r3, 0x4
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802A674
+ adds r0, r2, r3
+ ldr r1, _0802A6AC @ =gUnknown_02024C08
+ ldrb r0, [r0, 0xC]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802A68C
+_0802A674:
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802A696
+ adds r0, r2, r3
+ ldr r1, _0802A6AC @ =gUnknown_02024C08
+ ldrb r0, [r0, 0xD]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0802A696
+_0802A68C:
+ ldr r0, _0802A6B0 @ =0x02000000
+ ldr r1, _0802A6B4 @ =0x0001601f
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+_0802A696:
+ ldr r1, _0802A6B8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A6A4: .4byte gUnknown_02024D28
+_0802A6A8: .4byte gUnknown_02024C07
+_0802A6AC: .4byte gUnknown_02024C08
+_0802A6B0: .4byte 0x02000000
+_0802A6B4: .4byte 0x0001601f
+_0802A6B8: .4byte gUnknown_02024C10
+ thumb_func_end atkD6_doubledamagedealtifdamaged
+
+ thumb_func_start sub_802A6BC
+sub_802A6BC: @ 802A6BC
+ push {r4,lr}
+ ldr r1, _0802A700 @ =gUnknown_02024C98
+ ldr r0, _0802A704 @ =gUnknown_02024C08
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r4, r0, r1
+ ldr r2, [r4]
+ movs r0, 0xC0
+ lsls r0, 5
+ ands r0, r2
+ cmp r0, 0
+ bne _0802A6E4
+ ldr r1, _0802A708 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x4C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802A710
+_0802A6E4:
+ ldr r3, _0802A70C @ =gUnknown_02024C10
+ 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 _0802A720
+ .align 2, 0
+_0802A700: .4byte gUnknown_02024C98
+_0802A704: .4byte gUnknown_02024C08
+_0802A708: .4byte gBattleMons
+_0802A70C: .4byte gUnknown_02024C10
+_0802A710:
+ movs r0, 0x80
+ lsls r0, 5
+ orrs r2, r0
+ str r2, [r4]
+ ldr r1, _0802A728 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A720:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A728: .4byte gUnknown_02024C10
+ thumb_func_end sub_802A6BC
+
+ thumb_func_start atkD8_setdamagetohealthdifference
+atkD8_setdamagetohealthdifference: @ 802A72C
+ push {lr}
+ ldr r2, _0802A768 @ =gBattleMons
+ ldr r0, _0802A76C @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ movs r1, 0x58
+ muls r0, r1
+ adds r3, r0, r2
+ ldr r0, _0802A770 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ muls r0, r1
+ adds r1, r0, r2
+ ldrh r0, [r3, 0x28]
+ ldrh r2, [r1, 0x28]
+ cmp r0, r2
+ bhi _0802A778
+ ldr r3, _0802A774 @ =gUnknown_02024C10
+ 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 _0802A78A
+ .align 2, 0
+_0802A768: .4byte gBattleMons
+_0802A76C: .4byte gUnknown_02024C08
+_0802A770: .4byte gUnknown_02024C07
+_0802A774: .4byte gUnknown_02024C10
+_0802A778:
+ ldr r2, _0802A790 @ =gUnknown_02024BEC
+ ldrh r0, [r3, 0x28]
+ ldrh r1, [r1, 0x28]
+ subs r0, r1
+ str r0, [r2]
+ ldr r1, _0802A794 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A78A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A790: .4byte gUnknown_02024BEC
+_0802A794: .4byte gUnknown_02024C10
+ thumb_func_end atkD8_setdamagetohealthdifference
+
+ thumb_func_start atkD9_scaledamagebyhealthratio
+atkD9_scaledamagebyhealthratio: @ 802A798
+ push {r4,lr}
+ ldr r4, _0802A7E4 @ =gUnknown_02024DEC
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0802A7D4
+ ldr r2, _0802A7E8 @ =gBattleMoves
+ ldr r0, _0802A7EC @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r3, [r0, 0x1]
+ ldr r2, _0802A7F0 @ =gBattleMons
+ ldr r0, _0802A7F4 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r0, [r1, 0x28]
+ muls r0, r3
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ strh r0, [r4]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0802A7D4
+ movs r0, 0x1
+ strh r0, [r4]
+_0802A7D4:
+ ldr r1, _0802A7F8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A7E4: .4byte gUnknown_02024DEC
+_0802A7E8: .4byte gBattleMoves
+_0802A7EC: .4byte gUnknown_02024BE6
+_0802A7F0: .4byte gBattleMons
+_0802A7F4: .4byte gUnknown_02024C07
+_0802A7F8: .4byte gUnknown_02024C10
+ thumb_func_end atkD9_scaledamagebyhealthratio
+
+ thumb_func_start atkDA_abilityswap
+atkDA_abilityswap: @ 802A7FC
+ push {r4-r6,lr}
+ ldr r5, _0802A860 @ =gBattleMons
+ ldr r0, _0802A864 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ movs r4, 0x58
+ muls r0, r4
+ adds r0, r5
+ adds r2, r0, 0
+ adds r2, 0x20
+ ldrb r1, [r2]
+ cmp r1, 0
+ bne _0802A824
+ ldr r0, _0802A868 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802A844
+_0802A824:
+ cmp r1, 0x19
+ beq _0802A844
+ ldr r6, _0802A868 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x20
+ ldrb r3, [r0]
+ cmp r3, 0x19
+ beq _0802A844
+ ldr r0, _0802A86C @ =gUnknown_02024C68
+ ldrb r1, [r0]
+ movs r0, 0x29
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A874
+_0802A844:
+ ldr r3, _0802A870 @ =gUnknown_02024C10
+ 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 _0802A88A
+ .align 2, 0
+_0802A860: .4byte gBattleMons
+_0802A864: .4byte gUnknown_02024C07
+_0802A868: .4byte gUnknown_02024C08
+_0802A86C: .4byte gUnknown_02024C68
+_0802A870: .4byte gUnknown_02024C10
+_0802A874:
+ ldrb r1, [r2]
+ strb r3, [r2]
+ ldrb r0, [r6]
+ muls r0, r4
+ adds r0, r5
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r1, _0802A890 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A88A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A890: .4byte gUnknown_02024C10
+ thumb_func_end atkDA_abilityswap
+
+ thumb_func_start atkDB_imprisoneffect
+atkDB_imprisoneffect: @ 802A894
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _0802A8B8 @ =gUnknown_02024C98
+ ldr r0, _0802A8BC @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _0802A8E8
+ b _0802A95E
+ .align 2, 0
+_0802A8B8: .4byte gUnknown_02024C98
+_0802A8BC: .4byte gUnknown_02024C07
+_0802A8C0:
+ ldr r0, _0802A8E0 @ =gUnknown_02024C98
+ mov r2, r9
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r2, 0x80
+ lsls r2, 6
+ orrs r0, r2
+ str r0, [r1]
+ ldr r1, _0802A8E4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802A956
+ .align 2, 0
+_0802A8E0: .4byte gUnknown_02024C98
+_0802A8E4: .4byte gUnknown_02024C10
+_0802A8E8:
+ adds r0, r2, 0
+ bl sub_801529C
+ movs r6, 0
+ b _0802A94E
+_0802A8F2:
+ adds r0, r6, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r8, r0
+ beq _0802A948
+ movs r4, 0
+ ldr r7, _0802A984 @ =gUnknown_02024C07
+ mov r9, r7
+ ldr r0, _0802A988 @ =gBattleMons
+ mov r12, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ mov r2, r12
+ adds r2, 0xC
+ movs r1, 0x58
+ muls r0, r1
+ adds r3, r0, r2
+ adds r5, r6, 0
+ muls r5, r1
+_0802A91C:
+ movs r2, 0
+ ldrh r1, [r3]
+ mov r0, r12
+ adds r0, 0xC
+ adds r0, r5, r0
+_0802A926:
+ ldrh r7, [r0]
+ cmp r1, r7
+ bne _0802A930
+ cmp r1, 0
+ bne _0802A938
+_0802A930:
+ adds r0, 0x2
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _0802A926
+_0802A938:
+ cmp r2, 0x4
+ bne _0802A944
+ adds r3, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0802A91C
+_0802A944:
+ cmp r4, 0x4
+ bne _0802A8C0
+_0802A948:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0802A94E:
+ ldr r0, _0802A98C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bcc _0802A8F2
+_0802A956:
+ ldr r0, _0802A98C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r6, r0
+ bne _0802A978
+_0802A95E:
+ ldr r3, _0802A990 @ =gUnknown_02024C10
+ 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]
+_0802A978:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A984: .4byte gUnknown_02024C07
+_0802A988: .4byte gBattleMons
+_0802A98C: .4byte gUnknown_02024A68
+_0802A990: .4byte gUnknown_02024C10
+ thumb_func_end atkDB_imprisoneffect
+
+ thumb_func_start atkDC_setgrudge
+atkDC_setgrudge: @ 802A994
+ push {lr}
+ ldr r1, _0802A9CC @ =gUnknown_02024C98
+ ldr r0, _0802A9D0 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 7
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _0802A9D8
+ ldr r3, _0802A9D4 @ =gUnknown_02024C10
+ 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 _0802A9E4
+ .align 2, 0
+_0802A9CC: .4byte gUnknown_02024C98
+_0802A9D0: .4byte gUnknown_02024C07
+_0802A9D4: .4byte gUnknown_02024C10
+_0802A9D8:
+ orrs r1, r3
+ str r1, [r2]
+ ldr r1, _0802A9E8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802A9E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802A9E8: .4byte gUnknown_02024C10
+ thumb_func_end atkDC_setgrudge
+
+ thumb_func_start atkDD_weightdamagecalculation
+atkDD_weightdamagecalculation: @ 802A9EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r2, _0802AA50 @ =gWeightDamage
+ ldrh r0, [r2]
+ ldr r1, _0802AA54 @ =0x0000ffff
+ cmp r0, r1
+ beq _0802AA64
+ adds r6, r2, 0
+ ldr r0, _0802AA58 @ =gBattleMons
+ mov r8, r0
+ adds r7, r1, 0
+ adds r4, r6, 0
+_0802AA08:
+ ldr r0, _0802AA5C @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r8
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D54
+ ldrh r1, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bhi _0802AA36
+ adds r4, 0x4
+ adds r5, 0x2
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _0802AA08
+_0802AA36:
+ lsls r0, r5, 1
+ adds r0, r6
+ ldrh r1, [r0]
+ ldr r0, _0802AA54 @ =0x0000ffff
+ cmp r1, r0
+ beq _0802AA64
+ ldr r0, _0802AA60 @ =gUnknown_02024DEC
+ adds r1, r5, 0x1
+ lsls r1, 1
+ adds r1, r6
+ ldrh r1, [r1]
+ strh r1, [r0]
+ b _0802AA6A
+ .align 2, 0
+_0802AA50: .4byte gWeightDamage
+_0802AA54: .4byte 0x0000ffff
+_0802AA58: .4byte gBattleMons
+_0802AA5C: .4byte gUnknown_02024C08
+_0802AA60: .4byte gUnknown_02024DEC
+_0802AA64:
+ ldr r1, _0802AA7C @ =gUnknown_02024DEC
+ movs r0, 0x78
+ strh r0, [r1]
+_0802AA6A:
+ ldr r1, _0802AA80 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AA7C: .4byte gUnknown_02024DEC
+_0802AA80: .4byte gUnknown_02024C10
+ thumb_func_end atkDD_weightdamagecalculation
+
+ thumb_func_start atkDE_asistattackselect
+atkDE_asistattackselect: @ 802AA84
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r10, r0
+ ldr r0, _0802AB9C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ ldr r0, _0802ABA0 @ =gPlayerParty
+ str r0, [sp]
+ cmp r1, 0
+ beq _0802AAAC
+ ldr r1, _0802ABA4 @ =gEnemyParty
+ str r1, [sp]
+_0802AAAC:
+ movs r2, 0
+_0802AAAE:
+ ldr r1, _0802ABA8 @ =gUnknown_02024A6A
+ ldr r0, _0802AB9C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ adds r1, r2, 0x1
+ str r1, [sp, 0x4]
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0802AB54
+ movs r0, 0x64
+ adds r6, r2, 0
+ muls r6, r0
+ ldr r0, [sp]
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _0802AB54
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0802AB54
+ movs r5, 0
+ ldr r1, _0802ABAC @ =0x0000ffff
+ mov r8, r1
+ mov r9, r6
+ mov r1, r10
+ lsls r0, r1, 1
+ ldr r1, _0802ABB0 @ =0x02016024
+ adds r6, r0, r1
+_0802AAF8:
+ movs r7, 0
+ adds r1, r5, 0
+ adds r1, 0xD
+ ldr r0, [sp]
+ add r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_802838C
+ lsls r0, 24
+ adds r1, r5, 0x1
+ cmp r0, 0
+ bne _0802AB4E
+ ldr r0, _0802ABB4 @ =gUnknown_081FACFE
+ ldrh r2, [r0]
+ adds r3, r0, 0
+ cmp r2, r8
+ beq _0802AB42
+ cmp r4, r2
+ beq _0802AB38
+ ldr r5, _0802ABAC @ =0x0000ffff
+ adds r2, r3, 0
+_0802AB2A:
+ adds r2, 0x2
+ adds r7, 0x1
+ ldrh r0, [r2]
+ cmp r0, r5
+ beq _0802AB42
+ cmp r4, r0
+ bne _0802AB2A
+_0802AB38:
+ lsls r0, r7, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r8
+ bne _0802AB4E
+_0802AB42:
+ cmp r4, 0
+ beq _0802AB4E
+ strh r4, [r6]
+ adds r6, 0x2
+ movs r0, 0x1
+ add r10, r0
+_0802AB4E:
+ adds r5, r1, 0
+ cmp r5, 0x3
+ ble _0802AAF8
+_0802AB54:
+ ldr r2, [sp, 0x4]
+ cmp r2, 0x5
+ ble _0802AAAE
+ mov r1, r10
+ cmp r1, 0
+ beq _0802ABCC
+ ldr r2, _0802ABB8 @ =gUnknown_02024C6C
+ ldr r0, [r2]
+ ldr r1, _0802ABBC @ =0xfffffbff
+ ands r0, r1
+ str r0, [r2]
+ ldr r4, _0802ABC0 @ =gUnknown_02024BEA
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ mov r0, r10
+ muls r0, r1
+ asrs r0, 8
+ lsls r0, 1
+ ldr r1, _0802ABB0 @ =0x02016024
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0
+ bl sub_801B5C0
+ ldr r1, _0802ABC4 @ =gUnknown_02024C08
+ strb r0, [r1]
+ ldr r1, _0802ABC8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802ABE6
+ .align 2, 0
+_0802AB9C: .4byte gUnknown_02024C07
+_0802ABA0: .4byte gPlayerParty
+_0802ABA4: .4byte gEnemyParty
+_0802ABA8: .4byte gUnknown_02024A6A
+_0802ABAC: .4byte 0x0000ffff
+_0802ABB0: .4byte 0x02016024
+_0802ABB4: .4byte gUnknown_081FACFE
+_0802ABB8: .4byte gUnknown_02024C6C
+_0802ABBC: .4byte 0xfffffbff
+_0802ABC0: .4byte gUnknown_02024BEA
+_0802ABC4: .4byte gUnknown_02024C08
+_0802ABC8: .4byte gUnknown_02024C10
+_0802ABCC:
+ ldr r3, _0802ABF8 @ =gUnknown_02024C10
+ 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]
+_0802ABE6:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ABF8: .4byte gUnknown_02024C10
+ thumb_func_end atkDE_asistattackselect
+
+ thumb_func_start atkDF_setmagiccoat
+atkDF_setmagiccoat: @ 802ABFC
+ push {lr}
+ ldr r1, _0802AC44 @ =gUnknown_02024C08
+ ldr r3, _0802AC48 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ strb r0, [r1]
+ ldr r2, _0802AC4C @ =gUnknown_02024D68
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0802AC50 @ =gUnknown_02024A7E
+ ldrb r1, [r0]
+ ldr r0, _0802AC54 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0802AC5C
+ ldr r3, _0802AC58 @ =gUnknown_02024C10
+ 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 _0802AC74
+ .align 2, 0
+_0802AC44: .4byte gUnknown_02024C08
+_0802AC48: .4byte gUnknown_02024C07
+_0802AC4C: .4byte gUnknown_02024D68
+_0802AC50: .4byte gUnknown_02024A7E
+_0802AC54: .4byte gUnknown_02024A68
+_0802AC58: .4byte gUnknown_02024C10
+_0802AC5C:
+ ldr r0, _0802AC78 @ =gUnknown_02024D28
+ ldrb r1, [r3]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ movs r2, 0x10
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _0802AC7C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802AC74:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AC78: .4byte gUnknown_02024D28
+_0802AC7C: .4byte gUnknown_02024C10
+ thumb_func_end atkDF_setmagiccoat
+
+ thumb_func_start atkE0_setstealstatchange
+atkE0_setstealstatchange: @ 802AC80
+ push {lr}
+ ldr r2, _0802ACC4 @ =gUnknown_02024D68
+ ldr r3, _0802ACC8 @ =gUnknown_02024C07
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0802ACCC @ =gUnknown_02024A7E
+ ldrb r1, [r0]
+ ldr r0, _0802ACD0 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _0802ACD8
+ ldr r3, _0802ACD4 @ =gUnknown_02024C10
+ 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 _0802ACEE
+ .align 2, 0
+_0802ACC4: .4byte gUnknown_02024D68
+_0802ACC8: .4byte gUnknown_02024C07
+_0802ACCC: .4byte gUnknown_02024A7E
+_0802ACD0: .4byte gUnknown_02024A68
+_0802ACD4: .4byte gUnknown_02024C10
+_0802ACD8:
+ ldr r0, _0802ACF4 @ =gUnknown_02024D28
+ ldrb r1, [r3]
+ lsls r1, 4
+ adds r1, r0
+ ldrb r0, [r1]
+ orrs r0, r2
+ strb r0, [r1]
+ ldr r1, _0802ACF8 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802ACEE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ACF4: .4byte gUnknown_02024D28
+_0802ACF8: .4byte gUnknown_02024C10
+ thumb_func_end atkE0_setstealstatchange
+
+ thumb_func_start atkE1_802CBE4
+atkE1_802CBE4: @ 802ACFC
+ push {r4-r6,lr}
+ ldr r4, _0802ADA0 @ =0x02000000
+ ldr r1, _0802ADA4 @ =0x000160dd
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ subs r1, 0xDA
+ adds r4, r1
+ strb r0, [r4]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _0802ADA8 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r2]
+ movs r0, 0x9
+ strb r0, [r2, 0x1]
+ ldr r3, _0802ADAC @ =gBattleMons
+ ldrb r1, [r4]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r3
+ adds r0, 0x20
+ ldrb r0, [r0]
+ strb r0, [r2, 0x2]
+ movs r0, 0xFF
+ strb r0, [r2, 0x3]
+ ldr r2, _0802ADB0 @ =gUnknown_02024C08
+ ldr r1, _0802ADB4 @ =gUnknown_02024A68
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802AD84
+ adds r4, r2, 0
+ ldr r6, _0802ADB8 @ =gBitTable
+_0802AD44:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ beq _0802AD66
+ ldr r0, _0802ADBC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r2, _0802ADB4 @ =gUnknown_02024A68
+ cmp r1, 0
+ beq _0802AD7A
+_0802AD66:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _0802ADB4 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r1, 0
+ ldrb r1, [r2]
+ cmp r0, r1
+ bcc _0802AD44
+_0802AD7A:
+ ldr r0, _0802ADB0 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bcc _0802ADC4
+_0802AD84:
+ ldr r3, _0802ADC0 @ =gUnknown_02024C10
+ 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 _0802ADCC
+ .align 2, 0
+_0802ADA0: .4byte 0x02000000
+_0802ADA4: .4byte 0x000160dd
+_0802ADA8: .4byte gUnknown_030041C0
+_0802ADAC: .4byte gBattleMons
+_0802ADB0: .4byte gUnknown_02024C08
+_0802ADB4: .4byte gUnknown_02024A68
+_0802ADB8: .4byte gBitTable
+_0802ADBC: .4byte gUnknown_02024C0C
+_0802ADC0: .4byte gUnknown_02024C10
+_0802ADC4:
+ ldr r1, _0802ADD4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802ADCC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ADD4: .4byte gUnknown_02024C10
+ thumb_func_end atkE1_802CBE4
+
+ thumb_func_start sub_802ADD8
+sub_802ADD8: @ 802ADD8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r6, _0802AE44 @ =gUnknown_02024C10
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r5, _0802AE48 @ =gUnknown_02024A60
+ strb r0, [r5]
+ ldr r4, _0802AE4C @ =gBattleMons
+ ldrb r0, [r5]
+ movs r1, 0x58
+ mov r12, r1
+ mov r1, r12
+ muls r1, r0
+ adds r0, r1, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1E
+ bne _0802AE34
+ adds r4, 0x4C
+ adds r1, r4
+ movs r0, 0
+ str r0, [r1]
+ ldr r2, _0802AE50 @ =gBitTable
+ ldr r1, _0802AE54 @ =0x02000000
+ ldrb r3, [r5]
+ ldr r7, _0802AE58 @ =0x00016064
+ adds r0, r3, r7
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0]
+ mov r0, r12
+ muls r0, r3
+ adds r0, r4
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x28
+ movs r3, 0x4
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+_0802AE34:
+ ldr r0, [r6]
+ adds r0, 0x2
+ str r0, [r6]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AE44: .4byte gUnknown_02024C10
+_0802AE48: .4byte gUnknown_02024A60
+_0802AE4C: .4byte gBattleMons
+_0802AE50: .4byte gBitTable
+_0802AE54: .4byte 0x02000000
+_0802AE58: .4byte 0x00016064
+ thumb_func_end sub_802ADD8
+
+ thumb_func_start atkE3_jumpiffainted
+atkE3_jumpiffainted: @ 802AE5C
+ push {r4,lr}
+ ldr r4, _0802AE98 @ =gUnknown_02024C10
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8015150
+ ldr r1, _0802AE9C @ =gUnknown_02024A60
+ strb r0, [r1]
+ ldr r2, _0802AEA0 @ =gBattleMons
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0, 0x28]
+ cmp r0, 0
+ bne _0802AEA4
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0802AEAA
+ .align 2, 0
+_0802AE98: .4byte gUnknown_02024C10
+_0802AE9C: .4byte gUnknown_02024A60
+_0802AEA0: .4byte gBattleMons
+_0802AEA4:
+ ldr r0, [r4]
+ adds r0, 0x6
+ str r0, [r4]
+_0802AEAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end atkE3_jumpiffainted
+
+ thumb_func_start sub_802AEB0
+sub_802AEB0: @ 802AEB0
+ push {lr}
+ ldr r0, _0802AEC4 @ =gUnknown_0300428C
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bhi _0802AF4C
+ lsls r0, 2
+ ldr r1, _0802AEC8 @ =_0802AECC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802AEC4: .4byte gUnknown_0300428C
+_0802AEC8: .4byte _0802AECC
+ .align 2, 0
+_0802AECC:
+ .4byte _0802AEEC
+ .4byte _0802AEF8
+ .4byte _0802AF04
+ .4byte _0802AF10
+ .4byte _0802AF1C
+ .4byte _0802AF28
+ .4byte _0802AF34
+ .4byte _0802AF40
+_0802AEEC:
+ ldr r1, _0802AEF4 @ =gUnknown_02024D1E
+ movs r0, 0x2
+ b _0802AF50
+ .align 2, 0
+_0802AEF4: .4byte gUnknown_02024D1E
+_0802AEF8:
+ ldr r1, _0802AF00 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ b _0802AF50
+ .align 2, 0
+_0802AF00: .4byte gUnknown_02024D1E
+_0802AF04:
+ ldr r1, _0802AF0C @ =gUnknown_02024D1E
+ movs r0, 0x1B
+ b _0802AF50
+ .align 2, 0
+_0802AF0C: .4byte gUnknown_02024D1E
+_0802AF10:
+ ldr r1, _0802AF18 @ =gUnknown_02024D1E
+ movs r0, 0x17
+ b _0802AF50
+ .align 2, 0
+_0802AF18: .4byte gUnknown_02024D1E
+_0802AF1C:
+ ldr r1, _0802AF24 @ =gUnknown_02024D1E
+ movs r0, 0x16
+ b _0802AF50
+ .align 2, 0
+_0802AF24: .4byte gUnknown_02024D1E
+_0802AF28:
+ ldr r1, _0802AF30 @ =gUnknown_02024D1E
+ movs r0, 0x18
+ b _0802AF50
+ .align 2, 0
+_0802AF30: .4byte gUnknown_02024D1E
+_0802AF34:
+ ldr r1, _0802AF3C @ =gUnknown_02024D1E
+ movs r0, 0x7
+ b _0802AF50
+ .align 2, 0
+_0802AF3C: .4byte gUnknown_02024D1E
+_0802AF40:
+ ldr r1, _0802AF48 @ =gUnknown_02024D1E
+ movs r0, 0x8
+ b _0802AF50
+ .align 2, 0
+_0802AF48: .4byte gUnknown_02024D1E
+_0802AF4C:
+ ldr r1, _0802AF60 @ =gUnknown_02024D1E
+ movs r0, 0x5
+_0802AF50:
+ strb r0, [r1, 0x3]
+ ldr r1, _0802AF64 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802AF60: .4byte gUnknown_02024D1E
+_0802AF64: .4byte gUnknown_02024C10
+ thumb_func_end sub_802AEB0
+
+ thumb_func_start sub_802AF68
+sub_802AF68: @ 802AF68
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r7, 0
+ ldr r0, _0802AFB4 @ =gBaseStats
+ mov r9, r0
+ ldr r1, _0802AFB8 @ =gPickupItems
+ mov r8, r1
+_0802AF7A:
+ movs r0, 0x64
+ adds r4, r7, 0
+ muls r4, r0
+ ldr r0, _0802AFBC @ =gPlayerParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _0802AFC0
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x17]
+ b _0802AFCA
+ .align 2, 0
+_0802AFB4: .4byte gBaseStats
+_0802AFB8: .4byte gPickupItems
+_0802AFBC: .4byte gPlayerParty
+_0802AFC0:
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x16]
+_0802AFCA:
+ adds r4, r7, 0x1
+ cmp r0, 0x35
+ bne _0802B032
+ cmp r5, 0
+ beq _0802B032
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ beq _0802B032
+ cmp r6, 0
+ bne _0802B032
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0802B032
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ mov r1, r8
+ ldrh r0, [r1, 0x2]
+ cmp r0, r3
+ bgt _0802B020
+ adds r1, 0x2
+_0802B012:
+ adds r1, 0x4
+ adds r2, 0x2
+ cmp r2, 0x11
+ bgt _0802B020
+ ldrh r0, [r1]
+ cmp r0, r3
+ ble _0802B012
+_0802B020:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, _0802B04C @ =gPlayerParty
+ adds r0, r1
+ lsls r2, 1
+ add r2, r8
+ movs r1, 0xC
+ bl SetMonData
+_0802B032:
+ adds r7, r4, 0
+ cmp r7, 0x5
+ ble _0802AF7A
+ ldr r1, _0802B050 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B04C: .4byte gPlayerParty
+_0802B050: .4byte gUnknown_02024C10
+ thumb_func_end sub_802AF68
+
+ thumb_func_start atkE6_castform_transform
+atkE6_castform_transform: @ 802B054
+ push {r4,lr}
+ ldr r4, _0802B0A8 @ =gUnknown_02024A60
+ ldr r3, _0802B0AC @ =0x02000000
+ ldr r1, _0802B0B0 @ =0x00016003
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ strb r0, [r4]
+ ldr r1, _0802B0B4 @ =gBattleMons
+ ldrb r2, [r4]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 17
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B086
+ ldr r0, _0802B0B8 @ =0x0001609b
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+_0802B086:
+ ldr r1, _0802B0B8 @ =0x0001609b
+ adds r0, r3, r1
+ ldrb r2, [r0]
+ movs r0, 0
+ movs r1, 0
+ bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim
+ ldrb r0, [r4]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B0BC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B0A8: .4byte gUnknown_02024A60
+_0802B0AC: .4byte 0x02000000
+_0802B0B0: .4byte 0x00016003
+_0802B0B4: .4byte gBattleMons
+_0802B0B8: .4byte 0x0001609b
+_0802B0BC: .4byte gUnknown_02024C10
+ thumb_func_end atkE6_castform_transform
+
+ thumb_func_start atkE7_castform_switch
+atkE7_castform_switch: @ 802B0C0
+ push {r4,r5,lr}
+ ldr r1, _0802B0F4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ ldr r5, _0802B0F8 @ =0x02000000
+ ldr r1, _0802B0FC @ =0x00016003
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl castform_switch
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0802B0EC
+ ldr r0, _0802B100 @ =gUnknown_081D977D
+ bl b_push_move_exec
+ subs r1, r4, 0x1
+ ldr r2, _0802B104 @ =0x0001609b
+ adds r0, r5, r2
+ strb r1, [r0]
+_0802B0EC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B0F4: .4byte gUnknown_02024C10
+_0802B0F8: .4byte 0x02000000
+_0802B0FC: .4byte 0x00016003
+_0802B100: .4byte gUnknown_081D977D
+_0802B104: .4byte 0x0001609b
+ thumb_func_end atkE7_castform_switch
+
+ thumb_func_start atkE8_settypebasedhalvers
+atkE8_settypebasedhalvers: @ 802B108
+ push {r4,lr}
+ movs r4, 0
+ ldr r2, _0802B144 @ =gBattleMoves
+ ldr r0, _0802B148 @ =gUnknown_02024BE6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xC9
+ bne _0802B158
+ ldr r1, _0802B14C @ =gUnknown_02024C98
+ ldr r0, _0802B150 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0802B17C
+ orrs r1, r3
+ str r1, [r2]
+ ldr r0, _0802B154 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ b _0802B180
+ .align 2, 0
+_0802B144: .4byte gBattleMoves
+_0802B148: .4byte gUnknown_02024BE6
+_0802B14C: .4byte gUnknown_02024C98
+_0802B150: .4byte gUnknown_02024C07
+_0802B154: .4byte gUnknown_02024D1E
+_0802B158:
+ ldr r1, _0802B18C @ =gUnknown_02024C98
+ ldr r0, _0802B190 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, [r2]
+ movs r3, 0x80
+ lsls r3, 10
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _0802B17C
+ orrs r1, r3
+ str r1, [r2]
+ ldr r1, _0802B194 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ movs r4, 0x1
+_0802B17C:
+ cmp r4, 0
+ beq _0802B19C
+_0802B180:
+ ldr r1, _0802B198 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802B1B6
+ .align 2, 0
+_0802B18C: .4byte gUnknown_02024C98
+_0802B190: .4byte gUnknown_02024C07
+_0802B194: .4byte gUnknown_02024D1E
+_0802B198: .4byte gUnknown_02024C10
+_0802B19C:
+ ldr r3, _0802B1BC @ =gUnknown_02024C10
+ 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]
+_0802B1B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B1BC: .4byte gUnknown_02024C10
+ thumb_func_end atkE8_settypebasedhalvers
+
+ thumb_func_start sub_802B1C0
+sub_802B1C0: @ 802B1C0
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0xD
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0802B276
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r2, 0x4D
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802B276
+ ldr r3, _0802B218 @ =word_2024DB8
+ ldrb r0, [r3]
+ ldr r2, _0802B21C @ =0x02000000
+ cmp r0, 0
+ beq _0802B202
+ ldr r0, _0802B220 @ =0x0001601f
+ adds r1, r2, r0
+ movs r0, 0x2
+ strb r0, [r1]
+_0802B202:
+ ldrh r1, [r3]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B228
+ ldr r0, _0802B224 @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x8B
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B218: .4byte word_2024DB8
+_0802B21C: .4byte 0x02000000
+_0802B220: .4byte 0x0001601f
+_0802B224: .4byte 0x0001601c
+_0802B228:
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B240
+ ldr r0, _0802B23C @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x85
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B23C: .4byte 0x0001601c
+_0802B240:
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B258
+ ldr r0, _0802B254 @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x8A
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B254: .4byte 0x0001601c
+_0802B258:
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B270
+ ldr r0, _0802B26C @ =0x0001601c
+ adds r1, r2, r0
+ movs r0, 0x8F
+ strb r0, [r1]
+ b _0802B276
+ .align 2, 0
+_0802B26C: .4byte 0x0001601c
+_0802B270:
+ ldr r1, _0802B284 @ =0x0001601c
+ adds r0, r2, r1
+ strb r3, [r0]
+_0802B276:
+ ldr r1, _0802B288 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B284: .4byte 0x0001601c
+_0802B288: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B1C0
+
+ thumb_func_start atkEA_recycleitem
+atkEA_recycleitem: @ 802B28C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r7, _0802B2F0 @ =gUnknown_02024A60
+ ldr r0, _0802B2F4 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r7]
+ ldrb r2, [r7]
+ lsls r1, r2, 1
+ ldr r0, _0802B2F8 @ =0x020160cc
+ adds r6, r1, r0
+ ldrh r5, [r6]
+ cmp r5, 0
+ beq _0802B308
+ ldr r4, _0802B2FC @ =gBattleMons
+ movs r3, 0x58
+ adds r0, r2, 0
+ muls r0, r3
+ adds r0, r4
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ bne _0802B308
+ ldr r1, _0802B300 @ =gUnknown_02024C04
+ strh r5, [r1]
+ strh r0, [r6]
+ ldrb r0, [r7]
+ muls r0, r3
+ adds r0, r4
+ ldrh r1, [r1]
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ muls r0, r3
+ adds r1, r4, 0
+ adds r1, 0x2E
+ adds r0, r1
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x2
+ bl dp01_build_cmdbuf_x02_a_b_varargs
+ ldrb r0, [r7]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B304 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802B322
+ .align 2, 0
+_0802B2F0: .4byte gUnknown_02024A60
+_0802B2F4: .4byte gUnknown_02024C07
+_0802B2F8: .4byte 0x020160cc
+_0802B2FC: .4byte gBattleMons
+_0802B300: .4byte gUnknown_02024C04
+_0802B304: .4byte gUnknown_02024C10
+_0802B308:
+ ldr r3, _0802B32C @ =gUnknown_02024C10
+ 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]
+_0802B322:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B32C: .4byte gUnknown_02024C10
+ thumb_func_end atkEA_recycleitem
+
+ thumb_func_start atkEB_settypetoterrain
+atkEB_settypetoterrain: @ 802B330
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0802B3A0 @ =gBattleMons
+ mov r8, r0
+ ldr r7, _0802B3A4 @ =gUnknown_02024C07
+ ldrb r0, [r7]
+ movs r6, 0x58
+ muls r0, r6
+ mov r1, r8
+ adds r3, r0, r1
+ movs r0, 0x21
+ adds r0, r3
+ mov r12, r0
+ ldr r5, _0802B3A8 @ =gTerrainToType
+ ldr r4, _0802B3AC @ =gUnknown_0300428C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r2, [r0]
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r1, r2, 0
+ cmp r0, r1
+ beq _0802B3B8
+ adds r0, r3, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, r1
+ beq _0802B3B8
+ mov r0, r12
+ strb r2, [r0]
+ ldrb r0, [r7]
+ adds r1, r0, 0
+ muls r1, r6
+ add r1, r8
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ adds r1, 0x22
+ strb r0, [r1]
+ ldr r1, _0802B3B0 @ =gUnknown_030041C0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x3
+ strb r0, [r1, 0x1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1, 0x2]
+ movs r0, 0xFF
+ strb r0, [r1, 0x3]
+ ldr r1, _0802B3B4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802B3D2
+ .align 2, 0
+_0802B3A0: .4byte gBattleMons
+_0802B3A4: .4byte gUnknown_02024C07
+_0802B3A8: .4byte gTerrainToType
+_0802B3AC: .4byte gUnknown_0300428C
+_0802B3B0: .4byte gUnknown_030041C0
+_0802B3B4: .4byte gUnknown_02024C10
+_0802B3B8:
+ ldr r3, _0802B3DC @ =gUnknown_02024C10
+ 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]
+_0802B3D2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B3DC: .4byte gUnknown_02024C10
+ thumb_func_end atkEB_settypetoterrain
+
+ thumb_func_start sub_802B3E0
+sub_802B3E0: @ 802B3E0
+ push {r4,r5,lr}
+ ldr r5, _0802B45C @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r4, _0802B460 @ =gUnknown_02024A60
+ strb r0, [r4]
+ ldr r0, _0802B464 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B490
+ ldr r0, _0802B468 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802B46C @ =gBitTable
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802B490
+ ldr r0, _0802B470 @ =gUnknown_02024C18
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802B490
+ ldr r1, _0802B474 @ =gUnknown_02024C60
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r2, [r0]
+ cmp r2, 0xE4
+ bne _0802B490
+ ldr r0, _0802B478 @ =gUnknown_02024A76
+ adds r0, r3, r0
+ movs r1, 0xB
+ strb r1, [r0]
+ ldr r0, _0802B47C @ =gUnknown_02024BE6
+ strh r2, [r0]
+ ldr r1, _0802B480 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ ldr r1, _0802B484 @ =0x02000000
+ ldr r0, _0802B488 @ =0x00016002
+ adds r2, r1, r0
+ movs r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r5]
+ ldr r2, _0802B48C @ =0x000160a7
+ adds r1, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ strb r0, [r5]
+ b _0802B4AA
+ .align 2, 0
+_0802B45C: .4byte gUnknown_02024C07
+_0802B460: .4byte gUnknown_02024A60
+_0802B464: .4byte gUnknown_020239F8
+_0802B468: .4byte gUnknown_02024C0C
+_0802B46C: .4byte gBitTable
+_0802B470: .4byte gUnknown_02024C18
+_0802B474: .4byte gUnknown_02024C60
+_0802B478: .4byte gUnknown_02024A76
+_0802B47C: .4byte gUnknown_02024BE6
+_0802B480: .4byte gUnknown_02024C10
+_0802B484: .4byte 0x02000000
+_0802B488: .4byte 0x00016002
+_0802B48C: .4byte 0x000160a7
+_0802B490:
+ ldr r3, _0802B4B0 @ =gUnknown_02024C10
+ 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]
+_0802B4AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B4B0: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B3E0
+
+ thumb_func_start sub_802B4B4
+sub_802B4B4: @ 802B4B4
+ push {r4,r5,lr}
+ ldr r1, _0802B4DC @ =gUnknown_02024C0A
+ ldr r3, _0802B4E0 @ =gUnknown_02024C07
+ ldrb r0, [r3]
+ strb r0, [r1]
+ ldr r2, _0802B4E4 @ =gUnknown_02024C08
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r1, 0
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0802B4F0
+ ldr r0, _0802B4E8 @ =0x02000000
+ ldr r5, _0802B4EC @ =0x00016003
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ strb r1, [r2]
+ strb r1, [r3]
+ b _0802B4FA
+ .align 2, 0
+_0802B4DC: .4byte gUnknown_02024C0A
+_0802B4E0: .4byte gUnknown_02024C07
+_0802B4E4: .4byte gUnknown_02024C08
+_0802B4E8: .4byte 0x02000000
+_0802B4EC: .4byte 0x00016003
+_0802B4F0:
+ ldr r0, _0802B510 @ =0x02000000
+ ldr r3, _0802B514 @ =0x00016003
+ adds r1, r0, r3
+ ldrb r1, [r1]
+ strb r1, [r2]
+_0802B4FA:
+ ldrb r1, [r4]
+ ldr r5, _0802B514 @ =0x00016003
+ adds r0, r5
+ strb r1, [r0]
+ ldr r1, _0802B518 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B510: .4byte 0x02000000
+_0802B514: .4byte 0x00016003
+_0802B518: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B4B4
+
+ thumb_func_start sub_802B51C
+sub_802B51C: @ 802B51C
+ push {r4,lr}
+ ldr r0, _0802B56C @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0802B570 @ =gUnknown_02024C80
+ lsls r3, r0, 1
+ adds r0, r3, r0
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0802B544
+ ldrb r2, [r4, 0x1]
+ cmp r2, 0
+ beq _0802B58C
+_0802B544:
+ ldr r2, _0802B574 @ =gUnknown_02024C7A
+ adds r2, r3, r2
+ ldrh r1, [r2]
+ ldr r0, _0802B578 @ =0x0000fffe
+ ands r0, r1
+ movs r3, 0
+ ldr r1, _0802B57C @ =0x0000fffd
+ ands r0, r1
+ strh r0, [r2]
+ strb r3, [r4]
+ strb r3, [r4, 0x1]
+ ldr r0, _0802B580 @ =0x02000000
+ ldr r2, _0802B584 @ =0x00016002
+ adds r1, r0, r2
+ movs r2, 0x1
+ strb r2, [r1]
+ ldr r3, _0802B588 @ =0x000160a1
+ adds r0, r3
+ b _0802B598
+ .align 2, 0
+_0802B56C: .4byte gUnknown_02024C07
+_0802B570: .4byte gUnknown_02024C80
+_0802B574: .4byte gUnknown_02024C7A
+_0802B578: .4byte 0x0000fffe
+_0802B57C: .4byte 0x0000fffd
+_0802B580: .4byte 0x02000000
+_0802B584: .4byte 0x00016002
+_0802B588: .4byte 0x000160a1
+_0802B58C:
+ ldr r0, _0802B5A8 @ =0x02000000
+ ldr r3, _0802B5AC @ =0x00016002
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _0802B5B0 @ =0x000160a1
+ adds r0, r1
+_0802B598:
+ strb r2, [r0]
+ ldr r1, _0802B5B4 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B5A8: .4byte 0x02000000
+_0802B5AC: .4byte 0x00016002
+_0802B5B0: .4byte 0x000160a1
+_0802B5B4: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B51C
+
+ thumb_func_start sub_802B5B8
+sub_802B5B8: @ 802B5B8
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r0, _0802B5F8 @ =gUnknown_02024A64
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _0802B5C6
+ b _0802B94E
+_0802B5C6:
+ ldr r5, _0802B5FC @ =gUnknown_02024A60
+ ldr r0, _0802B600 @ =gUnknown_02024C07
+ ldrb r0, [r0]
+ strb r0, [r5]
+ ldr r6, _0802B604 @ =gUnknown_02024C08
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r6]
+ ldr r0, _0802B608 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B614
+ movs r0, 0
+ movs r1, 0x5
+ bl dp01_build_cmdbuf_x0D_a
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B60C @ =gUnknown_02024C10
+ ldr r0, _0802B610 @ =gUnknown_081D9F35
+ b _0802B94C
+ .align 2, 0
+_0802B5F8: .4byte gUnknown_02024A64
+_0802B5FC: .4byte gUnknown_02024A60
+_0802B600: .4byte gUnknown_02024C07
+_0802B604: .4byte gUnknown_02024C08
+_0802B608: .4byte gUnknown_020239F8
+_0802B60C: .4byte gUnknown_02024C10
+_0802B610: .4byte gUnknown_081D9F35
+_0802B614:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802B63C
+ movs r0, 0
+ movs r1, 0x4
+ bl dp01_build_cmdbuf_x0D_a
+ ldrb r0, [r5]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B634 @ =gUnknown_02024C10
+ ldr r0, _0802B638 @ =gUnknown_081D9F00
+ b _0802B94C
+ .align 2, 0
+_0802B634: .4byte gUnknown_02024C10
+_0802B638: .4byte gUnknown_081D9F00
+_0802B63C:
+ ldr r0, _0802B660 @ =gUnknown_02024C04
+ ldrh r0, [r0]
+ cmp r0, 0x5
+ bne _0802B66C
+ ldr r0, _0802B664 @ =0x02000000
+ ldr r1, _0802B668 @ =0x00016089
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r0, r1, 8
+ subs r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _0802B684
+ .align 2, 0
+_0802B660: .4byte gUnknown_02024C04
+_0802B664: .4byte 0x02000000
+_0802B668: .4byte 0x00016089
+_0802B66C:
+ ldr r3, _0802B6A0 @ =gBaseStats
+ ldr r2, _0802B6A4 @ =gBattleMons
+ ldrb r1, [r6]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r5, [r0, 0x8]
+_0802B684:
+ ldr r2, _0802B6A8 @ =gUnknown_02024C04
+ ldrh r0, [r2]
+ cmp r0, 0x5
+ bhi _0802B68E
+ b _0802B784
+_0802B68E:
+ subs r0, 0x6
+ cmp r0, 0x6
+ bls _0802B696
+ b _0802B78E
+_0802B696:
+ lsls r0, 2
+ ldr r1, _0802B6AC @ =_0802B6B0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802B6A0: .4byte gBaseStats
+_0802B6A4: .4byte gBattleMons
+_0802B6A8: .4byte gUnknown_02024C04
+_0802B6AC: .4byte _0802B6B0
+ .align 2, 0
+_0802B6B0:
+ .4byte _0802B6CC
+ .4byte _0802B6FC
+ .4byte _0802B70E
+ .4byte _0802B73C
+ .4byte _0802B76C
+ .4byte _0802B72E
+ .4byte _0802B72E
+_0802B6CC:
+ ldr r2, _0802B6F4 @ =gBattleMons
+ ldr r0, _0802B6F8 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r1, r0, 0
+ adds r1, 0x21
+ ldrb r1, [r1]
+ cmp r1, 0xB
+ beq _0802B760
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0xB
+ beq _0802B760
+ cmp r1, 0x6
+ beq _0802B760
+ cmp r0, 0x6
+ beq _0802B760
+ b _0802B72E
+ .align 2, 0
+_0802B6F4: .4byte gBattleMons
+_0802B6F8: .4byte gUnknown_02024C08
+_0802B6FC:
+ bl sav1_map_get_light_level
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0xA
+ cmp r0, 0x5
+ bne _0802B78E
+ movs r4, 0x23
+ b _0802B78E
+_0802B70E:
+ ldr r2, _0802B734 @ =gBattleMons
+ ldr r0, _0802B738 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x2A
+ ldrb r1, [r0]
+ cmp r1, 0x27
+ bhi _0802B72E
+ movs r0, 0x28
+ subs r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bhi _0802B78E
+_0802B72E:
+ movs r4, 0xA
+ b _0802B78E
+ .align 2, 0
+_0802B734: .4byte gBattleMons
+_0802B738: .4byte gUnknown_02024C08
+_0802B73C:
+ ldr r2, _0802B764 @ =gBattleMons
+ ldr r0, _0802B768 @ =gUnknown_02024C08
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ movs r4, 0xA
+ cmp r0, 0
+ beq _0802B78E
+_0802B760:
+ movs r4, 0x1E
+ b _0802B78E
+ .align 2, 0
+_0802B764: .4byte gBattleMons
+_0802B768: .4byte gUnknown_02024C08
+_0802B76C:
+ ldr r0, _0802B780 @ =gUnknown_030042E0
+ ldrb r0, [r0, 0x13]
+ adds r0, 0xA
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x28
+ bls _0802B78E
+ movs r4, 0x28
+ b _0802B78E
+ .align 2, 0
+_0802B780: .4byte gUnknown_030042E0
+_0802B784:
+ ldr r1, _0802B7F4 @ =gBallCatchBonuses
+ ldrh r0, [r2]
+ subs r0, 0x2
+ adds r0, r1
+ ldrb r4, [r0]
+_0802B78E:
+ adds r0, r5, 0
+ muls r0, r4
+ movs r1, 0xA
+ bl __divsi3
+ ldr r5, _0802B7F8 @ =gBattleMons
+ ldr r1, _0802B7FC @ =gUnknown_02024C08
+ ldrb r1, [r1]
+ movs r7, 0x58
+ adds r4, r1, 0
+ muls r4, r7
+ adds r3, r4, r5
+ ldrh r2, [r3, 0x2C]
+ lsls r1, r2, 1
+ adds r1, r2
+ ldrh r2, [r3, 0x28]
+ lsls r2, 1
+ subs r2, r1, r2
+ muls r0, r2
+ bl __divsi3
+ adds r6, r0, 0
+ adds r5, 0x4C
+ adds r4, r5
+ ldr r4, [r4]
+ movs r0, 0x27
+ ands r0, r4
+ cmp r0, 0
+ beq _0802B7CA
+ lsls r6, 1
+_0802B7CA:
+ ands r4, r7
+ cmp r4, 0
+ beq _0802B7DC
+ lsls r0, r6, 4
+ subs r0, r6
+ movs r1, 0xA
+ bl __udivsi3
+ adds r6, r0, 0
+_0802B7DC:
+ ldr r1, _0802B800 @ =gUnknown_02024C04
+ ldrh r0, [r1]
+ cmp r0, 0x5
+ beq _0802B81C
+ cmp r0, 0x1
+ bne _0802B808
+ ldr r0, _0802B804 @ =gUnknown_030042E0
+ ldrb r1, [r0, 0x5]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ b _0802B81C
+ .align 2, 0
+_0802B7F4: .4byte gBallCatchBonuses
+_0802B7F8: .4byte gBattleMons
+_0802B7FC: .4byte gUnknown_02024C08
+_0802B800: .4byte gUnknown_02024C04
+_0802B804: .4byte gUnknown_030042E0
+_0802B808:
+ ldr r0, _0802B860 @ =gUnknown_030042E0
+ ldrh r1, [r1]
+ adds r0, r1
+ adds r1, r0, 0
+ adds r1, 0x34
+ ldrb r0, [r1]
+ cmp r0, 0xFE
+ bhi _0802B81C
+ adds r0, 0x1
+ strb r0, [r1]
+_0802B81C:
+ cmp r6, 0xFE
+ bls _0802B880
+ movs r0, 0
+ movs r1, 0x4
+ bl dp01_build_cmdbuf_x0D_a
+ ldr r0, _0802B864 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ ldr r1, _0802B868 @ =gUnknown_02024C10
+ ldr r0, _0802B86C @ =gUnknown_081D9EC2
+ str r0, [r1]
+ ldr r1, _0802B870 @ =gUnknown_02024A6A
+ ldr r0, _0802B874 @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802B878 @ =gEnemyParty
+ adds r0, r1
+ ldr r2, _0802B87C @ =gUnknown_02024C04
+ movs r1, 0x26
+ bl SetMonData
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _0802B90E
+ b _0802B938
+ .align 2, 0
+_0802B860: .4byte gUnknown_030042E0
+_0802B864: .4byte gUnknown_02024A60
+_0802B868: .4byte gUnknown_02024C10
+_0802B86C: .4byte gUnknown_081D9EC2
+_0802B870: .4byte gUnknown_02024A6A
+_0802B874: .4byte gUnknown_02024C08
+_0802B878: .4byte gEnemyParty
+_0802B87C: .4byte gUnknown_02024C04
+_0802B880:
+ movs r0, 0xFF
+ lsls r0, 16
+ adds r1, r6, 0
+ bl __udivsi3
+ bl Sqrt
+ lsls r0, 16
+ lsrs r0, 16
+ bl Sqrt
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _0802B8A8 @ =0x000ffff0
+ adds r1, r6, 0
+ bl __udivsi3
+ adds r6, r0, 0
+ movs r4, 0
+ b _0802B8B2
+ .align 2, 0
+_0802B8A8: .4byte 0x000ffff0
+_0802B8AC:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0802B8B2:
+ cmp r4, 0x3
+ bhi _0802B8C2
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r6
+ bcc _0802B8AC
+_0802B8C2:
+ ldr r5, _0802B918 @ =gUnknown_02024C04
+ ldrh r0, [r5]
+ cmp r0, 0x1
+ bne _0802B8CC
+ movs r4, 0x4
+_0802B8CC:
+ movs r0, 0
+ adds r1, r4, 0
+ bl dp01_build_cmdbuf_x0D_a
+ ldr r0, _0802B91C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl dp01_battle_side_mark_buffer_for_execution
+ cmp r4, 0x4
+ bne _0802B944
+ ldr r1, _0802B920 @ =gUnknown_02024C10
+ ldr r0, _0802B924 @ =gUnknown_081D9EC2
+ str r0, [r1]
+ ldr r1, _0802B928 @ =gUnknown_02024A6A
+ ldr r0, _0802B92C @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802B930 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ adds r2, r5, 0
+ bl SetMonData
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _0802B938
+_0802B90E:
+ ldr r1, _0802B934 @ =gUnknown_02024D1E
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ b _0802B94E
+ .align 2, 0
+_0802B918: .4byte gUnknown_02024C04
+_0802B91C: .4byte gUnknown_02024A60
+_0802B920: .4byte gUnknown_02024C10
+_0802B924: .4byte gUnknown_081D9EC2
+_0802B928: .4byte gUnknown_02024A6A
+_0802B92C: .4byte gUnknown_02024C08
+_0802B930: .4byte gEnemyParty
+_0802B934: .4byte gUnknown_02024D1E
+_0802B938:
+ ldr r1, _0802B940 @ =gUnknown_02024D1E
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0802B94E
+ .align 2, 0
+_0802B940: .4byte gUnknown_02024D1E
+_0802B944:
+ ldr r0, _0802B954 @ =gUnknown_02024D1E
+ strb r4, [r0, 0x5]
+ ldr r1, _0802B958 @ =gUnknown_02024C10
+ ldr r0, _0802B95C @ =gUnknown_081D9F0A
+_0802B94C:
+ str r0, [r1]
+_0802B94E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B954: .4byte gUnknown_02024D1E
+_0802B958: .4byte gUnknown_02024C10
+_0802B95C: .4byte gUnknown_081D9F0A
+ thumb_func_end sub_802B5B8
+
+ thumb_func_start sub_802B960
+sub_802B960: @ 802B960
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r0, _0802B9C8 @ =gUnknown_02024A6A
+ mov r9, r0
+ ldr r5, _0802B9CC @ =gUnknown_02024C07
+ ldrb r0, [r5]
+ movs r4, 0x1
+ eors r0, r4
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r8, r1
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r6, _0802B9D0 @ =gEnemyParty
+ adds r0, r6
+ bl GiveMonToPlayer
+ ldr r2, _0802B9D4 @ =gUnknown_030042E0
+ ldr r1, _0802B9D8 @ =gBattleMons
+ ldrb r0, [r5]
+ eors r4, r0
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0x28]
+ lsls r4, 1
+ add r4, r9
+ ldrh r0, [r4]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ adds r2, 0x2A
+ movs r1, 0x2
+ bl GetMonData
+ ldr r1, _0802B9DC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802B9C8: .4byte gUnknown_02024A6A
+_0802B9CC: .4byte gUnknown_02024C07
+_0802B9D0: .4byte gEnemyParty
+_0802B9D4: .4byte gUnknown_030042E0
+_0802B9D8: .4byte gBattleMons
+_0802B9DC: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B960
+
+ thumb_func_start sub_802B9E0
+sub_802B9E0: @ 802B9E0
+ push {r4-r6,lr}
+ ldr r4, _0802BA20 @ =gBattleMons
+ ldr r6, _0802BA24 @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802BA2C
+ ldr r3, _0802BA28 @ =gUnknown_02024C10
+ 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 _0802BA82
+ .align 2, 0
+_0802BA20: .4byte gBattleMons
+_0802BA24: .4byte gUnknown_02024C08
+_0802BA28: .4byte gUnknown_02024C10
+_0802BA2C:
+ ldrb r0, [r6]
+ muls r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r2, r4
+ ldrh r0, [r0]
+ cmp r0, 0xC9
+ bne _0802BA5C
+ ldr r0, _0802BA88 @ =gSaveBlock2
+ adds r1, r4, 0
+ adds r1, 0x48
+ adds r1, r2, r1
+ ldr r1, [r1]
+ str r1, [r0, 0x1C]
+_0802BA5C:
+ ldrb r0, [r6]
+ adds r2, r0, 0
+ muls r2, r5
+ adds r0, r2, r4
+ ldrh r1, [r0]
+ movs r0, 0x9A
+ lsls r0, 1
+ cmp r1, r0
+ bne _0802BA7A
+ ldr r0, _0802BA88 @ =gSaveBlock2
+ adds r1, r4, 0
+ adds r1, 0x48
+ adds r1, r2, r1
+ ldr r1, [r1]
+ str r1, [r0, 0x20]
+_0802BA7A:
+ ldr r1, _0802BA8C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0802BA82:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BA88: .4byte gSaveBlock2
+_0802BA8C: .4byte gUnknown_02024C10
+ thumb_func_end sub_802B9E0
+
+ thumb_func_start sub_802BA90
+sub_802BA90: @ 802BA90
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r7, _0802BAA8 @ =gUnknown_02024D1E
+ ldrb r1, [r7]
+ cmp r1, 0x1
+ beq _0802BAC6
+ cmp r1, 0x1
+ bgt _0802BAAC
+ cmp r1, 0
+ beq _0802BAB8
+ b _0802BBC4
+ .align 2, 0
+_0802BAA8: .4byte gUnknown_02024D1E
+_0802BAAC:
+ cmp r1, 0x2
+ beq _0802BB10
+ cmp r1, 0x3
+ bne _0802BAB6
+ b _0802BBB0
+_0802BAB6:
+ b _0802BBC4
+_0802BAB8:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ b _0802BB6E
+_0802BAC6:
+ ldr r0, _0802BB04 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BBC4
+ ldr r4, _0802BB08 @ =gBattleMons
+ ldr r6, _0802BB0C @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ movs r5, 0x58
+ muls r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r6]
+ adds r2, r1, 0
+ muls r2, r5
+ adds r1, r4, 0
+ adds r1, 0x54
+ adds r1, r2, r1
+ ldr r1, [r1]
+ adds r4, 0x48
+ adds r2, r4
+ ldr r2, [r2]
+ bl sub_809070C
+ strb r0, [r7, 0x1]
+ b _0802BB72
+ .align 2, 0
+_0802BB04: .4byte gPaletteFade
+_0802BB08: .4byte gBattleMons
+_0802BB0C: .4byte gUnknown_02024C08
+_0802BB10:
+ ldr r0, _0802BB7C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BBC4
+ ldr r0, _0802BB80 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802BB84 @ =sub_800F808
+ cmp r1, r0
+ bne _0802BBC4
+ ldr r2, _0802BB88 @ =gTasks
+ ldrb r1, [r7, 0x1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r4, [r0, 0x4]
+ cmp r4, 0
+ bne _0802BBC4
+ ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building
+ ldr r1, _0802BB90 @ =0x06008000
+ bl LZDecompressVram
+ ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building
+ ldr r1, _0802BB98 @ =0x0600d000
+ bl LZDecompressVram
+ ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r1, _0802BBA0 @ =REG_BG3CNT
+ ldr r2, _0802BBA4 @ =0x00005a0b
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0802BBA8 @ =gUnknown_030041B0
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0802BBAC @ =0x0000fffc
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+_0802BB6E:
+ bl BeginNormalPaletteFade
+_0802BB72:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ b _0802BBC4
+ .align 2, 0
+_0802BB7C: .4byte gPaletteFade
+_0802BB80: .4byte gMain
+_0802BB84: .4byte sub_800F808
+_0802BB88: .4byte gTasks
+_0802BB8C: .4byte gBattleTerrainTiles_Building
+_0802BB90: .4byte 0x06008000
+_0802BB94: .4byte gBattleTerrainTilemap_Building
+_0802BB98: .4byte 0x0600d000
+_0802BB9C: .4byte gBattleTerrainPalette_BattleTower
+_0802BBA0: .4byte REG_BG3CNT
+_0802BBA4: .4byte 0x00005a0b
+_0802BBA8: .4byte gUnknown_030041B0
+_0802BBAC: .4byte 0x0000fffc
+_0802BBB0:
+ ldr r0, _0802BBCC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BBC4
+ ldr r1, _0802BBD0 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+_0802BBC4:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BBCC: .4byte gPaletteFade
+_0802BBD0: .4byte gUnknown_02024C10
+ thumb_func_end sub_802BA90
+
+ thumb_func_start sub_802BBD4
+sub_802BBD4: @ 802BBD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r12, r1
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r8, r4
+ mov r2, r12
+ cmp r2, r7
+ bgt _0802BC5A
+ lsls r1, r6, 1
+ ldr r0, _0802BC20 @ =0x0600c000
+ adds r1, r0
+ mov r9, r1
+_0802BC06:
+ adds r1, r6, 0
+ adds r0, r2, 0x1
+ mov r10, r0
+ cmp r1, r5
+ bgt _0802BC54
+ lsls r0, r2, 6
+ mov r4, r9
+ adds r3, r4, r0
+_0802BC16:
+ cmp r2, r12
+ bne _0802BC28
+ ldr r0, _0802BC24 @ =0x00001022
+ b _0802BC36
+ .align 2, 0
+_0802BC20: .4byte 0x0600c000
+_0802BC24: .4byte 0x00001022
+_0802BC28:
+ cmp r2, r7
+ bne _0802BC34
+ ldr r0, _0802BC30 @ =0x00001028
+ b _0802BC36
+ .align 2, 0
+_0802BC30: .4byte 0x00001028
+_0802BC34:
+ ldr r0, _0802BC68 @ =0x00001025
+_0802BC36:
+ cmp r1, r6
+ beq _0802BC42
+ adds r0, 0x1
+ cmp r1, r5
+ bne _0802BC42
+ adds r0, 0x1
+_0802BC42:
+ mov r4, r8
+ cmp r4, 0
+ beq _0802BC4A
+ movs r0, 0
+_0802BC4A:
+ strh r0, [r3]
+ adds r3, 0x2
+ adds r1, 0x1
+ cmp r1, r5
+ ble _0802BC16
+_0802BC54:
+ mov r2, r10
+ cmp r2, r7
+ ble _0802BC06
+_0802BC5A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BC68: .4byte 0x00001025
+ thumb_func_end sub_802BBD4
+
+ thumb_func_start sub_802BC6C
+sub_802BC6C: @ 802BC6C
+ push {lr}
+ ldr r0, _0802BC88 @ =gUnknown_02024D1E
+ ldrb r1, [r0, 0x1]
+ lsls r1, 28
+ movs r0, 0x90
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xC8
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BC88: .4byte gUnknown_02024D1E
+ thumb_func_end sub_802BC6C
+
+ thumb_func_start nullsub_6
+nullsub_6: @ 802BC8C
+ bx lr
+ thumb_func_end nullsub_6
+
+ thumb_func_start atkF3_receive_new_pokemon_maybe
+atkF3_receive_new_pokemon_maybe: @ 802BC90
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r0, _0802BCB4 @ =gUnknown_02024D1E
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x4
+ bls _0802BCA8
+ b _0802BEDA
+_0802BCA8:
+ lsls r0, r1, 2
+ ldr r1, _0802BCB8 @ =_0802BCBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802BCB4: .4byte gUnknown_02024D1E
+_0802BCB8: .4byte _0802BCBC
+ .align 2, 0
+_0802BCBC:
+ .4byte _0802BCD0
+ .4byte _0802BCEC
+ .4byte _0802BD84
+ .4byte _0802BE50
+ .4byte _0802BEA4
+_0802BCD0:
+ bl sub_8023A80
+ ldr r0, _0802BCE8 @ =gUnknown_02024D1E
+ ldrb r1, [r0]
+ adds r1, 0x1
+ movs r2, 0
+ strb r1, [r0]
+ strb r2, [r0, 0x1]
+ bl sub_802BC6C
+ b _0802BEDA
+ .align 2, 0
+_0802BCE8: .4byte gUnknown_02024D1E
+_0802BCEC:
+ ldr r0, _0802BD60 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD10
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _0802BD10
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_0802BD10:
+ ldr r0, _0802BD60 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD36
+ ldr r4, _0802BD64 @ =gUnknown_02024D1E
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _0802BD36
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_0802BD36:
+ ldr r0, _0802BD60 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD68
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802BD64 @ =gUnknown_02024D1E
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0802BD7A
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ b _0802BEDA
+ .align 2, 0
+_0802BD60: .4byte gMain
+_0802BD64: .4byte gUnknown_02024D1E
+_0802BD68:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BD72
+ b _0802BEDA
+_0802BD72:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802BD80 @ =gUnknown_02024D1E
+_0802BD7A:
+ movs r0, 0x4
+ strb r0, [r1]
+ b _0802BEDA
+ .align 2, 0
+_0802BD80: .4byte gUnknown_02024D1E
+_0802BD84:
+ ldr r0, _0802BE34 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BD92
+ b _0802BEDA
+_0802BD92:
+ ldr r7, _0802BE38 @ =gUnknown_02024A6A
+ ldr r0, _0802BE3C @ =gUnknown_02024C07
+ mov r10, r0
+ ldrb r0, [r0]
+ movs r4, 0x1
+ eors r0, r4
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r1, _0802BE40 @ =gEnemyParty
+ mov r8, r1
+ add r0, r8
+ movs r1, 0x2
+ ldr r2, _0802BE44 @ =0x02016079
+ bl GetMonData
+ mov r1, r10
+ ldrb r0, [r1]
+ eors r0, r4
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ movs r1, 0xB
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ mov r1, r10
+ ldrb r0, [r1]
+ eors r0, r4
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ bl GetMonGender
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, r10
+ ldrb r0, [r1]
+ eors r4, r0
+ lsls r4, 1
+ adds r4, r7
+ ldrh r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ movs r1, 0
+ movs r2, 0
+ bl GetMonData
+ str r0, [sp]
+ ldr r0, _0802BE48 @ =sub_800F808
+ str r0, [sp, 0x4]
+ movs r0, 0x2
+ ldr r1, _0802BE44 @ =0x02016079
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl DoNamingScreen
+ ldr r1, _0802BE4C @ =gUnknown_02024D1E
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0802BEDA
+ .align 2, 0
+_0802BE34: .4byte gPaletteFade
+_0802BE38: .4byte gUnknown_02024A6A
+_0802BE3C: .4byte gUnknown_02024C07
+_0802BE40: .4byte gEnemyParty
+_0802BE44: .4byte 0x02016079
+_0802BE48: .4byte sub_800F808
+_0802BE4C: .4byte gUnknown_02024D1E
+_0802BE50:
+ ldr r0, _0802BE88 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802BE8C @ =sub_800F808
+ cmp r1, r0
+ bne _0802BEDA
+ ldr r0, _0802BE90 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802BEDA
+ ldr r2, _0802BE94 @ =gUnknown_02024A6A
+ ldr r0, _0802BE98 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x1
+ eors r0, r1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802BE9C @ =gEnemyParty
+ adds r0, r1
+ ldr r2, _0802BEA0 @ =0x02016079
+ movs r1, 0x2
+ bl SetMonData
+ b _0802BEC0
+ .align 2, 0
+_0802BE88: .4byte gMain
+_0802BE8C: .4byte sub_800F808
+_0802BE90: .4byte gPaletteFade
+_0802BE94: .4byte gUnknown_02024A6A
+_0802BE98: .4byte gUnknown_02024C07
+_0802BE9C: .4byte gEnemyParty
+_0802BEA0: .4byte 0x02016079
+_0802BEA4:
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _0802BEC0
+ ldr r1, _0802BEBC @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+ b _0802BEDA
+ .align 2, 0
+_0802BEBC: .4byte gUnknown_02024C10
+_0802BEC0:
+ ldr r3, _0802BEEC @ =gUnknown_02024C10
+ 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]
+_0802BEDA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802BEEC: .4byte gUnknown_02024C10
+ thumb_func_end atkF3_receive_new_pokemon_maybe
+
+ thumb_func_start sub_802BEF0
+sub_802BEF0: @ 802BEF0
+ ldr r2, _0802BF10 @ =gBattleMons
+ ldr r0, _0802BF14 @ =gUnknown_02024C07
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldr r0, _0802BF18 @ =gUnknown_02024BEC
+ ldr r2, [r0]
+ ldrh r0, [r1, 0x28]
+ subs r0, r2
+ strh r0, [r1, 0x28]
+ ldr r1, _0802BF1C @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF10: .4byte gBattleMons
+_0802BF14: .4byte gUnknown_02024C07
+_0802BF18: .4byte gUnknown_02024BEC
+_0802BF1C: .4byte gUnknown_02024C10
+ thumb_func_end sub_802BEF0
+
+ thumb_func_start sub_802BF20
+sub_802BF20: @ 802BF20
+ ldr r1, _0802BF3C @ =gBattleMons
+ ldr r0, _0802BF40 @ =gUnknown_02024C07
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x4C
+ adds r0, r1
+ movs r1, 0
+ str r1, [r0]
+ ldr r1, _0802BF44 @ =gUnknown_02024C10
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF3C: .4byte gBattleMons
+_0802BF40: .4byte gUnknown_02024C07
+_0802BF44: .4byte gUnknown_02024C10
+ thumb_func_end sub_802BF20
+
+ thumb_func_start sub_802BF48
+sub_802BF48: @ 802BF48
+ ldr r1, _0802BF50 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF50: .4byte gUnknown_02024A7F
+ thumb_func_end sub_802BF48
+
+ thumb_func_start sub_802BF54
+sub_802BF54: @ 802BF54
+ ldr r1, _0802BF64 @ =gUnknown_02024A7F
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r1, _0802BF68 @ =gUnknown_02024A7E
+ ldr r0, _0802BF6C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF64: .4byte gUnknown_02024A7F
+_0802BF68: .4byte gUnknown_02024A7E
+_0802BF6C: .4byte gUnknown_02024A68
+ thumb_func_end sub_802BF54
+
+ thumb_func_start nullsub_91
+nullsub_91: @ 802BF70
+ bx lr
+ thumb_func_end nullsub_91
+
+ thumb_func_start sub_802BF74
+sub_802BF74: @ 802BF74
+ ldr r1, _0802BF8C @ =gUnknown_03004330
+ ldr r0, _0802BF90 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802BF94 @ =sub_802C014
+ str r1, [r0]
+ ldr r1, _0802BF98 @ =gUnknown_02024E6D
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0802BF8C: .4byte gUnknown_03004330
+_0802BF90: .4byte gUnknown_02024A60
+_0802BF94: .4byte sub_802C014
+_0802BF98: .4byte gUnknown_02024E6D
+ thumb_func_end sub_802BF74
+
+ thumb_func_start dp01_tbl1_exec_completed
+dp01_tbl1_exec_completed: @ 802BF9C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _0802BFDC @ =gUnknown_03004330
+ ldr r4, _0802BFE0 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802BFE4 @ =sub_802C014
+ str r1, [r0]
+ ldr r0, _0802BFE8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802BFF0
+ 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, _0802BFEC @ =gUnknown_02023A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0802C002
+ .align 2, 0
+_0802BFDC: .4byte gUnknown_03004330
+_0802BFE0: .4byte gUnknown_02024A60
+_0802BFE4: .4byte sub_802C014
+_0802BFE8: .4byte gUnknown_020239F8
+_0802BFEC: .4byte gUnknown_02023A60
+_0802BFF0:
+ ldr r2, _0802C00C @ =gUnknown_02024A64
+ ldr r1, _0802C010 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0802C002:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C00C: .4byte gUnknown_02024A64
+_0802C010: .4byte gBitTable
+ thumb_func_end dp01_tbl1_exec_completed
+
+ thumb_func_start sub_802C014
+sub_802C014: @ 802C014
+ push {lr}
+ ldr r2, _0802C048 @ =gUnknown_02024A64
+ ldr r1, _0802C04C @ =gBitTable
+ ldr r0, _0802C050 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0802C060
+ ldr r0, _0802C054 @ =gUnknown_02023A60
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0802C05C
+ ldr r0, _0802C058 @ =gUnknown_081FAD98
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _0802C060
+ .align 2, 0
+_0802C048: .4byte gUnknown_02024A64
+_0802C04C: .4byte gBitTable
+_0802C050: .4byte gUnknown_02024A60
+_0802C054: .4byte gUnknown_02023A60
+_0802C058: .4byte gUnknown_081FAD98
+_0802C05C:
+ bl dp01_tbl1_exec_completed
+_0802C060:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802C014
+
+ thumb_func_start bx_0802E404
+bx_0802E404: @ 802C064
+ push {lr}
+ ldr r2, _0802C08C @ =gSprites
+ ldr r1, _0802C090 @ =gUnknown_02024BE0
+ ldr r0, _0802C094 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0802C086
+ bl dp01_tbl1_exec_completed
+_0802C086:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C08C: .4byte gSprites
+_0802C090: .4byte gUnknown_02024BE0
+_0802C094: .4byte gUnknown_02024A60
+ thumb_func_end bx_0802E404
+
+ thumb_func_start sub_802C098
+sub_802C098: @ 802C098
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _0802C0FC @ =gUnknown_02023A60
+ ldr r4, _0802C100 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r2, r0, 9
+ adds r1, r7, 0x2
+ adds r1, r2, r1
+ ldrb r5, [r1]
+ adds r1, r7, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r5, r1
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldr r0, _0802C104 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C13E
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_814A7FC
+ ldr r1, _0802C108 @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0802C11C
+ cmp r0, 0x1
+ bgt _0802C10C
+ cmp r0, 0
+ beq _0802C116
+ b _0802C138
+ .align 2, 0
+_0802C0FC: .4byte gUnknown_02023A60
+_0802C100: .4byte gUnknown_02024A60
+_0802C104: .4byte gMain
+_0802C108: .4byte gUnknown_02024E60
+_0802C10C:
+ cmp r0, 0x2
+ beq _0802C122
+ cmp r0, 0x3
+ beq _0802C12E
+ b _0802C138
+_0802C116:
+ movs r0, 0x1
+ movs r1, 0
+ b _0802C126
+_0802C11C:
+ movs r0, 0x1
+ movs r1, 0x1
+ b _0802C126
+_0802C122:
+ movs r0, 0x1
+ movs r1, 0x2
+_0802C126:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _0802C138
+_0802C12E:
+ movs r0, 0x1
+ movs r1, 0x3
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_0802C138:
+ bl dp01_tbl1_exec_completed
+ b _0802C2AC
+_0802C13E:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C178
+ ldr r5, _0802C174 @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C158
+ b _0802C2AC
+_0802C158:
+ 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 _0802C200
+ .align 2, 0
+_0802C174: .4byte gUnknown_02024E60
+_0802C178:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C1B0
+ ldr r5, _0802C1AC @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C192
+ b _0802C2AC
+_0802C192:
+ 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 _0802C200
+ .align 2, 0
+_0802C1AC: .4byte gUnknown_02024E60
+_0802C1B0:
+ movs r0, 0x40
+ mov r8, r0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C1D0
+ ldr r5, _0802C1CC @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2AC
+ b _0802C1E8
+ .align 2, 0
+_0802C1CC: .4byte gUnknown_02024E60
+_0802C1D0:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C218
+ ldr r5, _0802C214 @ =gUnknown_02024E60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C2AC
+_0802C1E8:
+ 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
+_0802C200:
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ b _0802C2AC
+ .align 2, 0
+_0802C214: .4byte gUnknown_02024E60
+_0802C218:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2A0
+ ldr r6, _0802C294 @ =gUnknown_020239F8
+ ldrh r1, [r6]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2AC
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0802C2AC
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _0802C298 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _0802C29C @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0802C2AC
+ ldrh r1, [r6]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C2AC
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, r7, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802C278
+ cmp r5, 0xC
+ bhi _0802C2AC
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl AddBagItem
+_0802C278:
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl1_exec_completed
+ bl sub_814A7FC
+ b _0802C2AC
+ .align 2, 0
+_0802C294: .4byte gUnknown_020239F8
+_0802C298: .4byte gUnknown_02024C0C
+_0802C29C: .4byte gBitTable
+_0802C2A0:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C2AC
+ bl sub_804454C
+_0802C2AC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802C098
+
+ thumb_func_start unref_sub_802C2B8
+unref_sub_802C2B8: @ 802C2B8
+ push {r4,lr}
+ ldr r4, _0802C2E0 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ ldr r1, _0802C2E4 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802C2E8 @ =sub_802C2EC
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C2E0: .4byte gUnknown_02024A60
+_0802C2E4: .4byte gUnknown_03004330
+_0802C2E8: .4byte sub_802C2EC
+ thumb_func_end unref_sub_802C2B8
+
+ thumb_func_start sub_802C2EC
+sub_802C2EC: @ 802C2EC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _0802C384 @ =gUnknown_081FAE7C
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, _0802C388 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ movs r1, 0x1
+ movs r2, 0xF
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ movs r4, 0
+ ldr r0, _0802C38C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802C32E
+_0802C312:
+ ldr r0, _0802C388 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _0802C324
+ lsls r0, r4, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl dp11b_obj_free
+_0802C324:
+ adds r4, 0x1
+ ldr r0, _0802C38C @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r4, r0
+ blt _0802C312
+_0802C32E:
+ ldr r0, _0802C390 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C3A8
+ bl sub_814A7FC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C394 @ =gSprites
+ ldr r1, _0802C398 @ =gUnknown_02024BE0
+ ldr r4, _0802C388 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C39C @ =sub_8010574
+ str r1, [r0]
+ ldr r1, _0802C3A0 @ =gUnknown_02024E64
+ ldr r0, _0802C3A4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldrb r0, [r4]
+ lsls r0, 8
+ orrs r2, r0
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ bl dp01_tbl1_exec_completed
+ b _0802C658
+ .align 2, 0
+_0802C384: .4byte gUnknown_081FAE7C
+_0802C388: .4byte gUnknown_03004344
+_0802C38C: .4byte gUnknown_02024A68
+_0802C390: .4byte gMain
+_0802C394: .4byte gSprites
+_0802C398: .4byte gUnknown_02024BE0
+_0802C39C: .4byte sub_8010574
+_0802C3A0: .4byte gUnknown_02024E64
+_0802C3A4: .4byte gUnknown_02024A60
+_0802C3A8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C41C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C400 @ =gSprites
+ ldr r1, _0802C404 @ =gUnknown_02024BE0
+ ldr r5, _0802C408 @ =gUnknown_03004344
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C40C @ =sub_8010574
+ str r1, [r0]
+ ldr r1, _0802C410 @ =gUnknown_03004330
+ ldr r4, _0802C414 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802C418 @ =sub_802C68C
+ str r1, [r0]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldrb r0, [r4]
+ movs r1, 0
+ movs r2, 0x7
+ movs r3, 0x1
+ bl dp11b_obj_instanciate
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ b _0802C658
+ .align 2, 0
+_0802C400: .4byte gSprites
+_0802C404: .4byte gUnknown_02024BE0
+_0802C408: .4byte gUnknown_03004344
+_0802C40C: .4byte sub_8010574
+_0802C410: .4byte gUnknown_03004330
+_0802C414: .4byte gUnknown_02024A60
+_0802C418: .4byte sub_802C68C
+_0802C41C:
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C426
+ b _0802C540
+_0802C426:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C458 @ =gSprites
+ ldr r1, _0802C45C @ =gUnknown_02024BE0
+ ldr r3, _0802C460 @ =gUnknown_03004344
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C464 @ =sub_8010574
+ str r1, [r0]
+ adds r5, r3, 0
+_0802C448:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ mov r0, sp
+ b _0802C472
+ .align 2, 0
+_0802C458: .4byte gSprites
+_0802C45C: .4byte gUnknown_02024BE0
+_0802C460: .4byte gUnknown_03004344
+_0802C464: .4byte sub_8010574
+_0802C468:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0802C478
+ mov r2, sp
+ adds r0, r2, r4
+_0802C472:
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802C468
+_0802C478:
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0802C480
+ movs r4, 0x3
+_0802C480:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+ ldr r1, _0802C4B4 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802C478
+ movs r4, 0
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0802C4FE
+ cmp r0, 0x1
+ bgt _0802C4B8
+ cmp r0, 0
+ beq _0802C4C2
+ b _0802C500
+ .align 2, 0
+_0802C4B4: .4byte gUnknown_02024A68
+_0802C4B8:
+ cmp r0, 0x2
+ beq _0802C4C2
+ cmp r0, 0x3
+ beq _0802C4FE
+ b _0802C500
+_0802C4C2:
+ ldr r2, _0802C520 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ ldrb r1, [r5]
+ cmp r0, r1
+ bne _0802C4FE
+ ldr r1, _0802C524 @ =gUnknown_02024A6A
+ ldrb r2, [r2]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802C528 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802C52C @ =gUnknown_02024E64
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ ldr r2, _0802C530 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C500
+_0802C4FE:
+ adds r4, 0x1
+_0802C500:
+ ldr r0, _0802C534 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802C538 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _0802C53C @ =gUnknown_03004344
+ cmp r1, 0
+ beq _0802C518
+ movs r4, 0
+_0802C518:
+ cmp r4, 0
+ beq _0802C448
+ b _0802C640
+ .align 2, 0
+_0802C520: .4byte gUnknown_02024A60
+_0802C524: .4byte gUnknown_02024A6A
+_0802C528: .4byte gPlayerParty
+_0802C52C: .4byte gUnknown_02024E64
+_0802C530: .4byte gBattleMoves
+_0802C534: .4byte gUnknown_02024C0C
+_0802C538: .4byte gBitTable
+_0802C53C: .4byte gUnknown_03004344
+_0802C540:
+ movs r0, 0x90
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C54A
+ b _0802C658
+_0802C54A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0802C57C @ =gSprites
+ ldr r1, _0802C580 @ =gUnknown_02024BE0
+ ldr r3, _0802C584 @ =gUnknown_03004344
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802C588 @ =sub_8010574
+ str r1, [r0]
+ adds r5, r3, 0
+_0802C56C:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r4, 0
+ mov r0, sp
+ b _0802C596
+ .align 2, 0
+_0802C57C: .4byte gSprites
+_0802C580: .4byte gUnknown_02024BE0
+_0802C584: .4byte gUnknown_03004344
+_0802C588: .4byte sub_8010574
+_0802C58C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ bgt _0802C59C
+ mov r2, sp
+ adds r0, r2, r4
+_0802C596:
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802C58C
+_0802C59C:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0802C5A4
+ movs r4, 0
+_0802C5A4:
+ mov r1, sp
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+ ldr r1, _0802C5D8 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0802C59C
+ movs r4, 0
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0802C622
+ cmp r0, 0x1
+ bgt _0802C5DC
+ cmp r0, 0
+ beq _0802C5E6
+ b _0802C624
+ .align 2, 0
+_0802C5D8: .4byte gUnknown_02024A68
+_0802C5DC:
+ cmp r0, 0x2
+ beq _0802C5E6
+ cmp r0, 0x3
+ beq _0802C622
+ b _0802C624
+_0802C5E6:
+ ldr r2, _0802C660 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ ldrb r1, [r5]
+ cmp r0, r1
+ bne _0802C622
+ ldr r1, _0802C664 @ =gUnknown_02024A6A
+ ldrb r2, [r2]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802C668 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802C66C @ =gUnknown_02024E64
+ adds r2, r1
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ ldr r2, _0802C670 @ =gBattleMoves
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C624
+_0802C622:
+ adds r4, 0x1
+_0802C624:
+ ldr r0, _0802C674 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _0802C678 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _0802C67C @ =gUnknown_03004344
+ cmp r1, 0
+ beq _0802C63C
+ movs r4, 0
+_0802C63C:
+ cmp r4, 0
+ beq _0802C56C
+_0802C640:
+ ldr r2, _0802C680 @ =gSprites
+ ldr r1, _0802C684 @ =gUnknown_02024BE0
+ 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, _0802C688 @ =sub_8010520
+ str r1, [r0]
+_0802C658:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802C660: .4byte gUnknown_02024A60
+_0802C664: .4byte gUnknown_02024A6A
+_0802C668: .4byte gPlayerParty
+_0802C66C: .4byte gUnknown_02024E64
+_0802C670: .4byte gBattleMoves
+_0802C674: .4byte gUnknown_02024C0C
+_0802C678: .4byte gBitTable
+_0802C67C: .4byte gUnknown_03004344
+_0802C680: .4byte gSprites
+_0802C684: .4byte gUnknown_02024BE0
+_0802C688: .4byte sub_8010520
+ thumb_func_end sub_802C2EC
+
+ thumb_func_start sub_802C68C
+sub_802C68C: @ 802C68C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r8, r0
+ ldr r7, _0802C6E4 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 9
+ ldr r1, _0802C6E8 @ =gUnknown_02023A64
+ adds r6, r0, r1
+ ldr r0, _0802C6EC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r5, 0x1
+ adds r4, r5, 0
+ ands r4, r1
+ cmp r4, 0
+ bne _0802C6B2
+ b _0802C864
+_0802C6B2:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802C6F0 @ =gUnknown_02024E64
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, r6, r0
+ ldrh r0, [r1]
+ cmp r0, 0xAE
+ bne _0802C6F4
+ ldrb r0, [r6, 0x12]
+ movs r4, 0
+ cmp r0, 0x7
+ beq _0802C702
+ ldrb r1, [r6, 0x13]
+ movs r0, 0x7
+ eors r1, r0
+ negs r0, r1
+ orrs r0, r1
+ asrs r4, r0, 31
+ movs r0, 0x10
+ ands r4, r0
+ b _0802C702
+ .align 2, 0
+_0802C6E4: .4byte gUnknown_02024A60
+_0802C6E8: .4byte gUnknown_02023A64
+_0802C6EC: .4byte gMain
+_0802C6F0: .4byte gUnknown_02024E64
+_0802C6F4:
+ ldr r2, _0802C714 @ =gBattleMoves
+ ldrh r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r4, [r0, 0x6]
+_0802C702:
+ movs r0, 0x10
+ ands r0, r4
+ cmp r0, 0
+ beq _0802C720
+ ldr r0, _0802C718 @ =gUnknown_03004344
+ ldr r1, _0802C71C @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0802C73A
+ .align 2, 0
+_0802C714: .4byte gBattleMoves
+_0802C718: .4byte gUnknown_03004344
+_0802C71C: .4byte gUnknown_02024A60
+_0802C720:
+ ldr r0, _0802C764 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r2, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ eors r0, r2
+ bl battle_get_side_with_given_state
+ ldr r1, _0802C768 @ =gUnknown_03004344
+ strb r0, [r1]
+_0802C73A:
+ ldr r3, _0802C76C @ =gUnknown_02023A60
+ ldr r5, _0802C764 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r1, r2, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802C770
+ movs r0, 0x2
+ ands r0, r4
+ cmp r0, 0
+ beq _0802C7B2
+ adds r0, r3, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802C7B2
+ movs r2, 0x1
+ add r8, r2
+ b _0802C7B2
+ .align 2, 0
+_0802C764: .4byte gUnknown_02024A60
+_0802C768: .4byte gUnknown_03004344
+_0802C76C: .4byte gUnknown_02023A60
+_0802C770:
+ movs r0, 0x7D
+ ands r0, r4
+ cmp r0, 0
+ bne _0802C77C
+ movs r0, 0x1
+ add r8, r0
+_0802C77C:
+ ldr r0, _0802C7D0 @ =gUnknown_02024E64
+ adds r0, r2, r0
+ adds r1, r6, 0
+ adds r1, 0x8
+ ldrb r0, [r0]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0802C7B8
+ movs r0, 0x12
+ ands r0, r4
+ cmp r0, 0
+ bne _0802C7B2
+ movs r0, 0
+ bl sub_803C348
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0802C7B2
+ ldrb r0, [r5]
+ bl sub_803C434
+ ldr r1, _0802C7D4 @ =gUnknown_03004344
+ strb r0, [r1]
+ movs r2, 0
+ mov r8, r2
+_0802C7B2:
+ mov r0, r8
+ cmp r0, 0
+ bne _0802C7DC
+_0802C7B8:
+ bl sub_814A7FC
+ ldr r1, _0802C7D0 @ =gUnknown_02024E64
+ ldr r0, _0802C7D8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r0, _0802C7D4 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r2, r0
+ b _0802C888
+ .align 2, 0
+_0802C7D0: .4byte gUnknown_02024E64
+_0802C7D4: .4byte gUnknown_03004344
+_0802C7D8: .4byte gUnknown_02024A60
+_0802C7DC:
+ ldr r1, _0802C7F8 @ =gUnknown_03004330
+ ldr r2, _0802C7FC @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802C800 @ =sub_802C2EC
+ str r1, [r0]
+ movs r0, 0x12
+ ands r4, r0
+ cmp r4, 0
+ beq _0802C808
+ ldr r1, _0802C804 @ =gUnknown_03004344
+ ldrb r0, [r2]
+ b _0802C838
+ .align 2, 0
+_0802C7F8: .4byte gUnknown_03004330
+_0802C7FC: .4byte gUnknown_02024A60
+_0802C800: .4byte sub_802C2EC
+_0802C804: .4byte gUnknown_03004344
+_0802C808:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _0802C828 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _0802C82C @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0802C830
+ movs r0, 0x3
+ b _0802C832
+ .align 2, 0
+_0802C828: .4byte gUnknown_02024C0C
+_0802C82C: .4byte gBitTable
+_0802C830:
+ movs r0, 0x1
+_0802C832:
+ bl battle_get_side_with_given_state
+ ldr r1, _0802C854 @ =gUnknown_03004344
+_0802C838:
+ strb r0, [r1]
+ ldr r2, _0802C858 @ =gSprites
+ ldr r1, _0802C85C @ =gUnknown_02024BE0
+ ldr r0, _0802C854 @ =gUnknown_03004344
+ 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, _0802C860 @ =sub_8010520
+ b _0802CA36
+ .align 2, 0
+_0802C854: .4byte gUnknown_03004344
+_0802C858: .4byte gSprites
+_0802C85C: .4byte gUnknown_02024BE0
+_0802C860: .4byte sub_8010520
+_0802C864:
+ movs r6, 0x2
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C8A4
+ bl sub_814A7FC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0802C898 @ =gUnknown_030042A4
+ strh r4, [r0]
+ ldr r1, _0802C89C @ =gUnknown_030042A0
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _0802C8A0 @ =0x0000ffff
+_0802C888:
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl1_exec_completed
+ b _0802CA38
+ .align 2, 0
+_0802C898: .4byte gUnknown_030042A4
+_0802C89C: .4byte gUnknown_030042A0
+_0802C8A0: .4byte 0x0000ffff
+_0802C8A4:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C8D4
+ ldr r4, _0802C8D0 @ =gUnknown_02024E64
+ adds r2, r4
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C8BC
+ b _0802CA38
+_0802C8BC:
+ ldrb r0, [r2]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ movs r2, 0x1
+ eors r0, r2
+ b _0802C976
+ .align 2, 0
+_0802C8D0: .4byte gUnknown_02024E64
+_0802C8D4:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C914
+ ldr r4, _0802C90C @ =gUnknown_02024E64
+ adds r3, r2, r4
+ ldrb r2, [r3]
+ movs r6, 0x1
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0802C8EE
+ b _0802CA38
+_0802C8EE:
+ ldr r1, _0802C910 @ =gUnknown_03004348
+ adds r0, r6, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _0802C8FC
+ b _0802CA38
+_0802C8FC:
+ ldrb r0, [r3]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ eors r0, r6
+ b _0802C976
+ .align 2, 0
+_0802C90C: .4byte gUnknown_02024E64
+_0802C910: .4byte gUnknown_03004348
+_0802C914:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C944
+ ldr r4, _0802C940 @ =gUnknown_02024E64
+ adds r2, r4
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802C92C
+ b _0802CA38
+_0802C92C:
+ ldrb r0, [r2]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ movs r2, 0x2
+ eors r0, r2
+ b _0802C976
+ .align 2, 0
+_0802C940: .4byte gUnknown_02024E64
+_0802C944:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802C99C
+ ldr r4, _0802C994 @ =gUnknown_02024E64
+ adds r3, r2, r4
+ ldrb r2, [r3]
+ movs r5, 0x2
+ adds r0, r6, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _0802CA38
+ ldr r1, _0802C998 @ =gUnknown_03004348
+ adds r0, r5, 0
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802CA38
+ ldrb r0, [r3]
+ bl nullsub_7
+ ldrb r1, [r7]
+ adds r1, r4
+ ldrb r0, [r1]
+ eors r0, r5
+_0802C976:
+ strb r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ bl sub_802E220
+ bl sub_802E2D4
+ b _0802CA38
+ .align 2, 0
+_0802C994: .4byte gUnknown_02024E64
+_0802C998: .4byte gUnknown_03004348
+_0802C99C:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CA38
+ ldr r0, _0802C9D8 @ =gUnknown_03004348
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0802CA38
+ ldr r0, _0802C9DC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _0802CA38
+ ldr r4, _0802C9E0 @ =gUnknown_02024E64
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ ldr r1, _0802C9E4 @ =gUnknown_081FAE80
+ bl sub_802E12C
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802C9EC
+ ldr r0, _0802C9E8 @ =gUnknown_03004344
+ strb r5, [r0]
+ b _0802C9F4
+ .align 2, 0
+_0802C9D8: .4byte gUnknown_03004348
+_0802C9DC: .4byte gUnknown_020239F8
+_0802C9E0: .4byte gUnknown_02024E64
+_0802C9E4: .4byte gUnknown_081FAE80
+_0802C9E8: .4byte gUnknown_03004344
+_0802C9EC:
+ ldr r1, _0802CA44 @ =gUnknown_03004344
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r1, 0
+_0802C9F4:
+ ldrb r0, [r0]
+ movs r1, 0x1B
+ bl sub_802E3B4
+ ldr r4, _0802CA48 @ =gUnknown_03004210
+ ldr r1, _0802CA4C @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802CA50 @ =gUnknown_08400D89
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0802CA54 @ =gUnknown_03004330
+ ldr r0, _0802CA58 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802CA5C @ =sub_802CA60
+_0802CA36:
+ str r1, [r0]
+_0802CA38:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802CA44: .4byte gUnknown_03004344
+_0802CA48: .4byte gUnknown_03004210
+_0802CA4C: .4byte 0x00001016
+_0802CA50: .4byte gUnknown_08400D89
+_0802CA54: .4byte gUnknown_03004330
+_0802CA58: .4byte gUnknown_02024A60
+_0802CA5C: .4byte sub_802CA60
+ thumb_func_end sub_802C68C
+
+ thumb_func_start sub_802CA60
+sub_802CA60: @ 802CA60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ ldr r0, _0802CDEC @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x5
+ ands r0, r1
+ cmp r0, 0
+ bne _0802CA7A
+ b _0802CE78
+_0802CA7A:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0802CDF0 @ =gUnknown_02024E64
+ mov r10, r0
+ ldr r1, _0802CDF4 @ =gUnknown_02024A60
+ mov r8, r1
+ ldrb r1, [r1]
+ adds r2, r1, r0
+ ldr r5, _0802CDF8 @ =gUnknown_03004344
+ ldrb r0, [r2]
+ ldrb r3, [r5]
+ cmp r0, r3
+ bne _0802CA98
+ b _0802CE14
+_0802CA98:
+ lsls r1, 9
+ ldr r0, _0802CDFC @ =gUnknown_02023A64
+ adds r1, r0
+ mov r9, r1
+ ldrb r1, [r2]
+ lsls r1, 1
+ add r1, r9
+ ldrh r6, [r1]
+ ldrb r0, [r5]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldrb r0, [r5]
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ add r0, r10
+ ldrb r1, [r0]
+ mov r7, r9
+ adds r7, 0x8
+ adds r1, r7, r1
+ ldrb r6, [r1]
+ ldrb r0, [r5]
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ adds r0, r7, r0
+ strb r6, [r0]
+ mov r2, r8
+ ldrb r0, [r2]
+ add r0, r10
+ ldrb r1, [r0]
+ mov r2, r9
+ adds r2, 0xC
+ adds r1, r2, r1
+ ldrb r6, [r1]
+ ldrb r0, [r5]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ adds r2, r0
+ strb r6, [r2]
+ mov r3, r8
+ ldrb r1, [r3]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r2, _0802CE00 @ =gUnknown_02024CA8
+ adds r6, r0, r2
+ ldrb r4, [r6, 0x18]
+ lsls r3, r4, 24
+ lsrs r2, r3, 28
+ ldr r0, _0802CE04 @ =gBitTable
+ mov r12, r0
+ add r1, r10
+ ldrb r0, [r1]
+ lsls r0, 2
+ add r0, r12
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _0802CB52
+ lsrs r1, r3, 28
+ bics r1, r0
+ lsls r1, 4
+ movs r2, 0xF
+ adds r0, r2, 0
+ ands r0, r4
+ orrs r0, r1
+ strb r0, [r6, 0x18]
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r3, _0802CE00 @ =gUnknown_02024CA8
+ adds r1, r3
+ ldrb r4, [r1, 0x18]
+ lsrs r3, r4, 4
+ ldrb r0, [r5]
+ lsls r0, 2
+ add r0, r12
+ ldr r0, [r0]
+ orrs r0, r3
+ lsls r0, 4
+ ands r2, r4
+ orrs r2, r0
+ strb r2, [r1, 0x18]
+_0802CB52:
+ bl sub_802E1B0
+ movs r6, 0
+ mov r12, r7
+ mov r5, sp
+ adds r5, 0x20
+ str r5, [sp, 0x28]
+ ldr r2, _0802CE08 @ =gBattleMons
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r4, r0, 0
+ adds r4, 0x3B
+ mov r7, r8
+ mov r10, r2
+ movs r5, 0x3
+_0802CB76:
+ mov r3, sp
+ adds r3, r6
+ adds r3, 0x8
+ ldrb r1, [r4]
+ lsls r2, r6, 1
+ adds r0, r5, 0
+ lsls r0, r2
+ ands r1, r0
+ asrs r1, r2
+ strb r1, [r3]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CB76
+ ldr r1, _0802CDF0 @ =gUnknown_02024E64
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r2, [sp, 0x28]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r2, sp
+ adds r2, r0
+ adds r2, 0x8
+ ldr r1, _0802CDF8 @ =gUnknown_03004344
+ ldrb r0, [r1]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ movs r3, 0
+ strb r0, [r2]
+ ldrb r0, [r1]
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ ldr r5, [sp, 0x28]
+ ldrb r0, [r5]
+ strb r0, [r1]
+ strb r3, [r5]
+ movs r6, 0
+ ldr r2, [sp, 0x28]
+_0802CBD0:
+ mov r0, sp
+ adds r0, r6
+ adds r0, 0x8
+ ldrb r1, [r0]
+ lsls r0, r6, 1
+ lsls r1, r0
+ ldrb r0, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CBD0
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ add r0, r10
+ adds r0, 0x3B
+ ldr r2, [sp, 0x28]
+ ldrb r1, [r2]
+ strb r1, [r0]
+ movs r6, 0
+ adds r4, r7, 0
+ movs r3, 0x58
+ movs r5, 0x24
+ add r5, r10
+ mov r8, r5
+ mov r2, r9
+ mov r7, r10
+ adds r7, 0xC
+ mov r5, r12
+_0802CC0C:
+ lsls r1, r6, 1
+ ldrb r0, [r4]
+ muls r0, r3
+ adds r1, r0
+ adds r1, r7
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldrb r0, [r4]
+ adds r1, r0, 0
+ muls r1, r3
+ adds r1, r6, r1
+ add r1, r8
+ adds r0, r5, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CC0C
+ ldr r2, _0802CDF4 @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ movs r0, 0x58
+ muls r0, r1
+ mov r1, r10
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x80
+ lsls r1, 14
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CC4E
+ b _0802CE1C
+_0802CC4E:
+ movs r6, 0
+ mov r0, sp
+ adds r0, 0xC
+ str r0, [sp, 0x24]
+ add r1, sp, 0x14
+ mov r10, r1
+ ldr r3, _0802CE0C @ =gUnknown_02024A6A
+ mov r9, r3
+ mov r8, r2
+ movs r7, 0x64
+ ldr r5, _0802CE10 @ =gPlayerParty
+ adds r4, r0, 0
+_0802CC66:
+ mov r1, r8
+ ldrb r0, [r1]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ muls r0, r7
+ adds r0, r5
+ adds r1, r6, 0
+ adds r1, 0xD
+ bl GetMonData
+ strh r0, [r4]
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 1
+ add r0, r9
+ ldrh r0, [r0]
+ muls r0, r7
+ adds r0, r5
+ adds r1, r6, 0
+ adds r1, 0x11
+ bl GetMonData
+ mov r3, r10
+ adds r1, r3, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CC66
+ ldr r1, _0802CE0C @ =gUnknown_02024A6A
+ ldr r0, _0802CDF4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802CE10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ ldr r5, [sp, 0x28]
+ strb r0, [r5]
+ movs r6, 0
+ movs r5, 0x3
+ ldr r4, [sp, 0x28]
+_0802CCC6:
+ mov r3, sp
+ adds r3, r6
+ adds r3, 0x8
+ lsls r2, r6, 1
+ adds r1, r5, 0
+ lsls r1, r2
+ ldrb r0, [r4]
+ ands r0, r1
+ asrs r0, r2
+ strb r0, [r3]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CCC6
+ ldr r4, _0802CDF0 @ =gUnknown_02024E64
+ ldr r3, _0802CDF4 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r1, 1
+ ldr r0, [sp, 0x24]
+ adds r1, r0, r1
+ ldrh r6, [r1]
+ ldr r2, _0802CDF8 @ =gUnknown_03004344
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r5, [sp, 0x24]
+ adds r0, r5, r0
+ ldrh r0, [r0]
+ movs r5, 0
+ strh r0, [r1]
+ ldrb r0, [r2]
+ lsls r0, 1
+ ldr r1, [sp, 0x24]
+ adds r0, r1, r0
+ strh r6, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0]
+ add r1, r10
+ ldrb r6, [r1]
+ ldrb r0, [r2]
+ add r0, r10
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ add r0, r10
+ strb r6, [r0]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x28]
+ strb r0, [r1]
+ ldrb r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0]
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ ldrb r0, [r2]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r2]
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ ldr r2, [sp, 0x28]
+ ldrb r0, [r2]
+ strb r0, [r1]
+ strb r5, [r2]
+ movs r6, 0
+ ldr r2, [sp, 0x28]
+_0802CD5E:
+ mov r0, sp
+ adds r0, r6
+ adds r0, 0x8
+ ldrb r1, [r0]
+ lsls r0, r6, 1
+ lsls r1, r0
+ ldrb r0, [r2]
+ orrs r0, r1
+ strb r0, [r2]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CD5E
+ movs r6, 0
+ ldr r3, _0802CE0C @ =gUnknown_02024A6A
+ mov r10, r3
+ ldr r5, _0802CDF4 @ =gUnknown_02024A60
+ mov r9, r5
+ movs r0, 0x64
+ mov r8, r0
+ ldr r7, _0802CE10 @ =gPlayerParty
+ ldr r5, [sp, 0x24]
+ adds r5, 0x8
+ ldr r4, [sp, 0x24]
+_0802CD8C:
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r2, r4, 0
+ bl SetMonData
+ mov r3, r9
+ ldrb r0, [r3]
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r2, r5, 0
+ bl SetMonData
+ adds r5, 0x1
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802CD8C
+ ldr r1, _0802CE0C @ =gUnknown_02024A6A
+ ldr r0, _0802CDF4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802CE10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ ldr r2, [sp, 0x28]
+ bl SetMonData
+ b _0802CE1C
+ .align 2, 0
+_0802CDEC: .4byte gMain
+_0802CDF0: .4byte gUnknown_02024E64
+_0802CDF4: .4byte gUnknown_02024A60
+_0802CDF8: .4byte gUnknown_03004344
+_0802CDFC: .4byte gUnknown_02023A64
+_0802CE00: .4byte gUnknown_02024CA8
+_0802CE04: .4byte gBitTable
+_0802CE08: .4byte gBattleMons
+_0802CE0C: .4byte gUnknown_02024A6A
+_0802CE10: .4byte gPlayerParty
+_0802CE14:
+ ldrb r0, [r5]
+ ldr r1, _0802CF20 @ =gUnknown_08400D49
+ bl sub_802E12C
+_0802CE1C:
+ ldr r1, _0802CF24 @ =gUnknown_03004330
+ ldr r2, _0802CF28 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802CF2C @ =sub_802C68C
+ str r1, [r0]
+ ldr r3, _0802CF30 @ =gUnknown_02024E64
+ ldrb r0, [r2]
+ adds r0, r3
+ ldr r1, _0802CF34 @ =gUnknown_03004344
+ ldrb r1, [r1]
+ strb r1, [r0]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ ldr r4, _0802CF38 @ =gUnknown_03004210
+ ldr r1, _0802CF3C @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802CF40 @ =gUnknown_08400D38
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ bl sub_802E220
+ bl sub_802E2D4
+_0802CE78:
+ ldr r6, _0802CF44 @ =gMain
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CEF0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0802CF34 @ =gUnknown_03004344
+ ldrb r0, [r0]
+ bl nullsub_7
+ ldr r5, _0802CF30 @ =gUnknown_02024E64
+ ldr r4, _0802CF28 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ ldr r1, _0802CF20 @ =gUnknown_08400D49
+ bl sub_802E12C
+ ldr r1, _0802CF24 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802CF2C @ =sub_802C68C
+ str r1, [r0]
+ ldr r4, _0802CF38 @ =gUnknown_03004210
+ ldr r1, _0802CF3C @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802CF40 @ =gUnknown_08400D38
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ bl sub_802E220
+ bl sub_802E2D4
+_0802CEF0:
+ ldrh r1, [r6, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0802CF8C
+ ldr r3, _0802CF34 @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _0802CF8C
+ ldr r0, _0802CF30 @ =gUnknown_02024E64
+ ldr r1, _0802CF28 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r5, [r1]
+ cmp r2, r5
+ bne _0802CF48
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802CF4E
+ .align 2, 0
+_0802CF20: .4byte gUnknown_08400D49
+_0802CF24: .4byte gUnknown_03004330
+_0802CF28: .4byte gUnknown_02024A60
+_0802CF2C: .4byte sub_802C68C
+_0802CF30: .4byte gUnknown_02024E64
+_0802CF34: .4byte gUnknown_03004344
+_0802CF38: .4byte gUnknown_03004210
+_0802CF3C: .4byte 0x00001016
+_0802CF40: .4byte gUnknown_08400D38
+_0802CF44: .4byte gMain
+_0802CF48:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802CF4E:
+ ldr r4, _0802CF78 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802CF7C @ =gUnknown_02024E64
+ ldr r0, _0802CF80 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802CF84
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802CF8C
+ .align 2, 0
+_0802CF78: .4byte gUnknown_03004344
+_0802CF7C: .4byte gUnknown_02024E64
+_0802CF80: .4byte gUnknown_02024A60
+_0802CF84:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802CF8C:
+ ldr r0, _0802CFC8 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D020
+ ldr r3, _0802CFCC @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _0802D020
+ ldr r1, _0802CFD0 @ =gUnknown_03004348
+ movs r0, 0x1
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802D020
+ ldr r0, _0802CFD4 @ =gUnknown_02024E64
+ ldr r1, _0802CFD8 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r2, r0
+ bne _0802CFDC
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802CFE2
+ .align 2, 0
+_0802CFC8: .4byte gMain
+_0802CFCC: .4byte gUnknown_03004344
+_0802CFD0: .4byte gUnknown_03004348
+_0802CFD4: .4byte gUnknown_02024E64
+_0802CFD8: .4byte gUnknown_02024A60
+_0802CFDC:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802CFE2:
+ ldr r4, _0802D00C @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x1
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802D010 @ =gUnknown_02024E64
+ ldr r0, _0802D014 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802D018
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802D020
+ .align 2, 0
+_0802D00C: .4byte gUnknown_03004344
+_0802D010: .4byte gUnknown_02024E64
+_0802D014: .4byte gUnknown_02024A60
+_0802D018:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802D020:
+ ldr r0, _0802D050 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D0A4
+ ldr r3, _0802D054 @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0802D0A4
+ ldr r0, _0802D058 @ =gUnknown_02024E64
+ ldr r1, _0802D05C @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r5, [r1]
+ cmp r2, r5
+ bne _0802D060
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802D066
+ .align 2, 0
+_0802D050: .4byte gMain
+_0802D054: .4byte gUnknown_03004344
+_0802D058: .4byte gUnknown_02024E64
+_0802D05C: .4byte gUnknown_02024A60
+_0802D060:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802D066:
+ ldr r4, _0802D090 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802D094 @ =gUnknown_02024E64
+ ldr r0, _0802D098 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802D09C
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802D0A4
+ .align 2, 0
+_0802D090: .4byte gUnknown_03004344
+_0802D094: .4byte gUnknown_02024E64
+_0802D098: .4byte gUnknown_02024A60
+_0802D09C:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802D0A4:
+ ldr r0, _0802D0E0 @ =gMain
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D138
+ ldr r3, _0802D0E4 @ =gUnknown_03004344
+ ldrb r2, [r3]
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ bne _0802D138
+ ldr r1, _0802D0E8 @ =gUnknown_03004348
+ movs r0, 0x2
+ eors r0, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _0802D138
+ ldr r0, _0802D0EC @ =gUnknown_02024E64
+ ldr r1, _0802D0F0 @ =gUnknown_02024A60
+ ldrb r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r2, r0
+ bne _0802D0F4
+ ldrb r0, [r1]
+ movs r1, 0x1D
+ bl sub_802E3B4
+ b _0802D0FA
+ .align 2, 0
+_0802D0E0: .4byte gMain
+_0802D0E4: .4byte gUnknown_03004344
+_0802D0E8: .4byte gUnknown_03004348
+_0802D0EC: .4byte gUnknown_02024E64
+_0802D0F0: .4byte gUnknown_02024A60
+_0802D0F4:
+ ldrb r0, [r3]
+ bl nullsub_7
+_0802D0FA:
+ ldr r4, _0802D124 @ =gUnknown_03004344
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r0, r1
+ strb r0, [r4]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0802D128 @ =gUnknown_02024E64
+ ldr r0, _0802D12C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _0802D130
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_802E3B4
+ b _0802D138
+ .align 2, 0
+_0802D124: .4byte gUnknown_03004344
+_0802D128: .4byte gUnknown_02024E64
+_0802D12C: .4byte gUnknown_02024A60
+_0802D130:
+ ldrb r0, [r4]
+ movs r1, 0x1B
+ bl sub_802E3B4
+_0802D138:
+ add sp, 0x2C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802CA60
+
+ thumb_func_start sub_802D148
+sub_802D148: @ 802D148
+ push {lr}
+ ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0802D174
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, _0802D17C @ =gMain
+ ldr r0, _0802D180 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0802D184 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _0802D188 @ =c2_8011A1C
+ bl SetMainCallback2
+_0802D174:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D178: .4byte gReceivedRemoteLinkPlayers
+_0802D17C: .4byte gMain
+_0802D180: .4byte 0x0000043d
+_0802D184: .4byte gUnknown_030042D0
+_0802D188: .4byte c2_8011A1C
+ thumb_func_end sub_802D148
+
+ thumb_func_start sub_802D18C
+sub_802D18C: @ 802D18C
+ push {lr}
+ ldr r0, _0802D1BC @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D1F2
+ ldr r0, _0802D1C0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D1D0
+ bl sub_800832C
+ ldr r1, _0802D1C4 @ =gUnknown_03004330
+ ldr r0, _0802D1C8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D1CC @ =sub_802D148
+ str r1, [r0]
+ b _0802D1F2
+ .align 2, 0
+_0802D1BC: .4byte gPaletteFade
+_0802D1C0: .4byte gUnknown_020239F8
+_0802D1C4: .4byte gUnknown_03004330
+_0802D1C8: .4byte gUnknown_02024A60
+_0802D1CC: .4byte sub_802D148
+_0802D1D0:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r2, _0802D1F8 @ =gMain
+ ldr r0, _0802D1FC @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _0802D200 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_0802D1F2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D1F8: .4byte gMain
+_0802D1FC: .4byte 0x0000043d
+_0802D200: .4byte gUnknown_030042D0
+ thumb_func_end sub_802D18C
+
+ thumb_func_start sub_802D204
+sub_802D204: @ 802D204
+ push {lr}
+ ldr r2, _0802D22C @ =gSprites
+ ldr r1, _0802D230 @ =gUnknown_02024BE0
+ ldr r0, _0802D234 @ =gUnknown_02024A60
+ 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, _0802D238 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D228
+ bl dp01_tbl1_exec_completed
+_0802D228:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D22C: .4byte gSprites
+_0802D230: .4byte gUnknown_02024BE0
+_0802D234: .4byte gUnknown_02024A60
+_0802D238: .4byte SpriteCallbackDummy
+ thumb_func_end sub_802D204
+
+ thumb_func_start sub_802D23C
+sub_802D23C: @ 802D23C
+ push {lr}
+ ldr r2, _0802D264 @ =gSprites
+ ldr r1, _0802D268 @ =gUnknown_02024BE0
+ ldr r0, _0802D26C @ =gUnknown_02024A60
+ 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, _0802D270 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D260
+ bl dp01_tbl1_exec_completed
+_0802D260:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D264: .4byte gSprites
+_0802D268: .4byte gUnknown_02024BE0
+_0802D26C: .4byte gUnknown_02024A60
+_0802D270: .4byte SpriteCallbackDummy
+ thumb_func_end sub_802D23C
+
+ thumb_func_start sub_802D274
+sub_802D274: @ 802D274
+ push {r4-r6,lr}
+ ldr r6, _0802D2CC @ =gSprites
+ ldr r5, _0802D2D0 @ =gUnknown_02024BE0
+ ldr r4, _0802D2D4 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _0802D2D8 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D2C6
+ ldr r0, _0802D2DC @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ bl nullsub_10
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ bl dp01_tbl1_exec_completed
+_0802D2C6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D2CC: .4byte gSprites
+_0802D2D0: .4byte gUnknown_02024BE0
+_0802D2D4: .4byte gUnknown_02024A60
+_0802D2D8: .4byte SpriteCallbackDummy
+_0802D2DC: .4byte gSaveBlock2
+ thumb_func_end sub_802D274
+
+ thumb_func_start sub_802D2E0
+sub_802D2E0: @ 802D2E0
+ push {lr}
+ ldr r3, _0802D314 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0802D318 @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0802D310
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl dp01_tbl1_exec_completed
+_0802D310:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D314: .4byte gUnknown_02024A60
+_0802D318: .4byte 0x02017810
+ thumb_func_end sub_802D2E0
+
+ thumb_func_start sub_802D31C
+sub_802D31C: @ 802D31C
+ push {r4-r7,lr}
+ movs r6, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D340
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D374
+ ldr r0, _0802D360 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D374
+_0802D340:
+ ldr r2, _0802D364 @ =gSprites
+ ldr r1, _0802D368 @ =gUnknown_03004340
+ ldr r0, _0802D36C @ =gUnknown_02024A60
+ 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, _0802D370 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D3AA
+ b _0802D3A8
+ .align 2, 0
+_0802D360: .4byte gUnknown_020239F8
+_0802D364: .4byte gSprites
+_0802D368: .4byte gUnknown_03004340
+_0802D36C: .4byte gUnknown_02024A60
+_0802D370: .4byte SpriteCallbackDummy
+_0802D374:
+ ldr r2, _0802D45C @ =gSprites
+ ldr r5, _0802D460 @ =gUnknown_03004340
+ ldr r0, _0802D464 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, _0802D468 @ =SpriteCallbackDummy
+ cmp r4, r0
+ bne _0802D3AA
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0802D3AA
+_0802D3A8:
+ movs r6, 0x1
+_0802D3AA:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D3B6
+ movs r6, 0
+_0802D3B6:
+ cmp r6, 0
+ bne _0802D3BC
+ b _0802D4DA
+_0802D3BC:
+ ldr r7, _0802D464 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r5, _0802D46C @ =0x02017810
+ adds r4, r0, r5
+ ldrb r1, [r4, 0x1]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D3D8
+ b _0802D4DA
+_0802D3D8:
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D4DA
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ 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, _0802D470 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, _0802D474 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D47C
+ ldr r0, _0802D478 @ =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _0802D488
+ .align 2, 0
+_0802D45C: .4byte gSprites
+_0802D460: .4byte gUnknown_03004340
+_0802D464: .4byte gUnknown_02024A60
+_0802D468: .4byte SpriteCallbackDummy
+_0802D46C: .4byte 0x02017810
+_0802D470: .4byte 0x000027f9
+_0802D474: .4byte gUnknown_020239F8
+_0802D478: .4byte gMPlay_BGM
+_0802D47C:
+ ldr r0, _0802D4E0 @ =gMPlay_BGM
+ ldr r1, _0802D4E4 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_0802D488:
+ ldr r7, _0802D4E8 @ =gUnknown_02024A6A
+ ldr r4, _0802D4EC @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0802D4F0 @ =gPlayerParty
+ adds r0, r5
+ bl sub_80324F8
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D4BE
+ ldrb r0, [r4]
+ movs r1, 0x2
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ bl sub_80324F8
+_0802D4BE:
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D4F4 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _0802D4F8 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D4FC @ =sub_802D2E0
+ str r1, [r0]
+_0802D4DA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D4E0: .4byte gMPlay_BGM
+_0802D4E4: .4byte 0x0000ffff
+_0802D4E8: .4byte gUnknown_02024A6A
+_0802D4EC: .4byte gUnknown_02024A60
+_0802D4F0: .4byte gPlayerParty
+_0802D4F4: .4byte 0x02017810
+_0802D4F8: .4byte gUnknown_03004330
+_0802D4FC: .4byte sub_802D2E0
+ thumb_func_end sub_802D31C
+
+ thumb_func_start sub_802D500
+sub_802D500: @ 802D500
+ push {r4-r7,lr}
+ ldr r5, _0802D654 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r4, _0802D658 @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r7, 0x88
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D530
+ ldr r0, _0802D65C @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0802D660 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0802D530:
+ 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 _0802D55E
+ ldr r0, _0802D65C @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0802D660 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0802D55E:
+ 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 _0802D64C
+ 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 _0802D64C
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0802D5EE
+ ldr r0, _0802D664 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D5EE
+ ldr r1, _0802D668 @ =gUnknown_0300434C
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D66C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r4, _0802D670 @ =gUnknown_03004340
+ ldrb r0, [r5]
+ adds r1, r6, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _0802D65C @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0802D660 @ =gPlayerParty
+ 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
+_0802D5EE:
+ ldr r1, _0802D668 @ =gUnknown_0300434C
+ ldr r4, _0802D654 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D66C @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _0802D670 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _0802D65C @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0802D660 @ =gPlayerParty
+ 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, _0802D674 @ =0x02017840
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _0802D678 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D67C @ =sub_802D31C
+ str r1, [r0]
+_0802D64C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D654: .4byte gUnknown_02024A60
+_0802D658: .4byte 0x02017810
+_0802D65C: .4byte gUnknown_02024A6A
+_0802D660: .4byte gPlayerParty
+_0802D664: .4byte gUnknown_020239F8
+_0802D668: .4byte gUnknown_0300434C
+_0802D66C: .4byte gSprites
+_0802D670: .4byte gUnknown_03004340
+_0802D674: .4byte 0x02017840
+_0802D678: .4byte gUnknown_03004330
+_0802D67C: .4byte sub_802D31C
+ thumb_func_end sub_802D500
+
+ thumb_func_start sub_802D680
+sub_802D680: @ 802D680
+ push {r4-r6,lr}
+ ldr r2, _0802D710 @ =gSprites
+ ldr r0, _0802D714 @ =gUnknown_03004340
+ ldr r6, _0802D718 @ =gUnknown_02024A60
+ ldrb r3, [r6]
+ 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, _0802D71C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D708
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r5, _0802D720 @ =0x02017810
+ adds r2, r0, r5
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D708
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r6]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _0802D724 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldrb r2, [r6]
+ lsls r0, r2, 2
+ adds r1, r5, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802D6FC
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_0802D6FC:
+ ldr r0, _0802D728 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0802D72C @ =sub_802D730
+ str r0, [r1]
+_0802D708:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D710: .4byte gSprites
+_0802D714: .4byte gUnknown_03004340
+_0802D718: .4byte gUnknown_02024A60
+_0802D71C: .4byte SpriteCallbackDummy
+_0802D720: .4byte 0x02017810
+_0802D724: .4byte 0x000027f9
+_0802D728: .4byte gUnknown_03004330
+_0802D72C: .4byte sub_802D730
+ thumb_func_end sub_802D680
+
+ thumb_func_start sub_802D730
+sub_802D730: @ 802D730
+ push {r4,lr}
+ ldr r4, _0802D780 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802D784 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D77A
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D77A
+ ldr r0, _0802D788 @ =gMPlay_BGM
+ ldr r1, _0802D78C @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r2, _0802D790 @ =gUnknown_02024A6A
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802D794 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl1_exec_completed
+_0802D77A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D780: .4byte gUnknown_02024A60
+_0802D784: .4byte 0x02017810
+_0802D788: .4byte gMPlay_BGM
+_0802D78C: .4byte 0x0000ffff
+_0802D790: .4byte gUnknown_02024A6A
+_0802D794: .4byte gPlayerParty
+ thumb_func_end sub_802D730
+
+ thumb_func_start sub_802D798
+sub_802D798: @ 802D798
+ push {r4-r6,lr}
+ ldr r5, _0802D844 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _0802D848 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D7C6
+ ldr r0, _0802D84C @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0802D850 @ =gPlayerParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0802D7C6:
+ ldr r4, _0802D854 @ =gSprites
+ ldr r0, _0802D858 @ =gUnknown_0300434C
+ ldrb r2, [r5]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _0802D85C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0802D83C
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0802D83C
+ adds r0, r3, r4
+ bl DestroySprite
+ ldr r4, _0802D860 @ =gUnknown_03004340
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _0802D84C @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0802D850 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ bl sub_804777C
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ bl sub_8031F88
+ ldr r1, _0802D864 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802D868 @ =sub_802D680
+ str r1, [r0]
+_0802D83C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D844: .4byte gUnknown_02024A60
+_0802D848: .4byte 0x02017810
+_0802D84C: .4byte gUnknown_02024A6A
+_0802D850: .4byte gPlayerParty
+_0802D854: .4byte gSprites
+_0802D858: .4byte gUnknown_0300434C
+_0802D85C: .4byte SpriteCallbackDummy
+_0802D860: .4byte gUnknown_03004340
+_0802D864: .4byte gUnknown_03004330
+_0802D868: .4byte sub_802D680
+ thumb_func_end sub_802D798
+
+ thumb_func_start c3_0802FDF4
+c3_0802FDF4: @ 802D86C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ bne _0802D88E
+ ldr r0, _0802D894 @ =gMPlay_BGM
+ ldr r1, _0802D898 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ adds r0, r4, 0
+ bl DestroyTask
+_0802D88E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D894: .4byte gMPlay_BGM
+_0802D898: .4byte 0x0000ffff
+ thumb_func_end c3_0802FDF4
+
+ thumb_func_start bx_t1_healthbar_update
+bx_t1_healthbar_update: @ 802D89C
+ push {r4-r6,lr}
+ ldr r5, _0802D8DC @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r6, _0802D8E0 @ =gUnknown_03004340
+ 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 _0802D8E4
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _0802D8FE
+ .align 2, 0
+_0802D8DC: .4byte gUnknown_02024A60
+_0802D8E0: .4byte gUnknown_03004340
+_0802D8E4:
+ ldr r2, _0802D904 @ =gUnknown_02024A6A
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802D908 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl1_exec_completed
+_0802D8FE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D904: .4byte gUnknown_02024A6A
+_0802D908: .4byte gPlayerParty
+ thumb_func_end bx_t1_healthbar_update
+
+ thumb_func_start sub_802D90C
+sub_802D90C: @ 802D90C
+ push {lr}
+ ldr r0, _0802D920 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0802D91A
+ bl dp01_tbl1_exec_completed
+_0802D91A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802D920: .4byte gUnknown_03004210
+ thumb_func_end sub_802D90C
+
+ thumb_func_start sub_802D924
+sub_802D924: @ 802D924
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _0802DA24 @ =gTasks
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ mov r8, r0
+ ldrb r0, [r0, 0x8]
+ mov r10, r0
+ mov r1, r8
+ ldrb r7, [r1, 0xC]
+ str r7, [sp, 0x8]
+ ldrh r2, [r1, 0xA]
+ str r2, [sp, 0xC]
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0802D96A
+ ldr r1, _0802DA28 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r10, r0
+ bne _0802D96A
+ b _0802DA80
+_0802D96A:
+ movs r0, 0x64
+ mov r1, r10
+ muls r1, r0
+ ldr r0, _0802DA2C @ =gPlayerParty
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x4]
+ ldr r3, _0802DA30 @ =gExperienceTables
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, _0802DA34 @ =gBaseStats
+ lsls r1, r5, 3
+ subs r1, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrb r2, [r1, 0x13]
+ movs r1, 0xCA
+ lsls r1, 1
+ muls r1, r2
+ adds r4, r1
+ adds r4, r3
+ ldr r2, [r4]
+ str r2, [sp]
+ ldr r3, [sp, 0xC]
+ lsls r1, r3, 16
+ asrs r1, 16
+ adds r0, r1
+ cmp r0, r2
+ bcc _0802DA58
+ adds r0, r6, 0
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ adds r0, r6, 0
+ bl CalculateMonStats
+ ldr r2, [sp]
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ subs r2, r0
+ ldr r0, [sp, 0xC]
+ subs r2, r0, r2
+ ldr r4, _0802DA38 @ =gUnknown_02024A60
+ ldrb r5, [r4]
+ strb r7, [r4]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x1
+ movs r1, 0xB
+ bl dp01_build_cmdbuf_x21_a_bb
+ strb r5, [r4]
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802DA40
+ ldr r2, _0802DA28 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r2
+ mov r1, r10
+ ldrh r0, [r0]
+ cmp r1, r0
+ beq _0802DA1E
+ movs r0, 0x2
+ eors r7, r0
+ lsls r0, r7, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _0802DA40
+_0802DA1E:
+ ldr r0, _0802DA3C @ =sub_802DCB0
+ b _0802DA82
+ .align 2, 0
+_0802DA24: .4byte gTasks
+_0802DA28: .4byte gUnknown_02024A6A
+_0802DA2C: .4byte gPlayerParty
+_0802DA30: .4byte gExperienceTables
+_0802DA34: .4byte gBaseStats
+_0802DA38: .4byte gUnknown_02024A60
+_0802DA3C: .4byte sub_802DCB0
+_0802DA40:
+ ldr r0, _0802DA50 @ =gTasks
+ mov r2, r9
+ lsls r1, r2, 2
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0802DA54 @ =sub_802DDC4
+ b _0802DA84
+ .align 2, 0
+_0802DA50: .4byte gTasks
+_0802DA54: .4byte sub_802DDC4
+_0802DA58:
+ str r0, [sp, 0x4]
+ add r2, sp, 0x4
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl SetMonData
+ ldr r1, _0802DA78 @ =gUnknown_03004330
+ ldr r3, [sp, 0x8]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, _0802DA7C @ =sub_802D90C
+ str r1, [r0]
+ mov r0, r9
+ bl DestroyTask
+ b _0802DA86
+ .align 2, 0
+_0802DA78: .4byte gUnknown_03004330
+_0802DA7C: .4byte sub_802D90C
+_0802DA80:
+ ldr r0, _0802DA98 @ =sub_802DA9C
+_0802DA82:
+ mov r1, r8
+_0802DA84:
+ str r0, [r1]
+_0802DA86:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DA98: .4byte sub_802DA9C
+ thumb_func_end sub_802D924
+
+ thumb_func_start sub_802DA9C
+sub_802DA9C: @ 802DA9C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0802DB54 @ =gTasks
+ lsls r2, r0, 2
+ mov r8, r2
+ add r8, r0
+ mov r0, r8
+ lsls r0, 3
+ mov r8, r0
+ add r8, r1
+ mov r2, r8
+ ldrb r1, [r2, 0x8]
+ movs r0, 0xA
+ ldrsh r2, [r2, r0]
+ mov r9, r2
+ mov r2, r8
+ ldrb r2, [r2, 0xC]
+ mov r10, r2
+ movs r0, 0x64
+ adds r6, r1, 0
+ muls r6, r0
+ ldr r0, _0802DB58 @ =gPlayerParty
+ adds r6, r0
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ movs r1, 0x19
+ bl GetMonData
+ adds r3, r0, 0
+ ldr r6, _0802DB5C @ =gExperienceTables
+ lsls r1, r4, 2
+ ldr r2, _0802DB60 @ =gBaseStats
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r2
+ adds r1, r0
+ adds r1, r6
+ ldr r1, [r1]
+ subs r3, r1
+ adds r4, 0x1
+ lsls r4, 2
+ adds r4, r0
+ adds r4, r6
+ ldr r2, [r4]
+ subs r2, r1
+ ldr r0, _0802DB64 @ =gUnknown_03004340
+ add r0, r10
+ ldrb r1, [r0]
+ mov r0, r9
+ negs r0, r0
+ str r0, [sp]
+ mov r0, r10
+ bl sub_8043D84
+ movs r0, 0x21
+ bl PlaySE
+ ldr r0, _0802DB68 @ =sub_802DB6C
+ mov r1, r8
+ str r0, [r1]
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DB54: .4byte gTasks
+_0802DB58: .4byte gPlayerParty
+_0802DB5C: .4byte gExperienceTables
+_0802DB60: .4byte gBaseStats
+_0802DB64: .4byte gUnknown_03004340
+_0802DB68: .4byte sub_802DB6C
+ thumb_func_end sub_802DA9C
+
+ thumb_func_start sub_802DB6C
+sub_802DB6C: @ 802DB6C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0802DB98 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r1, [r6, 0x1C]
+ movs r2, 0x1C
+ ldrsh r0, [r6, r2]
+ cmp r0, 0xC
+ bgt _0802DB9C
+ adds r0, r1, 0x1
+ strh r0, [r6, 0x1C]
+ b _0802DC98
+ .align 2, 0
+_0802DB98: .4byte gTasks
+_0802DB9C:
+ ldrb r0, [r6, 0x8]
+ mov r9, r0
+ ldrh r2, [r6, 0xA]
+ mov r10, r2
+ ldrb r7, [r6, 0xC]
+ ldr r5, _0802DC64 @ =gUnknown_03004340
+ adds r5, r7, r5
+ ldrb r1, [r5]
+ adds r0, r7, 0
+ movs r2, 0x1
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ bne _0802DC98
+ movs r0, 0x21
+ bl m4aSongNumStop
+ movs r0, 0x64
+ mov r1, r9
+ muls r1, r0
+ ldr r0, _0802DC68 @ =gPlayerParty
+ adds r5, r1, r0
+ 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, 0x19
+ bl GetMonData
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _0802DC6C @ =gExperienceTables
+ adds r4, 0x1
+ lsls r4, 2
+ ldr r2, _0802DC70 @ =gBaseStats
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x13]
+ movs r0, 0xCA
+ lsls r0, 1
+ muls r0, r1
+ adds r4, r0
+ adds r4, r3
+ ldr r1, [r4]
+ str r1, [sp]
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r4, r0, 16
+ ldr r0, [sp, 0x4]
+ adds r0, r4
+ cmp r0, r1
+ blt _0802DC7C
+ adds r0, r5, 0
+ movs r1, 0x19
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ bl CalculateMonStats
+ ldr r2, [sp]
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ subs r2, r0
+ subs r2, r4, r2
+ ldr r4, _0802DC74 @ =gUnknown_02024A60
+ ldrb r5, [r4]
+ strb r7, [r4]
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x1
+ movs r1, 0xB
+ bl dp01_build_cmdbuf_x21_a_bb
+ strb r5, [r4]
+ ldr r0, _0802DC78 @ =sub_802DCB0
+ str r0, [r6]
+ b _0802DC98
+ .align 2, 0
+_0802DC64: .4byte gUnknown_03004340
+_0802DC68: .4byte gPlayerParty
+_0802DC6C: .4byte gExperienceTables
+_0802DC70: .4byte gBaseStats
+_0802DC74: .4byte gUnknown_02024A60
+_0802DC78: .4byte sub_802DCB0
+_0802DC7C:
+ str r0, [sp, 0x4]
+ add r2, sp, 0x4
+ adds r0, r5, 0
+ movs r1, 0x19
+ bl SetMonData
+ ldr r1, _0802DCA8 @ =gUnknown_03004330
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r1, _0802DCAC @ =sub_802D90C
+ str r1, [r0]
+ mov r0, r8
+ bl DestroyTask
+_0802DC98:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DCA8: .4byte gUnknown_03004330
+_0802DCAC: .4byte sub_802D90C
+ thumb_func_end sub_802DB6C
+
+ thumb_func_start sub_802DCB0
+sub_802DCB0: @ 802DCB0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0802DD04 @ =gTasks
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0xC]
+ ldrb r6, [r0, 0x8]
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802DCE4
+ ldr r1, _0802DD08 @ =gUnknown_02024A6A
+ movs r0, 0x2
+ adds r2, r4, 0
+ eors r2, r0
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ bne _0802DCE4
+ adds r4, r2, 0
+_0802DCE4:
+ adds r0, r4, 0
+ adds r1, r4, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl move_anim_start_t4
+ ldr r0, _0802DD04 @ =gTasks
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0802DD0C @ =sub_802DD10
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DD04: .4byte gTasks
+_0802DD08: .4byte gUnknown_02024A6A
+_0802DD0C: .4byte sub_802DD10
+ thumb_func_end sub_802DCB0
+
+ thumb_func_start sub_802DD10
+sub_802DD10: @ 802DD10
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0802DD78 @ =gTasks
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrb r5, [r2, 0xC]
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _0802DD7C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DDAE
+ ldrb r4, [r2, 0x8]
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _0802DD80 @ =gPlayerParty
+ adds r7, r1, r0
+ adds r0, r7, 0
+ movs r1, 0x38
+ bl GetMonData
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0802DD8C
+ ldr r1, _0802DD84 @ =gUnknown_02024A6A
+ movs r0, 0x2
+ adds r2, r5, 0
+ eors r2, r0
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0802DD8C
+ ldr r0, _0802DD88 @ =gUnknown_03004340
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8045A5C
+ b _0802DDA0
+ .align 2, 0
+_0802DD78: .4byte gTasks
+_0802DD7C: .4byte 0x02017810
+_0802DD80: .4byte gPlayerParty
+_0802DD84: .4byte gUnknown_02024A6A
+_0802DD88: .4byte gUnknown_03004340
+_0802DD8C:
+ ldr r0, _0802DDB4 @ =gUnknown_03004340
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ movs r1, 0x64
+ muls r1, r4
+ ldr r2, _0802DDB8 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+_0802DDA0:
+ ldr r0, _0802DDBC @ =gTasks
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0802DDC0 @ =sub_802DDC4
+ str r0, [r1]
+_0802DDAE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DDB4: .4byte gUnknown_03004340
+_0802DDB8: .4byte gPlayerParty
+_0802DDBC: .4byte gTasks
+_0802DDC0: .4byte sub_802DDC4
+ thumb_func_end sub_802DD10
+
+ thumb_func_start sub_802DDC4
+sub_802DDC4: @ 802DDC4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0802DE00 @ =gTasks
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r1, [r4, 0x8]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802DE04 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ bl GetMonData
+ ldrb r0, [r4, 0xC]
+ ldr r1, _0802DE08 @ =gUnknown_03004330
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802DE0C @ =sub_802D90C
+ str r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DE00: .4byte gTasks
+_0802DE04: .4byte gPlayerParty
+_0802DE08: .4byte gUnknown_03004330
+_0802DE0C: .4byte sub_802D90C
+ thumb_func_end sub_802DDC4
+
+ thumb_func_start sub_802DE10
+sub_802DE10: @ 802DE10
+ push {r4-r6,lr}
+ ldr r6, _0802DE94 @ =gSprites
+ ldr r5, _0802DE98 @ =gUnknown_02024BE0
+ ldr r4, _0802DE9C @ =gUnknown_02024A60
+ ldrb r2, [r4]
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r3, 0x22
+ ldrsh r1, [r0, r3]
+ movs r3, 0x26
+ ldrsh r0, [r0, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ ble _0802DE8C
+ ldr r1, _0802DEA0 @ =gUnknown_02024A6A
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0802DEA4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl nullsub_9
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r1, _0802DEA8 @ =gUnknown_03004340
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl1_exec_completed
+_0802DE8C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DE94: .4byte gSprites
+_0802DE98: .4byte gUnknown_02024BE0
+_0802DE9C: .4byte gUnknown_02024A60
+_0802DEA0: .4byte gUnknown_02024A6A
+_0802DEA4: .4byte gPlayerParty
+_0802DEA8: .4byte gUnknown_03004340
+ thumb_func_end sub_802DE10
+
+ thumb_func_start sub_802DEAC
+sub_802DEAC: @ 802DEAC
+ push {r4-r6,lr}
+ ldr r6, _0802DF04 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0802DF08 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DEFC
+ ldr r5, _0802DF0C @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0802DF10 @ =gSprites
+ 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, _0802DF14 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl1_exec_completed
+_0802DEFC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DF04: .4byte gUnknown_02024A60
+_0802DF08: .4byte 0x02017810
+_0802DF0C: .4byte gUnknown_02024BE0
+_0802DF10: .4byte gSprites
+_0802DF14: .4byte gUnknown_03004340
+ thumb_func_end sub_802DEAC
+
+ thumb_func_start sub_802DF18
+sub_802DF18: @ 802DF18
+ push {lr}
+ ldr r0, _0802DF2C @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0802DF26
+ bl dp01_tbl1_exec_completed
+_0802DF26:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DF2C: .4byte gUnknown_03004210
+ thumb_func_end sub_802DF18
+
+ thumb_func_start sub_802DF30
+sub_802DF30: @ 802DF30
+ push {r4,lr}
+ ldr r0, _0802DF70 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DF6A
+ ldr r1, _0802DF74 @ =gUnknown_03004330
+ ldr r2, _0802DF78 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802DF7C @ =sub_802DF88
+ str r1, [r0]
+ ldr r3, _0802DF80 @ =gTasks
+ ldr r1, _0802DF84 @ =gUnknown_0300434C
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldrb r4, [r1, 0x8]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl sub_8094E20
+_0802DF6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DF70: .4byte gPaletteFade
+_0802DF74: .4byte gUnknown_03004330
+_0802DF78: .4byte gUnknown_02024A60
+_0802DF7C: .4byte sub_802DF88
+_0802DF80: .4byte gTasks
+_0802DF84: .4byte gUnknown_0300434C
+ thumb_func_end sub_802DF30
+
+ thumb_func_start sub_802DF88
+sub_802DF88: @ 802DF88
+ push {lr}
+ ldr r0, _0802DFB8 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802DFBC @ =sub_800F808
+ cmp r1, r0
+ bne _0802DFF8
+ ldr r0, _0802DFC0 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802DFF8
+ ldr r0, _0802DFC4 @ =gUnknown_0202E8F4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802DFD0
+ ldr r0, _0802DFC8 @ =gUnknown_0202E8F5
+ ldrb r1, [r0]
+ ldr r2, _0802DFCC @ =gUnknown_02038470
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ b _0802DFDA
+ .align 2, 0
+_0802DFB8: .4byte gMain
+_0802DFBC: .4byte sub_800F808
+_0802DFC0: .4byte gPaletteFade
+_0802DFC4: .4byte gUnknown_0202E8F4
+_0802DFC8: .4byte gUnknown_0202E8F5
+_0802DFCC: .4byte gUnknown_02038470
+_0802DFD0:
+ movs r0, 0x1
+ movs r1, 0x6
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+_0802DFDA:
+ ldr r1, _0802DFFC @ =gUnknown_02023A60
+ ldr r0, _0802E000 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0802DFF4
+ bl b_link_standby_message
+_0802DFF4:
+ bl dp01_tbl1_exec_completed
+_0802DFF8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802DFFC: .4byte gUnknown_02023A60
+_0802E000: .4byte gUnknown_02024A60
+ thumb_func_end sub_802DF88
+
+ thumb_func_start sub_802E004
+sub_802E004: @ 802E004
+ push {lr}
+ ldr r0, _0802E02C @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E028
+ ldr r1, _0802E030 @ =gUnknown_03004330
+ ldr r0, _0802E034 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802E038 @ =sub_802E03C
+ str r1, [r0]
+ bl nullsub_14
+ bl sub_80A6DCC
+_0802E028:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E02C: .4byte gPaletteFade
+_0802E030: .4byte gUnknown_03004330
+_0802E034: .4byte gUnknown_02024A60
+_0802E038: .4byte sub_802E03C
+ thumb_func_end sub_802E004
+
+ thumb_func_start sub_802E03C
+sub_802E03C: @ 802E03C
+ push {lr}
+ ldr r0, _0802E068 @ =gMain
+ ldr r1, [r0, 0x4]
+ ldr r0, _0802E06C @ =sub_800F808
+ cmp r1, r0
+ bne _0802E062
+ ldr r0, _0802E070 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E062
+ ldr r0, _0802E074 @ =word_203855E
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl dp01_tbl1_exec_completed
+_0802E062:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E068: .4byte gMain
+_0802E06C: .4byte sub_800F808
+_0802E070: .4byte gPaletteFade
+_0802E074: .4byte word_203855E
+ thumb_func_end sub_802E03C
+
+ thumb_func_start bx_wait_t1
+bx_wait_t1: @ 802E078
+ push {lr}
+ ldr r0, _0802E0A4 @ =gUnknown_02024E6D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0802E09A
+ ldr r0, _0802E0A8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802E0AC @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E09E
+_0802E09A:
+ bl dp01_tbl1_exec_completed
+_0802E09E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E0A4: .4byte gUnknown_02024E6D
+_0802E0A8: .4byte gUnknown_02024A60
+_0802E0AC: .4byte 0x02017810
+ thumb_func_end bx_wait_t1
+
+ thumb_func_start bx_blink_t1
+bx_blink_t1: @ 802E0B0
+ push {r4,lr}
+ ldr r1, _0802E0EC @ =gUnknown_02024BE0
+ ldr r0, _0802E0F0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _0802E0F4 @ =gSprites
+ 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 _0802E0FC
+ 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, _0802E0F8 @ =gUnknown_02024E6D
+ strb r3, [r0]
+ bl dp01_tbl1_exec_completed
+ b _0802E126
+ .align 2, 0
+_0802E0EC: .4byte gUnknown_02024BE0
+_0802E0F0: .4byte gUnknown_02024A60
+_0802E0F4: .4byte gSprites
+_0802E0F8: .4byte gUnknown_02024E6D
+_0802E0FC:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E120
+ 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]
+_0802E120:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_0802E126:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t1
+
+ thumb_func_start sub_802E12C
+sub_802E12C: @ 802E12C
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r0, _0802E180 @ =gUnknown_02024A60
+ ldrb r4, [r0]
+ lsls r4, 9
+ ldr r0, _0802E184 @ =gUnknown_02023A64
+ adds r4, r0
+ ldr r5, _0802E188 @ =gUnknown_020238CC
+ adds r0, r5, 0
+ bl StringCopy
+ lsls r0, r6, 1
+ adds r4, r0
+ ldrh r1, [r4]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _0802E18C @ =gMoveNames
+ adds r1, r0
+ adds r0, r5, 0
+ bl StringAppend
+ ldr r4, _0802E190 @ =gUnknown_03004210
+ adds r1, r5, 0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 18
+ movs r2, 0xC0
+ lsls r2, 18
+ adds r0, r2
+ lsrs r2, r0, 16
+ movs r0, 0x1
+ ands r0, r6
+ movs r3, 0x1
+ cmp r0, 0
+ beq _0802E176
+ movs r3, 0xB
+_0802E176:
+ cmp r6, 0x1
+ bgt _0802E194
+ movs r0, 0x37
+ b _0802E196
+ .align 2, 0
+_0802E180: .4byte gUnknown_02024A60
+_0802E184: .4byte gUnknown_02023A64
+_0802E188: .4byte gUnknown_020238CC
+_0802E18C: .4byte gMoveNames
+_0802E190: .4byte gUnknown_03004210
+_0802E194:
+ movs r0, 0x39
+_0802E196:
+ str r0, [sp]
+ adds r0, r4, 0
+ bl InitWindow
+ ldr r0, _0802E1AC @ =gUnknown_03004210
+ bl sub_8002F44
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E1AC: .4byte gUnknown_03004210
+ thumb_func_end sub_802E12C
+
+ thumb_func_start sub_802E1B0
+sub_802E1B0: @ 802E1B0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r0, _0802E208 @ =gUnknown_02024A60
+ ldrb r4, [r0]
+ lsls r4, 9
+ ldr r0, _0802E20C @ =gUnknown_02023A64
+ adds r4, r0
+ ldr r5, _0802E210 @ =gUnknown_03004348
+ movs r0, 0
+ strb r0, [r5]
+ ldr r0, _0802E214 @ =gUnknown_03004210
+ ldr r1, _0802E218 @ =0x00001016
+ movs r2, 0x14
+ str r2, [sp]
+ movs r2, 0x3A
+ str r2, [sp, 0x4]
+ movs r2, 0x1
+ movs r3, 0x37
+ bl FillWindowRect
+ movs r6, 0
+_0802E1DA:
+ lsls r0, r6, 24
+ lsrs r0, 24
+ bl nullsub_7
+ adds r0, r6, 0
+ ldr r1, _0802E21C @ =gUnknown_08400D49
+ bl sub_802E12C
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0802E1F6
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+_0802E1F6:
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0802E1DA
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E208: .4byte gUnknown_02024A60
+_0802E20C: .4byte gUnknown_02023A64
+_0802E210: .4byte gUnknown_03004348
+_0802E214: .4byte gUnknown_03004210
+_0802E218: .4byte 0x00001016
+_0802E21C: .4byte gUnknown_08400D49
+ thumb_func_end sub_802E1B0
+
+ thumb_func_start sub_802E220
+sub_802E220: @ 802E220
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r4, _0802E2B8 @ =gUnknown_02023A60
+ ldr r6, _0802E2BC @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r1, r0, 9
+ adds r0, r4, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0802E2B0
+ adds r4, 0x4
+ adds r4, r1, r4
+ ldr r2, _0802E2C0 @ =gUnknown_020238CC
+ ldr r1, _0802E2C4 @ =gUnknown_08400D49
+ adds r0, r2, 0
+ bl StringCopy
+ adds r2, r0, 0
+ movs r1, 0xFC
+ strb r1, [r2]
+ movs r0, 0x11
+ strb r0, [r2, 0x1]
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ strb r1, [r2]
+ movs r0, 0x14
+ strb r0, [r2, 0x1]
+ movs r0, 0x6
+ strb r0, [r2, 0x2]
+ adds r2, 0x3
+ ldr r5, _0802E2C8 @ =gUnknown_02024E64
+ ldrb r1, [r6]
+ adds r1, r5
+ adds r0, r4, 0
+ adds r0, 0x8
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ ldrb r0, [r6]
+ adds r0, r5
+ adds r4, 0xC
+ ldrb r0, [r0]
+ adds r4, r0
+ ldrb r1, [r4]
+ adds r0, r2, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r4, _0802E2CC @ =gUnknown_03004210
+ ldr r1, _0802E2C0 @ =gUnknown_020238CC
+ ldr r2, _0802E2D0 @ =0x000002a2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x19
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+_0802E2B0:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E2B8: .4byte gUnknown_02023A60
+_0802E2BC: .4byte gUnknown_02024A60
+_0802E2C0: .4byte gUnknown_020238CC
+_0802E2C4: .4byte gUnknown_08400D49
+_0802E2C8: .4byte gUnknown_02024E64
+_0802E2CC: .4byte gUnknown_03004210
+_0802E2D0: .4byte 0x000002a2
+ thumb_func_end sub_802E220
+
+ thumb_func_start sub_802E2D4
+sub_802E2D4: @ 802E2D4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _0802E314 @ =gUnknown_02023A60
+ ldr r5, _0802E318 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ lsls r1, r0, 9
+ adds r0, r4, 0x2
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0802E328
+ ldr r4, _0802E31C @ =gUnknown_03004210
+ ldr r1, _0802E320 @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x37
+ bl FillWindowRect
+ ldr r1, _0802E324 @ =gUnknown_08400D52
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x13
+ bl InitWindow
+ b _0802E388
+ .align 2, 0
+_0802E314: .4byte gUnknown_02023A60
+_0802E318: .4byte gUnknown_02024A60
+_0802E31C: .4byte gUnknown_03004210
+_0802E320: .4byte 0x00001016
+_0802E324: .4byte gUnknown_08400D52
+_0802E328:
+ adds r4, 0x4
+ adds r4, r1, r4
+ ldr r3, _0802E398 @ =gUnknown_020238CC
+ ldr r1, _0802E39C @ =gUnknown_08400D49
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ ldr r2, _0802E3A0 @ =gBattleMoves
+ ldr r1, _0802E3A4 @ =gUnknown_02024E64
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r4, r0
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ lsls r1, r0, 3
+ subs r1, r0
+ ldr r0, _0802E3A8 @ =gTypeNames
+ adds r1, r0
+ adds r0, r3, 0
+ bl StringCopy
+ ldr r4, _0802E3AC @ =gUnknown_03004210
+ ldr r1, _0802E3B0 @ =0x00001016
+ movs r0, 0x1C
+ str r0, [sp]
+ movs r0, 0x3A
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r2, 0x17
+ movs r3, 0x39
+ bl FillWindowRect
+ ldr r1, _0802E398 @ =gUnknown_020238CC
+ movs r2, 0xB0
+ lsls r2, 2
+ movs r0, 0x39
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+_0802E388:
+ ldr r0, _0802E3AC @ =gUnknown_03004210
+ bl sub_8002F44
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E398: .4byte gUnknown_020238CC
+_0802E39C: .4byte gUnknown_08400D49
+_0802E3A0: .4byte gBattleMoves
+_0802E3A4: .4byte gUnknown_02024E64
+_0802E3A8: .4byte gTypeNames
+_0802E3AC: .4byte gUnknown_03004210
+_0802E3B0: .4byte 0x00001016
+ thumb_func_end sub_802E2D4
+
+ thumb_func_start sub_802E3B4
+sub_802E3B4: @ 802E3B4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x48
+ bl sub_814A958
+ ldr r1, _0802E3DC @ =gUnknown_081FAE89
+ lsls r4, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ adds r1, 0x1
+ adds r4, r1
+ ldrb r1, [r4]
+ bl sub_814A880
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E3DC: .4byte gUnknown_081FAE89
+ thumb_func_end sub_802E3B4
+
+ thumb_func_start nullsub_7
+nullsub_7: @ 802E3E0
+ bx lr
+ thumb_func_end nullsub_7
+
+ thumb_func_start sub_802E3E4
+sub_802E3E4: @ 802E3E4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2A
+ bl sub_814A958
+ ldr r1, _0802E40C @ =gUnknown_081FAE91
+ lsls r4, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ adds r1, 0x1
+ adds r4, r1
+ ldrb r1, [r4]
+ bl sub_814A880
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E40C: .4byte gUnknown_081FAE91
+ thumb_func_end sub_802E3E4
+
+ thumb_func_start nullsub_8
+nullsub_8: @ 802E410
+ bx lr
+ thumb_func_end nullsub_8
+
+ thumb_func_start sub_802E414
+sub_802E414: @ 802E414
+ push {lr}
+ ldr r0, _0802E420 @ =sub_807AD58
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E420: .4byte sub_807AD58
+ thumb_func_end sub_802E414
+
+ thumb_func_start sub_802E424
+sub_802E424: @ 802E424
+ push {lr}
+ ldr r0, _0802E430 @ =sub_807AD58
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E430: .4byte sub_807AD58
+ thumb_func_end sub_802E424
+
+ thumb_func_start sub_802E434
+sub_802E434: @ 802E434
+ push {lr}
+ ldr r0, _0802E458 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802E45C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E452
+ bl dp01_tbl1_exec_completed
+_0802E452:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E458: .4byte gUnknown_02024A60
+_0802E45C: .4byte 0x02017810
+ thumb_func_end sub_802E434
+
+ thumb_func_start sub_802E460
+sub_802E460: @ 802E460
+ push {lr}
+ ldr r0, _0802E484 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0802E488 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0802E47E
+ bl dp01_tbl1_exec_completed
+_0802E47E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E484: .4byte gUnknown_02024A60
+_0802E488: .4byte 0x02017810
+ thumb_func_end sub_802E460
+
+ thumb_func_start b_link_standby_message
+b_link_standby_message: @ 802E48C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _0802E4BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0802E4B6
+ ldr r0, _0802E4C0 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0802E4C4 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r0, _0802E4C8 @ =gUnknown_03004210
+ ldr r1, _0802E4CC @ =gUnknown_08400CE0
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+_0802E4B6:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802E4BC: .4byte gUnknown_020239F8
+_0802E4C0: .4byte gUnknown_030042A4
+_0802E4C4: .4byte gUnknown_030042A0
+_0802E4C8: .4byte gUnknown_03004210
+_0802E4CC: .4byte gUnknown_08400CE0
+ thumb_func_end b_link_standby_message
+
+ thumb_func_start dp01t_00_1_getattr
+dp01t_00_1_getattr: @ 802E4D0
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _0802E4FC @ =gUnknown_02023A60
+ ldr r0, _0802E500 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0802E508
+ ldr r0, _0802E504 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl dp01_getattr_by_ch1_for_player_pokemon_
+ adds r6, r0, 0
+ b _0802E52A
+ .align 2, 0
+_0802E4FC: .4byte gUnknown_02023A60
+_0802E500: .4byte gUnknown_02024A60
+_0802E504: .4byte gUnknown_02024A6A
+_0802E508:
+ ldrb r4, [r1]
+ movs r5, 0
+_0802E50C:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0802E522
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl dp01_getattr_by_ch1_for_player_pokemon_
+ adds r6, r0
+_0802E522:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0802E50C
+_0802E52A:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl1_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_1_getattr
+
+ thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_
+dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544
+ 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, _0802E578 @ =gUnknown_02023A60
+ ldr r3, _0802E57C @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _0802E56E
+ bl _0802ECDA
+_0802E56E:
+ lsls r0, 2
+ ldr r1, _0802E580 @ =_0802E584
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802E578: .4byte gUnknown_02023A60
+_0802E57C: .4byte gUnknown_02024A60
+_0802E580: .4byte _0802E584
+ .align 2, 0
+_0802E584:
+ .4byte _0802E674
+ .4byte _0802E898
+ .4byte _0802E8A8
+ .4byte _0802E8B8
+ .4byte _0802E920
+ .4byte _0802E920
+ .4byte _0802E920
+ .4byte _0802E920
+ .4byte _0802E93C
+ .4byte _0802E978
+ .4byte _0802E978
+ .4byte _0802E978
+ .4byte _0802E978
+ .4byte _0802ECDA
+ .4byte _0802ECDA
+ .4byte _0802ECDA
+ .4byte _0802ECDA
+ .4byte _0802E994
+ .4byte _0802E9A4
+ .4byte _0802E9D4
+ .4byte _0802E9E4
+ .4byte _0802E9F4
+ .4byte _0802EA04
+ .4byte _0802EA14
+ .4byte _0802EA24
+ .4byte _0802EA34
+ .4byte _0802EA44
+ .4byte _0802EA54
+ .4byte _0802EA64
+ .4byte _0802EA74
+ .4byte _0802EA84
+ .4byte _0802EA94
+ .4byte _0802EAE4
+ .4byte _0802EAF4
+ .4byte _0802EB04
+ .4byte _0802EB14
+ .4byte _0802EB24
+ .4byte _0802EB34
+ .4byte _0802EB44
+ .4byte _0802EB54
+ .4byte _0802EB64
+ .4byte _0802EB98
+ .4byte _0802EBA8
+ .4byte _0802EBB8
+ .4byte _0802EBC8
+ .4byte _0802EBD8
+ .4byte _0802EBE8
+ .4byte _0802EBF8
+ .4byte _0802EC08
+ .4byte _0802EC28
+ .4byte _0802EC38
+ .4byte _0802EC48
+ .4byte _0802EC58
+ .4byte _0802EC68
+ .4byte _0802EC78
+ .4byte _0802EC88
+ .4byte _0802EC98
+ .4byte _0802ECA8
+ .4byte _0802ECB8
+ .4byte _0802ECC8
+_0802E674:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802E888 @ =gPlayerParty
+ 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
+_0802E6C0:
+ 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 _0802E6C0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802E888 @ =gPlayerParty
+ 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, _0802E88C @ =0xfffffc1f
+ 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, _0802E890 @ =0xfff07fff
+ 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, _0802E894 @ =0xfffffe0f
+ 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
+_0802E878:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _0802E878
+ b _0802ECDA
+ .align 2, 0
+_0802E888: .4byte gPlayerParty
+_0802E88C: .4byte 0xfffffc1f
+_0802E890: .4byte 0xfff07fff
+_0802E894: .4byte 0xfffffe0f
+_0802E898:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E8A4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ b _0802EC12
+ .align 2, 0
+_0802E8A4: .4byte gPlayerParty
+_0802E8A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E8B4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xC
+ b _0802EC12
+ .align 2, 0
+_0802E8B4: .4byte gPlayerParty
+_0802E8B8:
+ 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, _0802E91C @ =gPlayerParty
+ adds r4, r1, r0
+ mov r8, r9
+_0802E8CE:
+ 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 _0802E8CE
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E91C @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_0802E90C:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _0802E90C
+ b _0802ECDA
+ .align 2, 0
+_0802E91C: .4byte gPlayerParty
+_0802E920:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E938 @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0802EC12
+ .align 2, 0
+_0802E938: .4byte gPlayerParty
+_0802E93C:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _0802E974 @ =gPlayerParty
+ mov r8, r2
+_0802E948:
+ 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 _0802E948
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E974 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _0802ECDA
+ .align 2, 0
+_0802E974: .4byte gPlayerParty
+_0802E978:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E990 @ =gPlayerParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _0802ECD2
+ .align 2, 0
+_0802E990: .4byte gPlayerParty
+_0802E994:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E9A0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1
+ b _0802E9AE
+ .align 2, 0
+_0802E9A0: .4byte gPlayerParty
+_0802E9A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E9D0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x19
+_0802E9AE:
+ 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 _0802ECDA
+ .align 2, 0
+_0802E9D0: .4byte gPlayerParty
+_0802E9D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E9E0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _0802ECD2
+ .align 2, 0
+_0802E9E0: .4byte gPlayerParty
+_0802E9E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802E9F0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _0802ECD2
+ .align 2, 0
+_0802E9F0: .4byte gPlayerParty
+_0802E9F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA00 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _0802ECD2
+ .align 2, 0
+_0802EA00: .4byte gPlayerParty
+_0802EA04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _0802ECD2
+ .align 2, 0
+_0802EA10: .4byte gPlayerParty
+_0802EA14:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA20 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _0802ECD2
+ .align 2, 0
+_0802EA20: .4byte gPlayerParty
+_0802EA24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA30 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _0802ECD2
+ .align 2, 0
+_0802EA30: .4byte gPlayerParty
+_0802EA34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA40 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x20
+ b _0802ECD2
+ .align 2, 0
+_0802EA40: .4byte gPlayerParty
+_0802EA44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA50 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x22
+ b _0802ECD2
+ .align 2, 0
+_0802EA50: .4byte gPlayerParty
+_0802EA54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA60 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x23
+ b _0802ECD2
+ .align 2, 0
+_0802EA60: .4byte gPlayerParty
+_0802EA64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA70 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x24
+ b _0802ECD2
+ .align 2, 0
+_0802EA70: .4byte gPlayerParty
+_0802EA74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA80 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x25
+ b _0802ECD2
+ .align 2, 0
+_0802EA80: .4byte gPlayerParty
+_0802EA84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EA90 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x26
+ b _0802ECD2
+ .align 2, 0
+_0802EA90: .4byte gPlayerParty
+_0802EA94:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802EAE0 @ =gPlayerParty
+ 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 _0802ECDA
+ .align 2, 0
+_0802EAE0: .4byte gPlayerParty
+_0802EAE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EAF0 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x27
+ b _0802ECD2
+ .align 2, 0
+_0802EAF0: .4byte gPlayerParty
+_0802EAF4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB00 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x28
+ b _0802ECD2
+ .align 2, 0
+_0802EB00: .4byte gPlayerParty
+_0802EB04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB10 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x29
+ b _0802ECD2
+ .align 2, 0
+_0802EB10: .4byte gPlayerParty
+_0802EB14:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB20 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _0802ECD2
+ .align 2, 0
+_0802EB20: .4byte gPlayerParty
+_0802EB24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB30 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _0802ECD2
+ .align 2, 0
+_0802EB30: .4byte gPlayerParty
+_0802EB34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB40 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _0802ECD2
+ .align 2, 0
+_0802EB40: .4byte gPlayerParty
+_0802EB44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB50 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0
+ b _0802EB6E
+ .align 2, 0
+_0802EB50: .4byte gPlayerParty
+_0802EB54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB60 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x9
+ b _0802EC12
+ .align 2, 0
+_0802EB60: .4byte gPlayerParty
+_0802EB64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EB94 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x37
+_0802EB6E:
+ 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 _0802ECDA
+ .align 2, 0
+_0802EB94: .4byte gPlayerParty
+_0802EB98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBA4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x38
+ b _0802ECD2
+ .align 2, 0
+_0802EBA4: .4byte gPlayerParty
+_0802EBA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBB4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x39
+ b _0802EC12
+ .align 2, 0
+_0802EBB4: .4byte gPlayerParty
+_0802EBB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBC4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _0802EC12
+ .align 2, 0
+_0802EBC4: .4byte gPlayerParty
+_0802EBC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBD4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _0802EC12
+ .align 2, 0
+_0802EBD4: .4byte gPlayerParty
+_0802EBD8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBE4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _0802EC12
+ .align 2, 0
+_0802EBE4: .4byte gPlayerParty
+_0802EBE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EBF4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _0802EC12
+ .align 2, 0
+_0802EBF4: .4byte gPlayerParty
+_0802EBF8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC04 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _0802EC12
+ .align 2, 0
+_0802EC04: .4byte gPlayerParty
+_0802EC08:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC24 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3F
+_0802EC12:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _0802ECDA
+ .align 2, 0
+_0802EC24: .4byte gPlayerParty
+_0802EC28:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC34 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x16
+ b _0802ECD2
+ .align 2, 0
+_0802EC34: .4byte gPlayerParty
+_0802EC38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC44 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x17
+ b _0802ECD2
+ .align 2, 0
+_0802EC44: .4byte gPlayerParty
+_0802EC48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC54 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x18
+ b _0802ECD2
+ .align 2, 0
+_0802EC54: .4byte gPlayerParty
+_0802EC58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC64 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x21
+ b _0802ECD2
+ .align 2, 0
+_0802EC64: .4byte gPlayerParty
+_0802EC68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC74 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _0802ECD2
+ .align 2, 0
+_0802EC74: .4byte gPlayerParty
+_0802EC78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC84 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x30
+ b _0802ECD2
+ .align 2, 0
+_0802EC84: .4byte gPlayerParty
+_0802EC88:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802EC94 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x32
+ b _0802ECD2
+ .align 2, 0
+_0802EC94: .4byte gPlayerParty
+_0802EC98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802ECA4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x33
+ b _0802ECD2
+ .align 2, 0
+_0802ECA4: .4byte gPlayerParty
+_0802ECA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802ECB4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x34
+ b _0802ECD2
+ .align 2, 0
+_0802ECB4: .4byte gPlayerParty
+_0802ECB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802ECC4 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x35
+ b _0802ECD2
+ .align 2, 0
+_0802ECC4: .4byte gPlayerParty
+_0802ECC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802ECEC @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x36
+_0802ECD2:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_0802ECDA:
+ 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
+_0802ECEC: .4byte gPlayerParty
+ thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_
+
+ thumb_func_start sub_802ECF0
+sub_802ECF0: @ 802ECF0
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r2, _0802ED68 @ =gUnknown_02024A6A
+ ldr r5, _0802ED6C @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r3, _0802ED70 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ ldr r0, _0802ED74 @ =gPlayerParty
+ adds r0, r2, r0
+ adds r6, r4, r0
+ mov r0, sp
+ adds r4, r0, r2
+ movs r2, 0
+ adds r0, r3, 0x2
+ adds r1, r0
+ adds r7, r5, 0
+ mov r12, r3
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcs _0802ED46
+ adds r3, r0, 0
+_0802ED2C:
+ adds r1, r4, r2
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _0802ED2C
+_0802ED46:
+ ldrb r0, [r7]
+ lsls r0, 9
+ mov r1, r12
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl1_exec_completed
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802ED68: .4byte gUnknown_02024A6A
+_0802ED6C: .4byte gUnknown_02024A60
+_0802ED70: .4byte gUnknown_02023A60
+_0802ED74: .4byte gPlayerParty
+ thumb_func_end sub_802ECF0
+
+ thumb_func_start dp01t_02_1_setattr
+dp01t_02_1_setattr: @ 802ED78
+ push {r4,r5,lr}
+ ldr r1, _0802ED9C @ =gUnknown_02023A60
+ ldr r0, _0802EDA0 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0802EDA8
+ ldr r0, _0802EDA4 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl dp01_setattr_by_ch1_for_player_pokemon
+ b _0802EDC6
+ .align 2, 0
+_0802ED9C: .4byte gUnknown_02023A60
+_0802EDA0: .4byte gUnknown_02024A60
+_0802EDA4: .4byte gUnknown_02024A6A
+_0802EDA8:
+ ldrb r4, [r1]
+ movs r5, 0
+_0802EDAC:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0802EDBA
+ adds r0, r5, 0
+ bl dp01_setattr_by_ch1_for_player_pokemon
+_0802EDBA:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0802EDAC
+_0802EDC6:
+ bl dp01_tbl1_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_02_1_setattr
+
+ thumb_func_start dp01_setattr_by_ch1_for_player_pokemon
+dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0
+ 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, _0802EE08 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ ldr r2, _0802EE0C @ =gUnknown_02023A63
+ 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 _0802EDFC
+ bl _0802F796
+_0802EDFC:
+ lsls r0, 2
+ ldr r1, _0802EE10 @ =_0802EE14
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0802EE08: .4byte gUnknown_02024A60
+_0802EE0C: .4byte gUnknown_02023A63
+_0802EE10: .4byte _0802EE14
+ .align 2, 0
+_0802EE14:
+ .4byte _0802EF04
+ .4byte _0802F09C
+ .4byte _0802F0BC
+ .4byte _0802F0DC
+ .4byte _0802F134
+ .4byte _0802F134
+ .4byte _0802F134
+ .4byte _0802F134
+ .4byte _0802F15C
+ .4byte _0802F1C0
+ .4byte _0802F1C0
+ .4byte _0802F1C0
+ .4byte _0802F1C0
+ .4byte _0802F796
+ .4byte _0802F796
+ .4byte _0802F796
+ .4byte _0802F796
+ .4byte _0802F1F0
+ .4byte _0802F210
+ .4byte _0802F230
+ .4byte _0802F250
+ .4byte _0802F270
+ .4byte _0802F290
+ .4byte _0802F2B0
+ .4byte _0802F2D0
+ .4byte _0802F2F0
+ .4byte _0802F310
+ .4byte _0802F330
+ .4byte _0802F350
+ .4byte _0802F370
+ .4byte _0802F390
+ .4byte _0802F3B0
+ .4byte _0802F420
+ .4byte _0802F440
+ .4byte _0802F460
+ .4byte _0802F480
+ .4byte _0802F4A0
+ .4byte _0802F4C0
+ .4byte _0802F4E0
+ .4byte _0802F500
+ .4byte _0802F520
+ .4byte _0802F540
+ .4byte _0802F560
+ .4byte _0802F580
+ .4byte _0802F5A0
+ .4byte _0802F5C0
+ .4byte _0802F5E0
+ .4byte _0802F600
+ .4byte _0802F620
+ .4byte _0802F640
+ .4byte _0802F660
+ .4byte _0802F680
+ .4byte _0802F6A0
+ .4byte _0802F6C0
+ .4byte _0802F6E0
+ .4byte _0802F700
+ .4byte _0802F720
+ .4byte _0802F740
+ .4byte _0802F760
+ .4byte _0802F780
+_0802EF04:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802F098 @ =gPlayerParty
+ 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
+_0802EF6A:
+ 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 _0802EF6A
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802F098 @ =gPlayerParty
+ 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 _0802F796
+ .align 2, 0
+_0802F098: .4byte gPlayerParty
+_0802F09C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F0B4 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F0B8 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xB
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F0B4: .4byte gPlayerParty
+_0802F0B8: .4byte gUnknown_02024A60
+_0802F0BC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F0D4 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F0D8 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xC
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F0D4: .4byte gPlayerParty
+_0802F0D8: .4byte gUnknown_02024A60
+_0802F0DC:
+ 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, _0802F130 @ =gPlayerParty
+ adds r7, r1, r0
+ adds r6, r3, 0
+ adds r6, 0x8
+ adds r4, r3, 0
+_0802F0F6:
+ 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 _0802F0F6
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F130 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F130: .4byte gPlayerParty
+_0802F134:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F150 @ =gPlayerParty
+ adds r0, r1
+ ldr r3, _0802F154 @ =gUnknown_02023A60
+ ldr r1, _0802F158 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0802F1D8
+ .align 2, 0
+_0802F150: .4byte gPlayerParty
+_0802F154: .4byte gUnknown_02023A60
+_0802F158: .4byte gUnknown_02024A60
+_0802F15C:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802F1B8 @ =gPlayerParty
+ adds r4, r0
+ ldr r5, _0802F1BC @ =gUnknown_02024A60
+ 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 _0802F796
+ .align 2, 0
+_0802F1B8: .4byte gPlayerParty
+_0802F1BC: .4byte gUnknown_02024A60
+_0802F1C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F1E4 @ =gPlayerParty
+ adds r0, r1
+ ldr r3, _0802F1E8 @ =gUnknown_02023A60
+ ldr r1, _0802F1EC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0802F1D8:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F1E4: .4byte gPlayerParty
+_0802F1E8: .4byte gUnknown_02023A60
+_0802F1EC: .4byte gUnknown_02024A60
+_0802F1F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F208 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F20C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F208: .4byte gPlayerParty
+_0802F20C: .4byte gUnknown_02024A60
+_0802F210:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F228 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F22C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x19
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F228: .4byte gPlayerParty
+_0802F22C: .4byte gUnknown_02024A60
+_0802F230:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F248 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F24C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1A
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F248: .4byte gPlayerParty
+_0802F24C: .4byte gUnknown_02024A60
+_0802F250:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F268 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F26C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1B
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F268: .4byte gPlayerParty
+_0802F26C: .4byte gUnknown_02024A60
+_0802F270:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F288 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F28C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1C
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F288: .4byte gPlayerParty
+_0802F28C: .4byte gUnknown_02024A60
+_0802F290:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F2A8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F2AC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1D
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F2A8: .4byte gPlayerParty
+_0802F2AC: .4byte gUnknown_02024A60
+_0802F2B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F2C8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F2CC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1E
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F2C8: .4byte gPlayerParty
+_0802F2CC: .4byte gUnknown_02024A60
+_0802F2D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F2E8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F2EC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1F
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F2E8: .4byte gPlayerParty
+_0802F2EC: .4byte gUnknown_02024A60
+_0802F2F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F308 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F30C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x20
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F308: .4byte gPlayerParty
+_0802F30C: .4byte gUnknown_02024A60
+_0802F310:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F328 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F32C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x22
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F328: .4byte gPlayerParty
+_0802F32C: .4byte gUnknown_02024A60
+_0802F330:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F348 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F34C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x23
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F348: .4byte gPlayerParty
+_0802F34C: .4byte gUnknown_02024A60
+_0802F350:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F368 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F36C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x24
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F368: .4byte gPlayerParty
+_0802F36C: .4byte gUnknown_02024A60
+_0802F370:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F388 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F38C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x25
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F388: .4byte gPlayerParty
+_0802F38C: .4byte gUnknown_02024A60
+_0802F390:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F3A8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F3AC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x26
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F3A8: .4byte gPlayerParty
+_0802F3AC: .4byte gUnknown_02024A60
+_0802F3B0:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0802F418 @ =gPlayerParty
+ adds r4, r0
+ ldr r5, _0802F41C @ =gUnknown_02024A60
+ 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 _0802F4D0
+ .align 2, 0
+_0802F418: .4byte gPlayerParty
+_0802F41C: .4byte gUnknown_02024A60
+_0802F420:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F438 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F43C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x27
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F438: .4byte gPlayerParty
+_0802F43C: .4byte gUnknown_02024A60
+_0802F440:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F458 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F45C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x28
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F458: .4byte gPlayerParty
+_0802F45C: .4byte gUnknown_02024A60
+_0802F460:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F478 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F47C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x29
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F478: .4byte gPlayerParty
+_0802F47C: .4byte gUnknown_02024A60
+_0802F480:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F498 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F49C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2A
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F498: .4byte gPlayerParty
+_0802F49C: .4byte gUnknown_02024A60
+_0802F4A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F4B8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F4BC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2B
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F4B8: .4byte gPlayerParty
+_0802F4BC: .4byte gUnknown_02024A60
+_0802F4C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F4D8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F4DC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+_0802F4D0:
+ movs r1, 0x2C
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F4D8: .4byte gPlayerParty
+_0802F4DC: .4byte gUnknown_02024A60
+_0802F4E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F4F8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F4FC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F4F8: .4byte gPlayerParty
+_0802F4FC: .4byte gUnknown_02024A60
+_0802F500:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F518 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F51C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x9
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F518: .4byte gPlayerParty
+_0802F51C: .4byte gUnknown_02024A60
+_0802F520:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F538 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F53C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x37
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F538: .4byte gPlayerParty
+_0802F53C: .4byte gUnknown_02024A60
+_0802F540:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F558 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F55C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x38
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F558: .4byte gPlayerParty
+_0802F55C: .4byte gUnknown_02024A60
+_0802F560:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F578 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F57C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x39
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F578: .4byte gPlayerParty
+_0802F57C: .4byte gUnknown_02024A60
+_0802F580:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F598 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F59C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3A
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F598: .4byte gPlayerParty
+_0802F59C: .4byte gUnknown_02024A60
+_0802F5A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F5B8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F5BC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3B
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F5B8: .4byte gPlayerParty
+_0802F5BC: .4byte gUnknown_02024A60
+_0802F5C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F5D8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F5DC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3C
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F5D8: .4byte gPlayerParty
+_0802F5DC: .4byte gUnknown_02024A60
+_0802F5E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F5F8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F5FC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3D
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F5F8: .4byte gPlayerParty
+_0802F5FC: .4byte gUnknown_02024A60
+_0802F600:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F618 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F61C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3E
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F618: .4byte gPlayerParty
+_0802F61C: .4byte gUnknown_02024A60
+_0802F620:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F638 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F63C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3F
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F638: .4byte gPlayerParty
+_0802F63C: .4byte gUnknown_02024A60
+_0802F640:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F658 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F65C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x16
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F658: .4byte gPlayerParty
+_0802F65C: .4byte gUnknown_02024A60
+_0802F660:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F678 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F67C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x17
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F678: .4byte gPlayerParty
+_0802F67C: .4byte gUnknown_02024A60
+_0802F680:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F698 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F69C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x18
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F698: .4byte gPlayerParty
+_0802F69C: .4byte gUnknown_02024A60
+_0802F6A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F6B8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F6BC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x21
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F6B8: .4byte gPlayerParty
+_0802F6BC: .4byte gUnknown_02024A60
+_0802F6C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F6D8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F6DC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2F
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F6D8: .4byte gPlayerParty
+_0802F6DC: .4byte gUnknown_02024A60
+_0802F6E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F6F8 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F6FC @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x30
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F6F8: .4byte gPlayerParty
+_0802F6FC: .4byte gUnknown_02024A60
+_0802F700:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F718 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F71C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x32
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F718: .4byte gPlayerParty
+_0802F71C: .4byte gUnknown_02024A60
+_0802F720:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F738 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F73C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x33
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F738: .4byte gPlayerParty
+_0802F73C: .4byte gUnknown_02024A60
+_0802F740:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F758 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F75C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x34
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F758: .4byte gPlayerParty
+_0802F75C: .4byte gUnknown_02024A60
+_0802F760:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F778 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F77C @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x35
+ bl SetMonData
+ b _0802F796
+ .align 2, 0
+_0802F778: .4byte gPlayerParty
+_0802F77C: .4byte gUnknown_02024A60
+_0802F780:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0802F7C0 @ =gPlayerParty
+ adds r0, r1
+ ldr r1, _0802F7C4 @ =gUnknown_02024A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x36
+ bl SetMonData
+_0802F796:
+ ldr r2, _0802F7C8 @ =gUnknown_02024A6A
+ ldr r0, _0802F7C4 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802F7C0 @ =gPlayerParty
+ 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
+_0802F7C0: .4byte gPlayerParty
+_0802F7C4: .4byte gUnknown_02024A60
+_0802F7C8: .4byte gUnknown_02024A6A
+ thumb_func_end dp01_setattr_by_ch1_for_player_pokemon
+
+ thumb_func_start sub_802F7CC
+sub_802F7CC: @ 802F7CC
+ push {r4-r7,lr}
+ ldr r1, _0802F830 @ =gUnknown_02024A6A
+ ldr r7, _0802F834 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _0802F838 @ =gUnknown_02023A60
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _0802F83C @ =gPlayerParty
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _0802F824
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_0802F802:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _0802F802
+_0802F824:
+ bl dp01_tbl1_exec_completed
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802F830: .4byte gUnknown_02024A6A
+_0802F834: .4byte gUnknown_02024A60
+_0802F838: .4byte gUnknown_02023A60
+_0802F83C: .4byte gPlayerParty
+ thumb_func_end sub_802F7CC
+
+ thumb_func_start sub_802F840
+sub_802F840: @ 802F840
+ push {r4,lr}
+ ldr r2, _0802F88C @ =gUnknown_02024A6A
+ ldr r4, _0802F890 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802F894 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80318FC
+ ldr r2, _0802F898 @ =gSprites
+ ldr r0, _0802F89C @ =gUnknown_02024BE0
+ ldrb r3, [r4]
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldr r1, _0802F8A0 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802F8A4 @ =bx_0802E404
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802F88C: .4byte gUnknown_02024A6A
+_0802F890: .4byte gUnknown_02024A60
+_0802F894: .4byte gPlayerParty
+_0802F898: .4byte gSprites
+_0802F89C: .4byte gUnknown_02024BE0
+_0802F8A0: .4byte gUnknown_03004330
+_0802F8A4: .4byte bx_0802E404
+ thumb_func_end sub_802F840
+
+ thumb_func_start sub_802F8A8
+sub_802F8A8: @ 802F8A8
+ push {r4-r6,lr}
+ ldr r5, _0802F914 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ ldr r4, _0802F918 @ =gUnknown_02023A60
+ lsls r1, r0, 9
+ adds r6, r4, 0x2
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_8032AA8
+ ldr r2, _0802F91C @ =gUnknown_02024A6A
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r2
+ lsls r0, 9
+ adds r4, 0x1
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r4, 0
+ strh r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802F920 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80318FC
+ ldr r1, _0802F924 @ =gUnknown_02024E60
+ ldrb r0, [r5]
+ adds r0, r1
+ strb r4, [r0]
+ ldr r1, _0802F928 @ =gUnknown_02024E64
+ ldrb r0, [r5]
+ adds r0, r1
+ strb r4, [r0]
+ ldrb r0, [r5]
+ lsls r1, r0, 9
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_802F934
+ ldr r1, _0802F92C @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802F930 @ =sub_802D798
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802F914: .4byte gUnknown_02024A60
+_0802F918: .4byte gUnknown_02023A60
+_0802F91C: .4byte gUnknown_02024A6A
+_0802F920: .4byte gPlayerParty
+_0802F924: .4byte gUnknown_02024E60
+_0802F928: .4byte gUnknown_02024E64
+_0802F92C: .4byte gUnknown_03004330
+_0802F930: .4byte sub_802D798
+ thumb_func_end sub_802F8A8
+
+ thumb_func_start sub_802F934
+sub_802F934: @ 802F934
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _0802FA78 @ =gUnknown_02024A6A
+ lsls r2, r6, 1
+ adds r2, r0
+ ldr r0, _0802FA7C @ =gUnknown_02023A60
+ 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, _0802FA80 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _0802FA84 @ =sub_80312F0
+ bl object_new_hidden_with_callback
+ ldr r1, _0802FA88 @ =gUnknown_0300434C
+ 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, _0802FA8C @ =gUnknown_02024E8C
+ 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, _0802FA90 @ =gUnknown_02024BE0
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _0802FA94 @ =gSprites
+ 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, _0802FA98 @ =gUnknown_02024E84
+ 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, _0802FA9C @ =SpriteCallbackDummy
+ 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
+_0802FA78: .4byte gUnknown_02024A6A
+_0802FA7C: .4byte gUnknown_02023A60
+_0802FA80: .4byte gPlayerParty
+_0802FA84: .4byte sub_80312F0
+_0802FA88: .4byte gUnknown_0300434C
+_0802FA8C: .4byte gUnknown_02024E8C
+_0802FA90: .4byte gUnknown_02024BE0
+_0802FA94: .4byte gSprites
+_0802FA98: .4byte gUnknown_02024E84
+_0802FA9C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_802F934
+
+ thumb_func_start sub_802FAA0
+sub_802FAA0: @ 802FAA0
+ push {r4-r6,lr}
+ ldr r1, _0802FAD0 @ =gUnknown_02023A60
+ ldr r6, _0802FAD4 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _0802FAE4
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0802FAD8 @ =0x02017810
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _0802FADC @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FAE0 @ =sub_802FB2C
+ str r1, [r0]
+ b _0802FB1A
+ .align 2, 0
+_0802FAD0: .4byte gUnknown_02023A60
+_0802FAD4: .4byte gUnknown_02024A60
+_0802FAD8: .4byte 0x02017810
+_0802FADC: .4byte gUnknown_03004330
+_0802FAE0: .4byte sub_802FB2C
+_0802FAE4:
+ ldr r5, _0802FB20 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0802FB24 @ =gSprites
+ 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, _0802FB28 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl1_exec_completed
+_0802FB1A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FB20: .4byte gUnknown_02024BE0
+_0802FB24: .4byte gSprites
+_0802FB28: .4byte gUnknown_03004340
+ thumb_func_end sub_802FAA0
+
+ thumb_func_start sub_802FB2C
+sub_802FB2C: @ 802FB2C
+ push {r4,r5,lr}
+ ldr r5, _0802FB48 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0802FB4C @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _0802FB50
+ cmp r0, 0x1
+ beq _0802FB7C
+ b _0802FBA4
+ .align 2, 0
+_0802FB48: .4byte gUnknown_02024A60
+_0802FB4C: .4byte 0x02017810
+_0802FB50:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802FB6C
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0802FB6C:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0802FBA4
+_0802FB7C:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0802FBA4
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x1
+ bl move_anim_start_t4
+ ldr r1, _0802FBAC @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FBB0 @ =sub_802DEAC
+ str r1, [r0]
+_0802FBA4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FBAC: .4byte gUnknown_03004330
+_0802FBB0: .4byte sub_802DEAC
+ thumb_func_end sub_802FB2C
+
+ thumb_func_start sub_802FBB4
+sub_802FBB4: @ 802FBB4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0802FBDC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0802FBE8
+ ldr r0, _0802FBE0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ ands r1, r0
+ ldr r7, _0802FBE4 @ =0x0000fff0
+ cmp r1, 0
+ beq _0802FBEA
+ movs r7, 0x10
+ b _0802FBEA
+ .align 2, 0
+_0802FBDC: .4byte gUnknown_020239F8
+_0802FBE0: .4byte gUnknown_02024A60
+_0802FBE4: .4byte 0x0000fff0
+_0802FBE8:
+ movs r7, 0
+_0802FBEA:
+ ldr r4, _0802FCB8 @ =gSaveBlock2
+ ldrb r0, [r4, 0x8]
+ ldr r6, _0802FCBC @ =gUnknown_02024A60
+ ldrb r1, [r6]
+ bl sub_8031AF4
+ ldrb r5, [r4, 0x8]
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _0802FCC0 @ =gUnknown_02024E8C
+ mov r8, r0
+ lsls r5, r7, 16
+ movs r0, 0xA0
+ lsls r0, 15
+ adds r5, r0
+ asrs r5, 16
+ ldr r1, _0802FCC4 @ =gTrainerBackPicCoords
+ ldrb r0, [r4, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 15
+ adds r4, r0
+ asrs r4, 16
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _0802FCC8 @ =gUnknown_02024BE0
+ ldrb r1, [r6]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _0802FCCC @ =gSprites
+ ldrb r3, [r6]
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0802FCD0 @ =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _0802FCD4 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _0802FCD8 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FCDC @ =sub_802D204
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FCB8: .4byte gSaveBlock2
+_0802FCBC: .4byte gUnknown_02024A60
+_0802FCC0: .4byte gUnknown_02024E8C
+_0802FCC4: .4byte gTrainerBackPicCoords
+_0802FCC8: .4byte gUnknown_02024BE0
+_0802FCCC: .4byte gSprites
+_0802FCD0: .4byte 0x0000fffe
+_0802FCD4: .4byte sub_80313A0
+_0802FCD8: .4byte gUnknown_03004330
+_0802FCDC: .4byte sub_802D204
+ thumb_func_end sub_802FBB4
+
+ thumb_func_start sub_802FCE0
+sub_802FCE0: @ 802FCE0
+ push {r4-r6,lr}
+ ldr r4, _0802FD94 @ =gSaveBlock2
+ ldrb r0, [r4, 0x8]
+ ldr r5, _0802FD98 @ =gUnknown_02024A60
+ 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, _0802FD9C @ =gUnknown_02024E8C
+ ldr r2, _0802FDA0 @ =gTrainerBackPicCoords
+ 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, _0802FDA4 @ =gUnknown_02024BE0
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, _0802FDA8 @ =gSprites
+ 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
+ ldr r1, _0802FDAC @ =0x0000ffa0
+ 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
+ movs r1, 0x2
+ 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, _0802FDB0 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _0802FDB4 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FDB8 @ =sub_802D23C
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FD94: .4byte gSaveBlock2
+_0802FD98: .4byte gUnknown_02024A60
+_0802FD9C: .4byte gUnknown_02024E8C
+_0802FDA0: .4byte gTrainerBackPicCoords
+_0802FDA4: .4byte gUnknown_02024BE0
+_0802FDA8: .4byte gSprites
+_0802FDAC: .4byte 0x0000ffa0
+_0802FDB0: .4byte sub_80313A0
+_0802FDB4: .4byte gUnknown_03004330
+_0802FDB8: .4byte sub_802D23C
+ thumb_func_end sub_802FCE0
+
+ thumb_func_start sub_802FDBC
+sub_802FDBC: @ 802FDBC
+ push {r4-r6,lr}
+ ldr r5, _0802FE5C @ =gUnknown_02024BE0
+ ldr r6, _0802FE60 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0802FE64 @ =gSprites
+ adds r0, r4
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x32
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0802FE68 @ =0x0000ffd8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0802FE6C @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0802FE70 @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r1, _0802FE74 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FE78 @ =sub_802D274
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FE5C: .4byte gUnknown_02024BE0
+_0802FE60: .4byte gUnknown_02024A60
+_0802FE64: .4byte gSprites
+_0802FE68: .4byte 0x0000ffd8
+_0802FE6C: .4byte sub_8078B34
+_0802FE70: .4byte SpriteCallbackDummy
+_0802FE74: .4byte gUnknown_03004330
+_0802FE78: .4byte sub_802D274
+ thumb_func_end sub_802FDBC
+
+ thumb_func_start sub_802FE7C
+sub_802FE7C: @ 802FE7C
+ push {r4,r5,lr}
+ ldr r5, _0802FEC0 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0802FEC4 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _0802FEC8
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0802FEAE
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0802FEAE:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0802FF3E
+ .align 2, 0
+_0802FEC0: .4byte gUnknown_02024A60
+_0802FEC4: .4byte 0x02017810
+_0802FEC8:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0802FF3E
+ strb r4, [r3, 0x4]
+ ldr r2, _0802FF44 @ =gUnknown_02024A6A
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0802FF48 @ =gPlayerParty
+ adds r0, r2
+ bl sub_80324F8
+ movs r1, 0x40
+ negs r1, r1
+ movs r0, 0x10
+ bl PlaySE12WithPanning
+ ldr r2, _0802FF4C @ =gSprites
+ ldr r3, _0802FF50 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r4, [r0, 0x30]
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0802FF54 @ =sub_80105EC
+ str r1, [r0]
+ ldr r1, _0802FF58 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FF5C @ =sub_802DE10
+ str r1, [r0]
+_0802FF3E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FF44: .4byte gUnknown_02024A6A
+_0802FF48: .4byte gPlayerParty
+_0802FF4C: .4byte gSprites
+_0802FF50: .4byte gUnknown_02024BE0
+_0802FF54: .4byte sub_80105EC
+_0802FF58: .4byte gUnknown_03004330
+_0802FF5C: .4byte sub_802DE10
+ thumb_func_end sub_802FE7C
+
+ thumb_func_start sub_802FF60
+sub_802FF60: @ 802FF60
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl dp01_tbl1_exec_completed
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_802FF60
+
+ thumb_func_start sub_802FF80
+sub_802FF80: @ 802FF80
+ push {r4,r5,lr}
+ ldr r1, _0802FFBC @ =0x02017840
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ ldr r1, _0802FFC0 @ =gUnknown_02024E6D
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r5, _0802FFC4 @ =gUnknown_02024A60
+ 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, 0x3
+ bl move_anim_start_t4
+ ldr r1, _0802FFC8 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0802FFCC @ =bx_wait_t1
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0802FFBC: .4byte 0x02017840
+_0802FFC0: .4byte gUnknown_02024E6D
+_0802FFC4: .4byte gUnknown_02024A60
+_0802FFC8: .4byte gUnknown_03004330
+_0802FFCC: .4byte bx_wait_t1
+ thumb_func_end sub_802FF80
+
+ thumb_func_start sub_802FFD0
+sub_802FFD0: @ 802FFD0
+ push {r4,r5,lr}
+ ldr r1, _08030014 @ =gUnknown_02023A60
+ ldr r5, _08030018 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _0803001C @ =0x02017840
+ strb r1, [r0, 0x8]
+ ldr r1, _08030020 @ =gUnknown_02024E6D
+ 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, 0x3
+ bl move_anim_start_t4
+ ldr r1, _08030024 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030028 @ =bx_wait_t1
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030014: .4byte gUnknown_02023A60
+_08030018: .4byte gUnknown_02024A60
+_0803001C: .4byte 0x02017840
+_08030020: .4byte gUnknown_02024E6D
+_08030024: .4byte gUnknown_03004330
+_08030028: .4byte bx_wait_t1
+ thumb_func_end sub_802FFD0
+
+ thumb_func_start sub_803002C
+sub_803002C: @ 803002C
+ push {lr}
+ ldr r1, _08030054 @ =gUnknown_02023A60
+ ldr r0, _08030058 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803004A
+_08030040:
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08030040
+_0803004A:
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030054: .4byte gUnknown_02023A60
+_08030058: .4byte gUnknown_02024A60
+ thumb_func_end sub_803002C
+
+ thumb_func_start dp01t_0F_1_move_anim
+dp01t_0F_1_move_anim: @ 803005C
+ push {r4-r6,lr}
+ ldr r6, _08030140 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803006E
+ b _0803017E
+_0803006E:
+ ldr r0, _08030144 @ =gUnknown_02023A60
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _08030148 @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _0803014C @ =gUnknown_0202F7BC
+ 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, _08030150 @ =gUnknown_0202F7B8
+ 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, _08030154 @ =gUnknown_0202F7BE
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08030158 @ =gUnknown_0202F7C0
+ 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, _0803015C @ =gUnknown_0202F7B4
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08030160 @ =gUnknown_02024E70
+ 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 _08030164
+ bl dp01_tbl1_exec_completed
+ b _0803017E
+ .align 2, 0
+_08030140: .4byte gUnknown_02024A60
+_08030144: .4byte gUnknown_02023A60
+_08030148: .4byte gUnknown_0202F7C4
+_0803014C: .4byte gUnknown_0202F7BC
+_08030150: .4byte gUnknown_0202F7B8
+_08030154: .4byte gUnknown_0202F7BE
+_08030158: .4byte gUnknown_0202F7C0
+_0803015C: .4byte gUnknown_0202F7B4
+_08030160: .4byte gUnknown_02024E70
+_08030164:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08030184 @ =0x02017810
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _08030188 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803018C @ =sub_8030190
+ str r1, [r0]
+_0803017E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030184: .4byte 0x02017810
+_08030188: .4byte gUnknown_03004330
+_0803018C: .4byte sub_8030190
+ thumb_func_end dp01t_0F_1_move_anim
+
+ thumb_func_start sub_8030190
+sub_8030190: @ 8030190
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _080301D4 @ =gUnknown_02023A60
+ ldr r5, _080301D8 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _080301DC @ =0x02017810
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _0803021E
+ cmp r2, 0x1
+ bgt _080301E0
+ cmp r2, 0
+ beq _080301EA
+ b _080302E8
+ .align 2, 0
+_080301D4: .4byte gUnknown_02023A60
+_080301D8: .4byte gUnknown_02024A60
+_080301DC: .4byte 0x02017810
+_080301E0:
+ cmp r2, 0x2
+ beq _08030244
+ cmp r2, 0x3
+ beq _080302B0
+ b _080302E8
+_080301EA:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _0803020E
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0803020E:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080302E8
+_0803021E:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080302E8
+ 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 _080302E8
+_08030244:
+ ldr r0, _080302A0 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _080302A4 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080302E8
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803028C
+ cmp r7, 0x1
+ bhi _0803028C
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_0803028C:
+ ldr r0, _080302A8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080302AC @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _080302E8
+ .align 2, 0
+_080302A0: .4byte gUnknown_0202F7AC
+_080302A4: .4byte gUnknown_0202F7B1
+_080302A8: .4byte gUnknown_02024A60
+_080302AC: .4byte 0x02017810
+_080302B0:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080302E8
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl dp01_tbl1_exec_completed
+_080302E8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030190
+
+ thumb_func_start sub_80302F4
+sub_80302F4: @ 80302F4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08030338 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0803033C @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _08030340 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _08030344 @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _08030348 @ =gUnknown_03004210
+ ldr r1, _0803034C @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08030350 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030354 @ =sub_802DF18
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030338: .4byte gUnknown_030042A4
+_0803033C: .4byte gUnknown_030042A0
+_08030340: .4byte gUnknown_02024A60
+_08030344: .4byte gUnknown_02023A62
+_08030348: .4byte gUnknown_03004210
+_0803034C: .4byte gUnknown_020238CC
+_08030350: .4byte gUnknown_03004330
+_08030354: .4byte sub_802DF18
+ thumb_func_end sub_80302F4
+
+ thumb_func_start dp01t_11_1_message_for_player_only
+dp01t_11_1_message_for_player_only: @ 8030358
+ push {lr}
+ ldr r0, _08030370 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08030374
+ bl sub_80302F4
+ b _08030378
+ .align 2, 0
+_08030370: .4byte gUnknown_02024A60
+_08030374:
+ bl dp01_tbl1_exec_completed
+_08030378:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_1_message_for_player_only
+
+ thumb_func_start sub_803037C
+sub_803037C: @ 803037C
+ push {r4,lr}
+ sub sp, 0x8
+ ldr r1, _08030434 @ =gUnknown_030042A4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08030438 @ =gUnknown_030042A0
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r4, _0803043C @ =gUnknown_03004210
+ 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
+ movs r0, 0x10
+ str r0, [sp]
+ movs r0, 0x26
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0x23
+ bl FillWindowRect
+ ldr r1, _08030440 @ =gUnknown_03004330
+ ldr r0, _08030444 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030448 @ =sub_802C098
+ str r1, [r0]
+ ldr r1, _0803044C @ =gUnknown_08400CF3
+ 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, _08030450 @ =0x0000ffff
+ ldr r3, _08030454 @ =0x00002d9f
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0xC
+ bl sub_814A5C0
+ movs r4, 0
+_080303EC:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl nullsub_8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080303EC
+ ldr r1, _08030458 @ =gUnknown_02024E60
+ ldr r0, _08030444 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ ldr r0, _0803045C @ =gUnknown_08400CA8
+ bl get_battle_strings_
+ ldr r4, _0803043C @ =gUnknown_03004210
+ ldr r1, _08030460 @ =gUnknown_020238CC
+ 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}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030434: .4byte gUnknown_030042A4
+_08030438: .4byte gUnknown_030042A0
+_0803043C: .4byte gUnknown_03004210
+_08030440: .4byte gUnknown_03004330
+_08030444: .4byte gUnknown_02024A60
+_08030448: .4byte sub_802C098
+_0803044C: .4byte gUnknown_08400CF3
+_08030450: .4byte 0x0000ffff
+_08030454: .4byte 0x00002d9f
+_08030458: .4byte gUnknown_02024E60
+_0803045C: .4byte gUnknown_08400CA8
+_08030460: .4byte gUnknown_020238CC
+ thumb_func_end sub_803037C
+
+ thumb_func_start nullsub_42
+nullsub_42: @ 8030464
+ bx lr
+ thumb_func_end nullsub_42
+
+ thumb_func_start sub_8030468
+sub_8030468: @ 8030468
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _08030494 @ =0x0000ffff
+ ldr r3, _08030498 @ =0x00002d9f
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0xC
+ bl sub_814A5C0
+ bl sub_80304A8
+ ldr r1, _0803049C @ =gUnknown_03004330
+ ldr r0, _080304A0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080304A4 @ =sub_802C68C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030494: .4byte 0x0000ffff
+_08030498: .4byte 0x00002d9f
+_0803049C: .4byte gUnknown_03004330
+_080304A0: .4byte gUnknown_02024A60
+_080304A4: .4byte sub_802C68C
+ thumb_func_end sub_8030468
+
+ thumb_func_start sub_80304A8
+sub_80304A8: @ 80304A8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _08030510 @ =gUnknown_030042A4
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08030514 @ =gUnknown_030042A0
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl sub_802E1B0
+ ldr r1, _08030518 @ =gUnknown_03004344
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _0803051C @ =gUnknown_02024E64
+ ldr r4, _08030520 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3B4
+ ldr r1, _08030524 @ =gUnknown_02023A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08030500
+ ldr r4, _08030528 @ =gUnknown_03004210
+ ldr r1, _0803052C @ =gUnknown_08400D38
+ movs r2, 0xA4
+ lsls r2, 2
+ movs r0, 0x37
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x17
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+_08030500:
+ bl sub_802E220
+ bl sub_802E2D4
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030510: .4byte gUnknown_030042A4
+_08030514: .4byte gUnknown_030042A0
+_08030518: .4byte gUnknown_03004344
+_0803051C: .4byte gUnknown_02024E64
+_08030520: .4byte gUnknown_02024A60
+_08030524: .4byte gUnknown_02023A60
+_08030528: .4byte gUnknown_03004210
+_0803052C: .4byte gUnknown_08400D38
+ thumb_func_end sub_80304A8
+
+ thumb_func_start sub_8030530
+sub_8030530: @ 8030530
+ push {r4,r5,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, _0803057C @ =gUnknown_03004330
+ ldr r2, _08030580 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030584 @ =sub_802E004
+ str r1, [r0]
+ ldr r1, _08030588 @ =gUnknown_02024E6C
+ ldrb r0, [r2]
+ strb r0, [r1]
+ movs r3, 0
+ ldr r5, _0803058C @ =gUnknown_02038470
+ ldr r4, _08030590 @ =gUnknown_02023A60
+_0803055E:
+ adds r0, r3, r5
+ ldrb r1, [r2]
+ lsls r1, 9
+ adds r1, 0x1
+ adds r1, r3, r1
+ adds r1, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x2
+ ble _0803055E
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803057C: .4byte gUnknown_03004330
+_08030580: .4byte gUnknown_02024A60
+_08030584: .4byte sub_802E004
+_08030588: .4byte gUnknown_02024E6C
+_0803058C: .4byte gUnknown_02038470
+_08030590: .4byte gUnknown_02023A60
+ thumb_func_end sub_8030530
+
+ thumb_func_start sub_8030594
+sub_8030594: @ 8030594
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08030644 @ =TaskDummy
+ movs r1, 0xFF
+ bl CreateTask
+ ldr r3, _08030648 @ =gUnknown_0300434C
+ ldr r5, _0803064C @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ adds r1, r3
+ strb r0, [r1]
+ ldr r4, _08030650 @ =gTasks
+ ldrb r2, [r5]
+ adds r3, r2, r3
+ ldrb r0, [r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldr r4, _08030654 @ =gUnknown_02023A60
+ lsls r2, 9
+ adds r3, r4, 0x1
+ adds r2, r3
+ ldrb r2, [r2]
+ movs r0, 0xF
+ ands r0, r2
+ strh r0, [r1, 0x8]
+ ldr r2, _08030658 @ =0x02000000
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r0, r3
+ ldrb r0, [r0]
+ lsrs r0, 4
+ ldr r3, _0803065C @ =0x00016054
+ adds r1, r2, r3
+ strb r0, [r1]
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, r4, 0x2
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r3, 0x49
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, r4, 0x3
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _08030660 @ =0x000160c0
+ adds r2, r1
+ strb r0, [r2]
+ movs r2, 0
+ ldr r3, _08030664 @ =gUnknown_02038470
+_08030600:
+ adds r0, r2, r3
+ ldrb r1, [r5]
+ lsls r1, 9
+ adds r1, 0x4
+ adds r1, r2, r1
+ adds r1, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08030600
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08030668 @ =gUnknown_03004330
+ ldr r2, _0803064C @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803066C @ =sub_802DF30
+ str r1, [r0]
+ ldr r1, _08030670 @ =gUnknown_02024E6C
+ ldrb r0, [r2]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030644: .4byte TaskDummy
+_08030648: .4byte gUnknown_0300434C
+_0803064C: .4byte gUnknown_02024A60
+_08030650: .4byte gTasks
+_08030654: .4byte gUnknown_02023A60
+_08030658: .4byte 0x02000000
+_0803065C: .4byte 0x00016054
+_08030660: .4byte 0x000160c0
+_08030664: .4byte gUnknown_02038470
+_08030668: .4byte gUnknown_03004330
+_0803066C: .4byte sub_802DF30
+_08030670: .4byte gUnknown_02024E6C
+ thumb_func_end sub_8030594
+
+ thumb_func_start sub_8030674
+sub_8030674: @ 8030674
+ push {lr}
+ sub sp, 0x4
+ bl sub_80325B8
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x2
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl dp01_tbl1_exec_completed
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030674
+
+ thumb_func_start sub_8030698
+sub_8030698: @ 8030698
+ 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, _08030710 @ =gUnknown_02023A60
+ ldr r0, _08030714 @ =gUnknown_02024A60
+ 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, _08030718 @ =0x00007fff
+ cmp r7, r0
+ beq _08030728
+ ldr r6, _0803071C @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08030720 @ =gPlayerParty
+ 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, _08030724 @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08030762
+ .align 2, 0
+_08030710: .4byte gUnknown_02023A60
+_08030714: .4byte gUnknown_02024A60
+_08030718: .4byte 0x00007fff
+_0803071C: .4byte gUnknown_02024A6A
+_08030720: .4byte gPlayerParty
+_08030724: .4byte gUnknown_03004340
+_08030728:
+ ldr r1, _08030780 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08030784 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r4, _08030788 @ =gUnknown_03004340
+ 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
+_08030762:
+ ldr r1, _0803078C @ =gUnknown_03004330
+ ldr r0, _08030790 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030794 @ =bx_t1_healthbar_update
+ 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
+_08030780: .4byte gUnknown_02024A6A
+_08030784: .4byte gPlayerParty
+_08030788: .4byte gUnknown_03004340
+_0803078C: .4byte gUnknown_03004330
+_08030790: .4byte gUnknown_02024A60
+_08030794: .4byte bx_t1_healthbar_update
+ thumb_func_end sub_8030698
+
+ thumb_func_start sub_8030798
+sub_8030798: @ 8030798
+ push {r4-r7,lr}
+ ldr r5, _080307C4 @ =gUnknown_02023A60
+ ldr r6, _080307C8 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r0, 9
+ adds r1, r5, 0x1
+ adds r0, r1
+ ldrb r7, [r0]
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _080307CC @ =gPlayerParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x63
+ bls _080307D0
+ bl dp01_tbl1_exec_completed
+ b _0803081C
+ .align 2, 0
+_080307C4: .4byte gUnknown_02023A60
+_080307C8: .4byte gUnknown_02024A60
+_080307CC: .4byte gPlayerParty
+_080307D0:
+ movs r0, 0x1
+ bl load_gfxc_health_bar
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldrb r1, [r6]
+ lsls r1, 9
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r0, r5, 0x3
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ ldr r0, _08030824 @ =sub_802D924
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08030828 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r7, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ ldrb r0, [r6]
+ strh r0, [r1, 0xC]
+ ldr r1, _0803082C @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030830 @ =nullsub_91
+ str r1, [r0]
+_0803081C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030824: .4byte sub_802D924
+_08030828: .4byte gTasks
+_0803082C: .4byte gUnknown_03004330
+_08030830: .4byte nullsub_91
+ thumb_func_end sub_8030798
+
+ thumb_func_start sub_8030834
+sub_8030834: @ 8030834
+ push {r4,lr}
+ ldr r4, _0803088C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08030884
+ ldr r0, _08030890 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08030894 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08030898 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0803089C @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _080308A0 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080308A4 @ =sub_802E434
+ str r1, [r0]
+_08030884:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803088C: .4byte gUnknown_02024A60
+_08030890: .4byte gUnknown_03004340
+_08030894: .4byte gUnknown_02024A6A
+_08030898: .4byte gPlayerParty
+_0803089C: .4byte 0x02017810
+_080308A0: .4byte gUnknown_03004330
+_080308A4: .4byte sub_802E434
+ thumb_func_end sub_8030834
+
+ thumb_func_start sub_80308A8
+sub_80308A8: @ 80308A8
+ push {r4,r5,lr}
+ ldr r5, _08030900 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080308F8
+ ldr r4, _08030904 @ =gUnknown_02023A60
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _08030908 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803090C @ =sub_802E434
+ str r1, [r0]
+_080308F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030900: .4byte gUnknown_02024A60
+_08030904: .4byte gUnknown_02023A60
+_08030908: .4byte gUnknown_03004330
+_0803090C: .4byte sub_802E434
+ thumb_func_end sub_80308A8
+
+ thumb_func_start sub_8030910
+sub_8030910: @ 8030910
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ ldr r0, _0803096C @ =gUnknown_02024A6A
+ mov r8, r0
+ ldr r4, _08030970 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08030974 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0x37
+ bl GetMonData
+ ldr r2, _08030978 @ =gUnknown_02023A60
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ eors r0, r1
+ mov r1, sp
+ strb r0, [r1]
+ ldrb r0, [r4]
+ lsls r0, 1
+ add r0, r8
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ bl dp01_tbl1_exec_completed
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803096C: .4byte gUnknown_02024A6A
+_08030970: .4byte gUnknown_02024A60
+_08030974: .4byte gPlayerParty
+_08030978: .4byte gUnknown_02023A60
+ thumb_func_end sub_8030910
+
+ thumb_func_start sub_803097C
+sub_803097C: @ 803097C
+ push {lr}
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803097C
+
+ thumb_func_start sub_8030988
+sub_8030988: @ 8030988
+ push {r4,r5,lr}
+ ldr r3, _080309EC @ =gUnknown_02023A60
+ ldr r0, _080309F0 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r2, 9
+ adds r0, r3, 0x1
+ adds r0, r2, r0
+ ldrb r5, [r0]
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r5, r0
+ adds r0, r3, 0x3
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsls r0, 16
+ orrs r5, r0
+ adds r0, r3, 0x4
+ adds r0, r2, r0
+ ldrb r4, [r0]
+ lsls r4, 24
+ adds r0, r3, 0x5
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ adds r0, r3, 0x6
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ adds r3, 0x7
+ adds r2, r3
+ orrs r5, r4
+ lsrs r4, r1, 16
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r4, r0
+ bhi _080309F8
+ ldr r0, _080309F4 @ =0x040000d4
+ str r2, [r0]
+ str r5, [r0, 0x4]
+ lsrs r1, 17
+ movs r2, 0x80
+ lsls r2, 24
+ orrs r1, r2
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ b _08030A24
+ .align 2, 0
+_080309EC: .4byte gUnknown_02023A60
+_080309F0: .4byte gUnknown_02024A60
+_080309F4: .4byte 0x040000d4
+_080309F8:
+ ldr r3, _08030A30 @ =0x040000d4
+ str r2, [r3]
+ str r5, [r3, 0x4]
+ ldr r0, _08030A34 @ =0x80000800
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ movs r0, 0x80
+ lsls r0, 5
+ adds r2, r0
+ adds r5, r0
+ ldr r1, _08030A38 @ =0xfffff000
+ adds r4, r1
+ cmp r4, r0
+ bhi _080309F8
+ str r2, [r3]
+ str r5, [r3, 0x4]
+ lsrs r0, r4, 1
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+_08030A24:
+ bl dp01_tbl1_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030A30: .4byte 0x040000d4
+_08030A34: .4byte 0x80000800
+_08030A38: .4byte 0xfffff000
+ thumb_func_end sub_8030988
+
+ thumb_func_start sub_8030A3C
+sub_8030A3C: @ 8030A3C
+ push {lr}
+ ldr r2, _08030A64 @ =gUnknown_02023A60
+ ldr r0, _08030A68 @ =gUnknown_02024A60
+ 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 PlayBGM
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030A64: .4byte gUnknown_02023A60
+_08030A68: .4byte gUnknown_02024A60
+ thumb_func_end sub_8030A3C
+
+ thumb_func_start sub_8030A6C
+sub_8030A6C: @ 8030A6C
+ push {lr}
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030A6C
+
+ thumb_func_start sub_8030A78
+sub_8030A78: @ 8030A78
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030A78
+
+ thumb_func_start sub_8030A8C
+sub_8030A8C: @ 8030A8C
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030A8C
+
+ thumb_func_start sub_8030AA0
+sub_8030AA0: @ 8030AA0
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030AA0
+
+ thumb_func_start sub_8030AB4
+sub_8030AB4: @ 8030AB4
+ push {lr}
+ movs r0, 0x1
+ movs r1, 0
+ bl dp01_build_cmdbuf_x24_aa_0
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030AB4
+
+ thumb_func_start sub_8030AC8
+sub_8030AC8: @ 8030AC8
+ push {lr}
+ ldr r2, _08030AE0 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030AE0: .4byte gUnknown_020238C8
+ thumb_func_end sub_8030AC8
+
+ thumb_func_start sub_8030AE4
+sub_8030AE4: @ 8030AE4
+ push {lr}
+ ldr r3, _08030B10 @ =gUnknown_020238C8
+ ldr r1, _08030B14 @ =gUnknown_02023A60
+ ldr r0, _08030B18 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030B10: .4byte gUnknown_020238C8
+_08030B14: .4byte gUnknown_02023A60
+_08030B18: .4byte gUnknown_02024A60
+ thumb_func_end sub_8030AE4
+
+ thumb_func_start sub_8030B1C
+sub_8030B1C: @ 8030B1C
+ push {lr}
+ ldr r2, _08030B30 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030B30: .4byte gUnknown_020238C8
+ thumb_func_end sub_8030B1C
+
+ thumb_func_start sub_8030B34
+sub_8030B34: @ 8030B34
+ push {lr}
+ ldr r3, _08030B58 @ =gUnknown_020238C8
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030B58: .4byte gUnknown_020238C8
+ thumb_func_end sub_8030B34
+
+ thumb_func_start dp01t_29_1_blink
+dp01t_29_1_blink: @ 8030B5C
+ push {r4,lr}
+ ldr r3, _08030B84 @ =gSprites
+ ldr r2, _08030B88 @ =gUnknown_02024BE0
+ ldr r4, _08030B8C @ =gUnknown_02024A60
+ 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 _08030B90
+ bl dp01_tbl1_exec_completed
+ b _08030BBA
+ .align 2, 0
+_08030B84: .4byte gSprites
+_08030B88: .4byte gUnknown_02024BE0
+_08030B8C: .4byte gUnknown_02024A60
+_08030B90:
+ ldr r1, _08030BC0 @ =gUnknown_02024E6D
+ 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, _08030BC4 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030BC8 @ =bx_blink_t1
+ str r1, [r0]
+_08030BBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030BC0: .4byte gUnknown_02024E6D
+_08030BC4: .4byte gUnknown_03004330
+_08030BC8: .4byte bx_blink_t1
+ thumb_func_end dp01t_29_1_blink
+
+ thumb_func_start sub_8030BCC
+sub_8030BCC: @ 8030BCC
+ push {lr}
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8030BCC
+
+ thumb_func_start sub_8030BD8
+sub_8030BD8: @ 8030BD8
+ push {r4,lr}
+ ldr r4, _08030C14 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _08030BEC
+ movs r3, 0xC0
+_08030BEC:
+ ldr r2, _08030C18 @ =gUnknown_02023A60
+ 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_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030C14: .4byte gUnknown_02024A60
+_08030C18: .4byte gUnknown_02023A60
+ thumb_func_end sub_8030BD8
+
+ thumb_func_start sub_8030C1C
+sub_8030C1C: @ 8030C1C
+ push {lr}
+ ldr r2, _08030C44 @ =gUnknown_02023A60
+ ldr r0, _08030C48 @ =gUnknown_02024A60
+ 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_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030C44: .4byte gUnknown_02023A60
+_08030C48: .4byte gUnknown_02024A60
+ thumb_func_end sub_8030C1C
+
+ thumb_func_start sub_8030C4C
+sub_8030C4C: @ 8030C4C
+ push {lr}
+ ldr r1, _08030C80 @ =gUnknown_02024A6A
+ ldr r0, _08030C84 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08030C88 @ =gPlayerParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ negs r1, r1
+ movs r2, 0x5
+ bl PlayCry3
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030C80: .4byte gUnknown_02024A6A
+_08030C84: .4byte gUnknown_02024A60
+_08030C88: .4byte gPlayerParty
+ thumb_func_end sub_8030C4C
+
+ thumb_func_start dp01t_2E_1_battle_intro
+dp01t_2E_1_battle_intro: @ 8030C8C
+ push {lr}
+ ldr r1, _08030CB4 @ =gUnknown_02023A60
+ ldr r0, _08030CB8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _08030CBC @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030CB4: .4byte gUnknown_02023A60
+_08030CB8: .4byte gUnknown_02024A60
+_08030CBC: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_1_battle_intro
+
+ thumb_func_start sub_8030CC0
+sub_8030CC0: @ 8030CC0
+ push {r4-r7,lr}
+ ldr r6, _08030DF8 @ =gUnknown_02024BE0
+ ldr r7, _08030DFC @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08030E00 @ =gSprites
+ 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, _08030E04 @ =0x0000ffd8
+ 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, _08030E08 @ =sub_8078B34
+ 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, _08030E0C @ =sub_8030E38
+ 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, _08030E10 @ =0x0000d6f8
+ bl AllocSpritePalette
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r1, _08030E14 @ =gTrainerBackPicPaletteTable
+ ldr r0, _08030E18 @ =gSaveBlock2
+ ldrb r0, [r0, 0x8]
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ 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, _08030E1C @ =task05_08033660
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08030E20 @ =gTasks
+ 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, _08030E24 @ =0x02017810
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08030DDC
+ ldr r0, _08030E28 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _08030E2C @ =sub_8044CA0
+ str r1, [r0]
+_08030DDC:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08030E30 @ =gUnknown_03004330
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030E34 @ =nullsub_91
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030DF8: .4byte gUnknown_02024BE0
+_08030DFC: .4byte gUnknown_02024A60
+_08030E00: .4byte gSprites
+_08030E04: .4byte 0x0000ffd8
+_08030E08: .4byte sub_8078B34
+_08030E0C: .4byte sub_8030E38
+_08030E10: .4byte 0x0000d6f8
+_08030E14: .4byte gTrainerBackPicPaletteTable
+_08030E18: .4byte gSaveBlock2
+_08030E1C: .4byte task05_08033660
+_08030E20: .4byte gTasks
+_08030E24: .4byte 0x02017810
+_08030E28: .4byte gUnknown_02024E68
+_08030E2C: .4byte sub_8044CA0
+_08030E30: .4byte gUnknown_03004330
+_08030E34: .4byte nullsub_91
+ thumb_func_end sub_8030CC0
+
+ thumb_func_start sub_8030E38
+sub_8030E38: @ 8030E38
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r4, [r5, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r5, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ adds r0, r5, 0
+ bl DestroySprite
+ ldr r1, _08030E90 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08030E94 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_80318FC
+ ldr r0, _08030E98 @ =gUnknown_02024BE0
+ adds r4, r0
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08030E9C @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030E90: .4byte gUnknown_02024A6A
+_08030E94: .4byte gPlayerParty
+_08030E98: .4byte gUnknown_02024BE0
+_08030E9C: .4byte gSprites
+ thumb_func_end sub_8030E38
+
+ thumb_func_start task05_08033660
+task05_08033660: @ 8030EA0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _08030EC8 @ =gTasks
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1E
+ bgt _08030ECC
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+ b _08030F88
+ .align 2, 0
+_08030EC8: .4byte gTasks
+_08030ECC:
+ ldr r7, _08030F0C @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ mov r9, r0
+ ldrh r0, [r1, 0x8]
+ strb r0, [r7]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08030EEC
+ ldr r0, _08030F10 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08030F1C
+_08030EEC:
+ ldr r0, _08030F14 @ =gUnknown_02023A60
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08030F18 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_802F934
+ b _08030F70
+ .align 2, 0
+_08030F0C: .4byte gUnknown_02024A60
+_08030F10: .4byte gUnknown_020239F8
+_08030F14: .4byte gUnknown_02023A60
+_08030F18: .4byte gUnknown_02024A6A
+_08030F1C:
+ ldr r4, _08030F94 @ =gUnknown_02023A60
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r5, _08030F98 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_802F934
+ ldrb r0, [r7]
+ movs r6, 0x2
+ eors r0, r6
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _08030F9C @ =gPlayerParty
+ adds r0, r2
+ bl sub_80318FC
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_802F934
+ ldrb r0, [r7]
+ eors r0, r6
+ strb r0, [r7]
+_08030F70:
+ ldr r1, _08030FA0 @ =gUnknown_03004330
+ ldr r2, _08030FA4 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08030FA8 @ =sub_802D500
+ str r1, [r0]
+ mov r3, r9
+ strb r3, [r2]
+ mov r0, r8
+ bl DestroyTask
+_08030F88:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08030F94: .4byte gUnknown_02023A60
+_08030F98: .4byte gUnknown_02024A6A
+_08030F9C: .4byte gPlayerParty
+_08030FA0: .4byte gUnknown_03004330
+_08030FA4: .4byte gUnknown_02024A60
+_08030FA8: .4byte sub_802D500
+ thumb_func_end task05_08033660
+
+ thumb_func_start sub_8030FAC
+sub_8030FAC: @ 8030FAC
+ push {r4-r6,lr}
+ ldr r1, _08030FD4 @ =gUnknown_02023A60
+ ldr r0, _08030FD8 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08030FDC
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08030FDC
+ bl dp01_tbl1_exec_completed
+ b _08031044
+ .align 2, 0
+_08030FD4: .4byte gUnknown_02023A60
+_08030FD8: .4byte gUnknown_02024A60
+_08030FDC:
+ ldr r5, _0803104C @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, _08031050 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _08031054 @ =gUnknown_02023A64
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _08031058 @ =gUnknown_02024E68
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08031038
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_08031038:
+ ldr r0, _0803105C @ =gUnknown_03004330
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08031060 @ =sub_8031064
+ str r0, [r1]
+_08031044:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803104C: .4byte gUnknown_02024A60
+_08031050: .4byte 0x02017810
+_08031054: .4byte gUnknown_02023A64
+_08031058: .4byte gUnknown_02024E68
+_0803105C: .4byte gUnknown_03004330
+_08031060: .4byte sub_8031064
+ thumb_func_end sub_8030FAC
+
+ thumb_func_start sub_8031064
+sub_8031064: @ 8031064
+ push {r4,lr}
+ ldr r4, _0803109C @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080310A0 @ =0x02017810
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _08031094
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl dp01_tbl1_exec_completed
+_08031094:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803109C: .4byte gUnknown_02024A60
+_080310A0: .4byte 0x02017810
+ thumb_func_end sub_8031064
+
+ thumb_func_start sub_80310A4
+sub_80310A4: @ 80310A4
+ push {lr}
+ ldr r0, _080310DC @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _080310E0 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080310D2
+ ldr r2, _080310E4 @ =gTasks
+ ldr r0, _080310E8 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _080310EC @ =sub_8044CA0
+ str r1, [r0]
+_080310D2:
+ bl dp01_tbl1_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080310DC: .4byte gUnknown_02024A60
+_080310E0: .4byte 0x02017810
+_080310E4: .4byte gTasks
+_080310E8: .4byte gUnknown_02024E68
+_080310EC: .4byte sub_8044CA0
+ thumb_func_end sub_80310A4
+
+ thumb_func_start sub_80310F0
+sub_80310F0: @ 80310F0
+ push {r4,lr}
+ ldr r4, _08031110 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ bl dp01_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031110: .4byte gUnknown_02024A60
+ thumb_func_end sub_80310F0
+
+ thumb_func_start dp01t_33_1_enemy_move
+dp01t_33_1_enemy_move: @ 8031114
+ push {r4,lr}
+ ldr r4, _08031164 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803115A
+ ldr r3, _08031168 @ =gSprites
+ ldr r0, _0803116C @ =gUnknown_02024BE0
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _08031170 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_0803115A:
+ bl dp01_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031164: .4byte gUnknown_02024A60
+_08031168: .4byte gSprites
+_0803116C: .4byte gUnknown_02024BE0
+_08031170: .4byte gUnknown_02023A60
+ thumb_func_end dp01t_33_1_enemy_move
+
+ thumb_func_start bx_exec_buffer_A_ch0_tbl1
+bx_exec_buffer_A_ch0_tbl1: @ 8031174
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _080311B8 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080311CC
+ ldr r5, _080311BC @ =gUnknown_02023A60
+ 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 _080311C0
+ bl dp01_tbl1_exec_completed
+ b _080311CC
+ .align 2, 0
+_080311B8: .4byte gUnknown_02024A60
+_080311BC: .4byte gUnknown_02023A60
+_080311C0:
+ ldr r0, _080311D4 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080311D8 @ =sub_802E460
+ str r0, [r1]
+_080311CC:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080311D4: .4byte gUnknown_03004330
+_080311D8: .4byte sub_802E460
+ thumb_func_end bx_exec_buffer_A_ch0_tbl1
+
+ thumb_func_start dp01t_35_1_link_standby_message_and_free_vram
+dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC
+ push {r4,lr}
+ ldr r1, _080311FC @ =gUnknown_02023A60
+ ldr r0, _08031200 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0803120E
+ cmp r0, 0x1
+ bgt _08031204
+ cmp r0, 0
+ beq _0803120A
+ b _0803122C
+ .align 2, 0
+_080311FC: .4byte gUnknown_02023A60
+_08031200: .4byte gUnknown_02024A60
+_08031204:
+ cmp r0, 0x2
+ beq _08031228
+ b _0803122C
+_0803120A:
+ bl b_link_standby_message
+_0803120E:
+ ldr r4, _08031224 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl dp11b_obj_free
+ ldrb r0, [r4]
+ movs r1, 0
+ bl dp11b_obj_free
+ b _0803122C
+ .align 2, 0
+_08031224: .4byte gUnknown_02024A60
+_08031228:
+ bl b_link_standby_message
+_0803122C:
+ bl dp01_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_35_1_link_standby_message_and_free_vram
+
+ thumb_func_start sub_8031238
+sub_8031238: @ 8031238
+ push {r4,lr}
+ ldr r1, _08031258 @ =gUnknown_02023A60
+ ldr r4, _0803125C @ =gUnknown_02024A60
+ ldrb r3, [r4]
+ lsls r0, r3, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0x1
+ beq _08031280
+ cmp r2, 0x1
+ bgt _08031260
+ cmp r2, 0
+ beq _08031266
+ b _08031290
+ .align 2, 0
+_08031258: .4byte gUnknown_02023A60
+_0803125C: .4byte gUnknown_02024A60
+_08031260:
+ cmp r2, 0x2
+ beq _08031288
+ b _08031290
+_08031266:
+ ldr r0, _08031278 @ =gUnknown_02024E60
+ adds r0, r3, r0
+ strb r2, [r0]
+ ldr r1, _0803127C @ =gUnknown_02024E64
+ ldrb r0, [r4]
+ adds r0, r1
+ strb r2, [r0]
+ b _08031290
+ .align 2, 0
+_08031278: .4byte gUnknown_02024E60
+_0803127C: .4byte gUnknown_02024E64
+_08031280:
+ ldr r0, _08031284 @ =gUnknown_02024E60
+ b _0803128A
+ .align 2, 0
+_08031284: .4byte gUnknown_02024E60
+_08031288:
+ ldr r0, _0803129C @ =gUnknown_02024E64
+_0803128A:
+ adds r0, r3, r0
+ movs r1, 0
+ strb r1, [r0]
+_08031290:
+ bl dp01_tbl1_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803129C: .4byte gUnknown_02024E64
+ thumb_func_end sub_8031238
+
+ thumb_func_start sub_80312A0
+sub_80312A0: @ 80312A0
+ push {r4,lr}
+ ldr r2, _080312D8 @ =gUnknown_02024D26
+ ldr r1, _080312DC @ =gUnknown_02023A60
+ ldr r4, _080312E0 @ =gUnknown_02024A60
+ 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_tbl1_exec_completed
+ ldr r1, _080312E4 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080312E8 @ =sub_802D18C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080312D8: .4byte gUnknown_02024D26
+_080312DC: .4byte gUnknown_02023A60
+_080312E0: .4byte gUnknown_02024A60
+_080312E4: .4byte gUnknown_03004330
+_080312E8: .4byte sub_802D18C
+ thumb_func_end sub_80312A0
+
+ thumb_func_start nullsub_43
+nullsub_43: @ 80312EC
+ bx lr
+ thumb_func_end nullsub_43
+
+ thumb_func_start sub_80312F0
+sub_80312F0: @ 80312F0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldrh r0, [r6, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _08031334 @ =gSprites
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ adds r3, r5, r7
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r4, [r0]
+ lsls r0, r4, 26
+ cmp r0, 0
+ bge _08031354
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08031354
+ adds r1, r3, 0
+ adds r1, 0x2C
+ ldrb r2, [r1]
+ lsls r0, r2, 25
+ cmp r0, 0
+ bge _08031338
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ b _08031354
+ .align 2, 0
+_08031334: .4byte gSprites
+_08031338:
+ lsls r0, r4, 27
+ cmp r0, 0
+ bge _08031354
+ adds r0, r7, 0
+ adds r0, 0x1C
+ adds r0, r5, r0
+ ldr r1, _0803135C @ =sub_80105DC
+ str r1, [r0]
+ adds r0, r3, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ ldr r0, _08031360 @ =SpriteCallbackDummy
+ str r0, [r6, 0x1C]
+_08031354:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803135C: .4byte sub_80105DC
+_08031360: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80312F0
+
+ thumb_func_start unref_sub_8031364
+unref_sub_8031364: @ 8031364
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ adds r3, r4, 0
+ adds r3, 0x2C
+ ldrb r0, [r3]
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r3]
+ ldr r0, _08031388 @ =SpriteCallbackDummy
+ str r0, [r4, 0x1C]
+ cmp r1, 0
+ bne _0803138C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _08031394
+ .align 2, 0
+_08031388: .4byte SpriteCallbackDummy
+_0803138C:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08031394:
+ adds r0, r4, 0
+ bl AnimateSprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8031364
+
+ thumb_func_start sub_80313A0
+sub_80313A0: @ 80313A0
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _080313C8 @ =gUnknown_02024DE8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080313C2
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080313C2
+ ldr r0, _080313CC @ =SpriteCallbackDummy
+ str r0, [r2, 0x1C]
+_080313C2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080313C8: .4byte gUnknown_02024DE8
+_080313CC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_80313A0
+
+ thumb_func_start move_anim_start_t2_for_situation
+move_anim_start_t2_for_situation: @ 80313D0
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ ldr r5, _08031400 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ ldr r6, _08031404 @ =0x02017810
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r3, 0x10
+ orrs r2, r3
+ strb r2, [r1]
+ cmp r0, 0
+ bne _0803144C
+ cmp r4, 0x20
+ bne _08031408
+ ldrb r0, [r5]
+ movs r1, 0x6
+ bl move_anim_start_t2
+ b _080314C2
+ .align 2, 0
+_08031400: .4byte gUnknown_02024A60
+_08031404: .4byte 0x02017810
+_08031408:
+ cmp r4, 0x8
+ beq _08031414
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ beq _0803141E
+_08031414:
+ ldrb r0, [r5]
+ movs r1, 0
+ bl move_anim_start_t2
+ b _080314C2
+_0803141E:
+ cmp r4, 0x10
+ bne _0803142C
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl move_anim_start_t2
+ b _080314C2
+_0803142C:
+ movs r0, 0x7
+ ands r0, r4
+ cmp r0, 0
+ beq _0803143E
+ ldrb r0, [r5]
+ movs r1, 0x4
+ bl move_anim_start_t2
+ b _080314C2
+_0803143E:
+ cmp r4, 0x40
+ bne _080314AE
+ ldrb r0, [r5]
+ movs r1, 0x5
+ bl move_anim_start_t2
+ b _080314C2
+_0803144C:
+ movs r0, 0xF0
+ lsls r0, 12
+ ands r0, r4
+ cmp r0, 0
+ beq _08031460
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl move_anim_start_t2
+ b _080314C2
+_08031460:
+ movs r0, 0x7
+ ands r0, r4
+ cmp r0, 0
+ beq _08031472
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl move_anim_start_t2
+ b _080314C2
+_08031472:
+ movs r0, 0x80
+ lsls r0, 21
+ ands r0, r4
+ cmp r0, 0
+ beq _08031486
+ ldrb r0, [r5]
+ movs r1, 0x7
+ bl move_anim_start_t2
+ b _080314C2
+_08031486:
+ movs r0, 0x80
+ lsls r0, 20
+ ands r0, r4
+ cmp r0, 0
+ beq _0803149A
+ ldrb r0, [r5]
+ movs r1, 0x8
+ bl move_anim_start_t2
+ b _080314C2
+_0803149A:
+ movs r0, 0xE0
+ lsls r0, 8
+ ands r0, r4
+ cmp r0, 0
+ beq _080314AE
+ ldrb r0, [r5]
+ movs r1, 0x9
+ bl move_anim_start_t2
+ b _080314C2
+_080314AE:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+_080314C2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end move_anim_start_t2_for_situation
+
+ thumb_func_start move_anim_start_t3
+move_anim_start_t3: @ 80314C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ lsls r3, 24
+ lsrs r5, r3, 24
+ lsls r4, 16
+ lsrs r7, r4, 16
+ cmp r5, 0
+ bne _0803150C
+ movs r0, 0x80
+ ands r0, r7
+ cmp r0, 0
+ beq _0803150C
+ ldr r0, _08031508 @ =gUnknown_02024E84
+ adds r0, r6, r0
+ movs r2, 0x7F
+ adds r1, r7, 0
+ ands r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ b _080315C2
+ .align 2, 0
+_08031508: .4byte gUnknown_02024E84
+_0803150C:
+ lsls r1, r6, 2
+ ldr r0, _08031530 @ =0x02017800
+ adds r4, r1, r0
+ ldrb r1, [r4]
+ movs r0, 0x4
+ mov r8, r0
+ ands r0, r1
+ cmp r0, 0
+ beq _08031578
+ adds r0, r5, 0
+ bl sub_803163C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031534
+ movs r0, 0x1
+ b _080315C2
+ .align 2, 0
+_08031530: .4byte 0x02017800
+_08031534:
+ ldrb r1, [r4]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08031578
+ cmp r5, 0x2
+ bne _08031578
+ ldr r1, _08031570 @ =gSprites
+ ldr r0, _08031574 @ =gUnknown_02024BE0
+ adds r0, r6, r0
+ ldrb r2, [r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08031578
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl refresh_graphics_maybe
+ adds r0, r6, 0
+ bl sub_80324E0
+ movs r0, 0x1
+ b _080315C2
+ .align 2, 0
+_08031570: .4byte gSprites
+_08031574: .4byte gUnknown_02024BE0
+_08031578:
+ ldr r0, _080315D0 @ =gUnknown_0202F7C8
+ mov r1, r9
+ strb r1, [r0]
+ ldr r0, _080315D4 @ =gUnknown_0202F7C9
+ mov r1, r10
+ strb r1, [r0]
+ ldr r4, _080315D8 @ =0x02017840
+ strh r7, [r4]
+ ldr r0, _080315DC @ =gBattleAnims_Unknown1
+ adds r1, r5, 0
+ movs r2, 0
+ bl move_something
+ ldr r0, _080315E0 @ =sub_80315E8
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080315E4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r6, [r1, 0x8]
+ movs r0, 0x8
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ subs r4, 0x30
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0
+_080315C2:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080315D0: .4byte gUnknown_0202F7C8
+_080315D4: .4byte gUnknown_0202F7C9
+_080315D8: .4byte 0x02017840
+_080315DC: .4byte gBattleAnims_Unknown1
+_080315E0: .4byte sub_80315E8
+_080315E4: .4byte gTasks
+ thumb_func_end move_anim_start_t3
+
+ thumb_func_start sub_80315E8
+sub_80315E8: @ 80315E8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0803162C @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08031630 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08031626
+ ldr r1, _08031634 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08031638 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_08031626:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803162C: .4byte gUnknown_0202F7AC
+_08031630: .4byte gUnknown_0202F7B1
+_08031634: .4byte gTasks
+_08031638: .4byte 0x02017810
+ thumb_func_end sub_80315E8
+
+ thumb_func_start sub_803163C
+sub_803163C: @ 803163C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bgt _08031650
+ cmp r0, 0xA
+ bge _08031654
+ cmp r0, 0x2
+ beq _08031654
+ b _08031658
+_08031650:
+ cmp r0, 0x11
+ bne _08031658
+_08031654:
+ movs r0, 0x1
+ b _0803165A
+_08031658:
+ movs r0, 0
+_0803165A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803163C
+
+ thumb_func_start move_anim_start_t4
+move_anim_start_t4: @ 8031660
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _080316B4 @ =gUnknown_0202F7C8
+ strb r1, [r0]
+ ldr r0, _080316B8 @ =gUnknown_0202F7C9
+ strb r2, [r0]
+ ldr r0, _080316BC @ =gBattleAnims_Unknown2
+ adds r1, r3, 0
+ movs r2, 0
+ bl move_something
+ ldr r0, _080316C0 @ =sub_80316CC
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _080316C4 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ movs r0, 0x8
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080316C8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080316B4: .4byte gUnknown_0202F7C8
+_080316B8: .4byte gUnknown_0202F7C9
+_080316BC: .4byte gBattleAnims_Unknown2
+_080316C0: .4byte sub_80316CC
+_080316C4: .4byte gTasks
+_080316C8: .4byte 0x02017810
+ thumb_func_end move_anim_start_t4
+
+ thumb_func_start sub_80316CC
+sub_80316CC: @ 80316CC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08031710 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08031714 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0803170A
+ ldr r1, _08031718 @ =gTasks
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0803171C @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0803170A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031710: .4byte gUnknown_0202F7AC
+_08031714: .4byte gUnknown_0202F7B1
+_08031718: .4byte gTasks
+_0803171C: .4byte 0x02017810
+ thumb_func_end sub_80316CC
+
+ thumb_func_start sub_8031720
+sub_8031720: @ 8031720
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8031720
+
+ thumb_func_start mplay_80342A4
+mplay_80342A4: @ 8031724
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08031764
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ ldr r2, _0803176C @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x8]
+ adds r0, 0x1
+ strb r0, [r1, 0x8]
+ ldr r0, _08031770 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1D
+ bls _08031768
+ ldr r0, _08031774 @ =gMPlay_SE1
+ bl m4aMPlayStop
+ ldr r0, _08031778 @ =gMPlay_SE2
+ bl m4aMPlayStop
+_08031764:
+ cmp r5, 0
+ beq _0803177C
+_08031768:
+ movs r0, 0x1
+ b _0803178A
+ .align 2, 0
+_0803176C: .4byte 0x02017810
+_08031770: .4byte gUnknown_02024A60
+_08031774: .4byte gMPlay_SE1
+_08031778: .4byte gMPlay_SE2
+_0803177C:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _08031790 @ =0x02017810
+ adds r0, r1
+ strb r5, [r0, 0x8]
+ movs r0, 0
+_0803178A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08031790: .4byte 0x02017810
+ thumb_func_end mplay_80342A4
+
+ thumb_func_start sub_8031794
+sub_8031794: @ 8031794
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0xC]
+ mov r0, r9
+ lsls r1, r0, 2
+ ldr r0, _080317D0 @ =0x02017800
+ adds r2, r1, r0
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0
+ bne _080317D4
+ mov r0, r8
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r7, [sp, 0xC]
+ b _080317DC
+ .align 2, 0
+_080317D0: .4byte 0x02017800
+_080317D4:
+ ldrh r6, [r2, 0x2]
+ ldr r0, _08031838 @ =gUnknown_02024E70
+ adds r0, r1, r0
+ ldr r7, [r0]
+_080317DC:
+ mov r0, r8
+ movs r1, 0x1
+ bl GetMonData
+ mov r10, r0
+ mov r0, r9
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsls r5, r6, 3
+ ldr r1, _0803183C @ =gMonFrontPicTable
+ adds r5, r1
+ ldr r1, _08031840 @ =gMonFrontPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08031844 @ =gUnknown_081FAF4C
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ adds r0, r5, 0
+ bl sub_800D334
+ mov r1, r9
+ lsls r2, r1, 4
+ movs r0, 0x80
+ lsls r0, 1
+ adds r7, r2, r0
+ lsls r1, 2
+ ldr r0, _08031848 @ =0x02017800
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ str r1, [sp, 0x10]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _0803184C
+ mov r0, r8
+ bl pokemon_get_pal
+ b _08031856
+ .align 2, 0
+_08031838: .4byte gUnknown_02024E70
+_0803183C: .4byte gMonFrontPicTable
+_08031840: .4byte gMonFrontPicCoords
+_08031844: .4byte gUnknown_081FAF4C
+_08031848: .4byte 0x02017800
+_0803184C:
+ adds r0, r6, 0
+ mov r1, r10
+ ldr r2, [sp, 0xC]
+ bl species_and_otid_get_pal
+_08031856:
+ adds r5, r0, 0
+ ldr r1, _080318E0 @ =0x02000000
+ mov r8, r1
+ adds r0, r5, 0
+ bl sub_800D238
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r1, r4, 0
+ adds r1, 0x80
+ mov r0, r8
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _080318E4 @ =SPECIES_CASTFORM
+ cmp r6, r0
+ bne _080318A2
+ subs r0, 0x81
+ adds r7, r4, r0
+ movs r4, 0xB2
+ lsls r4, 9
+ add r4, r8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _080318E8 @ =gUnknown_02024E84
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+_080318A2:
+ movs r0, 0xBC
+ lsls r0, 9
+ add r0, r8
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _080318CE
+ ldr r3, _080318EC @ =0x00007fff
+ adds r0, r7, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r7, 1
+ ldr r0, _080318F0 @ =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, _080318F4 @ =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, _080318F8 @ =REG_BG0CNT
+ bl CpuSet
+_080318CE:
+ 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
+_080318E0: .4byte 0x02000000
+_080318E4: .4byte SPECIES_CASTFORM
+_080318E8: .4byte gUnknown_02024E84
+_080318EC: .4byte 0x00007fff
+_080318F0: .4byte gPlttBufferFaded
+_080318F4: .4byte gPlttBufferUnfaded
+_080318F8: .4byte REG_BG0CNT
+ thumb_func_end sub_8031794
+
+ thumb_func_start sub_80318FC
+sub_80318FC: @ 80318FC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0xC]
+ mov r0, r9
+ lsls r1, r0, 2
+ ldr r0, _08031938 @ =0x02017800
+ adds r2, r1, r0
+ ldrh r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0803193C
+ mov r0, r8
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r7, [sp, 0xC]
+ b _08031944
+ .align 2, 0
+_08031938: .4byte 0x02017800
+_0803193C:
+ ldrh r6, [r2, 0x2]
+ ldr r0, _080319A0 @ =gUnknown_02024E70
+ adds r0, r1, r0
+ ldr r7, [r0]
+_08031944:
+ mov r0, r8
+ movs r1, 0x1
+ bl GetMonData
+ mov r10, r0
+ mov r0, r9
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsls r5, r6, 3
+ ldr r1, _080319A4 @ =gMonBackPicTable
+ adds r5, r1
+ ldr r1, _080319A8 @ =gMonBackPicCoords
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _080319AC @ =gUnknown_081FAF4C
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ adds r0, r5, 0
+ bl sub_800D334
+ mov r1, r9
+ lsls r2, r1, 4
+ movs r0, 0x80
+ lsls r0, 1
+ adds r7, r2, r0
+ lsls r1, 2
+ ldr r0, _080319B0 @ =0x02017800
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ str r1, [sp, 0x10]
+ adds r4, r2, 0
+ cmp r0, 0
+ bne _080319B4
+ mov r0, r8
+ bl pokemon_get_pal
+ b _080319BE
+ .align 2, 0
+_080319A0: .4byte gUnknown_02024E70
+_080319A4: .4byte gMonBackPicTable
+_080319A8: .4byte gMonBackPicCoords
+_080319AC: .4byte gUnknown_081FAF4C
+_080319B0: .4byte 0x02017800
+_080319B4:
+ adds r0, r6, 0
+ mov r1, r10
+ ldr r2, [sp, 0xC]
+ bl species_and_otid_get_pal
+_080319BE:
+ adds r5, r0, 0
+ ldr r1, _08031A48 @ =0x02000000
+ mov r8, r1
+ adds r0, r5, 0
+ bl sub_800D238
+ mov r0, r8
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+ adds r1, r4, 0
+ adds r1, 0x80
+ mov r0, r8
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08031A4C @ =SPECIES_CASTFORM
+ cmp r6, r0
+ bne _08031A0A
+ subs r0, 0x81
+ adds r7, r4, r0
+ movs r4, 0xB2
+ lsls r4, 9
+ add r4, r8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _08031A50 @ =gUnknown_02024E84
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ adds r1, r7, 0
+ movs r2, 0x20
+ bl LoadPalette
+_08031A0A:
+ movs r0, 0xBC
+ lsls r0, 9
+ add r0, r8
+ ldr r1, [sp, 0x10]
+ adds r0, r1, r0
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08031A36
+ ldr r3, _08031A54 @ =0x00007fff
+ adds r0, r7, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r7, 1
+ ldr r0, _08031A58 @ =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, _08031A5C @ =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, _08031A60 @ =REG_BG0CNT
+ bl CpuSet
+_08031A36:
+ 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
+_08031A48: .4byte 0x02000000
+_08031A4C: .4byte SPECIES_CASTFORM
+_08031A50: .4byte gUnknown_02024E84
+_08031A54: .4byte 0x00007fff
+_08031A58: .4byte gPlttBufferFaded
+_08031A5C: .4byte gPlttBufferUnfaded
+_08031A60: .4byte REG_BG0CNT
+ thumb_func_end sub_80318FC
+
+ thumb_func_start unref_sub_8031A64
+unref_sub_8031A64: @ 8031A64
+ bx lr
+ thumb_func_end unref_sub_8031A64
+
+ thumb_func_start nullsub_9
+nullsub_9: @ 8031A68
+ bx lr
+ thumb_func_end nullsub_9
+
+ thumb_func_start sub_8031A6C
+sub_8031A6C: @ 8031A6C
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ adds r0, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsls r6, r4, 3
+ ldr r5, _08031ADC @ =gTrainerFrontPicTable
+ adds r5, r6, r5
+ ldr r1, _08031AE0 @ =gTrainerFrontPicCoords
+ lsls r4, 2
+ adds r4, r1
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08031AE4 @ =gUnknown_081FAF4C
+ lsrs r0, 22
+ adds r0, r4
+ ldr r4, [r0]
+ str r4, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ bl DecompressPicFromTable_2
+ str r4, [sp, 0x8]
+ ldrh r2, [r5, 0x4]
+ ldr r0, _08031AE8 @ =0xffff0000
+ ldr r1, [sp, 0xC]
+ ands r1, r0
+ orrs r1, r2
+ str r1, [sp, 0xC]
+ ldrh r2, [r5, 0x6]
+ lsls r2, 16
+ ldr r0, _08031AEC @ =0x0000ffff
+ ands r0, r1
+ orrs r0, r2
+ str r0, [sp, 0xC]
+ add r0, sp, 0x8
+ bl LoadCompressedObjectPic
+ ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable
+ adds r6, r0
+ adds r0, r6, 0
+ bl LoadCompressedObjectPalette
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031ADC: .4byte gTrainerFrontPicTable
+_08031AE0: .4byte gTrainerFrontPicCoords
+_08031AE4: .4byte gUnknown_081FAF4C
+_08031AE8: .4byte 0xffff0000
+_08031AEC: .4byte 0x0000ffff
+_08031AF0: .4byte gTrainerFrontPicPaletteTable
+ thumb_func_end sub_8031A6C
+
+ thumb_func_start sub_8031AF4
+sub_8031AF4: @ 8031AF4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsls r1, r4, 3
+ mov r8, r1
+ ldr r6, _08031B60 @ =gTrainerBackPicTable
+ add r6, r8
+ ldr r1, _08031B64 @ =gTrainerBackPicCoords
+ lsls r4, 2
+ adds r4, r1
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08031B68 @ =gUnknown_081FAF4C
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r6, 0
+ bl DecompressPicFromTable_2
+ ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable
+ add r8, r0
+ mov r1, r8
+ ldr r0, [r1]
+ lsls r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r5, r1
+ lsrs r5, 16
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031B60: .4byte gTrainerBackPicTable
+_08031B64: .4byte gTrainerBackPicCoords
+_08031B68: .4byte gUnknown_081FAF4C
+_08031B6C: .4byte gTrainerBackPicPaletteTable
+ thumb_func_end sub_8031AF4
+
+ thumb_func_start nullsub_10
+nullsub_10: @ 8031B70
+ bx lr
+ thumb_func_end nullsub_10
+
+ thumb_func_start sub_8031B74
+sub_8031B74: @ 8031B74
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable
+ lsrs r4, 13
+ adds r0, r4, r0
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ ldr r0, _08031B9C @ =gTrainerFrontPicTable
+ adds r4, r0
+ ldrh r0, [r4, 0x6]
+ bl FreeSpriteTilesByTag
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031B98: .4byte gTrainerFrontPicPaletteTable
+_08031B9C: .4byte gTrainerFrontPicTable
+ thumb_func_end sub_8031B74
+
+ thumb_func_start unref_sub_8031BA0
+unref_sub_8031BA0: @ 8031BA0
+ push {r4-r7,lr}
+ ldr r4, _08031BCC @ =gUnknown_0820A4D4
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031BD8
+ ldr r0, _08031BD0 @ =gUnknown_0820A47C
+ bl LoadCompressedObjectPic
+ ldr r0, _08031BD4 @ =gUnknown_0820A484
+ bl LoadCompressedObjectPic
+ movs r5, 0x2
+ b _08031BFA
+ .align 2, 0
+_08031BCC: .4byte gUnknown_0820A4D4
+_08031BD0: .4byte gUnknown_0820A47C
+_08031BD4: .4byte gUnknown_0820A484
+_08031BD8:
+ ldr r4, _08031C20 @ =gUnknown_0820A48C
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ ldr r4, _08031C24 @ =gUnknown_0820A49C
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ movs r5, 0x4
+_08031BFA:
+ movs r4, 0
+ cmp r4, r5
+ bcs _08031C1A
+ ldr r7, _08031C28 @ =gUnknown_02024A72
+ ldr r6, _08031C2C @ =gUnknown_0820A4B4
+_08031C04:
+ adds r0, r4, r7
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r6
+ bl LoadCompressedObjectPic
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _08031C04
+_08031C1A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031C20: .4byte gUnknown_0820A48C
+_08031C24: .4byte gUnknown_0820A49C
+_08031C28: .4byte gUnknown_02024A72
+_08031C2C: .4byte gUnknown_0820A4B4
+ thumb_func_end unref_sub_8031BA0
+
+ thumb_func_start sub_8031C30
+sub_8031C30: @ 8031C30
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ movs r6, 0
+ cmp r4, 0
+ bne _08031C40
+ b _08031D52
+_08031C40:
+ cmp r4, 0x1
+ bne _08031C5C
+ ldr r4, _08031C58 @ =gUnknown_0820A4D4
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ adds r4, 0x8
+ adds r0, r4, 0
+ bl LoadSpritePalette
+ b _08031D52
+ .align 2, 0
+_08031C58: .4byte gUnknown_0820A4D4
+_08031C5C:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031CC4
+ cmp r4, 0x2
+ bne _08031C94
+ ldr r0, _08031C80 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08031C88
+ ldr r0, _08031C84 @ =gUnknown_0820A4AC
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031C80: .4byte gUnknown_020239F8
+_08031C84: .4byte gUnknown_0820A4AC
+_08031C88:
+ ldr r0, _08031C90 @ =gUnknown_0820A47C
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031C90: .4byte gUnknown_0820A47C
+_08031C94:
+ cmp r4, 0x3
+ bne _08031CA4
+ ldr r0, _08031CA0 @ =gUnknown_0820A484
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031CA0: .4byte gUnknown_0820A484
+_08031CA4:
+ cmp r4, 0x4
+ bne _08031CB4
+ ldr r0, _08031CB0 @ =gUnknown_02024A72
+ ldrb r0, [r0]
+ b _08031D3C
+ .align 2, 0
+_08031CB0: .4byte gUnknown_02024A72
+_08031CB4:
+ cmp r4, 0x5
+ bne _08031D50
+ ldr r0, _08031CC0 @ =gUnknown_02024A72
+ ldrb r0, [r0, 0x1]
+ b _08031D3C
+ .align 2, 0
+_08031CC0: .4byte gUnknown_02024A72
+_08031CC4:
+ cmp r4, 0x2
+ bne _08031CD4
+ ldr r0, _08031CD0 @ =gUnknown_0820A48C
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031CD0: .4byte gUnknown_0820A48C
+_08031CD4:
+ cmp r4, 0x3
+ bne _08031CE4
+ ldr r0, _08031CE0 @ =gUnknown_0820A494
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031CE0: .4byte gUnknown_0820A494
+_08031CE4:
+ cmp r4, 0x4
+ bne _08031CF4
+ ldr r0, _08031CF0 @ =gUnknown_0820A49C
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031CF0: .4byte gUnknown_0820A49C
+_08031CF4:
+ cmp r4, 0x5
+ bne _08031D04
+ ldr r0, _08031D00 @ =gUnknown_0820A4A4
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031D00: .4byte gUnknown_0820A4A4
+_08031D04:
+ cmp r4, 0x6
+ bne _08031D14
+ ldr r0, _08031D10 @ =gUnknown_02024A72
+ ldrb r0, [r0]
+ b _08031D3C
+ .align 2, 0
+_08031D10: .4byte gUnknown_02024A72
+_08031D14:
+ cmp r4, 0x7
+ bne _08031D24
+ ldr r0, _08031D20 @ =gUnknown_02024A72
+ ldrb r0, [r0, 0x1]
+ b _08031D3C
+ .align 2, 0
+_08031D20: .4byte gUnknown_02024A72
+_08031D24:
+ cmp r4, 0x8
+ bne _08031D34
+ ldr r0, _08031D30 @ =gUnknown_02024A72
+ ldrb r0, [r0, 0x2]
+ b _08031D3C
+ .align 2, 0
+_08031D30: .4byte gUnknown_02024A72
+_08031D34:
+ cmp r5, 0x9
+ bne _08031D50
+ ldr r0, _08031D48 @ =gUnknown_02024A72
+ ldrb r0, [r0, 0x3]
+_08031D3C:
+ lsls r0, 3
+ ldr r1, _08031D4C @ =gUnknown_0820A4B4
+ adds r0, r1
+ bl LoadCompressedObjectPic
+ b _08031D52
+ .align 2, 0
+_08031D48: .4byte gUnknown_02024A72
+_08031D4C: .4byte gUnknown_0820A4B4
+_08031D50:
+ movs r6, 0x1
+_08031D52:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8031C30
+
+ thumb_func_start load_gfxc_health_bar
+load_gfxc_health_bar: @ 8031D5C
+ push {lr}
+ ldr r0, _08031D6C @ =gUnknown_08D09C48
+ movs r1, 0x80
+ lsls r1, 18
+ bl sub_800D238
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031D6C: .4byte gUnknown_08D09C48
+ thumb_func_end load_gfxc_health_bar
+
+ thumb_func_start battle_load_something
+battle_load_something: @ 8031D70
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ movs r6, 0
+ ldrb r0, [r5]
+ cmp r0, 0x6
+ bls _08031D80
+ b _08031EDE
+_08031D80:
+ lsls r0, 2
+ ldr r1, _08031D8C @ =_08031D90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08031D8C: .4byte _08031D90
+ .align 2, 0
+_08031D90:
+ .4byte _08031DAC
+ .4byte _08031DB2
+ .4byte _08031EBC
+ .4byte _08031DC8
+ .4byte _08031DF8
+ .4byte _08031E34
+ .4byte _08031ED4
+_08031DAC:
+ bl sub_8031F0C
+ b _08031EBC
+_08031DB2:
+ ldrb r0, [r4]
+ bl sub_8031C30
+ lsls r0, 24
+ cmp r0, 0
+ beq _08031DC0
+ b _08031EB8
+_08031DC0:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08031EDE
+_08031DC8:
+ ldr r0, _08031DE0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08031DE4
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _08031DE4
+ bl battle_make_oam_safari_battle
+ b _08031DEA
+ .align 2, 0
+_08031DE0: .4byte gUnknown_020239F8
+_08031DE4:
+ ldrb r0, [r4]
+ bl battle_make_oam_normal_battle
+_08031DEA:
+ ldr r2, _08031DF4 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r1, r2
+ strb r0, [r1]
+ b _08031EA6
+ .align 2, 0
+_08031DF4: .4byte gUnknown_03004340
+_08031DF8:
+ ldrb r0, [r4]
+ bl sub_8043F44
+ ldr r0, _08031E18 @ =gUnknown_02024A72
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bhi _08031E20
+ ldr r0, _08031E1C @ =gUnknown_03004340
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ movs r1, 0
+ bl nullsub_11
+ b _08031EA6
+ .align 2, 0
+_08031E18: .4byte gUnknown_02024A72
+_08031E1C: .4byte gUnknown_03004340
+_08031E20:
+ ldr r0, _08031E30 @ =gUnknown_03004340
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl nullsub_11
+ b _08031EA6
+ .align 2, 0
+_08031E30: .4byte gUnknown_03004340
+_08031E34:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08031E7C
+ ldr r0, _08031E6C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08031E9A
+ ldr r0, _08031E70 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08031E74 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08031E78 @ =gPlayerParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ b _08031E9A
+ .align 2, 0
+_08031E6C: .4byte gUnknown_020239F8
+_08031E70: .4byte gUnknown_03004340
+_08031E74: .4byte gUnknown_02024A6A
+_08031E78: .4byte gPlayerParty
+_08031E7C:
+ ldr r0, _08031EC4 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08031EC8 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08031ECC @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+_08031E9A:
+ ldr r1, _08031EC4 @ =gUnknown_03004340
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+_08031EA6:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r1, _08031ED0 @ =gUnknown_02024A68
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08031EDE
+_08031EB8:
+ movs r0, 0
+ strb r0, [r4]
+_08031EBC:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _08031EDE
+ .align 2, 0
+_08031EC4: .4byte gUnknown_03004340
+_08031EC8: .4byte gUnknown_02024A6A
+_08031ECC: .4byte gEnemyParty
+_08031ED0: .4byte gUnknown_02024A68
+_08031ED4:
+ bl sub_80327CC
+ bl sub_8094958
+ movs r6, 0x1
+_08031EDE:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end battle_load_something
+
+ thumb_func_start sub_8031EE8
+sub_8031EE8: @ 8031EE8
+ push {r4,lr}
+ ldr r4, _08031F08 @ =0x02017810
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x30
+ bl memset
+ adds r4, 0x30
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031F08: .4byte 0x02017810
+ thumb_func_end sub_8031EE8
+
+ thumb_func_start sub_8031F0C
+sub_8031F0C: @ 8031F0C
+ push {lr}
+ bl sub_8031EE8
+ ldr r0, _08031F20 @ =0x02017800
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031F20: .4byte 0x02017800
+ thumb_func_end sub_8031F0C
+
+ thumb_func_start sub_8031F24
+sub_8031F24: @ 8031F24
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r4, 0
+ ldr r5, _08031F78 @ =gUnknown_02024A68
+ ldrb r0, [r5]
+ cmp r4, r0
+ bge _08031F6E
+ ldr r0, _08031F7C @ =gSprites
+ mov r8, r0
+ movs r7, 0x1
+ movs r0, 0x2
+ negs r0, r0
+ mov r12, r0
+ ldr r6, _08031F80 @ =gUnknown_02024BE0
+ ldr r3, _08031F84 @ =0x02017800
+_08031F44:
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ ands r1, r7
+ ldrb r2, [r3]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r3, 0x4
+ adds r4, 0x1
+ ldrb r0, [r5]
+ cmp r4, r0
+ blt _08031F44
+_08031F6E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08031F78: .4byte gUnknown_02024A68
+_08031F7C: .4byte gSprites
+_08031F80: .4byte gUnknown_02024BE0
+_08031F84: .4byte 0x02017800
+ thumb_func_end sub_8031F24
+
+ thumb_func_start sub_8031F88
+sub_8031F88: @ 8031F88
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 2
+ ldr r1, _08031FB8 @ =0x02017800
+ adds r3, r1
+ ldr r2, _08031FBC @ =gSprites
+ ldr r1, _08031FC0 @ =gUnknown_02024BE0
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bx lr
+ .align 2, 0
+_08031FB8: .4byte 0x02017800
+_08031FBC: .4byte gSprites
+_08031FC0: .4byte gUnknown_02024BE0
+ thumb_func_end sub_8031F88
+
+ thumb_func_start sub_8031FC4
+sub_8031FC4: @ 8031FC4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0xC]
+ lsls r2, 24
+ cmp r2, 0
+ beq _08032088
+ ldr r0, _08032064 @ =gUnknown_02024BE0
+ mov r1, r8
+ adds r6, r1, r0
+ ldrb r1, [r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r7, _08032068 @ =gSprites
+ adds r0, r7
+ ldr r4, _0803206C @ =0x02017840
+ ldrb r1, [r4]
+ bl StartSpriteAnim
+ mov r2, r8
+ lsls r0, r2, 20
+ movs r5, 0x80
+ lsls r5, 17
+ adds r0, r5
+ lsrs r5, r0, 16
+ ldrh r0, [r4]
+ lsls r0, 5
+ ldr r2, _08032070 @ =0xffffebc0
+ adds r1, r4, r2
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08032074 @ =gUnknown_02024E84
+ add r0, r8
+ ldrh r1, [r4]
+ strb r1, [r0]
+ mov r1, r8
+ lsls r0, r1, 2
+ subs r4, 0x40
+ adds r0, r4
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _0803204C
+ ldr r3, _08032078 @ =0x00007fff
+ adds r0, r5, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r5, 1
+ ldr r0, _0803207C @ =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, _08032080 @ =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, _08032084 @ =REG_BG0CNT
+ bl CpuSet
+_0803204C:
+ mov r0, r8
+ bl sub_8077F68
+ ldrb r2, [r6]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r7
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x22]
+ b _080322F6
+ .align 2, 0
+_08032064: .4byte gUnknown_02024BE0
+_08032068: .4byte gSprites
+_0803206C: .4byte 0x02017840
+_08032070: .4byte 0xffffebc0
+_08032074: .4byte gUnknown_02024E84
+_08032078: .4byte 0x00007fff
+_0803207C: .4byte gPlttBufferFaded
+_08032080: .4byte gPlttBufferUnfaded
+_08032084: .4byte REG_BG0CNT
+_08032088:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080320D0
+ movs r2, 0
+ mov r10, r2
+ ldr r5, _080320C0 @ =0x02019348
+ ldrh r7, [r5, 0x2]
+ ldr r4, [r5, 0x8]
+ mov r9, r4
+ ldr r6, [r5, 0xC]
+ lsls r0, r7, 3
+ ldr r1, _080320C4 @ =gMonBackPicTable
+ adds r0, r1
+ ldr r1, _080320C8 @ =gMonBackPicCoords
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _080320CC @ =gUnknown_081FAF4C
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ ldr r4, [r5, 0x10]
+ b _08032184
+ .align 2, 0
+_080320C0: .4byte 0x02019348
+_080320C4: .4byte gMonBackPicTable
+_080320C8: .4byte gMonBackPicCoords
+_080320CC: .4byte gUnknown_081FAF4C
+_080320D0:
+ mov r0, r8
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, [sp, 0xC]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08032104
+ ldr r1, _080320FC @ =gUnknown_02024A6A
+ ldr r5, [sp, 0xC]
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08032100 @ =gEnemyParty
+ b _08032114
+ .align 2, 0
+_080320FC: .4byte gUnknown_02024A6A
+_08032100: .4byte gEnemyParty
+_08032104:
+ ldr r1, _0803218C @ =gUnknown_02024A6A
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08032190 @ =gPlayerParty
+_08032114:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r0, r8
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _080321A4
+ ldr r0, _0803218C @ =gUnknown_02024A6A
+ mov r5, r8
+ lsls r4, r5, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08032190 @ =gPlayerParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrh r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r0, r7, 3
+ ldr r1, _08032194 @ =gMonBackPicTable
+ adds r0, r1
+ ldr r1, _08032198 @ =gMonBackPicCoords
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _0803219C @ =gUnknown_081FAF4C
+ mov r12, r4
+ mov r5, r10
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ ldr r4, _080321A0 @ =gUnknown_02024E70
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+_08032184:
+ str r4, [sp, 0x8]
+ bl sub_800D334
+ b _08032202
+ .align 2, 0
+_0803218C: .4byte gUnknown_02024A6A
+_08032190: .4byte gPlayerParty
+_08032194: .4byte gMonBackPicTable
+_08032198: .4byte gMonBackPicCoords
+_0803219C: .4byte gUnknown_081FAF4C
+_080321A0: .4byte gUnknown_02024E70
+_080321A4:
+ ldr r0, _08032308 @ =gUnknown_02024A6A
+ mov r1, r8
+ lsls r4, r1, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0803230C @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrh r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r0, r7, 3
+ ldr r1, _08032310 @ =gMonFrontPicTable
+ adds r0, r1
+ ldr r1, _08032314 @ =gMonFrontPicCoords
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08032318 @ =gUnknown_081FAF4C
+ mov r12, r4
+ mov r5, r10
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ ldr r4, _0803231C @ =gUnknown_02024E70
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp, 0x8]
+ bl sub_800D334
+_08032202:
+ ldr r1, _08032318 @ =gUnknown_081FAF4C
+ mov r2, r10
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r2, [r0]
+ ldr r0, _08032320 @ =gUnknown_02024BE0
+ add r0, r8
+ mov r10, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08032324 @ =gSprites
+ adds r0, r4
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldr r1, _08032328 @ =0x06010000
+ adds r0, r1
+ ldr r1, _0803232C @ =0x040000d4
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _08032330 @ =0x84000200
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r5, r8
+ lsls r0, r5, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 16
+ adds r0, r7, 0
+ adds r1, r6, 0
+ mov r2, r9
+ bl species_and_otid_get_pal
+ adds r6, r0, 0
+ ldr r2, _08032334 @ =0x02000000
+ mov r9, r2
+ mov r1, r9
+ bl sub_800D238
+ mov r0, r9
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08032338 @ =SPECIES_CASTFORM
+ cmp r7, r0
+ bne _08032288
+ movs r4, 0xB2
+ lsls r4, 9
+ add r4, r9
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _0803233C @ =gUnknown_02024E84
+ ldr r1, [sp, 0xC]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+_08032288:
+ ldr r3, _08032340 @ =0x00007fff
+ adds r0, r5, 0
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+ lsls r1, r5, 1
+ ldr r0, _08032344 @ =gPlttBufferFaded
+ adds r0, r1, r0
+ ldr r2, _08032348 @ =gPlttBufferUnfaded
+ adds r1, r2
+ ldr r2, _0803234C @ =REG_BG0CNT
+ bl CpuSet
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080322C8
+ mov r2, r8
+ lsls r0, r2, 2
+ movs r1, 0xBC
+ lsls r1, 9
+ add r1, r9
+ adds r0, r1
+ strh r7, [r0, 0x2]
+ ldr r0, _0803233C @ =gUnknown_02024E84
+ adds r1, r2, r0
+ ldr r4, [sp, 0xC]
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+_080322C8:
+ mov r0, r8
+ bl sub_8077F68
+ mov r5, r10
+ ldrb r2, [r5]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _08032324 @ =gSprites
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x22]
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0803233C @ =gUnknown_02024E84
+ add r1, r8
+ ldrb r1, [r1]
+ bl StartSpriteAnim
+_080322F6:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032308: .4byte gUnknown_02024A6A
+_0803230C: .4byte gEnemyParty
+_08032310: .4byte gMonFrontPicTable
+_08032314: .4byte gMonFrontPicCoords
+_08032318: .4byte gUnknown_081FAF4C
+_0803231C: .4byte gUnknown_02024E70
+_08032320: .4byte gUnknown_02024BE0
+_08032324: .4byte gSprites
+_08032328: .4byte 0x06010000
+_0803232C: .4byte 0x040000d4
+_08032330: .4byte 0x84000200
+_08032334: .4byte 0x02000000
+_08032338: .4byte SPECIES_CASTFORM
+_0803233C: .4byte gUnknown_02024E84
+_08032340: .4byte 0x00007fff
+_08032344: .4byte gPlttBufferFaded
+_08032348: .4byte gPlttBufferUnfaded
+_0803234C: .4byte REG_BG0CNT
+ thumb_func_end sub_8031FC4
+
+ thumb_func_start sub_8032350
+sub_8032350: @ 8032350
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ lsls r1, 24
+ cmp r1, 0
+ bne _08032408
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803236C
+ movs r4, 0
+ b _08032376
+_0803236C:
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08032376:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032388
+ ldr r0, _08032384 @ =gSubstituteDollTilemap
+ b _08032396
+ .align 2, 0
+_08032384: .4byte gSubstituteDollTilemap
+_08032388:
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080323AC
+ ldr r0, _080323A4 @ =gSubstituteDollGfx
+_08032396:
+ ldr r1, _080323A8 @ =gUnknown_081FAF4C
+ lsls r4, 2
+ adds r1, r4, r1
+ ldr r1, [r1]
+ bl LZDecompressVram
+ b _080323BA
+ .align 2, 0
+_080323A4: .4byte gSubstituteDollGfx
+_080323A8: .4byte gUnknown_081FAF4C
+_080323AC:
+ ldr r0, _080323F4 @ =gSubstituteDollTilemap
+ ldr r1, _080323F8 @ =gUnknown_081FAF4C
+ lsls r4, 2
+ adds r1, r4, r1
+ ldr r1, [r1]
+ bl LZDecompressVram
+_080323BA:
+ lsls r7, r5, 4
+ ldr r0, _080323FC @ =gSubstituteDollPal
+ mov r12, r0
+ ldr r0, _080323F8 @ =gUnknown_081FAF4C
+ adds r0, r4, r0
+ ldr r4, [r0]
+ ldr r3, _08032400 @ =0x040000d4
+ ldr r6, _08032404 @ =0x84000200
+ movs r0, 0x80
+ lsls r0, 4
+ adds r2, r4, r0
+ adds r5, r0, 0
+ movs r1, 0x2
+_080323D4:
+ str r4, [r3]
+ str r2, [r3, 0x4]
+ str r6, [r3, 0x8]
+ ldr r0, [r3, 0x8]
+ adds r2, r5
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080323D4
+ movs r0, 0x80
+ lsls r0, 1
+ adds r1, r7, r0
+ mov r0, r12
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ b _08032456
+ .align 2, 0
+_080323F4: .4byte gSubstituteDollTilemap
+_080323F8: .4byte gUnknown_081FAF4C
+_080323FC: .4byte gSubstituteDollPal
+_08032400: .4byte 0x040000d4
+_08032404: .4byte 0x84000200
+_08032408:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08032456
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032440
+ ldr r1, _08032438 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0803243C @ =gEnemyParty
+ adds r0, r1
+ adds r1, r4, 0
+ bl sub_8031794
+ b _08032456
+ .align 2, 0
+_08032438: .4byte gUnknown_02024A6A
+_0803243C: .4byte gEnemyParty
+_08032440:
+ ldr r1, _0803245C @ =gUnknown_02024A6A
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08032460 @ =gPlayerParty
+ adds r0, r1
+ adds r1, r5, 0
+ bl sub_80318FC
+_08032456:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803245C: .4byte gUnknown_02024A6A
+_08032460: .4byte gPlayerParty
+ thumb_func_end sub_8032350
+
+ thumb_func_start refresh_graphics_maybe
+refresh_graphics_maybe: @ 8032464
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8032350
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _080324A0 @ =gSprites
+ adds r4, r0, r1
+ ldr r0, _080324A4 @ =gUnknown_02024E84
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ cmp r5, 0
+ bne _080324A8
+ adds r0, r6, 0
+ bl sub_8077F7C
+ b _080324AE
+ .align 2, 0
+_080324A0: .4byte gSprites
+_080324A4: .4byte gUnknown_02024E84
+_080324A8:
+ adds r0, r6, 0
+ bl sub_8077F68
+_080324AE:
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end refresh_graphics_maybe
+
+ thumb_func_start sub_80324BC
+sub_80324BC: @ 80324BC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xA4
+ bne _080324D8
+ lsls r2, r0, 2
+ ldr r0, _080324DC @ =0x02017800
+ adds r2, r0
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_080324D8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080324DC: .4byte 0x02017800
+ thumb_func_end sub_80324BC
+
+ thumb_func_start sub_80324E0
+sub_80324E0: @ 80324E0
+ lsls r0, 24
+ lsrs r0, 22
+ ldr r1, _080324F4 @ =0x02017800
+ adds r0, r1
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_080324F4: .4byte 0x02017800
+ thumb_func_end sub_80324E0
+
+ thumb_func_start sub_80324F8
+sub_80324F8: @ 80324F8
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ adds r7, r6, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8046200
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08032568
+ lsls r0, r6, 2
+ ldr r3, _08032564 @ =0x02017800
+ adds r4, r0, r3
+ ldrb r1, [r4]
+ movs r5, 0x2
+ movs r2, 0x2
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080325B2
+ adds r0, r6, 0
+ eors r0, r5
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0803255A
+ movs r0, 0x5A
+ bl PlaySE
+_0803255A:
+ ldrb r0, [r4]
+ orrs r0, r5
+ strb r0, [r4]
+ b _080325B2
+ .align 2, 0
+_08032564: .4byte 0x02017800
+_08032568:
+ lsls r1, r6, 2
+ ldr r4, _0803258C @ =0x02017800
+ adds r1, r4
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _08032590
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ b _080325B2
+ .align 2, 0
+_0803258C: .4byte 0x02017800
+_08032590:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080325B2
+ movs r0, 0x2
+ eors r7, r0
+ lsls r0, r7, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080325B2
+ movs r0, 0x5A
+ bl m4aSongNumStop
+_080325B2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80324F8
+
+ thumb_func_start sub_80325B8
+sub_80325B8: @ 80325B8
+ push {r4-r6,lr}
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, r4, 2
+ ldr r6, _08032600 @ =0x02017800
+ adds r1, r6
+ ldrb r2, [r1]
+ movs r5, 0x3
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080325F2
+ movs r0, 0x2
+ adds r1, r4, 0
+ eors r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1]
+_080325F2:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032600: .4byte 0x02017800
+ thumb_func_end sub_80325B8
+
+ thumb_func_start unref_sub_8032604
+unref_sub_8032604: @ 8032604
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl sub_8046200
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8032604
+
+ thumb_func_start sub_8032638
+sub_8032638: @ 8032638
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _080326DC @ =gMain
+ ldr r1, _080326E0 @ =0x0000043d
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080326CE
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r5, _080326E4 @ =gUnknown_02024A6A
+ mov r1, r8
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r1, r9
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrb r0, [r0]
+ bl pokemon_order_func
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0x64
+ adds r0, r4, 0
+ muls r0, r7
+ ldr r6, _080326E8 @ =gPlayerParty
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080326AA
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_80324F8
+_080326AA:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080326CE
+ adds r0, r5, 0
+ muls r0, r7
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080326CE
+ adds r0, r4, 0
+ mov r1, r9
+ bl sub_80324F8
+_080326CE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080326DC: .4byte gMain
+_080326E0: .4byte 0x0000043d
+_080326E4: .4byte gUnknown_02024A6A
+_080326E8: .4byte gPlayerParty
+ thumb_func_end sub_8032638
+
+ thumb_func_start sub_80326EC
+sub_80326EC: @ 80326EC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _08032778 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ bge _080327B4
+ movs r0, 0x3
+ mov r10, r8
+ mov r1, r10
+ ands r1, r0
+ mov r10, r1
+ movs r6, 0
+ movs r2, 0x3F
+ negs r2, r2
+ mov r9, r2
+_08032718:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _080327A8
+ ldr r4, _0803277C @ =gSprites
+ ldr r0, _08032780 @ =gUnknown_02024BE0
+ adds r3, r5, r0
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ movs r7, 0x4
+ negs r7, r7
+ adds r2, r7, 0
+ ands r1, r2
+ mov r2, r10
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ mov r7, r8
+ cmp r7, 0
+ bne _08032788
+ ldr r2, _08032784 @ =0x02017810
+ adds r2, r6, r2
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ strb r0, [r2, 0x6]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x3]
+ mov r2, r9
+ ands r1, r2
+ strb r1, [r0, 0x3]
+ b _080327A8
+ .align 2, 0
+_08032778: .4byte gUnknown_02024A68
+_0803277C: .4byte gSprites
+_08032780: .4byte gUnknown_02024BE0
+_08032784: .4byte 0x02017810
+_08032788:
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldr r0, _080327C4 @ =0x02017810
+ adds r0, r6, r0
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r0, [r2, 0x3]
+ mov r3, r9
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+_080327A8:
+ adds r6, 0xC
+ adds r5, 0x1
+ ldr r0, _080327C8 @ =gUnknown_02024A68
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _08032718
+_080327B4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080327C4: .4byte 0x02017810
+_080327C8: .4byte gUnknown_02024A68
+ thumb_func_end sub_80326EC
+
+ thumb_func_start sub_80327CC
+sub_80327CC: @ 80327CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08032894 @ =gUnknown_081FAF24
+ bl LoadCompressedObjectPic
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _08032898 @ =gSpriteTemplate_81FAF34
+ mov r8, r0
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 8
+ movs r0, 0x80
+ lsls r0, 14
+ adds r2, r0
+ asrs r2, 16
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0xC8
+ bl CreateSprite
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ ldr r6, _0803289C @ =0x02017810
+ adds r1, r6
+ strb r0, [r1, 0x7]
+ ldr r7, _080328A0 @ =gSprites
+ ldrb r1, [r1, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r5, [r0, 0x2E]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803288A
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 8
+ movs r0, 0x80
+ lsls r0, 14
+ adds r2, r0
+ asrs r2, 16
+ mov r0, r8
+ adds r1, r4, 0
+ movs r3, 0xC8
+ bl CreateSprite
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r6
+ strb r0, [r1, 0x7]
+ ldrb r1, [r1, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r5, [r0, 0x2E]
+_0803288A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032894: .4byte gUnknown_081FAF24
+_08032898: .4byte gSpriteTemplate_81FAF34
+_0803289C: .4byte 0x02017810
+_080328A0: .4byte gSprites
+ thumb_func_end sub_80327CC
+
+ thumb_func_start sub_80328A4
+sub_80328A4: @ 80328A4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ movs r0, 0
+ mov r8, r0
+ ldrh r0, [r5, 0x2E]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _080328E8 @ =gUnknown_02024BE0
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080328EC @ =gSprites
+ adds r7, r0, r1
+ adds r6, r7, 0
+ adds r6, 0x3E
+ ldrb r1, [r6]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080328E0
+ adds r0, r4, 0
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ bne _080328F4
+_080328E0:
+ ldr r0, _080328F0 @ =sub_8032978
+ str r0, [r5, 0x1C]
+ b _08032964
+ .align 2, 0
+_080328E8: .4byte gUnknown_02024BE0
+_080328EC: .4byte gSprites
+_080328F0: .4byte sub_8032978
+_080328F4:
+ ldr r0, _08032910 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08032906
+ ldrb r1, [r6]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08032918
+_08032906:
+ movs r0, 0x1
+ mov r8, r0
+ lsls r4, 2
+ ldr r6, _08032914 @ =0x02017800
+ b _08032938
+ .align 2, 0
+_08032910: .4byte gUnknown_0202F7B1
+_08032914: .4byte 0x02017800
+_08032918:
+ lsls r0, r4, 2
+ ldr r1, _08032970 @ =0x02017800
+ adds r3, r0, r1
+ ldrh r2, [r3, 0x2]
+ adds r4, r0, 0
+ adds r6, r1, 0
+ cmp r2, 0
+ beq _08032938
+ ldr r0, _08032974 @ =gEnemyMonElevation
+ adds r1, r2, 0
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08032938
+ movs r0, 0x1
+ mov r8, r0
+_08032938:
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08032948
+ movs r0, 0x1
+ mov r8, r0
+_08032948:
+ ldrh r0, [r7, 0x20]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r7, 0x24]
+ strh r0, [r5, 0x24]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ mov r0, r8
+ lsls r3, r0, 2
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+_08032964:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032970: .4byte 0x02017800
+_08032974: .4byte gEnemyMonElevation
+ thumb_func_end sub_80328A4
+
+ thumb_func_start sub_8032978
+sub_8032978: @ 8032978
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_8032978
+
+ thumb_func_start sub_8032984
+sub_8032984: @ 8032984
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _080329FA
+ lsls r0, r4, 2
+ ldr r3, _080329D0 @ =0x02017800
+ adds r1, r0, r3
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _080329AA
+ adds r5, r0, 0
+_080329AA:
+ ldr r0, _080329D4 @ =gEnemyMonElevation
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080329E0
+ ldr r2, _080329D8 @ =gSprites
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r3, r0
+ ldrb r1, [r0, 0x17]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080329DC @ =sub_80328A4
+ b _080329F8
+ .align 2, 0
+_080329D0: .4byte 0x02017800
+_080329D4: .4byte gEnemyMonElevation
+_080329D8: .4byte gSprites
+_080329DC: .4byte sub_80328A4
+_080329E0:
+ ldr r2, _08032A00 @ =gSprites
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r3, r0
+ ldrb r1, [r0, 0x17]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08032A04 @ =sub_8032978
+_080329F8:
+ str r1, [r0]
+_080329FA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032A00: .4byte gSprites
+_08032A04: .4byte sub_8032978
+ thumb_func_end sub_8032984
+
+ thumb_func_start sub_8032A08
+sub_8032A08: @ 8032A08
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08032A2C @ =gSprites
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08032A30 @ =0x02017810
+ adds r1, r0
+ ldrb r1, [r1, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08032A34 @ =sub_8032978
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08032A2C: .4byte gSprites
+_08032A30: .4byte 0x02017810
+_08032A34: .4byte sub_8032978
+ thumb_func_end sub_8032A08
+
+ thumb_func_start sub_8032A38
+sub_8032A38: @ 8032A38
+ push {r4-r6,lr}
+ ldr r3, _08032AA4 @ =0x06000240
+ movs r0, 0
+ movs r6, 0xF0
+ lsls r6, 8
+_08032A42:
+ adds r5, r0, 0x1
+ movs r4, 0xF
+_08032A46:
+ ldrh r1, [r3]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032A56
+ adds r0, r6, 0
+ orrs r0, r1
+ strh r0, [r3]
+_08032A56:
+ ldrh r1, [r3]
+ movs r2, 0xF0
+ lsls r2, 4
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032A6A
+ adds r0, r2, 0
+ orrs r0, r1
+ strh r0, [r3]
+_08032A6A:
+ ldrh r1, [r3]
+ movs r2, 0xF0
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032A7C
+ adds r0, r1, 0
+ orrs r0, r2
+ strh r0, [r3]
+_08032A7C:
+ ldrh r1, [r3]
+ movs r2, 0xF
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _08032A8E
+ adds r0, r1, 0
+ orrs r0, r2
+ strh r0, [r3]
+_08032A8E:
+ adds r3, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08032A46
+ adds r0, r5, 0
+ cmp r0, 0x8
+ ble _08032A42
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032AA4: .4byte 0x06000240
+ thumb_func_end sub_8032A38
+
+ thumb_func_start sub_8032AA8
+sub_8032AA8: @ 8032AA8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsls r2, r4, 2
+ ldr r0, _08032AD4 @ =0x02017800
+ adds r2, r0
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r2, 0x2]
+ ldr r0, _08032AD8 @ =gUnknown_02024E84
+ adds r0, r4, r0
+ strb r3, [r0]
+ cmp r1, 0
+ bne _08032ACC
+ adds r0, r4, 0
+ bl sub_80324E0
+_08032ACC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032AD4: .4byte 0x02017800
+_08032AD8: .4byte gUnknown_02024E84
+ thumb_func_end sub_8032AA8
+
+ thumb_func_start nullsub_45
+nullsub_45: @ 8032ADC
+ bx lr
+ thumb_func_end nullsub_45
+
+ thumb_func_start sub_8032AE0
+sub_8032AE0: @ 8032AE0
+ ldr r1, _08032AF0 @ =gUnknown_03004330
+ ldr r0, _08032AF4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08032AF8 @ =sub_8032AFC
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08032AF0: .4byte gUnknown_03004330
+_08032AF4: .4byte gUnknown_02024A60
+_08032AF8: .4byte sub_8032AFC
+ thumb_func_end sub_8032AE0
+
+ thumb_func_start sub_8032AFC
+sub_8032AFC: @ 8032AFC
+ push {lr}
+ ldr r2, _08032B30 @ =gUnknown_02024A64
+ ldr r1, _08032B34 @ =gBitTable
+ ldr r0, _08032B38 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08032B48
+ ldr r0, _08032B3C @ =gUnknown_02023A60
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _08032B44
+ ldr r0, _08032B40 @ =gUnknown_081FAF5C
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _08032B48
+ .align 2, 0
+_08032B30: .4byte gUnknown_02024A64
+_08032B34: .4byte gBitTable
+_08032B38: .4byte gUnknown_02024A60
+_08032B3C: .4byte gUnknown_02023A60
+_08032B40: .4byte gUnknown_081FAF5C
+_08032B44:
+ bl sub_80334EC
+_08032B48:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8032AFC
+
+ thumb_func_start sub_8032B4C
+sub_8032B4C: @ 8032B4C
+ push {lr}
+ ldr r2, _08032B74 @ =gSprites
+ ldr r1, _08032B78 @ =gUnknown_02024BE0
+ ldr r0, _08032B7C @ =gUnknown_02024A60
+ 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, _08032B80 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08032B70
+ bl sub_80334EC
+_08032B70:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032B74: .4byte gSprites
+_08032B78: .4byte gUnknown_02024BE0
+_08032B7C: .4byte gUnknown_02024A60
+_08032B80: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8032B4C
+
+ thumb_func_start sub_8032B84
+sub_8032B84: @ 8032B84
+ push {lr}
+ ldr r2, _08032BAC @ =gSprites
+ ldr r1, _08032BB0 @ =gUnknown_02024BE0
+ ldr r0, _08032BB4 @ =gUnknown_02024A60
+ 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, _08032BB8 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08032BA8
+ bl sub_80334EC
+_08032BA8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032BAC: .4byte gSprites
+_08032BB0: .4byte gUnknown_02024BE0
+_08032BB4: .4byte gUnknown_02024A60
+_08032BB8: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8032B84
+
+ thumb_func_start sub_8032BBC
+sub_8032BBC: @ 8032BBC
+ push {r4-r6,lr}
+ ldr r4, _08032C34 @ =gSprites
+ ldr r6, _08032C38 @ =gUnknown_02024BE0
+ ldr r5, _08032C3C @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, _08032C40 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08032C2C
+ adds r0, r2, r4
+ ldrh r0, [r0, 0x6]
+ bl sub_8031B74
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x38]
+ ldr r2, _08032C44 @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08032C48 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ bl sub_80334EC
+_08032C2C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032C34: .4byte gSprites
+_08032C38: .4byte gUnknown_02024BE0
+_08032C3C: .4byte gUnknown_02024A60
+_08032C40: .4byte SpriteCallbackDummy
+_08032C44: .4byte 0x000003ff
+_08032C48: .4byte 0xfffffc00
+ thumb_func_end sub_8032BBC
+
+ thumb_func_start sub_8032C4C
+sub_8032C4C: @ 8032C4C
+ push {lr}
+ ldr r3, _08032C80 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _08032C84 @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08032C7C
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl sub_80334EC
+_08032C7C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032C80: .4byte gUnknown_02024A60
+_08032C84: .4byte 0x02017810
+ thumb_func_end sub_8032C4C
+
+ thumb_func_start sub_8032C88
+sub_8032C88: @ 8032C88
+ push {r4-r7,lr}
+ movs r6, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032CAC
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032CE0
+ ldr r0, _08032CCC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08032CE0
+_08032CAC:
+ ldr r2, _08032CD0 @ =gSprites
+ ldr r1, _08032CD4 @ =gUnknown_03004340
+ ldr r0, _08032CD8 @ =gUnknown_02024A60
+ 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, _08032CDC @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08032D16
+ b _08032D14
+ .align 2, 0
+_08032CCC: .4byte gUnknown_020239F8
+_08032CD0: .4byte gSprites
+_08032CD4: .4byte gUnknown_03004340
+_08032CD8: .4byte gUnknown_02024A60
+_08032CDC: .4byte SpriteCallbackDummy
+_08032CE0:
+ ldr r2, _08032DC4 @ =gSprites
+ ldr r5, _08032DC8 @ =gUnknown_03004340
+ ldr r0, _08032DCC @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, _08032DD0 @ =SpriteCallbackDummy
+ cmp r4, r0
+ bne _08032D16
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _08032D16
+_08032D14:
+ movs r6, 0x1
+_08032D16:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032D22
+ movs r6, 0
+_08032D22:
+ cmp r6, 0
+ beq _08032E0E
+ ldr r7, _08032DCC @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r5, _08032DD4 @ =0x02017810
+ adds r4, r0, r5
+ ldrb r1, [r4, 0x1]
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08032E0E
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08032E0E
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ 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, _08032DD8 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, _08032DDC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08032DE4
+ ldr r0, _08032DE0 @ =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _08032DF0
+ .align 2, 0
+_08032DC4: .4byte gSprites
+_08032DC8: .4byte gUnknown_03004340
+_08032DCC: .4byte gUnknown_02024A60
+_08032DD0: .4byte SpriteCallbackDummy
+_08032DD4: .4byte 0x02017810
+_08032DD8: .4byte 0x000027f9
+_08032DDC: .4byte gUnknown_020239F8
+_08032DE0: .4byte gMPlay_BGM
+_08032DE4:
+ ldr r0, _08032E14 @ =gMPlay_BGM
+ ldr r1, _08032E18 @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08032DF0:
+ ldr r2, _08032E1C @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08032E20 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _08032E24 @ =gUnknown_03004330
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08032E28 @ =sub_8032C4C
+ str r1, [r0]
+_08032E0E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032E14: .4byte gMPlay_BGM
+_08032E18: .4byte 0x0000ffff
+_08032E1C: .4byte gUnknown_02024A60
+_08032E20: .4byte 0x02017810
+_08032E24: .4byte gUnknown_03004330
+_08032E28: .4byte sub_8032C4C
+ thumb_func_end sub_8032C88
+
+ thumb_func_start sub_8032E2C
+sub_8032E2C: @ 8032E2C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08032FEC @ =gUnknown_02024A60
+ mov r9, r0
+ ldrb r2, [r0]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r4, _08032FF0 @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r5, 0x88
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032E64
+ ldr r0, _08032FF4 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08032FF8 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08032E64:
+ mov r1, r9
+ ldrb r0, [r1]
+ movs r7, 0x2
+ adds r2, r7, 0
+ eors r2, r0
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08032E94
+ ldr r0, _08032FF4 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08032FF8 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08032E94:
+ mov r0, r9
+ ldrb r2, [r0]
+ 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
+ beq _08032EAE
+ b _08032FE0
+_08032EAE:
+ adds r1, r7, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08032EC6
+ b _08032FE0
+_08032EC6:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08032F58
+ ldr r0, _08032FFC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08032F58
+ ldr r1, _08033000 @ =gUnknown_0300434C
+ mov r2, r9
+ ldrb r0, [r2]
+ eors r0, r7
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08033004 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r4, _08033008 @ =gUnknown_03004340
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r1, r7, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _08032FF4 @ =gUnknown_02024A6A
+ mov r8, r2
+ lsls r1, 1
+ add r1, r8
+ ldrh r1, [r1]
+ movs r6, 0x64
+ muls r1, r6
+ ldr r5, _08032FF8 @ =gEnemyParty
+ adds r1, r5
+ movs r2, 0
+ bl sub_8045A5C
+ mov r1, r9
+ ldrb r0, [r1]
+ eors r0, r7
+ bl sub_804777C
+ mov r2, r9
+ ldrb r0, [r2]
+ eors r0, r7
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r4, r7, 0
+ eors r4, r0
+ lsls r0, r4, 1
+ add r0, r8
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+_08032F58:
+ ldr r1, _08033000 @ =gUnknown_0300434C
+ ldr r4, _08032FEC @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08033004 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _08033008 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _08032FF4 @ =gUnknown_02024A6A
+ mov r9, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r1, [r1]
+ movs r2, 0x64
+ mov r8, r2
+ mov r2, r8
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r6, _08032FF8 @ =gEnemyParty
+ adds r1, r6
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r5, [r4]
+ lsls r0, r5, 1
+ add r0, r9
+ ldrh r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_8032984
+ ldr r2, _0803300C @ =0x02017840
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08033010 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08033014 @ =sub_8032C88
+ str r1, [r0]
+_08032FE0:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08032FEC: .4byte gUnknown_02024A60
+_08032FF0: .4byte 0x02017810
+_08032FF4: .4byte gUnknown_02024A6A
+_08032FF8: .4byte gEnemyParty
+_08032FFC: .4byte gUnknown_020239F8
+_08033000: .4byte gUnknown_0300434C
+_08033004: .4byte gSprites
+_08033008: .4byte gUnknown_03004340
+_0803300C: .4byte 0x02017840
+_08033010: .4byte gUnknown_03004330
+_08033014: .4byte sub_8032C88
+ thumb_func_end sub_8032E2C
+
+ thumb_func_start sub_8033018
+sub_8033018: @ 8033018
+ push {r4-r7,lr}
+ ldr r2, _08033070 @ =gSprites
+ ldr r0, _08033074 @ =gUnknown_02024BE0
+ ldr r7, _08033078 @ =gUnknown_02024A60
+ ldrb r3, [r7]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r2, r0, 31
+ cmp r2, 0x1
+ bne _080330BC
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _080330BC
+ lsls r4, r3, 1
+ adds r0, r4, r3
+ lsls r0, 2
+ ldr r6, _0803307C @ =0x02017810
+ adds r1, r0, r6
+ ldrb r5, [r1]
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ bne _08033088
+ ldr r0, _08033080 @ =gUnknown_02024A6A
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08033084 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_8141828
+ b _080330BC
+ .align 2, 0
+_08033070: .4byte gSprites
+_08033074: .4byte gUnknown_02024BE0
+_08033078: .4byte gUnknown_02024A60
+_0803307C: .4byte 0x02017810
+_08033080: .4byte gUnknown_02024A6A
+_08033084: .4byte gEnemyParty
+_08033088:
+ ldrb r0, [r1, 0x1]
+ ands r2, r0
+ cmp r2, 0
+ beq _080330BC
+ movs r0, 0x7F
+ ands r0, r5
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _080330C4 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ bl sub_80334EC
+_080330BC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080330C4: .4byte 0x000027f9
+ thumb_func_end sub_8033018
+
+ thumb_func_start sub_80330C8
+sub_80330C8: @ 80330C8
+ push {r4-r6,lr}
+ ldr r6, _08033108 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ ldr r5, _0803310C @ =gUnknown_03004340
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08033110
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _08033114
+ .align 2, 0
+_08033108: .4byte gUnknown_02024A60
+_0803310C: .4byte gUnknown_03004340
+_08033110:
+ bl sub_80334EC
+_08033114:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80330C8
+
+ thumb_func_start sub_803311C
+sub_803311C: @ 803311C
+ push {lr}
+ ldr r2, _08033150 @ =gSprites
+ ldr r0, _08033154 @ =gUnknown_02024BE0
+ ldr r1, _08033158 @ =gUnknown_02024A60
+ ldrb r3, [r1]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ bne _0803314A
+ ldr r0, _0803315C @ =gUnknown_03004340
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl sub_80334EC
+_0803314A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08033150: .4byte gSprites
+_08033154: .4byte gUnknown_02024BE0
+_08033158: .4byte gUnknown_02024A60
+_0803315C: .4byte gUnknown_03004340
+ thumb_func_end sub_803311C
+
+ thumb_func_start sub_8033160
+sub_8033160: @ 8033160
+ push {r4-r6,lr}
+ ldr r6, _080331BC @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080331C0 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080331B6
+ ldr r5, _080331C4 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _080331C8 @ =gSprites
+ 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
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _080331CC @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl sub_80334EC
+_080331B6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080331BC: .4byte gUnknown_02024A60
+_080331C0: .4byte 0x02017810
+_080331C4: .4byte gUnknown_02024BE0
+_080331C8: .4byte gSprites
+_080331CC: .4byte gUnknown_03004340
+ thumb_func_end sub_8033160
+
+ thumb_func_start sub_80331D0
+sub_80331D0: @ 80331D0
+ push {lr}
+ ldr r0, _080331E4 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _080331DE
+ bl sub_80334EC
+_080331DE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080331E4: .4byte gUnknown_03004210
+ thumb_func_end sub_80331D0
+
+ thumb_func_start bx_blink_t7
+bx_blink_t7: @ 80331E8
+ push {r4,lr}
+ ldr r1, _08033224 @ =gUnknown_02024BE0
+ ldr r0, _08033228 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _0803322C @ =gSprites
+ 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 _08033234
+ 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, _08033230 @ =gUnknown_02024E6D
+ strb r3, [r0]
+ bl sub_80334EC
+ b _0803325E
+ .align 2, 0
+_08033224: .4byte gUnknown_02024BE0
+_08033228: .4byte gUnknown_02024A60
+_0803322C: .4byte gSprites
+_08033230: .4byte gUnknown_02024E6D
+_08033234:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08033258
+ 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]
+_08033258:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_0803325E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t7
+
+ thumb_func_start sub_8033264
+sub_8033264: @ 8033264
+ push {r4,lr}
+ ldr r2, _080332B4 @ =gSprites
+ ldr r0, _080332B8 @ =gUnknown_03004340
+ ldr r4, _080332BC @ =gUnknown_02024A60
+ ldrb r3, [r4]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _080332C0 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _080332AC
+ lsls r0, r3, 2
+ ldr r1, _080332C4 @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _080332A0
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_080332A0:
+ ldr r0, _080332C8 @ =gUnknown_03004330
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _080332CC @ =sub_80332D0
+ str r0, [r1]
+_080332AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080332B4: .4byte gSprites
+_080332B8: .4byte gUnknown_03004340
+_080332BC: .4byte gUnknown_02024A60
+_080332C0: .4byte SpriteCallbackDummy
+_080332C4: .4byte 0x02017800
+_080332C8: .4byte gUnknown_03004330
+_080332CC: .4byte sub_80332D0
+ thumb_func_end sub_8033264
+
+ thumb_func_start sub_80332D0
+sub_80332D0: @ 80332D0
+ push {lr}
+ ldr r0, _080332FC @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08033300 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080332F6
+ ldr r0, _08033304 @ =c3_0802FDF4
+ movs r1, 0xA
+ bl CreateTask
+ bl sub_80334EC
+_080332F6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080332FC: .4byte gUnknown_02024A60
+_08033300: .4byte 0x02017810
+_08033304: .4byte c3_0802FDF4
+ thumb_func_end sub_80332D0
+
+ thumb_func_start sub_8033308
+sub_8033308: @ 8033308
+ push {r4,r5,lr}
+ ldr r5, _080333AC @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _080333B0 @ =0x02017810
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080333A4
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _080333B4 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r1, _080333B8 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080333BC @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r4, _080333C0 @ =gUnknown_03004340
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _080333C4 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _080333C8 @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ bl sub_804777C
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ bl sub_8031F88
+ ldr r1, _080333CC @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080333D0 @ =sub_8033264
+ str r1, [r0]
+_080333A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080333AC: .4byte gUnknown_02024A60
+_080333B0: .4byte 0x02017810
+_080333B4: .4byte 0x000027f9
+_080333B8: .4byte gUnknown_02024BE0
+_080333BC: .4byte gSprites
+_080333C0: .4byte gUnknown_03004340
+_080333C4: .4byte gUnknown_02024A6A
+_080333C8: .4byte gEnemyParty
+_080333CC: .4byte gUnknown_03004330
+_080333D0: .4byte sub_8033264
+ thumb_func_end sub_8033308
+
+ thumb_func_start sub_80333D4
+sub_80333D4: @ 80333D4
+ push {r4-r6,lr}
+ ldr r5, _08033470 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _08033474 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _08033402
+ ldr r0, _08033478 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0803347C @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08033402:
+ ldr r4, _08033480 @ =gSprites
+ ldr r0, _08033484 @ =gUnknown_0300434C
+ ldrb r2, [r5]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _08033488 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08033468
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08033468
+ adds r0, r3, r4
+ bl DestroySprite
+ ldrb r4, [r5]
+ ldr r1, _08033478 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0803347C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _0803348C @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08033490 @ =sub_8033308
+ str r1, [r0]
+_08033468:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08033470: .4byte gUnknown_02024A60
+_08033474: .4byte 0x02017810
+_08033478: .4byte gUnknown_02024A6A
+_0803347C: .4byte gEnemyParty
+_08033480: .4byte gSprites
+_08033484: .4byte gUnknown_0300434C
+_08033488: .4byte SpriteCallbackDummy
+_0803348C: .4byte gUnknown_03004330
+_08033490: .4byte sub_8033308
+ thumb_func_end sub_80333D4
+
+ thumb_func_start sub_8033494
+sub_8033494: @ 8033494
+ push {lr}
+ ldr r0, _080334B8 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080334BC @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _080334B2
+ bl sub_80334EC
+_080334B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080334B8: .4byte gUnknown_02024A60
+_080334BC: .4byte 0x02017810
+ thumb_func_end sub_8033494
+
+ thumb_func_start sub_80334C0
+sub_80334C0: @ 80334C0
+ push {lr}
+ ldr r0, _080334E4 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _080334E8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _080334DE
+ bl sub_80334EC
+_080334DE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080334E4: .4byte gUnknown_02024A60
+_080334E8: .4byte 0x02017810
+ thumb_func_end sub_80334C0
+
+ thumb_func_start sub_80334EC
+sub_80334EC: @ 80334EC
+ ldr r1, _08033510 @ =gUnknown_03004330
+ ldr r2, _08033514 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08033518 @ =sub_8032AFC
+ str r1, [r0]
+ ldr r3, _0803351C @ =gUnknown_02024A64
+ ldr r1, _08033520 @ =gBitTable
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r3]
+ bics r0, r1
+ str r0, [r3]
+ bx lr
+ .align 2, 0
+_08033510: .4byte gUnknown_03004330
+_08033514: .4byte gUnknown_02024A60
+_08033518: .4byte sub_8032AFC
+_0803351C: .4byte gUnknown_02024A64
+_08033520: .4byte gBitTable
+ thumb_func_end sub_80334EC
+
+ thumb_func_start dp01t_00_7_getattr
+dp01t_00_7_getattr: @ 8033524
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _08033550 @ =gUnknown_02023A60
+ ldr r0, _08033554 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0803355C
+ ldr r0, _08033558 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl sub_8033598
+ adds r6, r0, 0
+ b _0803357E
+ .align 2, 0
+_08033550: .4byte gUnknown_02023A60
+_08033554: .4byte gUnknown_02024A60
+_08033558: .4byte gUnknown_02024A6A
+_0803355C:
+ ldrb r4, [r1]
+ movs r5, 0
+_08033560:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08033576
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl sub_8033598
+ adds r6, r0
+_08033576:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08033560
+_0803357E:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl sub_80334EC
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_7_getattr
+
+ thumb_func_start sub_8033598
+sub_8033598: @ 8033598
+ 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, _080335CC @ =gUnknown_02023A60
+ ldr r3, _080335D0 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _080335C2
+ bl _08033D2E
+_080335C2:
+ lsls r0, 2
+ ldr r1, _080335D4 @ =_080335D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080335CC: .4byte gUnknown_02023A60
+_080335D0: .4byte gUnknown_02024A60
+_080335D4: .4byte _080335D8
+ .align 2, 0
+_080335D8:
+ .4byte _080336C8
+ .4byte _080338EC
+ .4byte _080338FC
+ .4byte _0803390C
+ .4byte _08033974
+ .4byte _08033974
+ .4byte _08033974
+ .4byte _08033974
+ .4byte _08033990
+ .4byte _080339CC
+ .4byte _080339CC
+ .4byte _080339CC
+ .4byte _080339CC
+ .4byte _08033D2E
+ .4byte _08033D2E
+ .4byte _08033D2E
+ .4byte _08033D2E
+ .4byte _080339E8
+ .4byte _080339F8
+ .4byte _08033A28
+ .4byte _08033A38
+ .4byte _08033A48
+ .4byte _08033A58
+ .4byte _08033A68
+ .4byte _08033A78
+ .4byte _08033A88
+ .4byte _08033A98
+ .4byte _08033AA8
+ .4byte _08033AB8
+ .4byte _08033AC8
+ .4byte _08033AD8
+ .4byte _08033AE8
+ .4byte _08033B38
+ .4byte _08033B48
+ .4byte _08033B58
+ .4byte _08033B68
+ .4byte _08033B78
+ .4byte _08033B88
+ .4byte _08033B98
+ .4byte _08033BA8
+ .4byte _08033BB8
+ .4byte _08033BEC
+ .4byte _08033BFC
+ .4byte _08033C0C
+ .4byte _08033C1C
+ .4byte _08033C2C
+ .4byte _08033C3C
+ .4byte _08033C4C
+ .4byte _08033C5C
+ .4byte _08033C7C
+ .4byte _08033C8C
+ .4byte _08033C9C
+ .4byte _08033CAC
+ .4byte _08033CBC
+ .4byte _08033CCC
+ .4byte _08033CDC
+ .4byte _08033CEC
+ .4byte _08033CFC
+ .4byte _08033D0C
+ .4byte _08033D1C
+_080336C8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080338DC @ =gEnemyParty
+ 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
+_08033714:
+ 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 _08033714
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080338DC @ =gEnemyParty
+ 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, _080338E0 @ =0xfffffc1f
+ 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, _080338E4 @ =0xfff07fff
+ 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, _080338E8 @ =0xfffffe0f
+ 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
+_080338CC:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _080338CC
+ b _08033D2E
+ .align 2, 0
+_080338DC: .4byte gEnemyParty
+_080338E0: .4byte 0xfffffc1f
+_080338E4: .4byte 0xfff07fff
+_080338E8: .4byte 0xfffffe0f
+_080338EC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080338F8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ b _08033C66
+ .align 2, 0
+_080338F8: .4byte gEnemyParty
+_080338FC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033908 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ b _08033C66
+ .align 2, 0
+_08033908: .4byte gEnemyParty
+_0803390C:
+ 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, _08033970 @ =gEnemyParty
+ adds r4, r1, r0
+ mov r8, r9
+_08033922:
+ 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 _08033922
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033970 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_08033960:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _08033960
+ b _08033D2E
+ .align 2, 0
+_08033970: .4byte gEnemyParty
+_08033974:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803398C @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08033C66
+ .align 2, 0
+_0803398C: .4byte gEnemyParty
+_08033990:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _080339C8 @ =gEnemyParty
+ mov r8, r2
+_0803399C:
+ 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 _0803399C
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080339C8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _08033D2E
+ .align 2, 0
+_080339C8: .4byte gEnemyParty
+_080339CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080339E4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _08033D26
+ .align 2, 0
+_080339E4: .4byte gEnemyParty
+_080339E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080339F4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1
+ b _08033A02
+ .align 2, 0
+_080339F4: .4byte gEnemyParty
+_080339F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A24 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x19
+_08033A02:
+ 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 _08033D2E
+ .align 2, 0
+_08033A24: .4byte gEnemyParty
+_08033A28:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A34 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _08033D26
+ .align 2, 0
+_08033A34: .4byte gEnemyParty
+_08033A38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A44 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _08033D26
+ .align 2, 0
+_08033A44: .4byte gEnemyParty
+_08033A48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A54 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _08033D26
+ .align 2, 0
+_08033A54: .4byte gEnemyParty
+_08033A58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A64 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _08033D26
+ .align 2, 0
+_08033A64: .4byte gEnemyParty
+_08033A68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A74 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _08033D26
+ .align 2, 0
+_08033A74: .4byte gEnemyParty
+_08033A78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A84 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _08033D26
+ .align 2, 0
+_08033A84: .4byte gEnemyParty
+_08033A88:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033A94 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x20
+ b _08033D26
+ .align 2, 0
+_08033A94: .4byte gEnemyParty
+_08033A98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AA4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x22
+ b _08033D26
+ .align 2, 0
+_08033AA4: .4byte gEnemyParty
+_08033AA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AB4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x23
+ b _08033D26
+ .align 2, 0
+_08033AB4: .4byte gEnemyParty
+_08033AB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AC4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x24
+ b _08033D26
+ .align 2, 0
+_08033AC4: .4byte gEnemyParty
+_08033AC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AD4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x25
+ b _08033D26
+ .align 2, 0
+_08033AD4: .4byte gEnemyParty
+_08033AD8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033AE4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ b _08033D26
+ .align 2, 0
+_08033AE4: .4byte gEnemyParty
+_08033AE8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08033B34 @ =gEnemyParty
+ 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 _08033D2E
+ .align 2, 0
+_08033B34: .4byte gEnemyParty
+_08033B38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B44 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x27
+ b _08033D26
+ .align 2, 0
+_08033B44: .4byte gEnemyParty
+_08033B48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B54 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x28
+ b _08033D26
+ .align 2, 0
+_08033B54: .4byte gEnemyParty
+_08033B58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B64 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x29
+ b _08033D26
+ .align 2, 0
+_08033B64: .4byte gEnemyParty
+_08033B68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B74 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _08033D26
+ .align 2, 0
+_08033B74: .4byte gEnemyParty
+_08033B78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B84 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _08033D26
+ .align 2, 0
+_08033B84: .4byte gEnemyParty
+_08033B88:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033B94 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _08033D26
+ .align 2, 0
+_08033B94: .4byte gEnemyParty
+_08033B98:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BA4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0
+ b _08033BC2
+ .align 2, 0
+_08033BA4: .4byte gEnemyParty
+_08033BA8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BB4 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x9
+ b _08033C66
+ .align 2, 0
+_08033BB4: .4byte gEnemyParty
+_08033BB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BE8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x37
+_08033BC2:
+ 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 _08033D2E
+ .align 2, 0
+_08033BE8: .4byte gEnemyParty
+_08033BEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033BF8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x38
+ b _08033D26
+ .align 2, 0
+_08033BF8: .4byte gEnemyParty
+_08033BFC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C08 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ b _08033C66
+ .align 2, 0
+_08033C08: .4byte gEnemyParty
+_08033C0C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C18 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _08033C66
+ .align 2, 0
+_08033C18: .4byte gEnemyParty
+_08033C1C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C28 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _08033C66
+ .align 2, 0
+_08033C28: .4byte gEnemyParty
+_08033C2C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C38 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _08033C66
+ .align 2, 0
+_08033C38: .4byte gEnemyParty
+_08033C3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C48 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _08033C66
+ .align 2, 0
+_08033C48: .4byte gEnemyParty
+_08033C4C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C58 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _08033C66
+ .align 2, 0
+_08033C58: .4byte gEnemyParty
+_08033C5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C78 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3F
+_08033C66:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _08033D2E
+ .align 2, 0
+_08033C78: .4byte gEnemyParty
+_08033C7C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C88 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x16
+ b _08033D26
+ .align 2, 0
+_08033C88: .4byte gEnemyParty
+_08033C8C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033C98 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x17
+ b _08033D26
+ .align 2, 0
+_08033C98: .4byte gEnemyParty
+_08033C9C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CA8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x18
+ b _08033D26
+ .align 2, 0
+_08033CA8: .4byte gEnemyParty
+_08033CAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CB8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x21
+ b _08033D26
+ .align 2, 0
+_08033CB8: .4byte gEnemyParty
+_08033CBC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CC8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _08033D26
+ .align 2, 0
+_08033CC8: .4byte gEnemyParty
+_08033CCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CD8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x30
+ b _08033D26
+ .align 2, 0
+_08033CD8: .4byte gEnemyParty
+_08033CDC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CE8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x32
+ b _08033D26
+ .align 2, 0
+_08033CE8: .4byte gEnemyParty
+_08033CEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033CF8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x33
+ b _08033D26
+ .align 2, 0
+_08033CF8: .4byte gEnemyParty
+_08033CFC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033D08 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x34
+ b _08033D26
+ .align 2, 0
+_08033D08: .4byte gEnemyParty
+_08033D0C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033D18 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x35
+ b _08033D26
+ .align 2, 0
+_08033D18: .4byte gEnemyParty
+_08033D1C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08033D40 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x36
+_08033D26:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_08033D2E:
+ 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
+_08033D40: .4byte gEnemyParty
+ thumb_func_end sub_8033598
+
+ thumb_func_start dp01t_01_2_read_pokmon_data_slice
+dp01t_01_2_read_pokmon_data_slice: @ 8033D44
+ push {r4-r7,lr}
+ sub sp, 0x58
+ ldr r2, _08033DBC @ =gUnknown_02024A6A
+ ldr r5, _08033DC0 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ adds r4, r2, 0
+ muls r4, r0
+ ldr r3, _08033DC4 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, r3, 0x1
+ adds r0, r1, r0
+ ldrb r2, [r0]
+ ldr r0, _08033DC8 @ =gEnemyParty
+ adds r0, r2, r0
+ adds r6, r4, r0
+ mov r0, sp
+ adds r4, r0, r2
+ movs r2, 0
+ adds r0, r3, 0x2
+ adds r1, r0
+ adds r7, r5, 0
+ mov r12, r3
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcs _08033D9A
+ adds r3, r0, 0
+_08033D80:
+ adds r1, r4, r2
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcc _08033D80
+_08033D9A:
+ ldrb r0, [r7]
+ lsls r0, 9
+ mov r1, r12
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl sub_80334EC
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08033DBC: .4byte gUnknown_02024A6A
+_08033DC0: .4byte gUnknown_02024A60
+_08033DC4: .4byte gUnknown_02023A60
+_08033DC8: .4byte gEnemyParty
+ thumb_func_end dp01t_01_2_read_pokmon_data_slice
+
+ thumb_func_start dp01t_02_7_setattr
+dp01t_02_7_setattr: @ 8033DCC
+ push {r4,r5,lr}
+ ldr r1, _08033DF0 @ =gUnknown_02023A60
+ ldr r0, _08033DF4 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08033DFC
+ ldr r0, _08033DF8 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8033E24
+ b _08033E1A
+ .align 2, 0
+_08033DF0: .4byte gUnknown_02023A60
+_08033DF4: .4byte gUnknown_02024A60
+_08033DF8: .4byte gUnknown_02024A6A
+_08033DFC:
+ ldrb r4, [r1]
+ movs r5, 0
+_08033E00:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08033E0E
+ adds r0, r5, 0
+ bl sub_8033E24
+_08033E0E:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08033E00
+_08033E1A:
+ bl sub_80334EC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_02_7_setattr
+
+ thumb_func_start sub_8033E24
+sub_8033E24: @ 8033E24
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r3, _08033E5C @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ ldr r2, _08033E60 @ =gUnknown_02023A63
+ adds r4, r0, r2
+ adds r7, r4, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0x3B
+ bls _08033E52
+ bl _08034730
+_08033E52:
+ lsls r0, 2
+ ldr r1, _08033E64 @ =_08033E68
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08033E5C: .4byte gUnknown_02024A60
+_08033E60: .4byte gUnknown_02023A63
+_08033E64: .4byte _08033E68
+ .align 2, 0
+_08033E68:
+ .4byte _08033F58
+ .4byte _080340F0
+ .4byte _0803410C
+ .4byte _08034128
+ .4byte _0803417C
+ .4byte _0803417C
+ .4byte _0803417C
+ .4byte _0803417C
+ .4byte _0803419C
+ .4byte _08034204
+ .4byte _08034204
+ .4byte _08034204
+ .4byte _08034204
+ .4byte _08034730
+ .4byte _08034730
+ .4byte _08034730
+ .4byte _08034730
+ .4byte _0803422C
+ .4byte _08034248
+ .4byte _08034264
+ .4byte _08034280
+ .4byte _0803429C
+ .4byte _080342B8
+ .4byte _080342D4
+ .4byte _080342F0
+ .4byte _0803430C
+ .4byte _08034328
+ .4byte _08034344
+ .4byte _08034360
+ .4byte _0803437C
+ .4byte _08034398
+ .4byte _080343B4
+ .4byte _08034428
+ .4byte _08034444
+ .4byte _08034460
+ .4byte _0803447C
+ .4byte _08034498
+ .4byte _080344B4
+ .4byte _080344D0
+ .4byte _080344EC
+ .4byte _08034508
+ .4byte _08034524
+ .4byte _08034540
+ .4byte _0803455C
+ .4byte _08034578
+ .4byte _08034594
+ .4byte _080345B0
+ .4byte _080345CC
+ .4byte _080345E8
+ .4byte _08034604
+ .4byte _08034620
+ .4byte _0803463C
+ .4byte _08034658
+ .4byte _08034674
+ .4byte _08034690
+ .4byte _080346AC
+ .4byte _080346C8
+ .4byte _080346E4
+ .4byte _08034700
+ .4byte _0803471C
+_08033F58:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080340EC @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r7, 0
+ bl SetMonData
+ adds r2, r7, 0
+ adds r2, 0x2E
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0x3B
+ adds r0, r7
+ mov r10, r0
+ adds r0, r7, 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, r7, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r7, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r7, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r6, r7, 0
+ adds r6, 0x24
+ adds r4, r7, 0
+ adds r4, 0xC
+_08033FBE:
+ 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, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08033FBE
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _080340EC @ =gEnemyParty
+ 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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 _08034730
+ .align 2, 0
+_080340EC: .4byte gEnemyParty
+_080340F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034108 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xB
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034108: .4byte gEnemyParty
+_0803410C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034124 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xC
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034124: .4byte gEnemyParty
+_08034128:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r4
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08034178 @ =gEnemyParty
+ adds r7, r1, r0
+ adds r6, r4, 0
+ adds r6, 0x8
+_08034140:
+ 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 _08034140
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034178 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034178: .4byte gEnemyParty
+_0803417C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034194 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08034198 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0803421A
+ .align 2, 0
+_08034194: .4byte gEnemyParty
+_08034198: .4byte gUnknown_02023A60
+_0803419C:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08034200 @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x11
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034200: .4byte gEnemyParty
+_08034204:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034224 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08034228 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0803421A:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034224: .4byte gEnemyParty
+_08034228: .4byte gUnknown_02023A60
+_0803422C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034244 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034244: .4byte gEnemyParty
+_08034248:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034260 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x19
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034260: .4byte gEnemyParty
+_08034264:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803427C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1A
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803427C: .4byte gEnemyParty
+_08034280:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034298 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1B
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034298: .4byte gEnemyParty
+_0803429C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080342B4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1C
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080342B4: .4byte gEnemyParty
+_080342B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080342D0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1D
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080342D0: .4byte gEnemyParty
+_080342D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080342EC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1E
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080342EC: .4byte gEnemyParty
+_080342F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034308 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1F
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034308: .4byte gEnemyParty
+_0803430C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034324 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x20
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034324: .4byte gEnemyParty
+_08034328:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034340 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x22
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034340: .4byte gEnemyParty
+_08034344:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803435C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x23
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803435C: .4byte gEnemyParty
+_08034360:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034378 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x24
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034378: .4byte gEnemyParty
+_0803437C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034394 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x25
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034394: .4byte gEnemyParty
+_08034398:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080343B0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x26
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080343B0: .4byte gEnemyParty
+_080343B4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08034424 @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x27
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _080344C2
+ .align 2, 0
+_08034424: .4byte gEnemyParty
+_08034428:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034440 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x27
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034440: .4byte gEnemyParty
+_08034444:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803445C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x28
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803445C: .4byte gEnemyParty
+_08034460:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034478 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x29
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034478: .4byte gEnemyParty
+_0803447C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034494 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2A
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034494: .4byte gEnemyParty
+_08034498:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080344B0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2B
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080344B0: .4byte gEnemyParty
+_080344B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080344CC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+_080344C2:
+ movs r1, 0x2C
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080344CC: .4byte gEnemyParty
+_080344D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080344E8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080344E8: .4byte gEnemyParty
+_080344EC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034504 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x9
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034504: .4byte gEnemyParty
+_08034508:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034520 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x37
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034520: .4byte gEnemyParty
+_08034524:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803453C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x38
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803453C: .4byte gEnemyParty
+_08034540:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034558 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x39
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034558: .4byte gEnemyParty
+_0803455C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034574 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3A
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034574: .4byte gEnemyParty
+_08034578:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034590 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3B
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034590: .4byte gEnemyParty
+_08034594:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080345AC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3C
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080345AC: .4byte gEnemyParty
+_080345B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080345C8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3D
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080345C8: .4byte gEnemyParty
+_080345CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080345E4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3E
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080345E4: .4byte gEnemyParty
+_080345E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034600 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3F
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034600: .4byte gEnemyParty
+_08034604:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803461C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x16
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803461C: .4byte gEnemyParty
+_08034620:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034638 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x17
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034638: .4byte gEnemyParty
+_0803463C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034654 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x18
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034654: .4byte gEnemyParty
+_08034658:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034670 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x21
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034670: .4byte gEnemyParty
+_08034674:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803468C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2F
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_0803468C: .4byte gEnemyParty
+_08034690:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346A8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x30
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346A8: .4byte gEnemyParty
+_080346AC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346C4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x32
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346C4: .4byte gEnemyParty
+_080346C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346E0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x33
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346E0: .4byte gEnemyParty
+_080346E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080346FC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x34
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_080346FC: .4byte gEnemyParty
+_08034700:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034718 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x35
+ bl SetMonData
+ b _08034730
+ .align 2, 0
+_08034718: .4byte gEnemyParty
+_0803471C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08034740 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x36
+ bl SetMonData
+_08034730:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034740: .4byte gEnemyParty
+ thumb_func_end sub_8033E24
+
+ thumb_func_start sub_8034744
+sub_8034744: @ 8034744
+ push {r4-r7,lr}
+ ldr r1, _080347A8 @ =gUnknown_02024A6A
+ ldr r7, _080347AC @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _080347B0 @ =gUnknown_02023A60
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _080347B4 @ =gEnemyParty
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _0803479C
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_0803477A:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _0803477A
+_0803479C:
+ bl sub_80334EC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080347A8: .4byte gUnknown_02024A6A
+_080347AC: .4byte gUnknown_02024A60
+_080347B0: .4byte gUnknown_02023A60
+_080347B4: .4byte gEnemyParty
+ thumb_func_end sub_8034744
+
+ thumb_func_start sub_80347B8
+sub_80347B8: @ 80347B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r6, _080348E8 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r1, _080348EC @ =gUnknown_02024A6A
+ adds r0, r1
+ ldrh r0, [r0]
+ movs r7, 0x64
+ muls r0, r7
+ ldr r2, _080348F0 @ =gEnemyParty
+ mov r10, r2
+ add r0, r10
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ ldr r2, _080348EC @ =gUnknown_02024A6A
+ adds r0, r2
+ ldrh r0, [r0]
+ muls r0, r7
+ add r0, r10
+ bl sub_8031794
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080348F4 @ =gUnknown_02024E8C
+ mov r9, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r9
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _080348F8 @ =gUnknown_02024BE0
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, _080348FC @ =gSprites
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08034900 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r2, [r6]
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldrb r3, [r6]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r2, [r6]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08034904 @ =gUnknown_02024E84
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartSpriteAnim
+ ldrb r4, [r6]
+ lsls r0, r4, 1
+ ldr r2, _080348EC @ =gUnknown_02024A6A
+ adds r0, r2
+ ldrh r0, [r0]
+ muls r0, r7
+ add r0, r10
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _08034908 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803490C @ =sub_8033018
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080348E8: .4byte gUnknown_02024A60
+_080348EC: .4byte gUnknown_02024A6A
+_080348F0: .4byte gEnemyParty
+_080348F4: .4byte gUnknown_02024E8C
+_080348F8: .4byte gUnknown_02024BE0
+_080348FC: .4byte gSprites
+_08034900: .4byte 0x0000ff10
+_08034904: .4byte gUnknown_02024E84
+_08034908: .4byte gUnknown_03004330
+_0803490C: .4byte sub_8033018
+ thumb_func_end sub_80347B8
+
+ thumb_func_start sub_8034910
+sub_8034910: @ 8034910
+ push {r4,lr}
+ ldr r1, _08034948 @ =gUnknown_02024A6A
+ ldr r4, _0803494C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, _08034950 @ =gUnknown_02023A60
+ lsls r0, 9
+ adds r1, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ ldrb r0, [r4]
+ lsls r1, r0, 9
+ adds r3, 0x2
+ adds r1, r3
+ ldrb r1, [r1]
+ bl sub_803495C
+ ldr r1, _08034954 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034958 @ =sub_80333D4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034948: .4byte gUnknown_02024A6A
+_0803494C: .4byte gUnknown_02024A60
+_08034950: .4byte gUnknown_02023A60
+_08034954: .4byte gUnknown_03004330
+_08034958: .4byte sub_80333D4
+ thumb_func_end sub_8034910
+
+ thumb_func_start sub_803495C
+sub_803495C: @ 803495C
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _08034AB8 @ =gUnknown_02024A6A
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, _08034ABC @ =gUnknown_02023A60
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0x64
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r5, _08034AC0 @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _08034AC4 @ =sub_80312F0
+ bl object_new_hidden_with_callback
+ ldr r1, _08034AC8 @ =gUnknown_0300434C
+ mov r10, r1
+ add r10, r6
+ mov r1, r10
+ strb r0, [r1]
+ ldrh r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r5
+ adds r1, r6, 0
+ bl sub_8031794
+ 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, _08034ACC @ =gUnknown_02024E8C
+ mov r9, 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, r9
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _08034AD0 @ =gUnknown_02024BE0
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _08034AD4 @ =gSprites
+ 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]
+ mov r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ 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, _08034AD8 @ =gUnknown_02024E84
+ 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, _08034ADC @ =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFE
+ bl sub_8046400
+ mov r1, r10
+ 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
+_08034AB8: .4byte gUnknown_02024A6A
+_08034ABC: .4byte gUnknown_02023A60
+_08034AC0: .4byte gEnemyParty
+_08034AC4: .4byte sub_80312F0
+_08034AC8: .4byte gUnknown_0300434C
+_08034ACC: .4byte gUnknown_02024E8C
+_08034AD0: .4byte gUnknown_02024BE0
+_08034AD4: .4byte gSprites
+_08034AD8: .4byte gUnknown_02024E84
+_08034ADC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_803495C
+
+ thumb_func_start sub_8034AE0
+sub_8034AE0: @ 8034AE0
+ push {r4-r6,lr}
+ ldr r1, _08034B10 @ =gUnknown_02023A60
+ ldr r6, _08034B14 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _08034B24
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08034B18 @ =0x02017810
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _08034B1C @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034B20 @ =sub_8034B74
+ str r1, [r0]
+ b _08034B60
+ .align 2, 0
+_08034B10: .4byte gUnknown_02023A60
+_08034B14: .4byte gUnknown_02024A60
+_08034B18: .4byte 0x02017810
+_08034B1C: .4byte gUnknown_03004330
+_08034B20: .4byte sub_8034B74
+_08034B24:
+ ldr r5, _08034B68 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08034B6C @ =gSprites
+ 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
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _08034B70 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl sub_80334EC
+_08034B60:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034B68: .4byte gUnknown_02024BE0
+_08034B6C: .4byte gSprites
+_08034B70: .4byte gUnknown_03004340
+ thumb_func_end sub_8034AE0
+
+ thumb_func_start sub_8034B74
+sub_8034B74: @ 8034B74
+ push {r4,r5,lr}
+ ldr r5, _08034B90 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _08034B94 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _08034B98
+ cmp r0, 0x1
+ beq _08034BC4
+ b _08034BEC
+ .align 2, 0
+_08034B90: .4byte gUnknown_02024A60
+_08034B94: .4byte 0x02017810
+_08034B98:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08034BB4
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08034BB4:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08034BEC
+_08034BC4:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08034BEC
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x2
+ bl move_anim_start_t4
+ ldr r1, _08034BF4 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034BF8 @ =sub_8033160
+ str r1, [r0]
+_08034BEC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034BF4: .4byte gUnknown_03004330
+_08034BF8: .4byte sub_8033160
+ thumb_func_end sub_8034B74
+
+ thumb_func_start sub_8034BFC
+sub_8034BFC: @ 8034BFC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r3, _08034C18 @ =gTrainerBattleOpponent
+ ldrh r1, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _08034C1C
+ bl GetSecretBaseTrainerPicIndex
+ b _08034C42
+ .align 2, 0
+_08034C18: .4byte gTrainerBattleOpponent
+_08034C1C:
+ ldr r0, _08034C30 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08034C34
+ bl get_trainer_class_pic_index
+ b _08034C42
+ .align 2, 0
+_08034C30: .4byte gUnknown_020239F8
+_08034C34:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08034C48
+ bl sub_8135FBC
+_08034C42:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08034C56
+_08034C48:
+ ldr r2, _08034D88 @ =gTrainers
+ ldrh r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+_08034C56:
+ mov r9, r0
+ ldr r0, _08034D8C @ =gUnknown_02024A60
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r5, _08034D90 @ =gUnknown_02024E8C
+ ldr r1, _08034D94 @ =gTrainerFrontPicCoords
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 14
+ adds r4, r0
+ asrs r4, 16
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ movs r1, 0xB0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _08034D98 @ =gUnknown_02024BE0
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _08034D9C @ =gSprites
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08034DA0 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldr r0, _08034DA4 @ =gTrainerFrontPicPaletteTable
+ mov r1, r9
+ lsls r6, r1, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r4
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1, 0x38]
+ ldr r0, _08034DA8 @ =gTrainerFrontPicTable
+ adds r6, r0
+ ldrh r0, [r6, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08034DAC @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08034DB0 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r2, r9
+ strh r2, [r0, 0x6]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _08034DB4 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _08034DB8 @ =gUnknown_03004330
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034DBC @ =sub_8032B4C
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034D88: .4byte gTrainers
+_08034D8C: .4byte gUnknown_02024A60
+_08034D90: .4byte gUnknown_02024E8C
+_08034D94: .4byte gTrainerFrontPicCoords
+_08034D98: .4byte gUnknown_02024BE0
+_08034D9C: .4byte gSprites
+_08034DA0: .4byte 0x0000ff10
+_08034DA4: .4byte gTrainerFrontPicPaletteTable
+_08034DA8: .4byte gTrainerFrontPicTable
+_08034DAC: .4byte 0x000003ff
+_08034DB0: .4byte 0xfffffc00
+_08034DB4: .4byte sub_80313A0
+_08034DB8: .4byte gUnknown_03004330
+_08034DBC: .4byte sub_8032B4C
+ thumb_func_end sub_8034BFC
+
+ thumb_func_start sub_8034DC0
+sub_8034DC0: @ 8034DC0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r3, _08034DDC @ =gTrainerBattleOpponent
+ ldrh r1, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _08034DE0
+ bl GetSecretBaseTrainerPicIndex
+ b _08034E06
+ .align 2, 0
+_08034DDC: .4byte gTrainerBattleOpponent
+_08034DE0:
+ ldr r0, _08034DF4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08034DF8
+ bl get_trainer_class_pic_index
+ b _08034E06
+ .align 2, 0
+_08034DF4: .4byte gUnknown_020239F8
+_08034DF8:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _08034E0C
+ bl sub_8135FBC
+_08034E06:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08034E1A
+_08034E0C:
+ ldr r2, _08034F4C @ =gTrainers
+ ldrh r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x3]
+_08034E1A:
+ mov r9, r0
+ ldr r0, _08034F50 @ =gUnknown_02024A60
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _08034F54 @ =gUnknown_02024E8C
+ ldr r2, _08034F58 @ =gTrainerFrontPicCoords
+ mov r3, r9
+ lsls r1, r3, 2
+ adds r1, r2
+ ldrb r1, [r1]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 14
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0xB0
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r5, _08034F5C @ =gUnknown_02024BE0
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _08034F60 @ =gSprites
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x60
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x20]
+ adds r1, 0x20
+ strh r1, [r0, 0x20]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08034F64 @ =0x0000fffe
+ strh r1, [r0, 0x2E]
+ ldr r0, _08034F68 @ =gTrainerFrontPicPaletteTable
+ mov r3, r9
+ lsls r6, r3, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r4
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1, 0x38]
+ ldr r0, _08034F6C @ =gTrainerFrontPicTable
+ adds r6, r0
+ ldrh r0, [r6, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08034F70 @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08034F74 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ mov r3, r8
+ ldrb r0, [r3]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r9
+ strh r1, [r0, 0x6]
+ ldrb r0, [r3]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _08034F78 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _08034F7C @ =gUnknown_03004330
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034F80 @ =sub_8032B84
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034F4C: .4byte gTrainers
+_08034F50: .4byte gUnknown_02024A60
+_08034F54: .4byte gUnknown_02024E8C
+_08034F58: .4byte gTrainerFrontPicCoords
+_08034F5C: .4byte gUnknown_02024BE0
+_08034F60: .4byte gSprites
+_08034F64: .4byte 0x0000fffe
+_08034F68: .4byte gTrainerFrontPicPaletteTable
+_08034F6C: .4byte gTrainerFrontPicTable
+_08034F70: .4byte 0x000003ff
+_08034F74: .4byte 0xfffffc00
+_08034F78: .4byte sub_80313A0
+_08034F7C: .4byte gUnknown_03004330
+_08034F80: .4byte sub_8032B84
+ thumb_func_end sub_8034DC0
+
+ thumb_func_start sub_8034F84
+sub_8034F84: @ 8034F84
+ push {r4-r6,lr}
+ ldr r6, _08035014 @ =gUnknown_02024BE0
+ ldr r4, _08035018 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _0803501C @ =gSprites
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08035020 @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08035024 @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldr r1, _08035028 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803502C @ =sub_8032BBC
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035014: .4byte gUnknown_02024BE0
+_08035018: .4byte gUnknown_02024A60
+_0803501C: .4byte gSprites
+_08035020: .4byte sub_8078B34
+_08035024: .4byte SpriteCallbackDummy
+_08035028: .4byte gUnknown_03004330
+_0803502C: .4byte sub_8032BBC
+ thumb_func_end sub_8034F84
+
+ thumb_func_start sub_8035030
+sub_8035030: @ 8035030
+ push {r4,r5,lr}
+ ldr r5, _08035074 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _08035078 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _0803507C
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08035062
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08035062:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080350B8
+ .align 2, 0
+_08035074: .4byte gUnknown_02024A60
+_08035078: .4byte 0x02017810
+_0803507C:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080350B8
+ strb r0, [r3, 0x4]
+ movs r0, 0x10
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ ldr r2, _080350C0 @ =gSprites
+ ldr r1, _080350C4 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080350C8 @ =sub_8010384
+ str r1, [r0]
+ ldr r1, _080350CC @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080350D0 @ =sub_803311C
+ str r1, [r0]
+_080350B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080350C0: .4byte gSprites
+_080350C4: .4byte gUnknown_02024BE0
+_080350C8: .4byte sub_8010384
+_080350CC: .4byte gUnknown_03004330
+_080350D0: .4byte sub_803311C
+ thumb_func_end sub_8035030
+
+ thumb_func_start sub_80350D4
+sub_80350D4: @ 80350D4
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350D4
+
+ thumb_func_start sub_80350E0
+sub_80350E0: @ 80350E0
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350E0
+
+ thumb_func_start sub_80350EC
+sub_80350EC: @ 80350EC
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350EC
+
+ thumb_func_start sub_80350F8
+sub_80350F8: @ 80350F8
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350F8
+
+ thumb_func_start sub_8035104
+sub_8035104: @ 8035104
+ push {r4-r6,lr}
+ ldr r6, _080351E8 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035116
+ b _08035226
+_08035116:
+ ldr r0, _080351EC @ =gUnknown_02023A60
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _080351F0 @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _080351F4 @ =gUnknown_0202F7BC
+ 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, _080351F8 @ =gUnknown_0202F7B8
+ 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, _080351FC @ =gUnknown_0202F7BE
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08035200 @ =gUnknown_0202F7C0
+ 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, _08035204 @ =gUnknown_0202F7B4
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08035208 @ =gUnknown_02024E70
+ 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 _0803520C
+ bl sub_80334EC
+ b _08035226
+ .align 2, 0
+_080351E8: .4byte gUnknown_02024A60
+_080351EC: .4byte gUnknown_02023A60
+_080351F0: .4byte gUnknown_0202F7C4
+_080351F4: .4byte gUnknown_0202F7BC
+_080351F8: .4byte gUnknown_0202F7B8
+_080351FC: .4byte gUnknown_0202F7BE
+_08035200: .4byte gUnknown_0202F7C0
+_08035204: .4byte gUnknown_0202F7B4
+_08035208: .4byte gUnknown_02024E70
+_0803520C:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0803522C @ =0x02017810
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _08035230 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035234 @ =sub_8035238
+ str r1, [r0]
+_08035226:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803522C: .4byte 0x02017810
+_08035230: .4byte gUnknown_03004330
+_08035234: .4byte sub_8035238
+ thumb_func_end sub_8035104
+
+ thumb_func_start sub_8035238
+sub_8035238: @ 8035238
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _0803527C @ =gUnknown_02023A60
+ ldr r5, _08035280 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _08035284 @ =0x02017810
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _080352C6
+ cmp r2, 0x1
+ bgt _08035288
+ cmp r2, 0
+ beq _08035292
+ b _08035390
+ .align 2, 0
+_0803527C: .4byte gUnknown_02023A60
+_08035280: .4byte gUnknown_02024A60
+_08035284: .4byte 0x02017810
+_08035288:
+ cmp r2, 0x2
+ beq _080352EC
+ cmp r2, 0x3
+ beq _08035358
+ b _08035390
+_08035292:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _080352B6
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_080352B6:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08035390
+_080352C6:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08035390
+ 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 _08035390
+_080352EC:
+ ldr r0, _08035348 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0803534C @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08035390
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08035334
+ cmp r7, 0x1
+ bhi _08035334
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08035334:
+ ldr r0, _08035350 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08035354 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08035390
+ .align 2, 0
+_08035348: .4byte gUnknown_0202F7AC
+_0803534C: .4byte gUnknown_0202F7B1
+_08035350: .4byte gUnknown_02024A60
+_08035354: .4byte 0x02017810
+_08035358:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08035390
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl sub_80334EC
+_08035390:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035238
+
+ thumb_func_start sub_803539C
+sub_803539C: @ 803539C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _080353E0 @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _080353E4 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _080353E8 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _080353EC @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _080353F0 @ =gUnknown_03004210
+ ldr r1, _080353F4 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _080353F8 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080353FC @ =sub_80331D0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080353E0: .4byte gUnknown_030042A4
+_080353E4: .4byte gUnknown_030042A0
+_080353E8: .4byte gUnknown_02024A60
+_080353EC: .4byte gUnknown_02023A62
+_080353F0: .4byte gUnknown_03004210
+_080353F4: .4byte gUnknown_020238CC
+_080353F8: .4byte gUnknown_03004330
+_080353FC: .4byte sub_80331D0
+ thumb_func_end sub_803539C
+
+ thumb_func_start sub_8035400
+sub_8035400: @ 8035400
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035400
+
+ thumb_func_start sub_803540C
+sub_803540C: @ 803540C
+ push {lr}
+ bl sub_8036B0C
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803540C
+
+ thumb_func_start sub_803541C
+sub_803541C: @ 803541C
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803541C
+
+ thumb_func_start sub_8035428
+sub_8035428: @ 8035428
+ push {r4-r6,lr}
+ ldr r6, _0803545C @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r0, 9
+ ldr r1, _08035460 @ =gUnknown_02023A64
+ adds r5, r0, r1
+ ldr r0, _08035464 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x93
+ lsls r0, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _080354F8
+ bl sub_810715C
+ bl sub_81072A8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ beq _08035468
+ cmp r4, 0x5
+ bne _08035474
+ movs r0, 0x1
+ movs r1, 0x4
+ b _0803546C
+ .align 2, 0
+_0803545C: .4byte gUnknown_02024A60
+_08035460: .4byte gUnknown_02023A64
+_08035464: .4byte gUnknown_020239F8
+_08035468:
+ movs r0, 0x1
+ movs r1, 0x3
+_0803546C:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _080354E0
+_08035474:
+ ldr r3, _080354E8 @ =gBattleMoves
+ lsls r0, r4, 1
+ adds r2, r5, r0
+ ldrh r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x12
+ ands r0, r1
+ cmp r0, 0
+ beq _08035494
+ ldr r1, _080354EC @ =gUnknown_02024C08
+ ldrb r0, [r6]
+ strb r0, [r1]
+_08035494:
+ ldrh r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080354CE
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r5, _080354EC @ =gUnknown_02024C08
+ strb r0, [r5]
+ ldr r0, _080354F0 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _080354F4 @ =gBitTable
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080354CE
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ strb r0, [r5]
+_080354CE:
+ ldr r0, _080354EC @ =gUnknown_02024C08
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ movs r0, 0x1
+ movs r1, 0xA
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_080354E0:
+ bl sub_80334EC
+ b _0803558A
+ .align 2, 0
+_080354E8: .4byte gBattleMoves
+_080354EC: .4byte gUnknown_02024C08
+_080354F0: .4byte gUnknown_02024C0C
+_080354F4: .4byte gBitTable
+_080354F8:
+ movs r6, 0x3
+_080354FA:
+ bl Random
+ adds r4, r0, 0
+ ands r4, r6
+ lsls r0, r4, 1
+ adds r0, r5, r0
+ ldrh r2, [r0]
+ cmp r2, 0
+ beq _080354FA
+ ldr r1, _08035534 @ =gBattleMoves
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x6]
+ movs r0, 0x12
+ ands r0, r1
+ cmp r0, 0
+ beq _0803553C
+ ldr r0, _08035538 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ movs r0, 0x1
+ movs r1, 0xA
+ adds r2, r4, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _08035586
+ .align 2, 0
+_08035534: .4byte gBattleMoves
+_08035538: .4byte gUnknown_02024A60
+_0803553C:
+ ldr r0, _0803556C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08035570
+ bl Random
+ movs r1, 0x2
+ ands r1, r0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r1, 0
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 16
+ orrs r2, r4
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _08035586
+ .align 2, 0
+_0803556C: .4byte gUnknown_020239F8
+_08035570:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 16
+ orrs r2, r4
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+_08035586:
+ bl sub_80334EC
+_0803558A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035428
+
+ thumb_func_start sub_8035590
+sub_8035590: @ 8035590
+ push {lr}
+ ldr r1, _080355B4 @ =0x02000000
+ ldr r0, _080355B8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 1
+ ldr r2, _080355BC @ =0x000160d4
+ adds r0, r2
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080355B4: .4byte 0x02000000
+_080355B8: .4byte gUnknown_02024A60
+_080355BC: .4byte 0x000160d4
+ thumb_func_end sub_8035590
+
+ thumb_func_start sub_80355C0
+sub_80355C0: @ 80355C0
+ push {r4-r6,lr}
+ ldr r6, _08035604 @ =0x02000000
+ ldr r5, _08035608 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _0803560C @ =0x000160c8
+ adds r0, r1
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08035664
+ bl sub_8036CD4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bne _0803568A
+ ldr r0, _08035610 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08035614
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ b _08035628
+ .align 2, 0
+_08035604: .4byte 0x02000000
+_08035608: .4byte gUnknown_02024A60
+_0803560C: .4byte 0x000160c8
+_08035610: .4byte gUnknown_020239F8
+_08035614:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08035628:
+ movs r4, 0
+ b _0803562E
+_0803562C:
+ adds r4, 0x1
+_0803562E:
+ cmp r4, 0x5
+ bgt _0803568A
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0803565C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0803562C
+ ldr r1, _08035660 @ =gUnknown_02024A6A
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _0803562C
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _0803562C
+ b _0803568A
+ .align 2, 0
+_0803565C: .4byte gEnemyParty
+_08035660: .4byte gUnknown_02024A6A
+_08035664:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _080356B0 @ =0x000160c8
+ adds r0, r2
+ adds r0, r6
+ ldrb r4, [r0]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _080356B0 @ =0x000160c8
+ adds r0, r1
+ adds r0, r6
+ movs r1, 0x6
+ strb r1, [r0]
+_0803568A:
+ ldr r1, _080356B4 @ =0x02000000
+ ldr r0, _080356B8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ ldr r2, _080356BC @ =0x00016068
+ adds r0, r2
+ adds r0, r1
+ strb r4, [r0]
+ lsls r1, r4, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ movs r2, 0
+ bl dp01_build_cmdbuf_x22_a_three_bytes
+ bl sub_80334EC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080356B0: .4byte 0x000160c8
+_080356B4: .4byte 0x02000000
+_080356B8: .4byte gUnknown_02024A60
+_080356BC: .4byte 0x00016068
+ thumb_func_end sub_80355C0
+
+ thumb_func_start sub_80356C0
+sub_80356C0: @ 80356C0
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80356C0
+
+ thumb_func_start sub_80356CC
+sub_80356CC: @ 80356CC
+ 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, _08035744 @ =gUnknown_02023A60
+ ldr r0, _08035748 @ =gUnknown_02024A60
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x3
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r1, 8
+ adds r3, 0x2
+ adds r2, r3
+ ldrb r0, [r2]
+ orrs r0, r1
+ lsls r0, 16
+ asrs r7, r0, 16
+ ldr r0, _0803574C @ =0x00007fff
+ cmp r7, r0
+ beq _0803575C
+ ldr r6, _08035750 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08035754 @ =gEnemyParty
+ 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, _08035758 @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08035786
+ .align 2, 0
+_08035744: .4byte gUnknown_02023A60
+_08035748: .4byte gUnknown_02024A60
+_0803574C: .4byte 0x00007fff
+_08035750: .4byte gUnknown_02024A6A
+_08035754: .4byte gEnemyParty
+_08035758: .4byte gUnknown_03004340
+_0803575C:
+ ldr r1, _080357A4 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _080357A8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _080357AC @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08035786:
+ ldr r1, _080357B0 @ =gUnknown_03004330
+ ldr r0, _080357B4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080357B8 @ =sub_80330C8
+ 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
+_080357A4: .4byte gUnknown_02024A6A
+_080357A8: .4byte gEnemyParty
+_080357AC: .4byte gUnknown_03004340
+_080357B0: .4byte gUnknown_03004330
+_080357B4: .4byte gUnknown_02024A60
+_080357B8: .4byte sub_80330C8
+ thumb_func_end sub_80356CC
+
+ thumb_func_start sub_80357BC
+sub_80357BC: @ 80357BC
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80357BC
+
+ thumb_func_start sub_80357C8
+sub_80357C8: @ 80357C8
+ push {r4,lr}
+ ldr r4, _08035820 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035818
+ ldr r0, _08035824 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08035828 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0803582C @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08035830 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _08035834 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035838 @ =sub_8033494
+ str r1, [r0]
+_08035818:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035820: .4byte gUnknown_02024A60
+_08035824: .4byte gUnknown_03004340
+_08035828: .4byte gUnknown_02024A6A
+_0803582C: .4byte gEnemyParty
+_08035830: .4byte 0x02017810
+_08035834: .4byte gUnknown_03004330
+_08035838: .4byte sub_8033494
+ thumb_func_end sub_80357C8
+
+ thumb_func_start sub_803583C
+sub_803583C: @ 803583C
+ push {r4,r5,lr}
+ ldr r5, _08035894 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803588C
+ ldr r4, _08035898 @ =gUnknown_02023A60
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _0803589C @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080358A0 @ =sub_8033494
+ str r1, [r0]
+_0803588C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035894: .4byte gUnknown_02024A60
+_08035898: .4byte gUnknown_02023A60
+_0803589C: .4byte gUnknown_03004330
+_080358A0: .4byte sub_8033494
+ thumb_func_end sub_803583C
+
+ thumb_func_start sub_80358A4
+sub_80358A4: @ 80358A4
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358A4
+
+ thumb_func_start sub_80358B0
+sub_80358B0: @ 80358B0
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358B0
+
+ thumb_func_start sub_80358BC
+sub_80358BC: @ 80358BC
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358BC
+
+ thumb_func_start sub_80358C8
+sub_80358C8: @ 80358C8
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358C8
+
+ thumb_func_start sub_80358D4
+sub_80358D4: @ 80358D4
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358D4
+
+ thumb_func_start sub_80358E0
+sub_80358E0: @ 80358E0
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358E0
+
+ thumb_func_start sub_80358EC
+sub_80358EC: @ 80358EC
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358EC
+
+ thumb_func_start sub_80358F8
+sub_80358F8: @ 80358F8
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358F8
+
+ thumb_func_start sub_8035904
+sub_8035904: @ 8035904
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035904
+
+ thumb_func_start sub_8035910
+sub_8035910: @ 8035910
+ push {lr}
+ ldr r2, _08035928 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035928: .4byte gUnknown_020238C8
+ thumb_func_end sub_8035910
+
+ thumb_func_start sub_803592C
+sub_803592C: @ 803592C
+ push {lr}
+ ldr r3, _08035958 @ =gUnknown_020238C8
+ ldr r1, _0803595C @ =gUnknown_02023A60
+ ldr r0, _08035960 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035958: .4byte gUnknown_020238C8
+_0803595C: .4byte gUnknown_02023A60
+_08035960: .4byte gUnknown_02024A60
+ thumb_func_end sub_803592C
+
+ thumb_func_start sub_8035964
+sub_8035964: @ 8035964
+ push {lr}
+ ldr r2, _08035978 @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035978: .4byte gUnknown_020238C8
+ thumb_func_end sub_8035964
+
+ thumb_func_start sub_803597C
+sub_803597C: @ 803597C
+ push {lr}
+ ldr r3, _080359A0 @ =gUnknown_020238C8
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080359A0: .4byte gUnknown_020238C8
+ thumb_func_end sub_803597C
+
+ thumb_func_start dp01t_29_7_blink
+dp01t_29_7_blink: @ 80359A4
+ push {r4,lr}
+ ldr r3, _080359CC @ =gSprites
+ ldr r2, _080359D0 @ =gUnknown_02024BE0
+ ldr r4, _080359D4 @ =gUnknown_02024A60
+ 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 _080359D8
+ bl sub_80334EC
+ b _08035A02
+ .align 2, 0
+_080359CC: .4byte gSprites
+_080359D0: .4byte gUnknown_02024BE0
+_080359D4: .4byte gUnknown_02024A60
+_080359D8:
+ ldr r1, _08035A08 @ =gUnknown_02024E6D
+ 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, _08035A0C @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035A10 @ =bx_blink_t7
+ str r1, [r0]
+_08035A02:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A08: .4byte gUnknown_02024E6D
+_08035A0C: .4byte gUnknown_03004330
+_08035A10: .4byte bx_blink_t7
+ thumb_func_end dp01t_29_7_blink
+
+ thumb_func_start sub_8035A14
+sub_8035A14: @ 8035A14
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035A14
+
+ thumb_func_start sub_8035A20
+sub_8035A20: @ 8035A20
+ push {r4,lr}
+ ldr r4, _08035A5C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _08035A34
+ movs r3, 0xC0
+_08035A34:
+ ldr r2, _08035A60 @ =gUnknown_02023A60
+ 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 sub_80334EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A5C: .4byte gUnknown_02024A60
+_08035A60: .4byte gUnknown_02023A60
+ thumb_func_end sub_8035A20
+
+ thumb_func_start sub_8035A64
+sub_8035A64: @ 8035A64
+ push {lr}
+ ldr r2, _08035A8C @ =gUnknown_02023A60
+ ldr r0, _08035A90 @ =gUnknown_02024A60
+ 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 sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A8C: .4byte gUnknown_02023A60
+_08035A90: .4byte gUnknown_02024A60
+ thumb_func_end sub_8035A64
+
+ thumb_func_start sub_8035A94
+sub_8035A94: @ 8035A94
+ push {lr}
+ ldr r1, _08035AC4 @ =gUnknown_02024A6A
+ ldr r0, _08035AC8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08035ACC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ movs r2, 0x5
+ bl PlayCry3
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035AC4: .4byte gUnknown_02024A6A
+_08035AC8: .4byte gUnknown_02024A60
+_08035ACC: .4byte gEnemyParty
+ thumb_func_end sub_8035A94
+
+ thumb_func_start dp01t_2E_7_battle_intro
+dp01t_2E_7_battle_intro: @ 8035AD0
+ push {lr}
+ ldr r1, _08035AF8 @ =gUnknown_02023A60
+ ldr r0, _08035AFC @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _08035B00 @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035AF8: .4byte gUnknown_02023A60
+_08035AFC: .4byte gUnknown_02024A60
+_08035B00: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_7_battle_intro
+
+ thumb_func_start sub_8035B04
+sub_8035B04: @ 8035B04
+ push {r4-r6,lr}
+ ldr r5, _08035BE0 @ =gUnknown_02024BE0
+ ldr r6, _08035BE4 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08035BE8 @ =gSprites
+ adds r0, r4
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08035BEC @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08035BF0 @ =sub_8035C10
+ bl oamt_set_x3A_32
+ ldr r0, _08035BF4 @ =sub_8035C44
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08035BF8 @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r6]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r6]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _08035BFC @ =0x02017810
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08035BC2
+ ldr r0, _08035C00 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _08035C04 @ =sub_8044CA0
+ str r1, [r0]
+_08035BC2:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08035C08 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035C0C @ =nullsub_45
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035BE0: .4byte gUnknown_02024BE0
+_08035BE4: .4byte gUnknown_02024A60
+_08035BE8: .4byte gSprites
+_08035BEC: .4byte sub_8078B34
+_08035BF0: .4byte sub_8035C10
+_08035BF4: .4byte sub_8035C44
+_08035BF8: .4byte gTasks
+_08035BFC: .4byte 0x02017810
+_08035C00: .4byte gUnknown_02024E68
+_08035C04: .4byte sub_8044CA0
+_08035C08: .4byte gUnknown_03004330
+_08035C0C: .4byte nullsub_45
+ thumb_func_end sub_8035B04
+
+ thumb_func_start sub_8035C10
+sub_8035C10: @ 8035C10
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x6]
+ bl sub_8031B74
+ ldrh r0, [r4, 0x38]
+ ldr r1, _08035C3C @ =0x000003ff
+ ands r1, r0
+ ldrh r2, [r4, 0x4]
+ ldr r0, _08035C40 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035C3C: .4byte 0x000003ff
+_08035C40: .4byte 0xfffffc00
+ thumb_func_end sub_8035C10
+
+ thumb_func_start sub_8035C44
+sub_8035C44: @ 8035C44
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r7, _08035C9C @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ mov r9, r0
+ ldr r1, _08035CA0 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ strb r0, [r7]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035C7E
+ ldr r0, _08035CA4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08035CB0
+_08035C7E:
+ ldr r0, _08035CA8 @ =gUnknown_02023A60
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08035CAC @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_803495C
+ b _08035CF0
+ .align 2, 0
+_08035C9C: .4byte gUnknown_02024A60
+_08035CA0: .4byte gTasks
+_08035CA4: .4byte gUnknown_020239F8
+_08035CA8: .4byte gUnknown_02023A60
+_08035CAC: .4byte gUnknown_02024A6A
+_08035CB0:
+ ldr r4, _08035D14 @ =gUnknown_02023A60
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, _08035D18 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_803495C
+ ldrb r0, [r7]
+ movs r5, 0x2
+ eors r0, r5
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_803495C
+ ldrb r0, [r7]
+ eors r0, r5
+ strb r0, [r7]
+_08035CF0:
+ ldr r1, _08035D1C @ =gUnknown_03004330
+ ldr r2, _08035D20 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08035D24 @ =sub_8032E2C
+ str r1, [r0]
+ mov r0, r9
+ strb r0, [r2]
+ mov r0, r8
+ bl DestroyTask
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035D14: .4byte gUnknown_02023A60
+_08035D18: .4byte gUnknown_02024A6A
+_08035D1C: .4byte gUnknown_03004330
+_08035D20: .4byte gUnknown_02024A60
+_08035D24: .4byte sub_8032E2C
+ thumb_func_end sub_8035C44
+
+ thumb_func_start dp01t_30_7_0803D67C
+dp01t_30_7_0803D67C: @ 8035D28
+ push {r4-r6,lr}
+ ldr r1, _08035D50 @ =gUnknown_02023A60
+ ldr r0, _08035D54 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08035D58
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035D58
+ bl sub_80334EC
+ b _08035E12
+ .align 2, 0
+_08035D50: .4byte gUnknown_02023A60
+_08035D54: .4byte gUnknown_02024A60
+_08035D58:
+ ldr r3, _08035DA8 @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08035DAC @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _08035DB0 @ =gUnknown_02023A60
+ ldrb r2, [r3]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ cmp r0, 0
+ beq _08035DBC
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 26
+ lsrs r0, r1, 27
+ cmp r0, 0x1
+ bhi _08035DB4
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ b _08035E12
+ .align 2, 0
+_08035DA8: .4byte gUnknown_02024A60
+_08035DAC: .4byte 0x02017810
+_08035DB0: .4byte gUnknown_02023A60
+_08035DB4:
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+_08035DBC:
+ adds r5, r6, 0
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _08035E18 @ =gUnknown_02023A64
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _08035E1C @ =gUnknown_02024E68
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _08035E20 @ =0x02017810
+ adds r0, r3
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08035E06
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_08035E06:
+ ldr r0, _08035E24 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08035E28 @ =sub_8035E2C
+ str r0, [r1]
+_08035E12:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035E18: .4byte gUnknown_02023A64
+_08035E1C: .4byte gUnknown_02024E68
+_08035E20: .4byte 0x02017810
+_08035E24: .4byte gUnknown_03004330
+_08035E28: .4byte sub_8035E2C
+ thumb_func_end dp01t_30_7_0803D67C
+
+ thumb_func_start sub_8035E2C
+sub_8035E2C: @ 8035E2C
+ push {r4,lr}
+ ldr r4, _08035E64 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _08035E68 @ =0x02017810
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _08035E5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl sub_80334EC
+_08035E5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035E64: .4byte gUnknown_02024A60
+_08035E68: .4byte 0x02017810
+ thumb_func_end sub_8035E2C
+
+ thumb_func_start sub_8035E6C
+sub_8035E6C: @ 8035E6C
+ push {lr}
+ ldr r0, _08035EA4 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _08035EA8 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08035E9A
+ ldr r2, _08035EAC @ =gTasks
+ ldr r0, _08035EB0 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08035EB4 @ =sub_8044CA0
+ str r1, [r0]
+_08035E9A:
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035EA4: .4byte gUnknown_02024A60
+_08035EA8: .4byte 0x02017810
+_08035EAC: .4byte gTasks
+_08035EB0: .4byte gUnknown_02024E68
+_08035EB4: .4byte sub_8044CA0
+ thumb_func_end sub_8035E6C
+
+ thumb_func_start sub_8035EB8
+sub_8035EB8: @ 8035EB8
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035EB8
+
+ thumb_func_start sub_8035EC4
+sub_8035EC4: @ 8035EC4
+ push {r4,lr}
+ ldr r4, _08035F14 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035F0A
+ ldr r3, _08035F18 @ =gSprites
+ ldr r0, _08035F1C @ =gUnknown_02024BE0
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _08035F20 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_08035F0A:
+ bl sub_80334EC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035F14: .4byte gUnknown_02024A60
+_08035F18: .4byte gSprites
+_08035F1C: .4byte gUnknown_02024BE0
+_08035F20: .4byte gUnknown_02023A60
+ thumb_func_end sub_8035EC4
+
+ thumb_func_start dp01t_34_7_move_anim_start_t3
+dp01t_34_7_move_anim_start_t3: @ 8035F24
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _08035F68 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035F7C
+ ldr r5, _08035F6C @ =gUnknown_02023A60
+ 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 _08035F70
+ bl sub_80334EC
+ b _08035F7C
+ .align 2, 0
+_08035F68: .4byte gUnknown_02024A60
+_08035F6C: .4byte gUnknown_02023A60
+_08035F70:
+ ldr r0, _08035F84 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08035F88 @ =sub_80334C0
+ str r0, [r1]
+_08035F7C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035F84: .4byte gUnknown_03004330
+_08035F88: .4byte sub_80334C0
+ thumb_func_end dp01t_34_7_move_anim_start_t3
+
+ thumb_func_start sub_8035F8C
+sub_8035F8C: @ 8035F8C
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035F8C
+
+ thumb_func_start sub_8035F98
+sub_8035F98: @ 8035F98
+ push {lr}
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035F98
+
+ thumb_func_start sub_8035FA4
+sub_8035FA4: @ 8035FA4
+ push {lr}
+ ldr r0, _08035FD8 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _08035FCE
+ ldr r2, _08035FDC @ =gMain
+ ldr r0, _08035FE0 @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _08035FE4 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08035FCE:
+ bl sub_80334EC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035FD8: .4byte gUnknown_020239F8
+_08035FDC: .4byte gMain
+_08035FE0: .4byte 0x0000043d
+_08035FE4: .4byte gUnknown_030042D0
+ thumb_func_end sub_8035FA4
+
+ thumb_func_start nullsub_46
+nullsub_46: @ 8035FE8
+ bx lr
+ thumb_func_end nullsub_46
+
+ thumb_func_start ai_switch_perish_song
+ai_switch_perish_song: @ 8035FEC
+ push {lr}
+ ldr r1, _08036038 @ =gUnknown_02024C98
+ ldr r0, _0803603C @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0803604C
+ ldr r0, _08036040 @ =gUnknown_02024CA8
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0xF]
+ lsls r0, 28
+ cmp r0, 0
+ bne _0803604C
+ adds r0, r2, 0
+ bl battle_get_per_side_status
+ ldr r1, _08036044 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036048 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _0803604E
+ .align 2, 0
+_08036038: .4byte gUnknown_02024C98
+_0803603C: .4byte gUnknown_02024A60
+_08036040: .4byte gUnknown_02024CA8
+_08036044: .4byte 0x02000000
+_08036048: .4byte 0x000160c8
+_0803604C:
+ movs r0, 0
+_0803604E:
+ pop {r1}
+ bx r1
+ thumb_func_end ai_switch_perish_song
+
+ thumb_func_start sub_8036054
+sub_8036054: @ 8036054
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0803606C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080360A0
+ b _080361C8
+ .align 2, 0
+_0803606C: .4byte gUnknown_020239F8
+_08036070:
+ ldr r0, _08036094 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ ldr r1, _08036098 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _0803609C @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _080361CA
+ .align 2, 0
+_08036094: .4byte gUnknown_02024A60
+_08036098: .4byte 0x02000000
+_0803609C: .4byte 0x000160c8
+_080360A0:
+ ldr r4, _080361D8 @ =gBattleMons
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x58
+ muls r0, r1
+ adds r0, r4
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x19
+ beq _080360BC
+ b _080361C8
+_080360BC:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r6, 0
+ adds r7, r4, 0
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r4, r0, r7
+ movs r3, 0x20
+ adds r3, r4
+ mov r8, r3
+_080360D8:
+ lsls r1, r6, 1
+ ldr r0, _080361DC @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ muls r0, r5
+ adds r1, r0
+ adds r0, r7, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08036104
+ ldrh r1, [r4]
+ mov r3, r8
+ ldrb r2, [r3]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ bne _080361C8
+_08036104:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080360D8
+ movs r6, 0
+ ldr r0, _080361E0 @ =gEnemyParty
+ mov r9, r0
+_08036110:
+ movs r0, 0x64
+ adds r5, r6, 0
+ muls r5, r0
+ mov r2, r9
+ adds r4, r5, r2
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080361C2
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080361C2
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080361C2
+ ldr r1, _080361E4 @ =gUnknown_02024A6A
+ ldr r0, _080361DC @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080361C2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r4, 0
+ mov r8, r5
+ ldr r1, _080361D8 @ =gBattleMons
+ movs r0, 0x58
+ muls r0, r2
+ adds r5, r0, r1
+ adds r7, r5, 0
+ adds r7, 0x20
+_0803617C:
+ adds r1, r4, 0
+ adds r1, 0xD
+ mov r0, r8
+ add r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080361BC
+ ldrh r1, [r5]
+ ldrb r2, [r7]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _080361BC
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _080361BC
+ b _08036070
+_080361BC:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0803617C
+_080361C2:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08036110
+_080361C8:
+ movs r0, 0
+_080361CA:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080361D8: .4byte gBattleMons
+_080361DC: .4byte gUnknown_02024A60
+_080361E0: .4byte gEnemyParty
+_080361E4: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8036054
+
+ thumb_func_start sub_80361E8
+sub_80361E8: @ 80361E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0x1
+ bl ai_has_super_effective_move_on_field
+ lsls r0, 24
+ cmp r0, 0
+ beq _08036214
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ beq _08036214
+ b _08036400
+_08036214:
+ ldr r1, _0803627C @ =gUnknown_02024C3C
+ ldr r5, _08036280 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r0, r3, 1
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ cmp r1, 0
+ bne _08036226
+ b _08036400
+_08036226:
+ ldr r0, _08036284 @ =0x0000ffff
+ cmp r1, r0
+ bne _0803622E
+ b _08036400
+_0803622E:
+ ldr r2, _08036288 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _08036242
+ b _08036400
+_08036242:
+ ldr r0, _0803628C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080362AE
+ mov r8, r3
+ mov r0, r8
+ bl battle_get_per_side_status
+ movs r4, 0x2
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _08036290 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _08036294 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036298
+ ldrb r7, [r5]
+ b _080362B2
+ .align 2, 0
+_0803627C: .4byte gUnknown_02024C3C
+_08036280: .4byte gUnknown_02024A60
+_08036284: .4byte 0x0000ffff
+_08036288: .4byte gBattleMoves
+_0803628C: .4byte gUnknown_020239F8
+_08036290: .4byte gUnknown_02024C0C
+_08036294: .4byte gBitTable
+_08036298:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r7, r0, 24
+ b _080362B2
+_080362AE:
+ adds r7, r3, 0
+ mov r8, r7
+_080362B2:
+ ldr r3, _080362D4 @ =gBattleMoves
+ ldr r1, _080362D8 @ =gUnknown_02024C3C
+ ldr r2, _080362DC @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x2]
+ adds r1, r2, 0
+ cmp r0, 0xA
+ bne _080362E0
+ movs r0, 0x12
+ b _080362F2
+ .align 2, 0
+_080362D4: .4byte gBattleMoves
+_080362D8: .4byte gUnknown_02024C3C
+_080362DC: .4byte gUnknown_02024A60
+_080362E0:
+ cmp r0, 0xB
+ bne _080362EA
+ movs r2, 0xB
+ mov r10, r2
+ b _080362F4
+_080362EA:
+ cmp r0, 0xD
+ beq _080362F0
+ b _08036400
+_080362F0:
+ movs r0, 0xA
+_080362F2:
+ mov r10, r0
+_080362F4:
+ ldr r2, _08036308 @ =gBattleMons
+ ldrb r1, [r1]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, r10
+ bne _0803633C
+ b _08036400
+ .align 2, 0
+_08036308: .4byte gBattleMons
+_0803630C:
+ ldr r0, _08036330 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ ldr r1, _08036334 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036338 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _08036402
+ .align 2, 0
+_08036330: .4byte gUnknown_02024A60
+_08036334: .4byte 0x02000000
+_08036338: .4byte 0x000160c8
+_0803633C:
+ movs r6, 0
+ ldr r0, _080363CC @ =gBaseStats
+ mov r9, r0
+_08036342:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _080363D0 @ =gEnemyParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080363FA
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080363FA
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080363FA
+ ldr r1, _080363D4 @ =gUnknown_02024A6A
+ mov r2, r8
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ ldr r1, _080363D8 @ =0x02000000
+ ldr r0, _080363DC @ =0x00016068
+ add r0, r8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ ldr r2, _080363DC @ =0x00016068
+ adds r0, r7, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080363FA
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _080363E0
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x17]
+ b _080363EA
+ .align 2, 0
+_080363CC: .4byte gBaseStats
+_080363D0: .4byte gEnemyParty
+_080363D4: .4byte gUnknown_02024A6A
+_080363D8: .4byte 0x02000000
+_080363DC: .4byte 0x00016068
+_080363E0:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x16]
+_080363EA:
+ cmp r10, r0
+ bne _080363FA
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _0803630C
+_080363FA:
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _08036342
+_08036400:
+ movs r0, 0
+_08036402:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80361E8
+
+ thumb_func_start ai_switchout_natural_cure
+ai_switchout_natural_cure: @ 8036410
+ push {r4,r5,lr}
+ ldr r3, _08036468 @ =gBattleMons
+ ldr r5, _0803646C @ =gUnknown_02024A60
+ ldrb r4, [r5]
+ movs r0, 0x58
+ adds r2, r4, 0
+ muls r2, r0
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r2, r0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _080364D8
+ adds r1, r2, r3
+ adds r0, r1, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0x1E
+ bne _080364D8
+ ldrh r0, [r1, 0x2C]
+ ldrh r1, [r1, 0x28]
+ lsrs r0, 1
+ cmp r1, r0
+ bcc _080364D8
+ ldr r1, _08036470 @ =gUnknown_02024C3C
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _08036456
+ ldr r0, _08036474 @ =0x0000ffff
+ cmp r1, r0
+ bne _08036478
+_08036456:
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08036478
+ ldrb r0, [r5]
+ b _080364E0
+ .align 2, 0
+_08036468: .4byte gBattleMons
+_0803646C: .4byte gUnknown_02024A60
+_08036470: .4byte gUnknown_02024C3C
+_08036474: .4byte 0x0000ffff
+_08036478:
+ ldr r2, _080364A4 @ =gBattleMoves
+ ldr r1, _080364A8 @ =gUnknown_02024C3C
+ ldr r4, _080364AC @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080364B0
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _080364B0
+ ldrb r0, [r4]
+ b _080364E0
+ .align 2, 0
+_080364A4: .4byte gBattleMoves
+_080364A8: .4byte gUnknown_02024C3C
+_080364AC: .4byte gUnknown_02024A60
+_080364B0:
+ movs r0, 0x8
+ movs r1, 0x1
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080364FE
+ movs r0, 0x4
+ movs r1, 0x1
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080364FE
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ bne _080364DC
+_080364D8:
+ movs r0, 0
+ b _08036500
+_080364DC:
+ ldr r0, _08036508 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+_080364E0:
+ bl battle_get_per_side_status
+ ldr r1, _0803650C @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036510 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ movs r1, 0x6
+ strb r1, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_080364FE:
+ movs r0, 0x1
+_08036500:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08036508: .4byte gUnknown_02024A60
+_0803650C: .4byte 0x02000000
+_08036510: .4byte 0x000160c8
+ thumb_func_end ai_switchout_natural_cure
+
+ thumb_func_start ai_has_super_effective_move_on_field
+ai_has_super_effective_move_on_field: @ 8036514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _080365AC @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _080365B0 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803659C
+ movs r4, 0
+ ldr r6, _080365B4 @ =gBattleMons
+ movs r7, 0x58
+ adds r0, r3, 0
+ muls r0, r7
+ adds r5, r0, r6
+ movs r0, 0x20
+ adds r0, r5
+ mov r9, r0
+_08036550:
+ lsls r1, r4, 1
+ ldr r0, _080365B8 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ muls r0, r7
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08036596
+ ldrh r1, [r5]
+ mov r3, r9
+ ldrb r2, [r3]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _08036596
+ mov r0, r8
+ cmp r0, 0
+ bne _080365C0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080365C0
+_08036596:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08036550
+_0803659C:
+ ldr r0, _080365BC @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080365C4
+ b _0803663E
+ .align 2, 0
+_080365AC: .4byte gUnknown_02024C0C
+_080365B0: .4byte gBitTable
+_080365B4: .4byte gBattleMons
+_080365B8: .4byte gUnknown_02024A60
+_080365BC: .4byte gUnknown_020239F8
+_080365C0:
+ movs r0, 0x1
+ b _08036640
+_080365C4:
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0803664C @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08036650 @ =gBitTable
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0803663E
+ movs r4, 0
+ ldr r6, _08036654 @ =gBattleMons
+ movs r7, 0x58
+ adds r0, r3, 0
+ muls r0, r7
+ adds r5, r0, r6
+ movs r3, 0x20
+ adds r3, r5
+ mov r9, r3
+_080365F2:
+ lsls r1, r4, 1
+ ldr r0, _08036658 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ muls r0, r7
+ adds r1, r0
+ adds r0, r6, 0
+ adds r0, 0xC
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08036638
+ ldrh r1, [r5]
+ mov r3, r9
+ ldrb r2, [r3]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _08036638
+ mov r0, r8
+ cmp r0, 0
+ bne _080365C0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _080365C0
+_08036638:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _080365F2
+_0803663E:
+ movs r0, 0
+_08036640:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803664C: .4byte gUnknown_02024C0C
+_08036650: .4byte gBitTable
+_08036654: .4byte gBattleMons
+_08036658: .4byte gUnknown_02024A60
+ thumb_func_end ai_has_super_effective_move_on_field
+
+ thumb_func_start ai_is_too_invested_in_stat_buffs
+ai_is_too_invested_in_stat_buffs: @ 803665C
+ push {r4,lr}
+ movs r4, 0
+ ldr r1, _0803669C @ =gBattleMons
+ ldr r0, _080366A0 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0x18
+ adds r2, r0, r1
+ movs r3, 0x7
+_08036670:
+ ldrb r1, [r2]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0x6
+ ble _08036686
+ subs r1, 0x6
+ lsls r0, r4, 24
+ asrs r0, 24
+ adds r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08036686:
+ adds r2, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08036670
+ movs r0, 0
+ cmp r4, 0x3
+ bls _08036696
+ movs r0, 0x1
+_08036696:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0803669C: .4byte gBattleMons
+_080366A0: .4byte gUnknown_02024A60
+ thumb_func_end ai_is_too_invested_in_stat_buffs
+
+ thumb_func_start sub_80366A4
+sub_80366A4: @ 80366A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0x4]
+ ldr r1, _08036730 @ =gUnknown_02024C3C
+ ldr r5, _08036734 @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r0, r3, 1
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ cmp r1, 0
+ bne _080366CE
+ b _080368D8
+_080366CE:
+ ldr r0, _08036738 @ =0x0000ffff
+ cmp r1, r0
+ bne _080366D6
+ b _080368D8
+_080366D6:
+ ldr r0, _0803673C @ =gUnknown_02024C5C
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _080366E2
+ b _080368D8
+_080366E2:
+ ldr r2, _08036740 @ =gBattleMoves
+ ldrh r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ bne _080366F6
+ b _080368D8
+_080366F6:
+ ldr r0, _08036744 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08036798
+ mov r9, r3
+ mov r0, r9
+ bl battle_get_per_side_status
+ movs r4, 0x2
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _08036748 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _0803674C @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036750
+ ldrb r5, [r5]
+ mov r10, r5
+ b _0803679C
+ .align 2, 0
+_08036730: .4byte gUnknown_02024C3C
+_08036734: .4byte gUnknown_02024A60
+_08036738: .4byte 0x0000ffff
+_0803673C: .4byte gUnknown_02024C5C
+_08036740: .4byte gBattleMoves
+_08036744: .4byte gUnknown_020239F8
+_08036748: .4byte gUnknown_02024C0C
+_0803674C: .4byte gBitTable
+_08036750:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ eors r0, r4
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ b _0803679C
+_08036768:
+ ldr r0, _0803678C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ ldr r1, _08036790 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _08036794 @ =0x000160c8
+ adds r0, r2
+ adds r0, r1
+ strb r6, [r0]
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ movs r0, 0x1
+ b _080368DA
+ .align 2, 0
+_0803678C: .4byte gUnknown_02024A60
+_08036790: .4byte 0x02000000
+_08036794: .4byte 0x000160c8
+_08036798:
+ mov r9, r3
+ mov r10, r9
+_0803679C:
+ movs r6, 0
+_0803679E:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _08036830 @ =gEnemyParty
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ bne _080367B6
+ b _080368D0
+_080367B6:
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ bne _080367C4
+ b _080368D0
+_080367C4:
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080368D0
+ ldr r1, _08036834 @ =gUnknown_02024A6A
+ mov r2, r9
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ mov r2, r10
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ ldr r1, _08036838 @ =0x02000000
+ ldr r0, _0803683C @ =0x00016068
+ add r0, r9
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ ldr r0, _0803683C @ =0x00016068
+ add r0, r10
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r6, r0
+ beq _080368D0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r5, 0
+ movs r1, 0x2E
+ bl GetMonData
+ cmp r0, 0
+ beq _08036844
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _08036840 @ =gBaseStats
+ adds r0, r1
+ ldrb r2, [r0, 0x17]
+ b _08036850
+ .align 2, 0
+_08036830: .4byte gEnemyParty
+_08036834: .4byte gUnknown_02024A6A
+_08036838: .4byte 0x02000000
+_0803683C: .4byte 0x00016068
+_08036840: .4byte gBaseStats
+_08036844:
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r2, _080368EC @ =gBaseStats
+ adds r0, r2
+ ldrb r2, [r0, 0x16]
+_08036850:
+ ldr r1, _080368F0 @ =gUnknown_02024C3C
+ ldr r5, _080368F4 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r1, r4, 0
+ bl ai_rate_move
+ ldr r1, [sp]
+ ands r1, r0
+ cmp r1, 0
+ beq _080368D0
+ ldr r1, _080368F8 @ =gUnknown_02024C5C
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r0, [r0]
+ mov r9, r0
+ movs r4, 0
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ mov r8, r1
+ ldr r1, _080368FC @ =gBattleMons
+ movs r0, 0x58
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ adds r5, r0, r1
+ adds r7, r5, 0
+ adds r7, 0x20
+_0803688E:
+ ldr r0, _08036900 @ =gEnemyParty
+ adds r1, r4, 0
+ adds r1, 0xD
+ add r0, r8
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _080368CA
+ ldrh r1, [r5]
+ ldrb r2, [r7]
+ bl ai_rate_move
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0x2
+ ands r1, r0
+ cmp r1, 0
+ beq _080368CA
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, [sp, 0x4]
+ bl __modsi3
+ cmp r0, 0
+ bne _080368CA
+ b _08036768
+_080368CA:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0803688E
+_080368D0:
+ adds r6, 0x1
+ cmp r6, 0x5
+ bgt _080368D8
+ b _0803679E
+_080368D8:
+ movs r0, 0
+_080368DA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080368EC: .4byte gBaseStats
+_080368F0: .4byte gUnknown_02024C3C
+_080368F4: .4byte gUnknown_02024A60
+_080368F8: .4byte gUnknown_02024C5C
+_080368FC: .4byte gBattleMons
+_08036900: .4byte gEnemyParty
+ thumb_func_end sub_80366A4
+
+ thumb_func_start sub_8036904
+sub_8036904: @ 8036904
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r6, _080369E0 @ =gBattleMons
+ ldr r4, _080369E4 @ =gUnknown_02024A60
+ ldrb r2, [r4]
+ movs r5, 0x58
+ adds r0, r2, 0
+ muls r0, r5
+ adds r1, r6, 0
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _080369E8 @ =0x0400e000
+ ands r0, r1
+ cmp r0, 0
+ beq _0803692A
+ b _08036AFC
+_0803692A:
+ ldr r0, _080369EC @ =gUnknown_02024C98
+ lsls r1, r2, 2
+ adds r1, r0
+ ldr r1, [r1]
+ movs r0, 0x80
+ lsls r0, 3
+ ands r1, r0
+ cmp r1, 0
+ beq _0803693E
+ b _08036AFC
+_0803693E:
+ str r1, [sp]
+ movs r0, 0xC
+ adds r1, r2, 0
+ movs r2, 0x17
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08036956
+ b _08036AFC
+_08036956:
+ ldrb r1, [r4]
+ str r0, [sp]
+ movs r0, 0xC
+ movs r2, 0x47
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0803696E
+ b _08036AFC
+_0803696E:
+ str r0, [sp]
+ movs r0, 0xE
+ movs r1, 0
+ movs r2, 0x2A
+ movs r3, 0
+ bl sub_8018324
+ lsls r0, 24
+ cmp r0, 0
+ beq _080369A0
+ ldrb r0, [r4]
+ muls r0, r5
+ adds r1, r0, r6
+ adds r0, r1, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _08036994
+ b _08036AFC
+_08036994:
+ adds r0, r1, 0
+ adds r0, 0x22
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bne _080369A0
+ b _08036AFC
+_080369A0:
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _080369F0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08036A12
+ ldr r4, _080369E4 @ =gUnknown_02024A60
+ ldrb r7, [r4]
+ adds r0, r7, 0
+ bl battle_get_per_side_status
+ movs r5, 0x2
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _080369F4 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _080369F8 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _080369FC
+ ldrb r6, [r4]
+ b _08036A18
+ .align 2, 0
+_080369E0: .4byte gBattleMons
+_080369E4: .4byte gUnknown_02024A60
+_080369E8: .4byte 0x0400e000
+_080369EC: .4byte gUnknown_02024C98
+_080369F0: .4byte gUnknown_020239F8
+_080369F4: .4byte gUnknown_02024C0C
+_080369F8: .4byte gBitTable
+_080369FC:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ b _08036A18
+_08036A12:
+ ldr r0, _08036AE8 @ =gUnknown_02024A60
+ ldrb r6, [r0]
+ adds r7, r6, 0
+_08036A18:
+ movs r5, 0
+_08036A1A:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08036AEC @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036A7E
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08036A7E
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08036A7E
+ ldr r1, _08036AF0 @ =gUnknown_02024A6A
+ lsls r0, r7, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ ldr r1, _08036AF4 @ =0x02000000
+ ldr r2, _08036AF8 @ =0x00016068
+ adds r0, r7, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ adds r0, r6, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r5, r0
+ beq _08036A7E
+ movs r0, 0x1
+ add r8, r0
+_08036A7E:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08036A1A
+ mov r2, r8
+ cmp r2, 0
+ beq _08036AFC
+ bl ai_switch_perish_song
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ bl sub_8036054
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ bl sub_80361E8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ bl ai_switchout_natural_cure
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ movs r0, 0
+ bl ai_has_super_effective_move_on_field
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AFC
+ bl ai_is_too_invested_in_stat_buffs
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AFC
+ movs r0, 0x8
+ movs r1, 0x2
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036AE4
+ movs r0, 0x4
+ movs r1, 0x3
+ bl sub_80366A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08036AFC
+_08036AE4:
+ movs r0, 0x1
+ b _08036AFE
+ .align 2, 0
+_08036AE8: .4byte gUnknown_02024A60
+_08036AEC: .4byte gEnemyParty
+_08036AF0: .4byte gUnknown_02024A6A
+_08036AF4: .4byte 0x02000000
+_08036AF8: .4byte 0x00016068
+_08036AFC:
+ movs r0, 0
+_08036AFE:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8036904
+
+ thumb_func_start sub_8036B0C
+sub_8036B0C: @ 8036B0C
+ push {r4-r6,lr}
+ ldr r5, _08036B68 @ =gUnknown_020239F8
+ ldrh r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08036B1C
+ b _08036C2E
+_08036B1C:
+ bl sub_8036904
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036B28
+ b _08036C24
+_08036B28:
+ ldr r4, _08036B6C @ =0x02000000
+ ldr r0, _08036B70 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r1, _08036B74 @ =0x000160c8
+ adds r0, r1
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _08036BEA
+ bl sub_8036CD4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ bne _08036BD4
+ ldrh r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08036B78
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ b _08036B8C
+ .align 2, 0
+_08036B68: .4byte gUnknown_020239F8
+_08036B6C: .4byte 0x02000000
+_08036B70: .4byte gUnknown_02024A60
+_08036B74: .4byte 0x000160c8
+_08036B78:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08036B8C:
+ movs r4, 0
+_08036B8E:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08036C0C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036BCE
+ ldr r1, _08036C10 @ =gUnknown_02024A6A
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _08036BCE
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r4, r0
+ beq _08036BCE
+ ldr r1, _08036C14 @ =0x02000000
+ ldr r2, _08036C18 @ =0x00016068
+ adds r0, r6, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ beq _08036BCE
+ adds r0, r5, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r4, r0
+ bne _08036BD4
+_08036BCE:
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08036B8E
+_08036BD4:
+ ldr r0, _08036C1C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ ldr r1, _08036C14 @ =0x02000000
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r3, _08036C20 @ =0x000160c8
+ adds r0, r3
+ adds r0, r1
+ strb r4, [r0]
+_08036BEA:
+ ldr r4, _08036C1C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ ldr r2, _08036C14 @ =0x02000000
+ ldrb r1, [r4]
+ ldr r3, _08036C18 @ =0x00016068
+ adds r1, r3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 25
+ adds r3, 0x60
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ b _08036C40
+ .align 2, 0
+_08036C0C: .4byte gEnemyParty
+_08036C10: .4byte gUnknown_02024A6A
+_08036C14: .4byte 0x02000000
+_08036C18: .4byte 0x00016068
+_08036C1C: .4byte gUnknown_02024A60
+_08036C20: .4byte 0x000160c8
+_08036C24:
+ bl sub_803708C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08036C40
+_08036C2E:
+ ldr r0, _08036C48 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ movs r2, 0x1
+ eors r2, r0
+ lsls r2, 8
+ movs r0, 0x1
+ movs r1, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_08036C40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08036C48: .4byte gUnknown_02024A60
+ thumb_func_end sub_8036B0C
+
+ thumb_func_start sub_8036C4C
+sub_8036C4C: @ 8036C4C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r3, 0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r7, 0
+ ldr r0, _08036CD0 @ =gTypeEffectiveness
+ mov r10, r0
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08036CBE
+ mov r5, r10
+_08036C7A:
+ ldrb r0, [r5]
+ cmp r0, 0xFE
+ beq _08036CB0
+ ldr r1, [sp]
+ cmp r0, r1
+ bne _08036CB0
+ ldrb r4, [r5, 0x1]
+ cmp r4, r9
+ bne _08036C9A
+ ldrb r1, [r6]
+ ldrb r0, [r5, 0x2]
+ muls r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ strb r0, [r6]
+_08036C9A:
+ cmp r4, r8
+ bne _08036CB0
+ cmp r9, r8
+ beq _08036CB0
+ ldrb r1, [r6]
+ ldrb r0, [r5, 0x2]
+ muls r0, r1
+ movs r1, 0xA
+ bl __divsi3
+ strb r0, [r6]
+_08036CB0:
+ adds r5, 0x3
+ adds r7, 0x3
+ mov r1, r10
+ adds r0, r7, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08036C7A
+_08036CBE:
+ 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
+_08036CD0: .4byte gTypeEffectiveness
+ thumb_func_end sub_8036C4C
+
+ thumb_func_start sub_8036CD4
+sub_8036CD4: @ 8036CD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ ldr r0, _08036D1C @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08036D78
+ ldr r4, _08036D20 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ str r0, [sp, 0xC]
+ bl battle_get_per_side_status
+ movs r5, 0x2
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ ldr r1, _08036D24 @ =gUnknown_02024C0C
+ ldrb r1, [r1]
+ ldr r2, _08036D28 @ =gBitTable
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036D2C
+ ldrb r4, [r4]
+ str r4, [sp, 0x10]
+ b _08036D42
+ .align 2, 0
+_08036D1C: .4byte gUnknown_020239F8
+_08036D20: .4byte gUnknown_02024A60
+_08036D24: .4byte gUnknown_02024C0C
+_08036D28: .4byte gBitTable
+_08036D2C:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ eors r0, r5
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+_08036D42:
+ bl Random
+ movs r3, 0x2
+ ands r0, r3
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _08036D70 @ =gUnknown_02024C0C
+ ldrb r1, [r0]
+ ldr r2, _08036D74 @ =gBitTable
+ mov r4, r10
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08036D8C
+ eors r4, r3
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r10, r0
+ b _08036D8C
+ .align 2, 0
+_08036D70: .4byte gUnknown_02024C0C
+_08036D74: .4byte gBitTable
+_08036D78:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _08036E5C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ str r0, [sp, 0x10]
+ str r0, [sp, 0xC]
+_08036D8C:
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ str r1, [sp, 0x14]
+_08036D94:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ movs r3, 0x6
+ str r3, [sp, 0x8]
+ movs r7, 0
+ ldr r4, _08036E60 @ =gBitTable
+ mov r8, r4
+_08036DA2:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _08036E64 @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ beq _08036E7C
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036E7C
+ mov r1, r8
+ ldr r0, [r1]
+ mov r2, r9
+ ands r0, r2
+ cmp r0, 0
+ bne _08036E7C
+ ldr r1, _08036E68 @ =gUnknown_02024A6A
+ ldr r3, [sp, 0xC]
+ lsls r0, r3, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036E7C
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036E7C
+ ldr r1, _08036E6C @ =0x02000000
+ ldr r2, _08036E70 @ =0x00016068
+ adds r0, r3, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036E7C
+ adds r0, r4, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036E7C
+ ldr r1, _08036E74 @ =gBaseStats
+ lsls r0, r5, 3
+ subs r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r5, [r0, 0x6]
+ ldrb r6, [r0, 0x7]
+ movs r0, 0xA
+ ldr r3, [sp, 0x14]
+ strb r0, [r3]
+ movs r0, 0x58
+ mov r4, r10
+ muls r4, r0
+ ldr r0, _08036E78 @ =gBattleMons
+ adds r4, r0
+ adds r0, r4, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, sp
+ bl sub_8036C4C
+ adds r4, 0x22
+ ldrb r0, [r4]
+ adds r1, r5, 0
+ adds r2, r6, 0
+ mov r3, sp
+ bl sub_8036C4C
+ ldr r2, [sp, 0x4]
+ ldr r1, [sp, 0x14]
+ ldrb r1, [r1]
+ cmp r2, r1
+ bcs _08036E8A
+ ldr r2, [sp, 0x14]
+ ldrb r2, [r2]
+ str r2, [sp, 0x4]
+ lsls r0, r7, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+ b _08036E8A
+ .align 2, 0
+_08036E5C: .4byte gUnknown_02024A60
+_08036E60: .4byte gBitTable
+_08036E64: .4byte gEnemyParty
+_08036E68: .4byte gUnknown_02024A6A
+_08036E6C: .4byte 0x02000000
+_08036E70: .4byte 0x00016068
+_08036E74: .4byte gBaseStats
+_08036E78: .4byte gBattleMons
+_08036E7C:
+ mov r3, r8
+ ldr r0, [r3]
+ mov r4, r9
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ mov r9, r0
+_08036E8A:
+ movs r0, 0x4
+ add r8, r0
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _08036DA2
+ ldr r1, [sp, 0x8]
+ cmp r1, 0x6
+ beq _08036EF8
+ movs r7, 0
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r6, _08036EEC @ =gEnemyParty
+_08036EA4:
+ adds r1, r7, 0
+ adds r1, 0xD
+ adds r0, r5, r6
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08036ECA
+ ldr r0, _08036EF0 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ mov r2, r10
+ bl move_effectiveness_something
+ movs r1, 0x2
+ ands r1, r0
+ cmp r1, 0
+ bne _08036ED0
+_08036ECA:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08036EA4
+_08036ED0:
+ cmp r7, 0x4
+ beq _08036ED6
+ b _08036FEE
+_08036ED6:
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 2
+ ldr r3, _08036EF4 @ =gBitTable
+ adds r0, r3
+ ldr r0, [r0]
+ mov r4, r9
+ orrs r4, r0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ b _08036EFA
+ .align 2, 0
+_08036EEC: .4byte gEnemyParty
+_08036EF0: .4byte gUnknown_02024A60
+_08036EF4: .4byte gBitTable
+_08036EF8:
+ movs r0, 0x3F
+_08036EFA:
+ mov r9, r0
+ mov r1, r9
+ cmp r1, 0x3F
+ beq _08036F04
+ b _08036D94
+_08036F04:
+ ldr r0, _08037000 @ =gUnknown_02024DEC
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _08037004 @ =0x02000000
+ ldr r3, _08037008 @ =0x0001601c
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r4, _0803700C @ =0x0001601f
+ adds r0, r4
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08037010 @ =gUnknown_02024C68
+ strb r2, [r0]
+ ldr r0, _08037014 @ =gCritMultiplier
+ strb r1, [r0]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r1, 0x6
+ str r1, [sp, 0x8]
+ movs r7, 0
+_08036F2C:
+ movs r0, 0x64
+ adds r6, r7, 0
+ muls r6, r0
+ ldr r2, _08037018 @ =gEnemyParty
+ adds r4, r6, r2
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ adds r3, r7, 0x1
+ str r3, [sp, 0x18]
+ cmp r0, 0
+ beq _08036FE8
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08036FE8
+ ldr r1, _0803701C @ =gUnknown_02024A6A
+ ldr r4, [sp, 0xC]
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036FE8
+ ldr r2, [sp, 0x10]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08036FE8
+ ldr r1, _08037004 @ =0x02000000
+ ldr r3, _08037020 @ =0x00016068
+ adds r0, r4, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036FE8
+ adds r0, r2, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r7, r0
+ beq _08036FE8
+ movs r5, 0
+ mov r9, r6
+ ldr r4, _08037024 @ =gUnknown_02024BEC
+ mov r8, r4
+ ldr r6, _08037028 @ =gUnknown_02024A60
+_08036F90:
+ adds r1, r5, 0
+ adds r1, 0xD
+ ldr r0, _08037018 @ =gEnemyParty
+ add r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0
+ mov r1, r8
+ str r0, [r1]
+ cmp r4, 0
+ beq _08036FCC
+ ldr r0, _0803702C @ =gBattleMoves
+ lsls r1, r4, 1
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ beq _08036FCC
+ ldrb r0, [r6]
+ mov r1, r10
+ bl sub_801CAF8
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ mov r2, r10
+ bl move_effectiveness_something
+_08036FCC:
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, [sp, 0x4]
+ cmp r3, r0
+ bge _08036FE2
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ lsls r0, r7, 24
+ lsrs r0, 24
+ str r0, [sp, 0x8]
+_08036FE2:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08036F90
+_08036FE8:
+ ldr r7, [sp, 0x18]
+ cmp r7, 0x5
+ ble _08036F2C
+_08036FEE:
+ ldr r0, [sp, 0x8]
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08037000: .4byte gUnknown_02024DEC
+_08037004: .4byte 0x02000000
+_08037008: .4byte 0x0001601c
+_0803700C: .4byte 0x0001601f
+_08037010: .4byte gUnknown_02024C68
+_08037014: .4byte gCritMultiplier
+_08037018: .4byte gEnemyParty
+_0803701C: .4byte gUnknown_02024A6A
+_08037020: .4byte 0x00016068
+_08037024: .4byte gUnknown_02024BEC
+_08037028: .4byte gUnknown_02024A60
+_0803702C: .4byte gBattleMoves
+ thumb_func_end sub_8036CD4
+
+ thumb_func_start ai_identify_item_effect
+ai_identify_item_effect: @ 8037030
+ push {r4,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bne _08037040
+ movs r0, 0x1
+ b _08037086
+_08037040:
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803704E
+ movs r0, 0x2
+ b _08037086
+_0803704E:
+ ldrb r4, [r2, 0x3]
+ movs r3, 0x3F
+ adds r0, r3, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _0803705E
+ movs r0, 0x3
+ b _08037086
+_0803705E:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08037074
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0
+ bne _08037074
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ beq _08037078
+_08037074:
+ movs r0, 0x4
+ b _08037086
+_08037078:
+ movs r0, 0x80
+ ands r0, r4
+ cmp r0, 0
+ bne _08037084
+ movs r0, 0x6
+ b _08037086
+_08037084:
+ movs r0, 0x5
+_08037086:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end ai_identify_item_effect
+
+ thumb_func_start sub_803708C
+sub_803708C: @ 803708C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ str r0, [sp]
+ mov r8, r0
+ mov r9, r0
+_080370A0:
+ movs r0, 0x64
+ mov r1, r9
+ muls r1, r0
+ ldr r0, _08037170 @ =gEnemyParty
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _080370DC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _080370DC
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _080370DC
+ ldr r0, [sp]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+_080370DC:
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ cmp r2, 0x5
+ ble _080370A0
+ movs r3, 0
+ mov r9, r3
+_080370EA:
+ ldr r4, _08037174 @ =0x02016a00
+ mov r0, r9
+ cmp r0, 0
+ beq _08037106
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ mov r1, r9
+ subs r0, r1
+ adds r0, 0x1
+ ldr r2, [sp]
+ cmp r2, r0
+ ble _08037106
+ b _080374EC
+_08037106:
+ mov r3, r9
+ lsls r1, r3, 1
+ adds r0, r4, 0
+ adds r0, 0x24
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ mov r10, r0
+ str r1, [sp, 0x4]
+ cmp r0, 0
+ bne _0803711C
+ b _080374EC
+_0803711C:
+ ldr r1, _08037178 @ =gItemEffectTable
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ cmp r1, 0
+ bne _0803712C
+ b _080374EC
+_0803712C:
+ adds r5, r1, 0
+ mov r0, r10
+ cmp r0, 0xAF
+ bne _08037136
+ ldr r5, _0803717C @ =gSaveBlock1 + 0x3676
+_08037136:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r0, 24
+ adds r1, r5, 0
+ bl ai_identify_item_effect
+ ldr r2, _08037180 @ =0xfffe9600
+ adds r4, r2
+ ldr r3, _08037184 @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ lsrs r1, 1
+ ldr r2, _08037188 @ =0x000160d8
+ adds r1, r2
+ adds r1, r4
+ strb r0, [r1]
+ ldrb r0, [r3]
+ lsrs r0, 1
+ adds r0, r2
+ adds r0, r4
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x5
+ bls _08037166
+ b _080374A8
+_08037166:
+ lsls r0, 2
+ ldr r1, _0803718C @ =_08037190
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08037170: .4byte gEnemyParty
+_08037174: .4byte 0x02016a00
+_08037178: .4byte gItemEffectTable
+_0803717C: .4byte gSaveBlock1 + 0x3676
+_08037180: .4byte 0xfffe9600
+_08037184: .4byte gUnknown_02024A60
+_08037188: .4byte 0x000160d8
+_0803718C: .4byte _08037190
+ .align 2, 0
+_08037190:
+ .4byte _080371A8
+ .4byte _080371D0
+ .4byte _0803721C
+ .4byte _08037388
+ .4byte _08037468
+ .4byte _080374F8
+_080371A8:
+ ldr r2, _080371C8 @ =gBattleMons
+ ldr r0, _080371CC @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x2C]
+ ldrh r0, [r0, 0x28]
+ lsrs r1, 2
+ cmp r0, r1
+ bcc _080371C0
+ b _080374A8
+_080371C0:
+ cmp r0, 0
+ bne _080371C6
+ b _080374A8
+_080371C6:
+ b _08037450
+ .align 2, 0
+_080371C8: .4byte gBattleMons
+_080371CC: .4byte gUnknown_02024A60
+_080371D0:
+ mov r0, r10
+ movs r1, 0x4
+ movs r2, 0x4
+ bl sub_803F1DC
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080371E4
+ b _080374A8
+_080371E4:
+ ldr r2, _08037214 @ =gBattleMons
+ ldr r0, _08037218 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x28]
+ cmp r2, 0
+ bne _080371F8
+ b _080374A8
+_080371F8:
+ ldrh r3, [r1, 0x2C]
+ lsrs r0, r3, 2
+ cmp r2, r0
+ bcs _08037202
+ b _08037496
+_08037202:
+ adds r0, r2, 0
+ subs r0, r3, r0
+ adds r1, r5, r4
+ ldrb r1, [r1]
+ cmp r0, r1
+ bgt _08037210
+ b _080374A8
+_08037210:
+ b _08037496
+ .align 2, 0
+_08037214: .4byte gBattleMons
+_08037218: .4byte gUnknown_02024A60
+_0803721C:
+ ldr r2, _08037378 @ =0x02000000
+ ldr r3, _0803737C @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsrs r0, 1
+ ldr r6, _08037380 @ =0x000160da
+ adds r0, r6
+ adds r0, r2
+ movs r1, 0
+ mov r12, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldrb r1, [r5, 0x3]
+ movs r7, 0x20
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08037264
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08037264
+ lsrs r1, r4, 1
+ adds r1, r6
+ adds r1, r2
+ ldrb r0, [r1]
+ orrs r0, r7
+ strb r0, [r1]
+ movs r0, 0x1
+ mov r8, r0
+_08037264:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x10
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080372A0
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0803728E
+ movs r0, 0x80
+ ands r1, r0
+ cmp r1, 0
+ beq _080372A0
+_0803728E:
+ lsrs r1, r4, 1
+ ldr r0, _08037380 @ =0x000160da
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ orrs r0, r6
+ strb r0, [r1]
+ movs r1, 0x1
+ mov r8, r1
+_080372A0:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x8
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _080372D4
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080372D4
+ lsrs r0, r4, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r0, 0x1
+ mov r8, r0
+_080372D4:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x4
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08037308
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08037308
+ lsrs r0, r4, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r0, 0x1
+ mov r8, r0
+_08037308:
+ ldrb r1, [r5, 0x3]
+ movs r6, 0x2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0803733C
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r4, [r3]
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803733C
+ lsrs r0, r4, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r0, 0x1
+ mov r8, r0
+_0803733C:
+ ldrb r1, [r5, 0x3]
+ movs r4, 0x1
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0803734A
+ b _080374A8
+_0803734A:
+ ldr r1, _08037384 @ =gBattleMons
+ ldrb r3, [r3]
+ movs r0, 0x58
+ muls r0, r3
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08037362
+ b _080374A8
+_08037362:
+ lsrs r0, r3, 1
+ ldr r1, _08037380 @ =0x000160da
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ orrs r1, r4
+ strb r1, [r0]
+ movs r2, 0x1
+ mov r8, r2
+ b _080374AE
+ .align 2, 0
+_08037378: .4byte 0x02000000
+_0803737C: .4byte gUnknown_02024A60
+_08037380: .4byte 0x000160da
+_08037384: .4byte gBattleMons
+_08037388:
+ ldr r6, _08037458 @ =0x02000000
+ ldr r4, _0803745C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsrs r0, 1
+ ldr r3, _08037460 @ =0x000160da
+ adds r0, r3
+ adds r0, r6
+ movs r1, 0
+ mov r12, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _08037464 @ =gUnknown_02024CA8
+ ldrb r2, [r4]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ beq _080374A8
+ ldrb r1, [r5]
+ movs r7, 0xF
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080373CA
+ lsrs r0, r2, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+_080373CA:
+ ldrb r1, [r5, 0x1]
+ movs r2, 0xF0
+ mov r8, r2
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _080373E8
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_080373E8:
+ ldrb r1, [r5, 0x1]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08037402
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08037402:
+ ldrb r1, [r5, 0x2]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0803741C
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_0803741C:
+ ldrb r1, [r5, 0x2]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08037436
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x20
+ orrs r1, r2
+ strb r1, [r0]
+_08037436:
+ ldrb r1, [r5]
+ movs r0, 0x30
+ ands r0, r1
+ cmp r0, 0
+ beq _08037450
+ ldrb r0, [r4]
+ lsrs r0, 1
+ adds r0, r3
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+_08037450:
+ movs r3, 0x1
+ mov r8, r3
+ b _080374AE
+ .align 2, 0
+_08037458: .4byte 0x02000000
+_0803745C: .4byte gUnknown_02024A60
+_08037460: .4byte 0x000160da
+_08037464: .4byte gUnknown_02024CA8
+_08037468:
+ ldr r4, _0803749C @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _080374A0 @ =gUnknown_02024CA8
+ ldrb r1, [r4]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x16]
+ cmp r0, 0
+ beq _080374A8
+ ldr r0, _080374A4 @ =gUnknown_02024C80
+ lsls r1, r3, 1
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _080374A8
+_08037496:
+ movs r0, 0x1
+ mov r8, r0
+ b _080374AE
+ .align 2, 0
+_0803749C: .4byte gUnknown_02024A60
+_080374A0: .4byte gUnknown_02024CA8
+_080374A4: .4byte gUnknown_02024C80
+_080374A8:
+ mov r1, r8
+ cmp r1, 0
+ beq _080374EC
+_080374AE:
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ ldr r1, _080374DC @ =0x02000000
+ ldr r0, _080374E0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 1
+ ldr r2, _080374E4 @ =0x000160d4
+ adds r0, r2
+ adds r0, r1
+ movs r2, 0
+ mov r3, r10
+ strb r3, [r0]
+ ldr r0, _080374E8 @ =0x00016a24
+ adds r1, r0
+ ldr r3, [sp, 0x4]
+ adds r1, r3, r1
+ strh r2, [r1]
+ mov r0, r8
+ b _080374FA
+ .align 2, 0
+_080374DC: .4byte 0x02000000
+_080374E0: .4byte gUnknown_02024A60
+_080374E4: .4byte 0x000160d4
+_080374E8: .4byte 0x00016a24
+_080374EC:
+ movs r0, 0x1
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0x3
+ bgt _080374F8
+ b _080370EA
+_080374F8:
+ movs r0, 0
+_080374FA:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_803708C
+
+ thumb_func_start nullsub_47
+nullsub_47: @ 803750C
+ bx lr
+ thumb_func_end nullsub_47
+
+ thumb_func_start sub_8037510
+sub_8037510: @ 8037510
+ ldr r1, _08037520 @ =gUnknown_03004330
+ ldr r0, _08037524 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037528 @ =sub_803752C
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08037520: .4byte gUnknown_03004330
+_08037524: .4byte gUnknown_02024A60
+_08037528: .4byte sub_803752C
+ thumb_func_end sub_8037510
+
+ thumb_func_start sub_803752C
+sub_803752C: @ 803752C
+ push {lr}
+ ldr r2, _08037560 @ =gUnknown_02024A64
+ ldr r1, _08037564 @ =gBitTable
+ ldr r0, _08037568 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08037578
+ ldr r0, _0803756C @ =gUnknown_02023A60
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _08037574
+ ldr r0, _08037570 @ =gUnknown_081FB048
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _08037578
+ .align 2, 0
+_08037560: .4byte gUnknown_02024A64
+_08037564: .4byte gBitTable
+_08037568: .4byte gUnknown_02024A60
+_0803756C: .4byte gUnknown_02023A60
+_08037570: .4byte gUnknown_081FB048
+_08037574:
+ bl dp01_tbl4_exec_completed
+_08037578:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803752C
+
+ thumb_func_start sub_803757C
+sub_803757C: @ 803757C
+ push {lr}
+ ldr r2, _080375A4 @ =gSprites
+ ldr r1, _080375A8 @ =gUnknown_02024BE0
+ ldr r0, _080375AC @ =gUnknown_02024A60
+ 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, _080375B0 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _080375A0
+ bl dp01_tbl4_exec_completed
+_080375A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080375A4: .4byte gSprites
+_080375A8: .4byte gUnknown_02024BE0
+_080375AC: .4byte gUnknown_02024A60
+_080375B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_803757C
+
+ thumb_func_start sub_80375B4
+sub_80375B4: @ 80375B4
+ push {r4-r6,lr}
+ ldr r4, _0803762C @ =gSprites
+ ldr r6, _08037630 @ =gUnknown_02024BE0
+ ldr r5, _08037634 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r2, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, [r0]
+ ldr r0, _08037638 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08037624
+ adds r0, r2, r4
+ ldrh r0, [r0, 0x6]
+ bl sub_8031B74
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x38]
+ ldr r2, _0803763C @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08037640 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ bl dp01_tbl4_exec_completed
+_08037624:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803762C: .4byte gSprites
+_08037630: .4byte gUnknown_02024BE0
+_08037634: .4byte gUnknown_02024A60
+_08037638: .4byte SpriteCallbackDummy
+_0803763C: .4byte 0x000003ff
+_08037640: .4byte 0xfffffc00
+ thumb_func_end sub_80375B4
+
+ thumb_func_start sub_8037644
+sub_8037644: @ 8037644
+ push {lr}
+ ldr r3, _08037678 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0803767C @ =0x02017810
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _08037674
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl dp01_tbl4_exec_completed
+_08037674:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037678: .4byte gUnknown_02024A60
+_0803767C: .4byte 0x02017810
+ thumb_func_end sub_8037644
+
+ thumb_func_start sub_8037680
+sub_8037680: @ 8037680
+ push {r4-r7,lr}
+ movs r6, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080376A4
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080376D8
+ ldr r0, _080376C4 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080376D8
+_080376A4:
+ ldr r2, _080376C8 @ =gSprites
+ ldr r1, _080376CC @ =gUnknown_03004340
+ ldr r0, _080376D0 @ =gUnknown_02024A60
+ 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, _080376D4 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _0803770E
+ b _0803770C
+ .align 2, 0
+_080376C4: .4byte gUnknown_020239F8
+_080376C8: .4byte gSprites
+_080376CC: .4byte gUnknown_03004340
+_080376D0: .4byte gUnknown_02024A60
+_080376D4: .4byte SpriteCallbackDummy
+_080376D8:
+ ldr r2, _080377D8 @ =gSprites
+ ldr r5, _080377DC @ =gUnknown_03004340
+ ldr r0, _080377E0 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r4, [r0]
+ ldr r0, _080377E4 @ =SpriteCallbackDummy
+ cmp r4, r0
+ bne _0803770E
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ cmp r0, r4
+ bne _0803770E
+_0803770C:
+ movs r6, 0x1
+_0803770E:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803771A
+ movs r6, 0
+_0803771A:
+ cmp r6, 0
+ bne _08037720
+ b _08037822
+_08037720:
+ ldr r7, _080377E0 @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1
+ bne _080377B4
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r5, _080377E8 @ =0x02017810
+ adds r4, r0, r5
+ ldrb r1, [r4, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08037822
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08037822
+ ldrb r1, [r4]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ movs r4, 0x2
+ negs r4, r4
+ 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, _080377EC @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+_080377B4:
+ ldr r0, _080377F0 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080377F8
+ ldrb r0, [r7]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08037804
+ ldr r0, _080377F4 @ =gMPlay_BGM
+ bl m4aMPlayContinue
+ b _08037804
+ .align 2, 0
+_080377D8: .4byte gSprites
+_080377DC: .4byte gUnknown_03004340
+_080377E0: .4byte gUnknown_02024A60
+_080377E4: .4byte SpriteCallbackDummy
+_080377E8: .4byte 0x02017810
+_080377EC: .4byte 0x000027f9
+_080377F0: .4byte gUnknown_020239F8
+_080377F4: .4byte gMPlay_BGM
+_080377F8:
+ ldr r0, _08037828 @ =gMPlay_BGM
+ ldr r1, _0803782C @ =0x0000ffff
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08037804:
+ ldr r2, _08037830 @ =gUnknown_02024A60
+ ldrb r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037834 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _08037838 @ =gUnknown_03004330
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803783C @ =sub_8037644
+ str r1, [r0]
+_08037822:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037828: .4byte gMPlay_BGM
+_0803782C: .4byte 0x0000ffff
+_08037830: .4byte gUnknown_02024A60
+_08037834: .4byte 0x02017810
+_08037838: .4byte gUnknown_03004330
+_0803783C: .4byte sub_8037644
+ thumb_func_end sub_8037680
+
+ thumb_func_start sub_8037840
+sub_8037840: @ 8037840
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r6, _08037A48 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r5, _08037A4C @ =0x02017810
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r4, 0x88
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08037878
+ ldr r0, _08037A50 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037A54 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08037878:
+ ldrb r0, [r6]
+ movs r7, 0x2
+ adds r2, r7, 0
+ eors r2, r0
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080378A6
+ ldr r0, _08037A50 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037A54 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_080378A6:
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080378BE
+ b _08037A3A
+_080378BE:
+ adds r1, r2, 0
+ eors r1, r7
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _080378DA
+ b _08037A3A
+_080378DA:
+ ldr r0, _08037A58 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803791A
+ adds r0, r2, 0
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0803791A
+ ldrb r0, [r6]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x9]
+ adds r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0803790E
+ b _08037A3A
+_0803790E:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strb r4, [r0, 0x9]
+_0803791A:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _080379B2
+ ldr r0, _08037A58 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080379B2
+ ldr r1, _08037A5C @ =gUnknown_0300434C
+ ldr r5, _08037A48 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ movs r4, 0x2
+ eors r0, r4
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037A60 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r0, _08037A64 @ =gUnknown_03004340
+ mov r8, r0
+ ldrb r0, [r5]
+ adds r1, r4, 0
+ eors r1, r0
+ mov r2, r8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ ldr r2, _08037A50 @ =gUnknown_02024A6A
+ mov r10, r2
+ lsls r1, 1
+ add r1, r10
+ ldrh r1, [r1]
+ movs r2, 0x64
+ mov r9, r2
+ mov r2, r9
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r6, _08037A54 @ =gEnemyParty
+ adds r1, r6
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ eors r0, r4
+ bl sub_804777C
+ ldrb r0, [r5]
+ eors r0, r4
+ add r0, r8
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ eors r4, r0
+ lsls r0, r4, 1
+ add r0, r10
+ ldrh r0, [r0]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+_080379B2:
+ ldr r1, _08037A5C @ =gUnknown_0300434C
+ ldr r4, _08037A48 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037A60 @ =gSprites
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _08037A64 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _08037A50 @ =gUnknown_02024A6A
+ mov r9, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r1, [r1]
+ movs r2, 0x64
+ mov r8, r2
+ mov r2, r8
+ muls r2, r1
+ adds r1, r2, 0
+ ldr r6, _08037A54 @ =gEnemyParty
+ adds r1, r6
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r5, [r4]
+ lsls r0, r5, 1
+ add r0, r9
+ ldrh r0, [r0]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r6
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_8032984
+ ldr r2, _08037A68 @ =0x02017840
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08037A6C @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037A70 @ =sub_8037680
+ str r1, [r0]
+_08037A3A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037A48: .4byte gUnknown_02024A60
+_08037A4C: .4byte 0x02017810
+_08037A50: .4byte gUnknown_02024A6A
+_08037A54: .4byte gEnemyParty
+_08037A58: .4byte gUnknown_020239F8
+_08037A5C: .4byte gUnknown_0300434C
+_08037A60: .4byte gSprites
+_08037A64: .4byte gUnknown_03004340
+_08037A68: .4byte 0x02017840
+_08037A6C: .4byte gUnknown_03004330
+_08037A70: .4byte sub_8037680
+ thumb_func_end sub_8037840
+
+ thumb_func_start sub_8037A74
+sub_8037A74: @ 8037A74
+ push {r4-r7,lr}
+ ldr r2, _08037ACC @ =gSprites
+ ldr r0, _08037AD0 @ =gUnknown_02024BE0
+ ldr r7, _08037AD4 @ =gUnknown_02024A60
+ ldrb r3, [r7]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ lsrs r2, r0, 31
+ cmp r2, 0x1
+ bne _08037B18
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _08037B18
+ lsls r4, r3, 1
+ adds r0, r4, r3
+ lsls r0, 2
+ ldr r6, _08037AD8 @ =0x02017810
+ adds r1, r0, r6
+ ldrb r5, [r1]
+ movs r0, 0x80
+ ands r0, r5
+ cmp r0, 0
+ bne _08037AE4
+ ldr r0, _08037ADC @ =gUnknown_02024A6A
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037AE0 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_8141828
+ b _08037B18
+ .align 2, 0
+_08037ACC: .4byte gSprites
+_08037AD0: .4byte gUnknown_02024BE0
+_08037AD4: .4byte gUnknown_02024A60
+_08037AD8: .4byte 0x02017810
+_08037ADC: .4byte gUnknown_02024A6A
+_08037AE0: .4byte gEnemyParty
+_08037AE4:
+ ldrb r0, [r1, 0x1]
+ ands r2, r0
+ cmp r2, 0
+ beq _08037B18
+ movs r0, 0x7F
+ ands r0, r5
+ strb r0, [r1]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _08037B20 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ bl dp01_tbl4_exec_completed
+_08037B18:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037B20: .4byte 0x000027f9
+ thumb_func_end sub_8037A74
+
+ thumb_func_start sub_8037B24
+sub_8037B24: @ 8037B24
+ push {r4-r6,lr}
+ ldr r6, _08037B64 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ ldr r5, _08037B68 @ =gUnknown_03004340
+ adds r1, r0, r5
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08037B6C
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _08037B70
+ .align 2, 0
+_08037B64: .4byte gUnknown_02024A60
+_08037B68: .4byte gUnknown_03004340
+_08037B6C:
+ bl dp01_tbl4_exec_completed
+_08037B70:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8037B24
+
+ thumb_func_start sub_8037B78
+sub_8037B78: @ 8037B78
+ push {lr}
+ ldr r2, _08037BAC @ =gSprites
+ ldr r0, _08037BB0 @ =gUnknown_02024BE0
+ ldr r1, _08037BB4 @ =gUnknown_02024A60
+ ldrb r3, [r1]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ bne _08037BA6
+ ldr r0, _08037BB8 @ =gUnknown_03004340
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl4_exec_completed
+_08037BA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037BAC: .4byte gSprites
+_08037BB0: .4byte gUnknown_02024BE0
+_08037BB4: .4byte gUnknown_02024A60
+_08037BB8: .4byte gUnknown_03004340
+ thumb_func_end sub_8037B78
+
+ thumb_func_start sub_8037BBC
+sub_8037BBC: @ 8037BBC
+ push {r4-r6,lr}
+ ldr r6, _08037C18 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _08037C1C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08037C12
+ ldr r5, _08037C20 @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08037C24 @ =gSprites
+ 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
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _08037C28 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl4_exec_completed
+_08037C12:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037C18: .4byte gUnknown_02024A60
+_08037C1C: .4byte 0x02017810
+_08037C20: .4byte gUnknown_02024BE0
+_08037C24: .4byte gSprites
+_08037C28: .4byte gUnknown_03004340
+ thumb_func_end sub_8037BBC
+
+ thumb_func_start sub_8037C2C
+sub_8037C2C: @ 8037C2C
+ push {lr}
+ ldr r0, _08037C40 @ =gUnknown_03004210
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _08037C3A
+ bl dp01_tbl4_exec_completed
+_08037C3A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037C40: .4byte gUnknown_03004210
+ thumb_func_end sub_8037C2C
+
+ thumb_func_start dp01t_0F_4_move_anim
+dp01t_0F_4_move_anim: @ 8037C44
+ push {r4,lr}
+ ldr r1, _08037C80 @ =gUnknown_02024BE0
+ ldr r0, _08037C84 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _08037C88 @ =gSprites
+ 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 _08037C90
+ 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, _08037C8C @ =gUnknown_02024E6D
+ strb r3, [r0]
+ bl dp01_tbl4_exec_completed
+ b _08037CBA
+ .align 2, 0
+_08037C80: .4byte gUnknown_02024BE0
+_08037C84: .4byte gUnknown_02024A60
+_08037C88: .4byte gSprites
+_08037C8C: .4byte gUnknown_02024E6D
+_08037C90:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08037CB4
+ 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]
+_08037CB4:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_08037CBA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_0F_4_move_anim
+
+ thumb_func_start sub_8037CC0
+sub_8037CC0: @ 8037CC0
+ push {r4,lr}
+ ldr r2, _08037D10 @ =gSprites
+ ldr r0, _08037D14 @ =gUnknown_03004340
+ ldr r4, _08037D18 @ =gUnknown_02024A60
+ ldrb r3, [r4]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08037D1C @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08037D08
+ lsls r0, r3, 2
+ ldr r1, _08037D20 @ =0x02017800
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08037CFC
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_08037CFC:
+ ldr r0, _08037D24 @ =gUnknown_03004330
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08037D28 @ =sub_8037D2C
+ str r0, [r1]
+_08037D08:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037D10: .4byte gSprites
+_08037D14: .4byte gUnknown_03004340
+_08037D18: .4byte gUnknown_02024A60
+_08037D1C: .4byte SpriteCallbackDummy
+_08037D20: .4byte 0x02017800
+_08037D24: .4byte gUnknown_03004330
+_08037D28: .4byte sub_8037D2C
+ thumb_func_end sub_8037CC0
+
+ thumb_func_start sub_8037D2C
+sub_8037D2C: @ 8037D2C
+ push {lr}
+ ldr r0, _08037D58 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037D5C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08037D52
+ ldr r0, _08037D60 @ =c3_0802FDF4
+ movs r1, 0xA
+ bl CreateTask
+ bl dp01_tbl4_exec_completed
+_08037D52:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037D58: .4byte gUnknown_02024A60
+_08037D5C: .4byte 0x02017810
+_08037D60: .4byte c3_0802FDF4
+ thumb_func_end sub_8037D2C
+
+ thumb_func_start sub_8037D64
+sub_8037D64: @ 8037D64
+ push {r4,r5,lr}
+ ldr r5, _08037E08 @ =gUnknown_02024A60
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _08037E0C @ =0x02017810
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08037E00
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _08037E10 @ =0x000027f9
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r1, _08037E14 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037E18 @ =gSprites
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r4, _08037E1C @ =gUnknown_03004340
+ ldrb r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _08037E20 @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08037E24 @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ bl sub_804777C
+ ldrb r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r5]
+ bl sub_8031F88
+ ldr r1, _08037E28 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037E2C @ =sub_8037CC0
+ str r1, [r0]
+_08037E00:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037E08: .4byte gUnknown_02024A60
+_08037E0C: .4byte 0x02017810
+_08037E10: .4byte 0x000027f9
+_08037E14: .4byte gUnknown_02024BE0
+_08037E18: .4byte gSprites
+_08037E1C: .4byte gUnknown_03004340
+_08037E20: .4byte gUnknown_02024A6A
+_08037E24: .4byte gEnemyParty
+_08037E28: .4byte gUnknown_03004330
+_08037E2C: .4byte sub_8037CC0
+ thumb_func_end sub_8037D64
+
+ thumb_func_start sub_8037E30
+sub_8037E30: @ 8037E30
+ push {r4-r6,lr}
+ ldr r5, _08037ECC @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _08037ED0 @ =0x02017810
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _08037E5E
+ ldr r0, _08037ED4 @ =gUnknown_02024A6A
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08037ED8 @ =gEnemyParty
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08037E5E:
+ ldr r4, _08037EDC @ =gSprites
+ ldr r0, _08037EE0 @ =gUnknown_0300434C
+ ldrb r2, [r5]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r4, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _08037EE4 @ =SpriteCallbackDummy
+ cmp r1, r0
+ bne _08037EC4
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _08037EC4
+ adds r0, r3, r4
+ bl DestroySprite
+ ldrb r4, [r5]
+ ldr r1, _08037ED4 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08037ED8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _08037EE8 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037EEC @ =sub_8037D64
+ str r1, [r0]
+_08037EC4:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037ECC: .4byte gUnknown_02024A60
+_08037ED0: .4byte 0x02017810
+_08037ED4: .4byte gUnknown_02024A6A
+_08037ED8: .4byte gEnemyParty
+_08037EDC: .4byte gSprites
+_08037EE0: .4byte gUnknown_0300434C
+_08037EE4: .4byte SpriteCallbackDummy
+_08037EE8: .4byte gUnknown_03004330
+_08037EEC: .4byte sub_8037D64
+ thumb_func_end sub_8037E30
+
+ thumb_func_start sub_8037EF0
+sub_8037EF0: @ 8037EF0
+ push {lr}
+ ldr r0, _08037F20 @ =gReceivedRemoteLinkPlayers
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08037F1C
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, _08037F24 @ =gMain
+ ldr r0, _08037F28 @ =0x0000043d
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08037F2C @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _08037F30 @ =c2_8011A1C
+ bl SetMainCallback2
+_08037F1C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037F20: .4byte gReceivedRemoteLinkPlayers
+_08037F24: .4byte gMain
+_08037F28: .4byte 0x0000043d
+_08037F2C: .4byte gUnknown_030042D0
+_08037F30: .4byte c2_8011A1C
+ thumb_func_end sub_8037EF0
+
+ thumb_func_start sub_8037F34
+sub_8037F34: @ 8037F34
+ push {lr}
+ ldr r0, _08037F64 @ =gPaletteFade
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08037F9A
+ ldr r0, _08037F68 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08037F78
+ bl sub_800832C
+ ldr r1, _08037F6C @ =gUnknown_03004330
+ ldr r0, _08037F70 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08037F74 @ =sub_8037EF0
+ str r1, [r0]
+ b _08037F9A
+ .align 2, 0
+_08037F64: .4byte gPaletteFade
+_08037F68: .4byte gUnknown_020239F8
+_08037F6C: .4byte gUnknown_03004330
+_08037F70: .4byte gUnknown_02024A60
+_08037F74: .4byte sub_8037EF0
+_08037F78:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r2, _08037FA0 @ =gMain
+ ldr r0, _08037FA4 @ =0x0000043d
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _08037FA8 @ =gUnknown_030042D0
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08037F9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037FA0: .4byte gMain
+_08037FA4: .4byte 0x0000043d
+_08037FA8: .4byte gUnknown_030042D0
+ thumb_func_end sub_8037F34
+
+ thumb_func_start sub_8037FAC
+sub_8037FAC: @ 8037FAC
+ push {lr}
+ ldr r0, _08037FD0 @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08037FD4 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08037FCA
+ bl dp01_tbl4_exec_completed
+_08037FCA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037FD0: .4byte gUnknown_02024A60
+_08037FD4: .4byte 0x02017810
+ thumb_func_end sub_8037FAC
+
+ thumb_func_start sub_8037FD8
+sub_8037FD8: @ 8037FD8
+ push {lr}
+ ldr r0, _08037FFC @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08038000 @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08037FF6
+ bl dp01_tbl4_exec_completed
+_08037FF6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08037FFC: .4byte gUnknown_02024A60
+_08038000: .4byte 0x02017810
+ thumb_func_end sub_8037FD8
+
+ thumb_func_start dp01_tbl4_exec_completed
+dp01_tbl4_exec_completed: @ 8038004
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _08038044 @ =gUnknown_03004330
+ ldr r4, _08038048 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803804C @ =sub_803752C
+ str r1, [r0]
+ ldr r0, _08038050 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08038058
+ 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, _08038054 @ =gUnknown_02023A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0803806A
+ .align 2, 0
+_08038044: .4byte gUnknown_03004330
+_08038048: .4byte gUnknown_02024A60
+_0803804C: .4byte sub_803752C
+_08038050: .4byte gUnknown_020239F8
+_08038054: .4byte gUnknown_02023A60
+_08038058:
+ ldr r2, _08038074 @ =gUnknown_02024A64
+ ldr r1, _08038078 @ =gBitTable
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0803806A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08038074: .4byte gUnknown_02024A64
+_08038078: .4byte gBitTable
+ thumb_func_end dp01_tbl4_exec_completed
+
+ thumb_func_start dp01t_00_4_getattr
+dp01t_00_4_getattr: @ 803807C
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _080380A8 @ =gUnknown_02023A60
+ ldr r0, _080380AC @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080380B4
+ ldr r0, _080380B0 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl dp01_getattr_by_ch1_for_player_pokemon__
+ adds r6, r0, 0
+ b _080380D6
+ .align 2, 0
+_080380A8: .4byte gUnknown_02023A60
+_080380AC: .4byte gUnknown_02024A60
+_080380B0: .4byte gUnknown_02024A6A
+_080380B4:
+ ldrb r4, [r1]
+ movs r5, 0
+_080380B8:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080380CE
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl dp01_getattr_by_ch1_for_player_pokemon__
+ adds r6, r0
+_080380CE:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _080380B8
+_080380D6:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl4_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_4_getattr
+
+ thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
+dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
+ 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, _08038124 @ =gUnknown_02023A60
+ ldr r3, _08038128 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _0803811A
+ bl _08038886
+_0803811A:
+ lsls r0, 2
+ ldr r1, _0803812C @ =_08038130
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038124: .4byte gUnknown_02023A60
+_08038128: .4byte gUnknown_02024A60
+_0803812C: .4byte _08038130
+ .align 2, 0
+_08038130:
+ .4byte _08038220
+ .4byte _08038444
+ .4byte _08038454
+ .4byte _08038464
+ .4byte _080384CC
+ .4byte _080384CC
+ .4byte _080384CC
+ .4byte _080384CC
+ .4byte _080384E8
+ .4byte _08038524
+ .4byte _08038524
+ .4byte _08038524
+ .4byte _08038524
+ .4byte _08038886
+ .4byte _08038886
+ .4byte _08038886
+ .4byte _08038886
+ .4byte _08038540
+ .4byte _08038550
+ .4byte _08038580
+ .4byte _08038590
+ .4byte _080385A0
+ .4byte _080385B0
+ .4byte _080385C0
+ .4byte _080385D0
+ .4byte _080385E0
+ .4byte _080385F0
+ .4byte _08038600
+ .4byte _08038610
+ .4byte _08038620
+ .4byte _08038630
+ .4byte _08038640
+ .4byte _08038690
+ .4byte _080386A0
+ .4byte _080386B0
+ .4byte _080386C0
+ .4byte _080386D0
+ .4byte _080386E0
+ .4byte _080386F0
+ .4byte _08038700
+ .4byte _08038710
+ .4byte _08038744
+ .4byte _08038754
+ .4byte _08038764
+ .4byte _08038774
+ .4byte _08038784
+ .4byte _08038794
+ .4byte _080387A4
+ .4byte _080387B4
+ .4byte _080387D4
+ .4byte _080387E4
+ .4byte _080387F4
+ .4byte _08038804
+ .4byte _08038814
+ .4byte _08038824
+ .4byte _08038834
+ .4byte _08038844
+ .4byte _08038854
+ .4byte _08038864
+ .4byte _08038874
+_08038220:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038434 @ =gEnemyParty
+ 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
+_0803826C:
+ 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 _0803826C
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038434 @ =gEnemyParty
+ 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, _08038438 @ =0xfffffc1f
+ 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, _0803843C @ =0xfff07fff
+ 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, _08038440 @ =0xfffffe0f
+ 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
+_08038424:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _08038424
+ b _08038886
+ .align 2, 0
+_08038434: .4byte gEnemyParty
+_08038438: .4byte 0xfffffc1f
+_0803843C: .4byte 0xfff07fff
+_08038440: .4byte 0xfffffe0f
+_08038444:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038450 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ b _080387BE
+ .align 2, 0
+_08038450: .4byte gEnemyParty
+_08038454:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038460 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xC
+ b _080387BE
+ .align 2, 0
+_08038460: .4byte gEnemyParty
+_08038464:
+ 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, _080384C8 @ =gEnemyParty
+ adds r4, r1, r0
+ mov r8, r9
+_0803847A:
+ 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 _0803847A
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080384C8 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_080384B8:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _080384B8
+ b _08038886
+ .align 2, 0
+_080384C8: .4byte gEnemyParty
+_080384CC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080384E4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _080387BE
+ .align 2, 0
+_080384E4: .4byte gEnemyParty
+_080384E8:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _08038520 @ =gEnemyParty
+ mov r8, r2
+_080384F4:
+ 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 _080384F4
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038520 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _08038886
+ .align 2, 0
+_08038520: .4byte gEnemyParty
+_08038524:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803853C @ =gEnemyParty
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _0803887E
+ .align 2, 0
+_0803853C: .4byte gEnemyParty
+_08038540:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803854C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1
+ b _0803855A
+ .align 2, 0
+_0803854C: .4byte gEnemyParty
+_08038550:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803857C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x19
+_0803855A:
+ 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 _08038886
+ .align 2, 0
+_0803857C: .4byte gEnemyParty
+_08038580:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803858C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1A
+ b _0803887E
+ .align 2, 0
+_0803858C: .4byte gEnemyParty
+_08038590:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803859C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1B
+ b _0803887E
+ .align 2, 0
+_0803859C: .4byte gEnemyParty
+_080385A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385AC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1C
+ b _0803887E
+ .align 2, 0
+_080385AC: .4byte gEnemyParty
+_080385B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385BC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1D
+ b _0803887E
+ .align 2, 0
+_080385BC: .4byte gEnemyParty
+_080385C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385CC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1E
+ b _0803887E
+ .align 2, 0
+_080385CC: .4byte gEnemyParty
+_080385D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385DC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x1F
+ b _0803887E
+ .align 2, 0
+_080385DC: .4byte gEnemyParty
+_080385E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385EC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x20
+ b _0803887E
+ .align 2, 0
+_080385EC: .4byte gEnemyParty
+_080385F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080385FC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x22
+ b _0803887E
+ .align 2, 0
+_080385FC: .4byte gEnemyParty
+_08038600:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803860C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x23
+ b _0803887E
+ .align 2, 0
+_0803860C: .4byte gEnemyParty
+_08038610:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803861C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x24
+ b _0803887E
+ .align 2, 0
+_0803861C: .4byte gEnemyParty
+_08038620:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803862C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x25
+ b _0803887E
+ .align 2, 0
+_0803862C: .4byte gEnemyParty
+_08038630:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803863C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x26
+ b _0803887E
+ .align 2, 0
+_0803863C: .4byte gEnemyParty
+_08038640:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0803868C @ =gEnemyParty
+ 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 _08038886
+ .align 2, 0
+_0803868C: .4byte gEnemyParty
+_08038690:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803869C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x27
+ b _0803887E
+ .align 2, 0
+_0803869C: .4byte gEnemyParty
+_080386A0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386AC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x28
+ b _0803887E
+ .align 2, 0
+_080386AC: .4byte gEnemyParty
+_080386B0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386BC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x29
+ b _0803887E
+ .align 2, 0
+_080386BC: .4byte gEnemyParty
+_080386C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386CC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2A
+ b _0803887E
+ .align 2, 0
+_080386CC: .4byte gEnemyParty
+_080386D0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386DC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2B
+ b _0803887E
+ .align 2, 0
+_080386DC: .4byte gEnemyParty
+_080386E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386EC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2C
+ b _0803887E
+ .align 2, 0
+_080386EC: .4byte gEnemyParty
+_080386F0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080386FC @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0
+ b _0803871A
+ .align 2, 0
+_080386FC: .4byte gEnemyParty
+_08038700:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803870C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x9
+ b _080387BE
+ .align 2, 0
+_0803870C: .4byte gEnemyParty
+_08038710:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038740 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x37
+_0803871A:
+ 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 _08038886
+ .align 2, 0
+_08038740: .4byte gEnemyParty
+_08038744:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038750 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x38
+ b _0803887E
+ .align 2, 0
+_08038750: .4byte gEnemyParty
+_08038754:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038760 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x39
+ b _080387BE
+ .align 2, 0
+_08038760: .4byte gEnemyParty
+_08038764:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038770 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ b _080387BE
+ .align 2, 0
+_08038770: .4byte gEnemyParty
+_08038774:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038780 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3B
+ b _080387BE
+ .align 2, 0
+_08038780: .4byte gEnemyParty
+_08038784:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038790 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3C
+ b _080387BE
+ .align 2, 0
+_08038790: .4byte gEnemyParty
+_08038794:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387A0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3D
+ b _080387BE
+ .align 2, 0
+_080387A0: .4byte gEnemyParty
+_080387A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387B0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3E
+ b _080387BE
+ .align 2, 0
+_080387B0: .4byte gEnemyParty
+_080387B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387D0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3F
+_080387BE:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _08038886
+ .align 2, 0
+_080387D0: .4byte gEnemyParty
+_080387D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387E0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x16
+ b _0803887E
+ .align 2, 0
+_080387E0: .4byte gEnemyParty
+_080387E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080387F0 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x17
+ b _0803887E
+ .align 2, 0
+_080387F0: .4byte gEnemyParty
+_080387F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038800 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x18
+ b _0803887E
+ .align 2, 0
+_08038800: .4byte gEnemyParty
+_08038804:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038810 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x21
+ b _0803887E
+ .align 2, 0
+_08038810: .4byte gEnemyParty
+_08038814:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038820 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x2F
+ b _0803887E
+ .align 2, 0
+_08038820: .4byte gEnemyParty
+_08038824:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038830 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x30
+ b _0803887E
+ .align 2, 0
+_08038830: .4byte gEnemyParty
+_08038834:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038840 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x32
+ b _0803887E
+ .align 2, 0
+_08038840: .4byte gEnemyParty
+_08038844:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038850 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x33
+ b _0803887E
+ .align 2, 0
+_08038850: .4byte gEnemyParty
+_08038854:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038860 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x34
+ b _0803887E
+ .align 2, 0
+_08038860: .4byte gEnemyParty
+_08038864:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038870 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x35
+ b _0803887E
+ .align 2, 0
+_08038870: .4byte gEnemyParty
+_08038874:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038898 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x36
+_0803887E:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_08038886:
+ 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
+_08038898: .4byte gEnemyParty
+ thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
+
+ thumb_func_start sub_803889C
+sub_803889C: @ 803889C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803889C
+
+ thumb_func_start sub_80388A8
+sub_80388A8: @ 80388A8
+ push {r4,r5,lr}
+ ldr r1, _080388CC @ =gUnknown_02023A60
+ ldr r0, _080388D0 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080388D8
+ ldr r0, _080388D4 @ =gUnknown_02024A6A
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8038900
+ b _080388F6
+ .align 2, 0
+_080388CC: .4byte gUnknown_02023A60
+_080388D0: .4byte gUnknown_02024A60
+_080388D4: .4byte gUnknown_02024A6A
+_080388D8:
+ ldrb r4, [r1]
+ movs r5, 0
+_080388DC:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _080388EA
+ adds r0, r5, 0
+ bl sub_8038900
+_080388EA:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _080388DC
+_080388F6:
+ bl dp01_tbl4_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80388A8
+
+ thumb_func_start sub_8038900
+sub_8038900: @ 8038900
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r3, _08038938 @ =gUnknown_02024A60
+ ldrb r0, [r3]
+ lsls r0, 9
+ ldr r2, _0803893C @ =gUnknown_02023A63
+ adds r4, r0, r2
+ adds r7, r4, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ adds r3, r2, 0
+ cmp r0, 0x3B
+ bls _0803892E
+ bl _0803920C
+_0803892E:
+ lsls r0, 2
+ ldr r1, _08038940 @ =_08038944
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08038938: .4byte gUnknown_02024A60
+_0803893C: .4byte gUnknown_02023A63
+_08038940: .4byte _08038944
+ .align 2, 0
+_08038944:
+ .4byte _08038A34
+ .4byte _08038BCC
+ .4byte _08038BE8
+ .4byte _08038C04
+ .4byte _08038C58
+ .4byte _08038C58
+ .4byte _08038C58
+ .4byte _08038C58
+ .4byte _08038C78
+ .4byte _08038CE0
+ .4byte _08038CE0
+ .4byte _08038CE0
+ .4byte _08038CE0
+ .4byte _0803920C
+ .4byte _0803920C
+ .4byte _0803920C
+ .4byte _0803920C
+ .4byte _08038D08
+ .4byte _08038D24
+ .4byte _08038D40
+ .4byte _08038D5C
+ .4byte _08038D78
+ .4byte _08038D94
+ .4byte _08038DB0
+ .4byte _08038DCC
+ .4byte _08038DE8
+ .4byte _08038E04
+ .4byte _08038E20
+ .4byte _08038E3C
+ .4byte _08038E58
+ .4byte _08038E74
+ .4byte _08038E90
+ .4byte _08038F04
+ .4byte _08038F20
+ .4byte _08038F3C
+ .4byte _08038F58
+ .4byte _08038F74
+ .4byte _08038F90
+ .4byte _08038FAC
+ .4byte _08038FC8
+ .4byte _08038FE4
+ .4byte _08039000
+ .4byte _0803901C
+ .4byte _08039038
+ .4byte _08039054
+ .4byte _08039070
+ .4byte _0803908C
+ .4byte _080390A8
+ .4byte _080390C4
+ .4byte _080390E0
+ .4byte _080390FC
+ .4byte _08039118
+ .4byte _08039134
+ .4byte _08039150
+ .4byte _0803916C
+ .4byte _08039188
+ .4byte _080391A4
+ .4byte _080391C0
+ .4byte _080391DC
+ .4byte _080391F8
+_08038A34:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038BC8 @ =gEnemyParty
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r7, 0
+ bl SetMonData
+ adds r2, r7, 0
+ adds r2, 0x2E
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0x3B
+ adds r0, r7
+ mov r10, r0
+ adds r0, r7, 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, r7, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r7, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r7, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r6, r7, 0
+ adds r6, 0x24
+ adds r4, r7, 0
+ adds r4, 0xC
+_08038A9A:
+ 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, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _08038A9A
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038BC8 @ =gEnemyParty
+ 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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, [r7, 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 _0803920C
+ .align 2, 0
+_08038BC8: .4byte gEnemyParty
+_08038BCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038BE4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xB
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038BE4: .4byte gEnemyParty
+_08038BE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038C00 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0xC
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038C00: .4byte gEnemyParty
+_08038C04:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r4
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08038C54 @ =gEnemyParty
+ adds r7, r1, r0
+ adds r6, r4, 0
+ adds r6, 0x8
+_08038C1C:
+ 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 _08038C1C
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038C54 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038C54: .4byte gEnemyParty
+_08038C58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038C70 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08038C74 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08038CF6
+ .align 2, 0
+_08038C70: .4byte gEnemyParty
+_08038C74: .4byte gUnknown_02023A60
+_08038C78:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038CDC @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x11
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038CDC: .4byte gEnemyParty
+_08038CE0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D00 @ =gEnemyParty
+ adds r0, r1
+ ldr r3, _08038D04 @ =gUnknown_02023A60
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_08038CF6:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D00: .4byte gEnemyParty
+_08038D04: .4byte gUnknown_02023A60
+_08038D08:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D20 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D20: .4byte gEnemyParty
+_08038D24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D3C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x19
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D3C: .4byte gEnemyParty
+_08038D40:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D58 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1A
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D58: .4byte gEnemyParty
+_08038D5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D74 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1B
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D74: .4byte gEnemyParty
+_08038D78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038D90 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1C
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038D90: .4byte gEnemyParty
+_08038D94:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038DAC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1D
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038DAC: .4byte gEnemyParty
+_08038DB0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038DC8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1E
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038DC8: .4byte gEnemyParty
+_08038DCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038DE4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x1F
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038DE4: .4byte gEnemyParty
+_08038DE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E00 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x20
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E00: .4byte gEnemyParty
+_08038E04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E1C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x22
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E1C: .4byte gEnemyParty
+_08038E20:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E38 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x23
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E38: .4byte gEnemyParty
+_08038E3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E54 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x24
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E54: .4byte gEnemyParty
+_08038E58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E70 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x25
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E70: .4byte gEnemyParty
+_08038E74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038E8C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x26
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038E8C: .4byte gEnemyParty
+_08038E90:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08038F00 @ =gEnemyParty
+ adds r4, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ adds r0, r4, 0
+ movs r1, 0x27
+ str r3, [sp, 0x34]
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r6]
+ lsls r2, 9
+ ldr r3, [sp, 0x34]
+ adds r0, r3, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _08038F9E
+ .align 2, 0
+_08038F00: .4byte gEnemyParty
+_08038F04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F1C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x27
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F1C: .4byte gEnemyParty
+_08038F20:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F38 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x28
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F38: .4byte gEnemyParty
+_08038F3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F54 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x29
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F54: .4byte gEnemyParty
+_08038F58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F70 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2A
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F70: .4byte gEnemyParty
+_08038F74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038F8C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2B
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038F8C: .4byte gEnemyParty
+_08038F90:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FA8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+_08038F9E:
+ movs r1, 0x2C
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FA8: .4byte gEnemyParty
+_08038FAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FC4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FC4: .4byte gEnemyParty
+_08038FC8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FE0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x9
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FE0: .4byte gEnemyParty
+_08038FE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08038FFC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x37
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08038FFC: .4byte gEnemyParty
+_08039000:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039018 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x38
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039018: .4byte gEnemyParty
+_0803901C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039034 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x39
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039034: .4byte gEnemyParty
+_08039038:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039050 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3A
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039050: .4byte gEnemyParty
+_08039054:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803906C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3B
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_0803906C: .4byte gEnemyParty
+_08039070:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039088 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3C
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039088: .4byte gEnemyParty
+_0803908C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390A4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3D
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390A4: .4byte gEnemyParty
+_080390A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390C0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3E
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390C0: .4byte gEnemyParty
+_080390C4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390DC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x3F
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390DC: .4byte gEnemyParty
+_080390E0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080390F8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x16
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080390F8: .4byte gEnemyParty
+_080390FC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039114 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x17
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039114: .4byte gEnemyParty
+_08039118:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039130 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x18
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039130: .4byte gEnemyParty
+_08039134:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803914C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x21
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_0803914C: .4byte gEnemyParty
+_08039150:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039168 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x2F
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039168: .4byte gEnemyParty
+_0803916C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08039184 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x30
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_08039184: .4byte gEnemyParty
+_08039188:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391A0 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x32
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391A0: .4byte gEnemyParty
+_080391A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391BC @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x33
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391BC: .4byte gEnemyParty
+_080391C0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391D8 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x34
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391D8: .4byte gEnemyParty
+_080391DC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _080391F4 @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x35
+ bl SetMonData
+ b _0803920C
+ .align 2, 0
+_080391F4: .4byte gEnemyParty
+_080391F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0803921C @ =gEnemyParty
+ adds r0, r1
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r2, r3
+ movs r1, 0x36
+ bl SetMonData
+_0803920C:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803921C: .4byte gEnemyParty
+ thumb_func_end sub_8038900
+
+ thumb_func_start sub_8039220
+sub_8039220: @ 8039220
+ push {r4-r7,lr}
+ ldr r1, _08039284 @ =gUnknown_02024A6A
+ ldr r7, _08039288 @ =gUnknown_02024A60
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _0803928C @ =gUnknown_02023A60
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _08039290 @ =gEnemyParty
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _08039278
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_08039256:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _08039256
+_08039278:
+ bl dp01_tbl4_exec_completed
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039284: .4byte gUnknown_02024A6A
+_08039288: .4byte gUnknown_02024A60
+_0803928C: .4byte gUnknown_02023A60
+_08039290: .4byte gEnemyParty
+ thumb_func_end sub_8039220
+
+ thumb_func_start sub_8039294
+sub_8039294: @ 8039294
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r7, _080393BC @ =gUnknown_02024A6A
+ ldr r6, _080393C0 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r1, 0x64
+ mov r10, r1
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r1, _080393C4 @ =gEnemyParty
+ mov r9, r1
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r2, r10
+ muls r2, r0
+ adds r0, r2, 0
+ add r0, r9
+ bl sub_8031794
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _080393C8 @ =gUnknown_02024E8C
+ mov r8, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _080393CC @ =gUnknown_02024BE0
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, _080393D0 @ =gSprites
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _080393D4 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r2, [r6]
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x2E]
+ ldrb r3, [r6]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r2, [r6]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _080393D8 @ =gUnknown_02024E84
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartSpriteAnim
+ ldrb r4, [r6]
+ lsls r0, r4, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r9
+ movs r1, 0xB
+ bl GetMonData
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_8032984
+ ldr r1, _080393DC @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080393E0 @ =sub_8037A74
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080393BC: .4byte gUnknown_02024A6A
+_080393C0: .4byte gUnknown_02024A60
+_080393C4: .4byte gEnemyParty
+_080393C8: .4byte gUnknown_02024E8C
+_080393CC: .4byte gUnknown_02024BE0
+_080393D0: .4byte gSprites
+_080393D4: .4byte 0x0000ff10
+_080393D8: .4byte gUnknown_02024E84
+_080393DC: .4byte gUnknown_03004330
+_080393E0: .4byte sub_8037A74
+ thumb_func_end sub_8039294
+
+ thumb_func_start sub_80393E4
+sub_80393E4: @ 80393E4
+ push {r4,lr}
+ ldr r1, _0803941C @ =gUnknown_02024A6A
+ ldr r4, _08039420 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, _08039424 @ =gUnknown_02023A60
+ lsls r0, 9
+ adds r1, r3, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2]
+ ldrb r0, [r4]
+ lsls r1, r0, 9
+ adds r3, 0x2
+ adds r1, r3
+ ldrb r1, [r1]
+ bl sub_8039430
+ ldr r1, _08039428 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803942C @ =sub_8037E30
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803941C: .4byte gUnknown_02024A6A
+_08039420: .4byte gUnknown_02024A60
+_08039424: .4byte gUnknown_02023A60
+_08039428: .4byte gUnknown_03004330
+_0803942C: .4byte sub_8037E30
+ thumb_func_end sub_80393E4
+
+ thumb_func_start sub_8039430
+sub_8039430: @ 8039430
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _0803958C @ =gUnknown_02024A6A
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, _08039590 @ =gUnknown_02023A60
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r4]
+ ldrh r0, [r4]
+ movs r1, 0x64
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r5, _08039594 @ =gEnemyParty
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _08039598 @ =sub_80312F0
+ bl object_new_hidden_with_callback
+ ldr r1, _0803959C @ =gUnknown_0300434C
+ mov r10, r1
+ add r10, r6
+ mov r1, r10
+ strb r0, [r1]
+ ldrh r0, [r4]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r5
+ adds r1, r6, 0
+ bl sub_8031794
+ 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, _080395A0 @ =gUnknown_02024E8C
+ mov r9, 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, r9
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _080395A4 @ =gUnknown_02024BE0
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _080395A8 @ =gSprites
+ mov r0, r10
+ 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, _080395AC @ =gUnknown_02024E84
+ 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, _080395B0 @ =SpriteCallbackDummy
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFE
+ bl sub_8046400
+ mov r1, r10
+ 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
+_0803958C: .4byte gUnknown_02024A6A
+_08039590: .4byte gUnknown_02023A60
+_08039594: .4byte gEnemyParty
+_08039598: .4byte sub_80312F0
+_0803959C: .4byte gUnknown_0300434C
+_080395A0: .4byte gUnknown_02024E8C
+_080395A4: .4byte gUnknown_02024BE0
+_080395A8: .4byte gSprites
+_080395AC: .4byte gUnknown_02024E84
+_080395B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8039430
+
+ thumb_func_start sub_80395B4
+sub_80395B4: @ 80395B4
+ push {r4-r6,lr}
+ ldr r1, _080395E4 @ =gUnknown_02023A60
+ ldr r6, _080395E8 @ =gUnknown_02024A60
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _080395F8
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _080395EC @ =0x02017810
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _080395F0 @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080395F4 @ =sub_8039648
+ str r1, [r0]
+ b _08039634
+ .align 2, 0
+_080395E4: .4byte gUnknown_02023A60
+_080395E8: .4byte gUnknown_02024A60
+_080395EC: .4byte 0x02017810
+_080395F0: .4byte gUnknown_03004330
+_080395F4: .4byte sub_8039648
+_080395F8:
+ ldr r5, _0803963C @ =gUnknown_02024BE0
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08039640 @ =gSprites
+ 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
+ ldrb r0, [r6]
+ bl sub_8032A08
+ ldr r1, _08039644 @ =gUnknown_03004340
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl4_exec_completed
+_08039634:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803963C: .4byte gUnknown_02024BE0
+_08039640: .4byte gSprites
+_08039644: .4byte gUnknown_03004340
+ thumb_func_end sub_80395B4
+
+ thumb_func_start sub_8039648
+sub_8039648: @ 8039648
+ push {r4,r5,lr}
+ ldr r5, _08039664 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _08039668 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _0803966C
+ cmp r0, 0x1
+ beq _08039698
+ b _080396C0
+ .align 2, 0
+_08039664: .4byte gUnknown_02024A60
+_08039668: .4byte 0x02017810
+_0803966C:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08039688
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08039688:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080396C0
+_08039698:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080396C0
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x2
+ bl move_anim_start_t4
+ ldr r1, _080396C8 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080396CC @ =sub_8037BBC
+ str r1, [r0]
+_080396C0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080396C8: .4byte gUnknown_03004330
+_080396CC: .4byte sub_8037BBC
+ thumb_func_end sub_8039648
+
+ thumb_func_start sub_80396D0
+sub_80396D0: @ 80396D0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r0, _08039704 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08039714
+ ldr r6, _08039708 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ ands r1, r0
+ movs r5, 0x10
+ cmp r1, 0
+ beq _080396F8
+ ldr r5, _0803970C @ =0x0000fff0
+_080396F8:
+ ldr r4, _08039710 @ =gLinkPlayers
+ ldrb r0, [r6]
+ bl sub_803FC34
+ b _08039724
+ .align 2, 0
+_08039704: .4byte gUnknown_020239F8
+_08039708: .4byte gUnknown_02024A60
+_0803970C: .4byte 0x0000fff0
+_08039710: .4byte gLinkPlayers
+_08039714:
+ movs r5, 0
+ ldr r4, _0803986C @ =gLinkPlayers
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+_08039724:
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x13]
+ mov r9, r0
+ ldr r0, _08039870 @ =gUnknown_02024A60
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r6, _08039874 @ =gUnknown_02024E8C
+ lsls r5, 16
+ movs r2, 0xB0
+ lsls r2, 16
+ adds r5, r2
+ asrs r5, 16
+ ldr r1, _08039878 @ =gTrainerFrontPicCoords
+ mov r2, r9
+ lsls r0, r2, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 14
+ adds r4, r0
+ asrs r4, 16
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _0803987C @ =gUnknown_02024BE0
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _08039880 @ =gSprites
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08039884 @ =0x0000ff10
+ strh r1, [r0, 0x24]
+ ldrb r0, [r2]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
+ mov r1, r9
+ lsls r6, r1, 3
+ adds r0, r6, r0
+ ldrh r0, [r0, 0x4]
+ bl IndexOfSpritePaletteTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r1, [r1]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r4
+ lsls r0, 4
+ ldrb r3, [r2, 0x5]
+ movs r1, 0xF
+ ands r1, r3
+ orrs r1, r0
+ strb r1, [r2, 0x5]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x4]
+ lsls r0, 22
+ lsrs r0, 22
+ strh r0, [r1, 0x38]
+ ldr r0, _0803988C @ =gTrainerFrontPicTable
+ adds r6, r0
+ ldrh r0, [r6, 0x6]
+ bl GetSpriteTileStartByTag
+ mov r2, r8
+ ldrb r1, [r2]
+ adds r1, r5
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldr r2, _08039890 @ =0x000003ff
+ ands r2, r0
+ ldrh r3, [r1, 0x4]
+ ldr r0, _08039894 @ =0xfffffc00
+ ands r0, r3
+ orrs r0, r2
+ strh r0, [r1, 0x4]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r2, r9
+ strh r2, [r0, 0x6]
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _08039898 @ =sub_80313A0
+ str r1, [r0]
+ ldr r1, _0803989C @ =gUnknown_03004330
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080398A0 @ =sub_803757C
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803986C: .4byte gLinkPlayers
+_08039870: .4byte gUnknown_02024A60
+_08039874: .4byte gUnknown_02024E8C
+_08039878: .4byte gTrainerFrontPicCoords
+_0803987C: .4byte gUnknown_02024BE0
+_08039880: .4byte gSprites
+_08039884: .4byte 0x0000ff10
+_08039888: .4byte gTrainerFrontPicPaletteTable
+_0803988C: .4byte gTrainerFrontPicTable
+_08039890: .4byte 0x000003ff
+_08039894: .4byte 0xfffffc00
+_08039898: .4byte sub_80313A0
+_0803989C: .4byte gUnknown_03004330
+_080398A0: .4byte sub_803757C
+ thumb_func_end sub_80396D0
+
+ thumb_func_start sub_80398A4
+sub_80398A4: @ 80398A4
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80398A4
+
+ thumb_func_start sub_80398B0
+sub_80398B0: @ 80398B0
+ push {r4-r6,lr}
+ ldr r6, _08039940 @ =gUnknown_02024BE0
+ ldr r4, _08039944 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08039948 @ =gSprites
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0803994C @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08039950 @ =SpriteCallbackDummy
+ bl oamt_set_x3A_32
+ ldr r1, _08039954 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039958 @ =sub_80375B4
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039940: .4byte gUnknown_02024BE0
+_08039944: .4byte gUnknown_02024A60
+_08039948: .4byte gSprites
+_0803994C: .4byte sub_8078B34
+_08039950: .4byte SpriteCallbackDummy
+_08039954: .4byte gUnknown_03004330
+_08039958: .4byte sub_80375B4
+ thumb_func_end sub_80398B0
+
+ thumb_func_start sub_803995C
+sub_803995C: @ 803995C
+ push {r4,r5,lr}
+ ldr r5, _080399A0 @ =gUnknown_02024A60
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _080399A4 @ =0x02017810
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _080399A8
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0803998E
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0803998E:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _080399E4
+ .align 2, 0
+_080399A0: .4byte gUnknown_02024A60
+_080399A4: .4byte 0x02017810
+_080399A8:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _080399E4
+ strb r0, [r3, 0x4]
+ movs r0, 0x10
+ movs r1, 0x3F
+ bl PlaySE12WithPanning
+ ldr r2, _080399EC @ =gSprites
+ ldr r1, _080399F0 @ =gUnknown_02024BE0
+ ldrb r0, [r5]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _080399F4 @ =sub_8010384
+ str r1, [r0]
+ ldr r1, _080399F8 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080399FC @ =sub_8037B78
+ str r1, [r0]
+_080399E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080399EC: .4byte gSprites
+_080399F0: .4byte gUnknown_02024BE0
+_080399F4: .4byte sub_8010384
+_080399F8: .4byte gUnknown_03004330
+_080399FC: .4byte sub_8037B78
+ thumb_func_end sub_803995C
+
+ thumb_func_start sub_8039A00
+sub_8039A00: @ 8039A00
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A00
+
+ thumb_func_start sub_8039A0C
+sub_8039A0C: @ 8039A0C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A0C
+
+ thumb_func_start sub_8039A18
+sub_8039A18: @ 8039A18
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A18
+
+ thumb_func_start sub_8039A24
+sub_8039A24: @ 8039A24
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039A24
+
+ thumb_func_start sub_8039A30
+sub_8039A30: @ 8039A30
+ push {r4-r6,lr}
+ ldr r6, _08039B14 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08039A42
+ b _08039B52
+_08039A42:
+ ldr r0, _08039B18 @ =gUnknown_02023A60
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _08039B1C @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _08039B20 @ =gUnknown_0202F7BC
+ 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, _08039B24 @ =gUnknown_0202F7B8
+ 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, _08039B28 @ =gUnknown_0202F7BE
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08039B2C @ =gUnknown_0202F7C0
+ 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, _08039B30 @ =gUnknown_0202F7B4
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08039B34 @ =gUnknown_02024E70
+ 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 _08039B38
+ bl dp01_tbl4_exec_completed
+ b _08039B52
+ .align 2, 0
+_08039B14: .4byte gUnknown_02024A60
+_08039B18: .4byte gUnknown_02023A60
+_08039B1C: .4byte gUnknown_0202F7C4
+_08039B20: .4byte gUnknown_0202F7BC
+_08039B24: .4byte gUnknown_0202F7B8
+_08039B28: .4byte gUnknown_0202F7BE
+_08039B2C: .4byte gUnknown_0202F7C0
+_08039B30: .4byte gUnknown_0202F7B4
+_08039B34: .4byte gUnknown_02024E70
+_08039B38:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08039B58 @ =0x02017810
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _08039B5C @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039B60 @ =sub_8039B64
+ str r1, [r0]
+_08039B52:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039B58: .4byte 0x02017810
+_08039B5C: .4byte gUnknown_03004330
+_08039B60: .4byte sub_8039B64
+ thumb_func_end sub_8039A30
+
+ thumb_func_start sub_8039B64
+sub_8039B64: @ 8039B64
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _08039BA8 @ =gUnknown_02023A60
+ ldr r5, _08039BAC @ =gUnknown_02024A60
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _08039BB0 @ =0x02017810
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _08039BF2
+ cmp r2, 0x1
+ bgt _08039BB4
+ cmp r2, 0
+ beq _08039BBE
+ b _08039CBC
+ .align 2, 0
+_08039BA8: .4byte gUnknown_02023A60
+_08039BAC: .4byte gUnknown_02024A60
+_08039BB0: .4byte 0x02017810
+_08039BB4:
+ cmp r2, 0x2
+ beq _08039C18
+ cmp r2, 0x3
+ beq _08039C84
+ b _08039CBC
+_08039BBE:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _08039BE2
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08039BE2:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08039CBC
+_08039BF2:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08039CBC
+ 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 _08039CBC
+_08039C18:
+ ldr r0, _08039C74 @ =gUnknown_0202F7AC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08039C78 @ =gUnknown_0202F7B1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08039CBC
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08039C60
+ cmp r7, 0x1
+ bhi _08039C60
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_08039C60:
+ ldr r0, _08039C7C @ =gUnknown_02024A60
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08039C80 @ =0x02017810
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08039CBC
+ .align 2, 0
+_08039C74: .4byte gUnknown_0202F7AC
+_08039C78: .4byte gUnknown_0202F7B1
+_08039C7C: .4byte gUnknown_02024A60
+_08039C80: .4byte 0x02017810
+_08039C84:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08039CBC
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl dp01_tbl4_exec_completed
+_08039CBC:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039B64
+
+ thumb_func_start sub_8039CC8
+sub_8039CC8: @ 8039CC8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08039D0C @ =gUnknown_030042A4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08039D10 @ =gUnknown_030042A0
+ strh r1, [r0]
+ ldr r4, _08039D14 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _08039D18 @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _08039D1C @ =gUnknown_03004210
+ ldr r1, _08039D20 @ =gUnknown_020238CC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08039D24 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039D28 @ =sub_8037C2C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039D0C: .4byte gUnknown_030042A4
+_08039D10: .4byte gUnknown_030042A0
+_08039D14: .4byte gUnknown_02024A60
+_08039D18: .4byte gUnknown_02023A62
+_08039D1C: .4byte gUnknown_03004210
+_08039D20: .4byte gUnknown_020238CC
+_08039D24: .4byte gUnknown_03004330
+_08039D28: .4byte sub_8037C2C
+ thumb_func_end sub_8039CC8
+
+ thumb_func_start sub_8039D2C
+sub_8039D2C: @ 8039D2C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D2C
+
+ thumb_func_start sub_8039D38
+sub_8039D38: @ 8039D38
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D38
+
+ thumb_func_start sub_8039D44
+sub_8039D44: @ 8039D44
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D44
+
+ thumb_func_start sub_8039D50
+sub_8039D50: @ 8039D50
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D50
+
+ thumb_func_start sub_8039D5C
+sub_8039D5C: @ 8039D5C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D5C
+
+ thumb_func_start sub_8039D68
+sub_8039D68: @ 8039D68
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D68
+
+ thumb_func_start sub_8039D74
+sub_8039D74: @ 8039D74
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039D74
+
+ thumb_func_start sub_8039D80
+sub_8039D80: @ 8039D80
+ 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, _08039DF8 @ =gUnknown_02023A60
+ ldr r0, _08039DFC @ =gUnknown_02024A60
+ 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, _08039E00 @ =0x00007fff
+ cmp r7, r0
+ beq _08039E10
+ ldr r6, _08039E04 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _08039E08 @ =gEnemyParty
+ 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, _08039E0C @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08039E3A
+ .align 2, 0
+_08039DF8: .4byte gUnknown_02023A60
+_08039DFC: .4byte gUnknown_02024A60
+_08039E00: .4byte 0x00007fff
+_08039E04: .4byte gUnknown_02024A6A
+_08039E08: .4byte gEnemyParty
+_08039E0C: .4byte gUnknown_03004340
+_08039E10:
+ ldr r1, _08039E58 @ =gUnknown_02024A6A
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08039E5C @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _08039E60 @ =gUnknown_03004340
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08039E3A:
+ ldr r1, _08039E64 @ =gUnknown_03004330
+ ldr r0, _08039E68 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039E6C @ =sub_8037B24
+ 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
+_08039E58: .4byte gUnknown_02024A6A
+_08039E5C: .4byte gEnemyParty
+_08039E60: .4byte gUnknown_03004340
+_08039E64: .4byte gUnknown_03004330
+_08039E68: .4byte gUnknown_02024A60
+_08039E6C: .4byte sub_8037B24
+ thumb_func_end sub_8039D80
+
+ thumb_func_start sub_8039E70
+sub_8039E70: @ 8039E70
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039E70
+
+ thumb_func_start sub_8039E7C
+sub_8039E7C: @ 8039E7C
+ push {r4,lr}
+ ldr r4, _08039ED4 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039ECC
+ ldr r0, _08039ED8 @ =gUnknown_03004340
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08039EDC @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08039EE0 @ =gEnemyParty
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08039EE4 @ =0x02017810
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _08039EE8 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039EEC @ =sub_8037FAC
+ str r1, [r0]
+_08039ECC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039ED4: .4byte gUnknown_02024A60
+_08039ED8: .4byte gUnknown_03004340
+_08039EDC: .4byte gUnknown_02024A6A
+_08039EE0: .4byte gEnemyParty
+_08039EE4: .4byte 0x02017810
+_08039EE8: .4byte gUnknown_03004330
+_08039EEC: .4byte sub_8037FAC
+ thumb_func_end sub_8039E7C
+
+ thumb_func_start sub_8039EF0
+sub_8039EF0: @ 8039EF0
+ push {r4,r5,lr}
+ ldr r5, _08039F48 @ =gUnknown_02024A60
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039F40
+ ldr r4, _08039F4C @ =gUnknown_02023A60
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _08039F50 @ =gUnknown_03004330
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08039F54 @ =sub_8037FAC
+ str r1, [r0]
+_08039F40:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039F48: .4byte gUnknown_02024A60
+_08039F4C: .4byte gUnknown_02023A60
+_08039F50: .4byte gUnknown_03004330
+_08039F54: .4byte sub_8037FAC
+ thumb_func_end sub_8039EF0
+
+ thumb_func_start sub_8039F58
+sub_8039F58: @ 8039F58
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F58
+
+ thumb_func_start sub_8039F64
+sub_8039F64: @ 8039F64
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F64
+
+ thumb_func_start sub_8039F70
+sub_8039F70: @ 8039F70
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F70
+
+ thumb_func_start sub_8039F7C
+sub_8039F7C: @ 8039F7C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F7C
+
+ thumb_func_start sub_8039F88
+sub_8039F88: @ 8039F88
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F88
+
+ thumb_func_start sub_8039F94
+sub_8039F94: @ 8039F94
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039F94
+
+ thumb_func_start sub_8039FA0
+sub_8039FA0: @ 8039FA0
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039FA0
+
+ thumb_func_start sub_8039FAC
+sub_8039FAC: @ 8039FAC
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039FAC
+
+ thumb_func_start sub_8039FB8
+sub_8039FB8: @ 8039FB8
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8039FB8
+
+ thumb_func_start sub_8039FC4
+sub_8039FC4: @ 8039FC4
+ push {lr}
+ ldr r2, _08039FDC @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08039FDC: .4byte gUnknown_020238C8
+ thumb_func_end sub_8039FC4
+
+ thumb_func_start sub_8039FE0
+sub_8039FE0: @ 8039FE0
+ push {lr}
+ ldr r3, _0803A00C @ =gUnknown_020238C8
+ ldr r1, _0803A010 @ =gUnknown_02023A60
+ ldr r0, _0803A014 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A00C: .4byte gUnknown_020238C8
+_0803A010: .4byte gUnknown_02023A60
+_0803A014: .4byte gUnknown_02024A60
+ thumb_func_end sub_8039FE0
+
+ thumb_func_start sub_803A018
+sub_803A018: @ 803A018
+ push {lr}
+ ldr r2, _0803A02C @ =gUnknown_020238C8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A02C: .4byte gUnknown_020238C8
+ thumb_func_end sub_803A018
+
+ thumb_func_start sub_803A030
+sub_803A030: @ 803A030
+ push {lr}
+ ldr r3, _0803A054 @ =gUnknown_020238C8
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A054: .4byte gUnknown_020238C8
+ thumb_func_end sub_803A030
+
+ thumb_func_start dp01t_29_4_blink
+dp01t_29_4_blink: @ 803A058
+ push {r4,lr}
+ ldr r3, _0803A080 @ =gSprites
+ ldr r2, _0803A084 @ =gUnknown_02024BE0
+ ldr r4, _0803A088 @ =gUnknown_02024A60
+ 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 _0803A08C
+ bl dp01_tbl4_exec_completed
+ b _0803A0B6
+ .align 2, 0
+_0803A080: .4byte gSprites
+_0803A084: .4byte gUnknown_02024BE0
+_0803A088: .4byte gUnknown_02024A60
+_0803A08C:
+ ldr r1, _0803A0BC @ =gUnknown_02024E6D
+ 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, _0803A0C0 @ =gUnknown_03004330
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
+ str r1, [r0]
+_0803A0B6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A0BC: .4byte gUnknown_02024E6D
+_0803A0C0: .4byte gUnknown_03004330
+_0803A0C4: .4byte dp01t_0F_4_move_anim
+ thumb_func_end dp01t_29_4_blink
+
+ thumb_func_start sub_803A0C8
+sub_803A0C8: @ 803A0C8
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A0C8
+
+ thumb_func_start sub_803A0D4
+sub_803A0D4: @ 803A0D4
+ push {r4,lr}
+ ldr r4, _0803A110 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _0803A0E8
+ movs r3, 0xC0
+_0803A0E8:
+ ldr r2, _0803A114 @ =gUnknown_02023A60
+ 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_tbl4_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A110: .4byte gUnknown_02024A60
+_0803A114: .4byte gUnknown_02023A60
+ thumb_func_end sub_803A0D4
+
+ thumb_func_start sub_803A118
+sub_803A118: @ 803A118
+ push {lr}
+ ldr r2, _0803A140 @ =gUnknown_02023A60
+ ldr r0, _0803A144 @ =gUnknown_02024A60
+ 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_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A140: .4byte gUnknown_02023A60
+_0803A144: .4byte gUnknown_02024A60
+ thumb_func_end sub_803A118
+
+ thumb_func_start sub_803A148
+sub_803A148: @ 803A148
+ push {lr}
+ ldr r1, _0803A178 @ =gUnknown_02024A6A
+ ldr r0, _0803A17C @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0803A180 @ =gEnemyParty
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ movs r2, 0x5
+ bl PlayCry3
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A178: .4byte gUnknown_02024A6A
+_0803A17C: .4byte gUnknown_02024A60
+_0803A180: .4byte gEnemyParty
+ thumb_func_end sub_803A148
+
+ thumb_func_start dp01t_2E_4_battle_intro
+dp01t_2E_4_battle_intro: @ 803A184
+ push {lr}
+ ldr r1, _0803A1AC @ =gUnknown_02023A60
+ ldr r0, _0803A1B0 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _0803A1B4 @ =gUnknown_02024DE8
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A1AC: .4byte gUnknown_02023A60
+_0803A1B0: .4byte gUnknown_02024A60
+_0803A1B4: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_4_battle_intro
+
+ thumb_func_start sub_803A1B8
+sub_803A1B8: @ 803A1B8
+ push {r4-r6,lr}
+ ldr r5, _0803A294 @ =gUnknown_02024BE0
+ ldr r6, _0803A298 @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0803A29C @ =gSprites
+ adds r0, r4
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x8C
+ lsls r1, 1
+ strh r1, [r0, 0x32]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0803A2A0 @ =sub_8078B34
+ str r1, [r0]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0803A2A4 @ =sub_803A3A8
+ bl oamt_set_x3A_32
+ ldr r0, _0803A2A8 @ =sub_803A2C4
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0803A2AC @ =gTasks
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r6]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r6]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _0803A2B0 @ =0x02017810
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A276
+ ldr r0, _0803A2B4 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _0803A2B8 @ =sub_8044CA0
+ str r1, [r0]
+_0803A276:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _0803A2BC @ =gUnknown_03004330
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A2C0 @ =nullsub_47
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A294: .4byte gUnknown_02024BE0
+_0803A298: .4byte gUnknown_02024A60
+_0803A29C: .4byte gSprites
+_0803A2A0: .4byte sub_8078B34
+_0803A2A4: .4byte sub_803A3A8
+_0803A2A8: .4byte sub_803A2C4
+_0803A2AC: .4byte gTasks
+_0803A2B0: .4byte 0x02017810
+_0803A2B4: .4byte gUnknown_02024E68
+_0803A2B8: .4byte sub_8044CA0
+_0803A2BC: .4byte gUnknown_03004330
+_0803A2C0: .4byte nullsub_47
+ thumb_func_end sub_803A1B8
+
+ thumb_func_start sub_803A2C4
+sub_803A2C4: @ 803A2C4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r7, _0803A31C @ =gUnknown_02024A60
+ ldrb r0, [r7]
+ mov r9, r0
+ ldr r1, _0803A320 @ =gTasks
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ strb r0, [r7]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A2FE
+ ldr r0, _0803A324 @ =gUnknown_020239F8
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A330
+_0803A2FE:
+ ldr r0, _0803A328 @ =gUnknown_02023A60
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _0803A32C @ =gUnknown_02024A6A
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8039430
+ b _0803A370
+ .align 2, 0
+_0803A31C: .4byte gUnknown_02024A60
+_0803A320: .4byte gTasks
+_0803A324: .4byte gUnknown_020239F8
+_0803A328: .4byte gUnknown_02023A60
+_0803A32C: .4byte gUnknown_02024A6A
+_0803A330:
+ ldr r4, _0803A394 @ =gUnknown_02023A60
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, _0803A398 @ =gUnknown_02024A6A
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8039430
+ ldrb r0, [r7]
+ movs r5, 0x2
+ eors r0, r5
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_8039430
+ ldrb r0, [r7]
+ eors r0, r5
+ strb r0, [r7]
+_0803A370:
+ ldr r1, _0803A39C @ =gUnknown_03004330
+ ldr r2, _0803A3A0 @ =gUnknown_02024A60
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A3A4 @ =sub_8037840
+ str r1, [r0]
+ mov r0, r9
+ strb r0, [r2]
+ mov r0, r8
+ bl DestroyTask
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A394: .4byte gUnknown_02023A60
+_0803A398: .4byte gUnknown_02024A6A
+_0803A39C: .4byte gUnknown_03004330
+_0803A3A0: .4byte gUnknown_02024A60
+_0803A3A4: .4byte sub_8037840
+ thumb_func_end sub_803A2C4
+
+ thumb_func_start sub_803A3A8
+sub_803A3A8: @ 803A3A8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x6]
+ bl sub_8031B74
+ ldrh r0, [r4, 0x38]
+ ldr r1, _0803A3D4 @ =0x000003ff
+ ands r1, r0
+ ldrh r2, [r4, 0x4]
+ ldr r0, _0803A3D8 @ =0xfffffc00
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A3D4: .4byte 0x000003ff
+_0803A3D8: .4byte 0xfffffc00
+ thumb_func_end sub_803A3A8
+
+ thumb_func_start sub_803A3DC
+sub_803A3DC: @ 803A3DC
+ push {r4-r6,lr}
+ ldr r1, _0803A404 @ =gUnknown_02023A60
+ ldr r0, _0803A408 @ =gUnknown_02024A60
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803A40C
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A40C
+ bl dp01_tbl4_exec_completed
+ b _0803A4C6
+ .align 2, 0
+_0803A404: .4byte gUnknown_02023A60
+_0803A408: .4byte gUnknown_02024A60
+_0803A40C:
+ ldr r3, _0803A45C @ =gUnknown_02024A60
+ ldrb r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0803A460 @ =0x02017810
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r1, _0803A464 @ =gUnknown_02023A60
+ ldrb r2, [r3]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r6, r3, 0
+ cmp r0, 0
+ beq _0803A470
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0, r4
+ ldrb r2, [r3, 0x1]
+ lsls r1, r2, 26
+ lsrs r0, r1, 27
+ cmp r0, 0x1
+ bhi _0803A468
+ adds r0, 0x1
+ movs r1, 0x1F
+ ands r0, r1
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ b _0803A4C6
+ .align 2, 0
+_0803A45C: .4byte gUnknown_02024A60
+_0803A460: .4byte 0x02017810
+_0803A464: .4byte gUnknown_02023A60
+_0803A468:
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r3, 0x1]
+_0803A470:
+ adds r5, r6, 0
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _0803A4CC @ =gUnknown_02023A64
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _0803A4D0 @ =gUnknown_02024E68
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0803A4D4 @ =0x02017810
+ adds r0, r3
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0803A4BA
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_0803A4BA:
+ ldr r0, _0803A4D8 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0803A4DC @ =sub_803A4E0
+ str r0, [r1]
+_0803A4C6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A4CC: .4byte gUnknown_02023A64
+_0803A4D0: .4byte gUnknown_02024E68
+_0803A4D4: .4byte 0x02017810
+_0803A4D8: .4byte gUnknown_03004330
+_0803A4DC: .4byte sub_803A4E0
+ thumb_func_end sub_803A3DC
+
+ thumb_func_start sub_803A4E0
+sub_803A4E0: @ 803A4E0
+ push {r4,lr}
+ ldr r4, _0803A518 @ =gUnknown_02024A60
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0803A51C @ =0x02017810
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _0803A510
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl dp01_tbl4_exec_completed
+_0803A510:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A518: .4byte gUnknown_02024A60
+_0803A51C: .4byte 0x02017810
+ thumb_func_end sub_803A4E0
+
+ thumb_func_start sub_803A520
+sub_803A520: @ 803A520
+ push {lr}
+ ldr r0, _0803A558 @ =gUnknown_02024A60
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _0803A55C @ =0x02017810
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A54E
+ ldr r2, _0803A560 @ =gTasks
+ ldr r0, _0803A564 @ =gUnknown_02024E68
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0803A568 @ =sub_8044CA0
+ str r1, [r0]
+_0803A54E:
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A558: .4byte gUnknown_02024A60
+_0803A55C: .4byte 0x02017810
+_0803A560: .4byte gTasks
+_0803A564: .4byte gUnknown_02024E68
+_0803A568: .4byte sub_8044CA0
+ thumb_func_end sub_803A520
+
+ thumb_func_start sub_803A56C
+sub_803A56C: @ 803A56C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A56C
+
+ thumb_func_start sub_803A578
+sub_803A578: @ 803A578
+ push {r4,lr}
+ ldr r4, _0803A5C8 @ =gUnknown_02024A60
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A5BE
+ ldr r3, _0803A5CC @ =gSprites
+ ldr r0, _0803A5D0 @ =gUnknown_02024BE0
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _0803A5D4 @ =gUnknown_02023A60
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_0803A5BE:
+ bl dp01_tbl4_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A5C8: .4byte gUnknown_02024A60
+_0803A5CC: .4byte gSprites
+_0803A5D0: .4byte gUnknown_02024BE0
+_0803A5D4: .4byte gUnknown_02023A60
+ thumb_func_end sub_803A578
+
+ thumb_func_start bx_exec_buffer_A_ch0_tbl4
+bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _0803A61C @ =gUnknown_02024A60
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A630
+ ldr r5, _0803A620 @ =gUnknown_02023A60
+ 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 _0803A624
+ bl dp01_tbl4_exec_completed
+ b _0803A630
+ .align 2, 0
+_0803A61C: .4byte gUnknown_02024A60
+_0803A620: .4byte gUnknown_02023A60
+_0803A624:
+ ldr r0, _0803A638 @ =gUnknown_03004330
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0803A63C @ =sub_8037FD8
+ str r0, [r1]
+_0803A630:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A638: .4byte gUnknown_03004330
+_0803A63C: .4byte sub_8037FD8
+ thumb_func_end bx_exec_buffer_A_ch0_tbl4
+
+ thumb_func_start sub_803A640
+sub_803A640: @ 803A640
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A640
+
+ thumb_func_start sub_803A64C
+sub_803A64C: @ 803A64C
+ push {lr}
+ bl dp01_tbl4_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803A64C
+
+ thumb_func_start sub_803A658
+sub_803A658: @ 803A658
+ push {lr}
+ ldr r1, _0803A674 @ =gUnknown_02023A60
+ ldr r0, _0803A678 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0x3
+ bne _0803A680
+ ldr r0, _0803A67C @ =gUnknown_02024D26
+ strb r2, [r0]
+ b _0803A688
+ .align 2, 0
+_0803A674: .4byte gUnknown_02023A60
+_0803A678: .4byte gUnknown_02024A60
+_0803A67C: .4byte gUnknown_02024D26
+_0803A680:
+ ldr r0, _0803A6AC @ =gUnknown_02024D26
+ movs r1, 0x3
+ eors r1, r2
+ strb r1, [r0]
+_0803A688:
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl4_exec_completed
+ ldr r1, _0803A6B0 @ =gUnknown_03004330
+ ldr r0, _0803A6B4 @ =gUnknown_02024A60
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0803A6B8 @ =sub_8037F34
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0803A6AC: .4byte gUnknown_02024D26
+_0803A6B0: .4byte gUnknown_03004330
+_0803A6B4: .4byte gUnknown_02024A60
+_0803A6B8: .4byte sub_8037F34
+ thumb_func_end sub_803A658
+
+ thumb_func_start nullsub_48
+nullsub_48: @ 803A6BC
+ bx lr
+ thumb_func_end nullsub_48
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index a0d6fd441..180f25724 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -47,6 +47,8 @@ SECTIONS {
src/rtc.o(.text);
src/main_menu.o(.text);
asm/rom3.o(.text);
+ asm/decompress.o(.text);
+ asm/rom_800D42C.o(.text);
src/pokemon_1.o(.text);
asm/calculate_base_damage.o(.text);
src/pokemon_2.o(.text);