summaryrefslogtreecommitdiff
path: root/asm/battle_10.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/battle_10.s')
-rw-r--r--asm/battle_10.s4675
1 files changed, 4675 insertions, 0 deletions
diff --git a/asm/battle_10.s b/asm/battle_10.s
new file mode 100644
index 000000000..548c77bce
--- /dev/null
+++ b/asm/battle_10.s
@@ -0,0 +1,4675 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start LinkOpponentHandleGetAttributes
+LinkOpponentHandleGetAttributes: @ 803807C
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _080380A8 @ =gBattleBufferA
+ ldr r0, _080380AC @ =gActiveBank
+ 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 @ =gBattlePartyID
+ 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 gBattleBufferA
+_080380AC: .4byte gActiveBank
+_080380B0: .4byte gBattlePartyID
+_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 LinkOpponentHandleGetAttributes
+
+ 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 @ =gBattleBufferA
+ ldr r3, _08038128 @ =gActiveBank
+ 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 gBattleBufferA
+_08038128: .4byte gActiveBank
+_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 @ =gBattleBufferA
+ ldr r0, _080388D0 @ =gActiveBank
+ 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 @ =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8038900
+ b _080388F6
+ .align 2, 0
+_080388CC: .4byte gBattleBufferA
+_080388D0: .4byte gActiveBank
+_080388D4: .4byte gBattlePartyID
+_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 @ =gActiveBank
+ 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 gActiveBank
+_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 @ =gBattleBufferA
+ 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 gBattleBufferA
+_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 @ =gBattleBufferA
+ 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 gBattleBufferA
+_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 @ =gBattlePartyID
+ ldr r7, _08039288 @ =gActiveBank
+ 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 @ =gBattleBufferA
+ 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 gBattlePartyID
+_08039288: .4byte gActiveBank
+_0803928C: .4byte gBattleBufferA
+_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 @ =gBattlePartyID
+ ldr r6, _080393C0 @ =gActiveBank
+ 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 GetBankIdentity
+ 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 @ =gObjectBankIDs
+ 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 @ =gBattleMonForms
+ 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 @ =gBattleBankFunc
+ 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 gBattlePartyID
+_080393C0: .4byte gActiveBank
+_080393C4: .4byte gEnemyParty
+_080393C8: .4byte gUnknown_02024E8C
+_080393CC: .4byte gObjectBankIDs
+_080393D0: .4byte gSprites
+_080393D4: .4byte 0x0000ff10
+_080393D8: .4byte gBattleMonForms
+_080393DC: .4byte gBattleBankFunc
+_080393E0: .4byte sub_8037A74
+ thumb_func_end sub_8039294
+
+ thumb_func_start sub_80393E4
+sub_80393E4: @ 80393E4
+ push {r4,lr}
+ ldr r1, _0803941C @ =gBattlePartyID
+ ldr r4, _08039420 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, _08039424 @ =gBattleBufferA
+ 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 @ =gBattleBankFunc
+ 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 gBattlePartyID
+_08039420: .4byte gActiveBank
+_08039424: .4byte gBattleBufferA
+_08039428: .4byte gBattleBankFunc
+_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 @ =gBattlePartyID
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, _08039590 @ =gBattleBufferA
+ 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 CreateInvisibleSpriteWithCallback
+ 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 GetBankIdentity
+ 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 @ =gObjectBankIDs
+ 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 @ =gBattleMonForms
+ 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 gBattlePartyID
+_08039590: .4byte gBattleBufferA
+_08039594: .4byte gEnemyParty
+_08039598: .4byte sub_80312F0
+_0803959C: .4byte gUnknown_0300434C
+_080395A0: .4byte gUnknown_02024E8C
+_080395A4: .4byte gObjectBankIDs
+_080395A8: .4byte gSprites
+_080395AC: .4byte gBattleMonForms
+_080395B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8039430
+
+ thumb_func_start sub_80395B4
+sub_80395B4: @ 80395B4
+ push {r4-r6,lr}
+ ldr r1, _080395E4 @ =gBattleBufferA
+ ldr r6, _080395E8 @ =gActiveBank
+ 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 @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _080395F4 @ =sub_8039648
+ str r1, [r0]
+ b _08039634
+ .align 2, 0
+_080395E4: .4byte gBattleBufferA
+_080395E8: .4byte gActiveBank
+_080395EC: .4byte 0x02017810
+_080395F0: .4byte gBattleBankFunc
+_080395F4: .4byte sub_8039648
+_080395F8:
+ ldr r5, _0803963C @ =gObjectBankIDs
+ 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 @ =gHealthboxIDs
+ 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 gObjectBankIDs
+_08039640: .4byte gSprites
+_08039644: .4byte gHealthboxIDs
+ thumb_func_end sub_80395B4
+
+ thumb_func_start sub_8039648
+sub_8039648: @ 8039648
+ push {r4,r5,lr}
+ ldr r5, _08039664 @ =gActiveBank
+ 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 gActiveBank
+_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 @ =gBattleBankFunc
+ 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 gBattleBankFunc
+_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 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08039714
+ ldr r6, _08039708 @ =gActiveBank
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ 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 gBattleTypeFlags
+_08039708: .4byte gActiveBank
+_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 @ =gActiveBank
+ mov r8, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ bl sub_8031A6C
+ mov r1, r8
+ ldrb r0, [r1]
+ bl GetBankIdentity
+ 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 @ =gObjectBankIDs
+ 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 @ =gBattleBankFunc
+ 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 gActiveBank
+_08039874: .4byte gUnknown_02024E8C
+_08039878: .4byte gTrainerFrontPicCoords
+_0803987C: .4byte gObjectBankIDs
+_08039880: .4byte gSprites
+_08039884: .4byte 0x0000ff10
+_08039888: .4byte gTrainerFrontPicPaletteTable
+_0803988C: .4byte gTrainerFrontPicTable
+_08039890: .4byte 0x000003ff
+_08039894: .4byte 0xfffffc00
+_08039898: .4byte sub_80313A0
+_0803989C: .4byte gBattleBankFunc
+_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 @ =gObjectBankIDs
+ ldr r4, _08039944 @ =gActiveBank
+ 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 @ =gBattleBankFunc
+ 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 gObjectBankIDs
+_08039944: .4byte gActiveBank
+_08039948: .4byte gSprites
+_0803994C: .4byte sub_8078B34
+_08039950: .4byte SpriteCallbackDummy
+_08039954: .4byte gBattleBankFunc
+_08039958: .4byte sub_80375B4
+ thumb_func_end sub_80398B0
+
+ thumb_func_start sub_803995C
+sub_803995C: @ 803995C
+ push {r4,r5,lr}
+ ldr r5, _080399A0 @ =gActiveBank
+ 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 gActiveBank
+_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 @ =gObjectBankIDs
+ 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 @ =gBattleBankFunc
+ 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 gObjectBankIDs
+_080399F4: .4byte sub_8010384
+_080399F8: .4byte gBattleBankFunc
+_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 @ =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08039A42
+ b _08039B52
+_08039A42:
+ ldr r0, _08039B18 @ =gBattleBufferA
+ 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 @ =gMovePowerMoveAnim
+ 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 @ =gMoveDmgMoveAnim
+ 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 @ =gHappinessMoveAnim
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08039B2C @ =gWeatherMoveAnim
+ 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 @ =gDisableStructMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08039B34 @ =gPID_perBank
+ 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 gActiveBank
+_08039B18: .4byte gBattleBufferA
+_08039B1C: .4byte gUnknown_0202F7C4
+_08039B20: .4byte gMovePowerMoveAnim
+_08039B24: .4byte gMoveDmgMoveAnim
+_08039B28: .4byte gHappinessMoveAnim
+_08039B2C: .4byte gWeatherMoveAnim
+_08039B30: .4byte gDisableStructMoveAnim
+_08039B34: .4byte gPID_perBank
+_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 @ =gBattleBankFunc
+ 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 gBattleBankFunc
+_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 @ =gBattleBufferA
+ ldr r5, _08039BAC @ =gActiveBank
+ 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 gBattleBufferA
+_08039BAC: .4byte gActiveBank
+_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 ExecuteMoveAnim
+ 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 @ =gAnimScriptCallback
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08039C78 @ =gAnimScriptActive
+ 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 @ =gActiveBank
+ 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 gAnimScriptCallback
+_08039C78: .4byte gAnimScriptActive
+_08039C7C: .4byte gActiveBank
+_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 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _08039D18 @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl BufferStringBattle
+ ldr r0, _08039D1C @ =gUnknown_03004210
+ ldr r1, _08039D20 @ =gDisplayedStringBattle
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08039D24 @ =gBattleBankFunc
+ 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 gActiveBank
+_08039D18: .4byte gUnknown_02023A62
+_08039D1C: .4byte gUnknown_03004210
+_08039D20: .4byte gDisplayedStringBattle
+_08039D24: .4byte gBattleBankFunc
+_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 @ =gBattleBufferA
+ ldr r0, _08039DFC @ =gActiveBank
+ 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 @ =gBattlePartyID
+ 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 @ =gHealthboxIDs
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08039E3A
+ .align 2, 0
+_08039DF8: .4byte gBattleBufferA
+_08039DFC: .4byte gActiveBank
+_08039E00: .4byte 0x00007fff
+_08039E04: .4byte gBattlePartyID
+_08039E08: .4byte gEnemyParty
+_08039E0C: .4byte gHealthboxIDs
+_08039E10:
+ ldr r1, _08039E58 @ =gBattlePartyID
+ 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 @ =gHealthboxIDs
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08039E3A:
+ ldr r1, _08039E64 @ =gBattleBankFunc
+ ldr r0, _08039E68 @ =gActiveBank
+ 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 gBattlePartyID
+_08039E5C: .4byte gEnemyParty
+_08039E60: .4byte gHealthboxIDs
+_08039E64: .4byte gBattleBankFunc
+_08039E68: .4byte gActiveBank
+_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 @ =gActiveBank
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039ECC
+ ldr r0, _08039ED8 @ =gHealthboxIDs
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08039EDC @ =gBattlePartyID
+ 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 @ =gBattleBankFunc
+ 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 gActiveBank
+_08039ED8: .4byte gHealthboxIDs
+_08039EDC: .4byte gBattlePartyID
+_08039EE0: .4byte gEnemyParty
+_08039EE4: .4byte 0x02017810
+_08039EE8: .4byte gBattleBankFunc
+_08039EEC: .4byte sub_8037FAC
+ thumb_func_end sub_8039E7C
+
+ thumb_func_start sub_8039EF0
+sub_8039EF0: @ 8039EF0
+ push {r4,r5,lr}
+ ldr r5, _08039F48 @ =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08039F40
+ ldr r4, _08039F4C @ =gBattleBufferA
+ 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 @ =gBattleBankFunc
+ 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 gActiveBank
+_08039F4C: .4byte gBattleBufferA
+_08039F50: .4byte gBattleBankFunc
+_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 @ =gBattleBufferA
+ ldr r0, _0803A014 @ =gActiveBank
+ 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 gBattleBufferA
+_0803A014: .4byte gActiveBank
+ 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 @ =gObjectBankIDs
+ ldr r4, _0803A088 @ =gActiveBank
+ 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 gObjectBankIDs
+_0803A088: .4byte gActiveBank
+_0803A08C:
+ ldr r1, _0803A0BC @ =gDoingBattleAnim
+ 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 @ =gBattleBankFunc
+ 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 gDoingBattleAnim
+_0803A0C0: .4byte gBattleBankFunc
+_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 @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _0803A0E8
+ movs r3, 0xC0
+_0803A0E8:
+ ldr r2, _0803A114 @ =gBattleBufferA
+ 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 gActiveBank
+_0803A114: .4byte gBattleBufferA
+ thumb_func_end sub_803A0D4
+
+ thumb_func_start sub_803A118
+sub_803A118: @ 803A118
+ push {lr}
+ ldr r2, _0803A140 @ =gBattleBufferA
+ ldr r0, _0803A144 @ =gActiveBank
+ 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 gBattleBufferA
+_0803A144: .4byte gActiveBank
+ thumb_func_end sub_803A118
+
+ thumb_func_start sub_803A148
+sub_803A148: @ 803A148
+ push {lr}
+ ldr r1, _0803A178 @ =gBattlePartyID
+ ldr r0, _0803A17C @ =gActiveBank
+ 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 gBattlePartyID
+_0803A17C: .4byte gActiveBank
+_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 @ =gBattleBufferA
+ ldr r0, _0803A1B0 @ =gActiveBank
+ 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 gBattleBufferA
+_0803A1B0: .4byte gActiveBank
+_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 @ =gObjectBankIDs
+ ldr r6, _0803A298 @ =gActiveBank
+ 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 @ =gBattleBankFunc
+ 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 gObjectBankIDs
+_0803A298: .4byte gActiveBank
+_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 gBattleBankFunc
+_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 @ =gActiveBank
+ 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 IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A2FE
+ ldr r0, _0803A324 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0803A330
+_0803A2FE:
+ ldr r0, _0803A328 @ =gBattleBufferA
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _0803A32C @ =gBattlePartyID
+ 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 gActiveBank
+_0803A320: .4byte gTasks
+_0803A324: .4byte gBattleTypeFlags
+_0803A328: .4byte gBattleBufferA
+_0803A32C: .4byte gBattlePartyID
+_0803A330:
+ ldr r4, _0803A394 @ =gBattleBufferA
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, _0803A398 @ =gBattlePartyID
+ 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 @ =gBattleBankFunc
+ ldr r2, _0803A3A0 @ =gActiveBank
+ 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 gBattleBufferA
+_0803A398: .4byte gBattlePartyID
+_0803A39C: .4byte gBattleBankFunc
+_0803A3A0: .4byte gActiveBank
+_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 @ =gBattleBufferA
+ ldr r0, _0803A408 @ =gActiveBank
+ 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 GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A40C
+ bl dp01_tbl4_exec_completed
+ b _0803A4C6
+ .align 2, 0
+_0803A404: .4byte gBattleBufferA
+_0803A408: .4byte gActiveBank
+_0803A40C:
+ ldr r3, _0803A45C @ =gActiveBank
+ 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 @ =gBattleBufferA
+ 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 gActiveBank
+_0803A460: .4byte 0x02017810
+_0803A464: .4byte gBattleBufferA
+_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 @ =gBattleBankFunc
+ 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 gBattleBankFunc
+_0803A4DC: .4byte sub_803A4E0
+ thumb_func_end sub_803A3DC
+
+ thumb_func_start sub_803A4E0
+sub_803A4E0: @ 803A4E0
+ push {r4,lr}
+ ldr r4, _0803A518 @ =gActiveBank
+ 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 gActiveBank
+_0803A51C: .4byte 0x02017810
+ thumb_func_end sub_803A4E0
+
+ thumb_func_start sub_803A520
+sub_803A520: @ 803A520
+ push {lr}
+ ldr r0, _0803A558 @ =gActiveBank
+ 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 gActiveBank
+_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 @ =gActiveBank
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _0803A5BE
+ ldr r3, _0803A5CC @ =gSprites
+ ldr r0, _0803A5D0 @ =gObjectBankIDs
+ 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 @ =gBattleBufferA
+ 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 gActiveBank
+_0803A5CC: .4byte gSprites
+_0803A5D0: .4byte gObjectBankIDs
+_0803A5D4: .4byte gBattleBufferA
+ 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 @ =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803A630
+ ldr r5, _0803A620 @ =gBattleBufferA
+ 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 gActiveBank
+_0803A620: .4byte gBattleBufferA
+_0803A624:
+ ldr r0, _0803A638 @ =gBattleBankFunc
+ 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 gBattleBankFunc
+_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 @ =gBattleBufferA
+ ldr r0, _0803A678 @ =gActiveBank
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0x3
+ bne _0803A680
+ ldr r0, _0803A67C @ =gBattleOutcome
+ strb r2, [r0]
+ b _0803A688
+ .align 2, 0
+_0803A674: .4byte gBattleBufferA
+_0803A678: .4byte gActiveBank
+_0803A67C: .4byte gBattleOutcome
+_0803A680:
+ ldr r0, _0803A6AC @ =gBattleOutcome
+ 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 @ =gBattleBankFunc
+ ldr r0, _0803A6B4 @ =gActiveBank
+ 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 gBattleOutcome
+_0803A6B0: .4byte gBattleBankFunc
+_0803A6B4: .4byte gActiveBank
+_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.