summaryrefslogtreecommitdiff
path: root/asm/battle_8.s
diff options
context:
space:
mode:
authorJaceCearK1 <JaceCearK1@users.noreply.github.com>2017-07-01 21:04:18 +0200
committerGitHub <noreply@github.com>2017-07-01 21:04:18 +0200
commit0dd804a99e5455a0eac8ff6ed87d9de16c7380b7 (patch)
tree7b3567978b63ee6548a7b945e075ea8ba37bef51 /asm/battle_8.s
parentf1344efd2aff92292f58f7323bd9297a38fe9b02 (diff)
parent8d82578d3a101b06f9d2ced31738021007c4e533 (diff)
Merge pull request #1 from pret/master
Update fork to match main fork.
Diffstat (limited to 'asm/battle_8.s')
-rw-r--r--asm/battle_8.s5222
1 files changed, 5222 insertions, 0 deletions
diff --git a/asm/battle_8.s b/asm/battle_8.s
new file mode 100644
index 000000000..366c503f2
--- /dev/null
+++ b/asm/battle_8.s
@@ -0,0 +1,5222 @@
+ .include "constants/gba_constants.inc"
+ .include "constants/species_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start OpponentHandleGetAttributes
+OpponentHandleGetAttributes: @ 8033524
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _08033550 @ =gBattleBufferA
+ ldr r0, _08033554 @ =gActiveBank
+ 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 @ =gBattlePartyID
+ 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 gBattleBufferA
+_08033554: .4byte gActiveBank
+_08033558: .4byte gBattlePartyID
+_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 OpponentBufferExecCompleted
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleGetAttributes
+
+ 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 @ =gBattleBufferA
+ ldr r3, _080335D0 @ =gActiveBank
+ 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 gBattleBufferA
+_080335D0: .4byte gActiveBank
+_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 @ =gBattlePartyID
+ ldr r5, _08033DC0 @ =gActiveBank
+ 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 @ =gBattleBufferA
+ 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 OpponentBufferExecCompleted
+ add sp, 0x58
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08033DBC: .4byte gBattlePartyID
+_08033DC0: .4byte gActiveBank
+_08033DC4: .4byte gBattleBufferA
+_08033DC8: .4byte gEnemyParty
+ thumb_func_end dp01t_01_2_read_pokmon_data_slice
+
+ thumb_func_start OpponentHandleSetAttributes
+OpponentHandleSetAttributes: @ 8033DCC
+ push {r4,r5,lr}
+ ldr r1, _08033DF0 @ =gBattleBufferA
+ ldr r0, _08033DF4 @ =gActiveBank
+ 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 @ =gBattlePartyID
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8033E24
+ b _08033E1A
+ .align 2, 0
+_08033DF0: .4byte gBattleBufferA
+_08033DF4: .4byte gActiveBank
+_08033DF8: .4byte gBattlePartyID
+_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 OpponentBufferExecCompleted
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleSetAttributes
+
+ 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 @ =gActiveBank
+ 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 gActiveBank
+_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 @ =gBattleBufferA
+ 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 gBattleBufferA
+_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 @ =gBattleBufferA
+ 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 gBattleBufferA
+_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 @ =gBattlePartyID
+ ldr r7, _080347AC @ =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, _080347B0 @ =gBattleBufferA
+ 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 OpponentBufferExecCompleted
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080347A8: .4byte gBattlePartyID
+_080347AC: .4byte gActiveBank
+_080347B0: .4byte gBattleBufferA
+_080347B4: .4byte gEnemyParty
+ thumb_func_end sub_8034744
+
+ thumb_func_start OpponentHandleLoadPokeSprite
+OpponentHandleLoadPokeSprite: @ 80347B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r6, _080348E8 @ =gActiveBank
+ ldrb r0, [r6]
+ lsls r0, 1
+ ldr r1, _080348EC @ =gBattlePartyID
+ 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 @ =gBattlePartyID
+ adds r0, r2
+ ldrh r0, [r0]
+ muls r0, r7
+ add r0, r10
+ bl sub_8031794
+ ldrb r0, [r6]
+ bl GetBankIdentity
+ 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 @ =gObjectBankIDs
+ 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 @ =gBattleMonForms
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartSpriteAnim
+ ldrb r4, [r6]
+ lsls r0, r4, 1
+ ldr r2, _080348EC @ =gBattlePartyID
+ 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 @ =gBattleBankFunc
+ 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 gActiveBank
+_080348EC: .4byte gBattlePartyID
+_080348F0: .4byte gEnemyParty
+_080348F4: .4byte gUnknown_02024E8C
+_080348F8: .4byte gObjectBankIDs
+_080348FC: .4byte gSprites
+_08034900: .4byte 0x0000ff10
+_08034904: .4byte gBattleMonForms
+_08034908: .4byte gBattleBankFunc
+_0803490C: .4byte sub_8033018
+ thumb_func_end OpponentHandleLoadPokeSprite
+
+ thumb_func_start OpponentHandleSendOutPoke
+OpponentHandleSendOutPoke: @ 8034910
+ push {r4,lr}
+ ldr r1, _08034948 @ =gBattlePartyID
+ ldr r4, _0803494C @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r2, r0, 1
+ adds r2, r1
+ ldr r3, _08034950 @ =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_803495C
+ ldr r1, _08034954 @ =gBattleBankFunc
+ 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 gBattlePartyID
+_0803494C: .4byte gActiveBank
+_08034950: .4byte gBattleBufferA
+_08034954: .4byte gBattleBankFunc
+_08034958: .4byte sub_80333D4
+ thumb_func_end OpponentHandleSendOutPoke
+
+ 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 @ =gBattlePartyID
+ lsls r4, r6, 1
+ adds r4, r0
+ ldr r0, _08034ABC @ =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, _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 CreateInvisibleSpriteWithCallback
+ 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 GetBankIdentity
+ 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 @ =gObjectBankIDs
+ 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 @ =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, _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 gBattlePartyID
+_08034ABC: .4byte gBattleBufferA
+_08034AC0: .4byte gEnemyParty
+_08034AC4: .4byte sub_80312F0
+_08034AC8: .4byte gUnknown_0300434C
+_08034ACC: .4byte gUnknown_02024E8C
+_08034AD0: .4byte gObjectBankIDs
+_08034AD4: .4byte gSprites
+_08034AD8: .4byte gBattleMonForms
+_08034ADC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_803495C
+
+ thumb_func_start OpponentHandleReturnPokeToBall
+OpponentHandleReturnPokeToBall: @ 8034AE0
+ push {r4-r6,lr}
+ ldr r1, _08034B10 @ =gBattleBufferA
+ ldr r6, _08034B14 @ =gActiveBank
+ 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 @ =gBattleBankFunc
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08034B20 @ =sub_8034B74
+ str r1, [r0]
+ b _08034B60
+ .align 2, 0
+_08034B10: .4byte gBattleBufferA
+_08034B14: .4byte gActiveBank
+_08034B18: .4byte 0x02017810
+_08034B1C: .4byte gBattleBankFunc
+_08034B20: .4byte sub_8034B74
+_08034B24:
+ ldr r5, _08034B68 @ =gObjectBankIDs
+ 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 @ =gHealthboxIDs
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl OpponentBufferExecCompleted
+_08034B60:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08034B68: .4byte gObjectBankIDs
+_08034B6C: .4byte gSprites
+_08034B70: .4byte gHealthboxIDs
+ thumb_func_end OpponentHandleReturnPokeToBall
+
+ thumb_func_start sub_8034B74
+sub_8034B74: @ 8034B74
+ push {r4,r5,lr}
+ ldr r5, _08034B90 @ =gActiveBank
+ 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 gActiveBank
+_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 @ =gBattleBankFunc
+ 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 gBattleBankFunc
+_08034BF8: .4byte sub_8033160
+ thumb_func_end sub_8034B74
+
+ thumb_func_start OpponentHandleTrainerThrow
+OpponentHandleTrainerThrow: @ 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 @ =gBattleTypeFlags
+ 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 gBattleTypeFlags
+_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 @ =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 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 @ =gObjectBankIDs
+ 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 @ =gBattleBankFunc
+ 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 gActiveBank
+_08034D90: .4byte gUnknown_02024E8C
+_08034D94: .4byte gTrainerFrontPicCoords
+_08034D98: .4byte gObjectBankIDs
+_08034D9C: .4byte gSprites
+_08034DA0: .4byte 0x0000ff10
+_08034DA4: .4byte gTrainerFrontPicPaletteTable
+_08034DA8: .4byte gTrainerFrontPicTable
+_08034DAC: .4byte 0x000003ff
+_08034DB0: .4byte 0xfffffc00
+_08034DB4: .4byte sub_80313A0
+_08034DB8: .4byte gBattleBankFunc
+_08034DBC: .4byte sub_8032B4C
+ thumb_func_end OpponentHandleTrainerThrow
+
+ thumb_func_start OpponentHandleTrainerSlide
+OpponentHandleTrainerSlide: @ 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 @ =gBattleTypeFlags
+ 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 gBattleTypeFlags
+_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 @ =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 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 @ =gObjectBankIDs
+ 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 @ =gBattleBankFunc
+ 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 gActiveBank
+_08034F54: .4byte gUnknown_02024E8C
+_08034F58: .4byte gTrainerFrontPicCoords
+_08034F5C: .4byte gObjectBankIDs
+_08034F60: .4byte gSprites
+_08034F64: .4byte 0x0000fffe
+_08034F68: .4byte gTrainerFrontPicPaletteTable
+_08034F6C: .4byte gTrainerFrontPicTable
+_08034F70: .4byte 0x000003ff
+_08034F74: .4byte 0xfffffc00
+_08034F78: .4byte sub_80313A0
+_08034F7C: .4byte gBattleBankFunc
+_08034F80: .4byte sub_8032B84
+ thumb_func_end OpponentHandleTrainerSlide
+
+ thumb_func_start OpponentHandleTrainerSlideBack
+OpponentHandleTrainerSlideBack: @ 8034F84
+ push {r4-r6,lr}
+ ldr r6, _08035014 @ =gObjectBankIDs
+ ldr r4, _08035018 @ =gActiveBank
+ 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 @ =gBattleBankFunc
+ 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 gObjectBankIDs
+_08035018: .4byte gActiveBank
+_0803501C: .4byte gSprites
+_08035020: .4byte sub_8078B34
+_08035024: .4byte SpriteCallbackDummy
+_08035028: .4byte gBattleBankFunc
+_0803502C: .4byte sub_8032BBC
+ thumb_func_end OpponentHandleTrainerSlideBack
+
+ thumb_func_start sub_8035030
+sub_8035030: @ 8035030
+ push {r4,r5,lr}
+ ldr r5, _08035074 @ =gActiveBank
+ 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 gActiveBank
+_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 @ =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, _080350C8 @ =sub_8010384
+ str r1, [r0]
+ ldr r1, _080350CC @ =gBattleBankFunc
+ 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 gObjectBankIDs
+_080350C8: .4byte sub_8010384
+_080350CC: .4byte gBattleBankFunc
+_080350D0: .4byte sub_803311C
+ thumb_func_end sub_8035030
+
+ thumb_func_start sub_80350D4
+sub_80350D4: @ 80350D4
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350D4
+
+ thumb_func_start sub_80350E0
+sub_80350E0: @ 80350E0
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80350E0
+
+ thumb_func_start OpponentHandleBallThrow
+OpponentHandleBallThrow: @ 80350EC
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleBallThrow
+
+ thumb_func_start OpponentHandlePause
+OpponentHandlePause: @ 80350F8
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandlePause
+
+ thumb_func_start OpponentHandleMoveAnimation
+OpponentHandleMoveAnimation: @ 8035104
+ push {r4-r6,lr}
+ ldr r6, _080351E8 @ =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035116
+ b _08035226
+_08035116:
+ ldr r0, _080351EC @ =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, _080351F0 @ =gUnknown_0202F7C4
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _080351F4 @ =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, _080351F8 @ =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, _080351FC @ =gHappinessMoveAnim
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08035200 @ =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, _08035204 @ =gDisableStructMoveAnim
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _08035208 @ =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 _0803520C
+ bl OpponentBufferExecCompleted
+ b _08035226
+ .align 2, 0
+_080351E8: .4byte gActiveBank
+_080351EC: .4byte gBattleBufferA
+_080351F0: .4byte gUnknown_0202F7C4
+_080351F4: .4byte gMovePowerMoveAnim
+_080351F8: .4byte gMoveDmgMoveAnim
+_080351FC: .4byte gHappinessMoveAnim
+_08035200: .4byte gWeatherMoveAnim
+_08035204: .4byte gDisableStructMoveAnim
+_08035208: .4byte gPID_perBank
+_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 @ =gBattleBankFunc
+ 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 gBattleBankFunc
+_08035234: .4byte sub_8035238
+ thumb_func_end OpponentHandleMoveAnimation
+
+ thumb_func_start sub_8035238
+sub_8035238: @ 8035238
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _0803527C @ =gBattleBufferA
+ ldr r5, _08035280 @ =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, _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 gBattleBufferA
+_08035280: .4byte gActiveBank
+_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 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 _08035390
+_080352EC:
+ ldr r0, _08035348 @ =gAnimScriptCallback
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _0803534C @ =gAnimScriptActive
+ 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 @ =gActiveBank
+ 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 gAnimScriptCallback
+_0803534C: .4byte gAnimScriptActive
+_08035350: .4byte gActiveBank
+_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 OpponentBufferExecCompleted
+_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 OpponentHandlePrintString
+OpponentHandlePrintString: @ 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 @ =gActiveBank
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _080353EC @ =gUnknown_02023A62
+ adds r0, r1
+ ldrh r0, [r0]
+ bl BufferStringBattle
+ ldr r0, _080353F0 @ =gUnknown_03004210
+ ldr r1, _080353F4 @ =gDisplayedStringBattle
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _080353F8 @ =gBattleBankFunc
+ 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 gActiveBank
+_080353EC: .4byte gUnknown_02023A62
+_080353F0: .4byte gUnknown_03004210
+_080353F4: .4byte gDisplayedStringBattle
+_080353F8: .4byte gBattleBankFunc
+_080353FC: .4byte sub_80331D0
+ thumb_func_end OpponentHandlePrintString
+
+ thumb_func_start OpponentHandlePrintStringPlayerOnly
+OpponentHandlePrintStringPlayerOnly: @ 8035400
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandlePrintStringPlayerOnly
+
+ thumb_func_start sub_803540C
+sub_803540C: @ 803540C
+ push {lr}
+ bl sub_8036B0C
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803540C
+
+ thumb_func_start sub_803541C
+sub_803541C: @ 803541C
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_803541C
+
+ thumb_func_start sub_8035428
+sub_8035428: @ 8035428
+ push {r4-r6,lr}
+ ldr r6, _0803545C @ =gActiveBank
+ ldrb r0, [r6]
+ lsls r0, 9
+ ldr r1, _08035460 @ =gUnknown_02023A64
+ adds r5, r0, r1
+ ldr r0, _08035464 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x93
+ lsls r0, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _080354F8
+ bl BattleAI_SetupAIData
+ bl BattleAI_GetAIActionToUse
+ 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 gActiveBank
+_08035460: .4byte gUnknown_02023A64
+_08035464: .4byte gBattleTypeFlags
+_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 @ =gBankTarget
+ 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 GetBankByPlayerAI
+ ldr r5, _080354EC @ =gBankTarget
+ strb r0, [r5]
+ ldr r0, _080354F0 @ =gAbsentBankFlags
+ 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 GetBankByPlayerAI
+ strb r0, [r5]
+_080354CE:
+ ldr r0, _080354EC @ =gBankTarget
+ 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 OpponentBufferExecCompleted
+ b _0803558A
+ .align 2, 0
+_080354E8: .4byte gBattleMoves
+_080354EC: .4byte gBankTarget
+_080354F0: .4byte gAbsentBankFlags
+_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 @ =gActiveBank
+ 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 gActiveBank
+_0803553C:
+ ldr r0, _0803556C @ =gBattleTypeFlags
+ 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 GetBankByPlayerAI
+ 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 gBattleTypeFlags
+_08035570:
+ movs r0, 0
+ bl GetBankByPlayerAI
+ 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 OpponentBufferExecCompleted
+_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 @ =gActiveBank
+ 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 OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080355B4: .4byte 0x02000000
+_080355B8: .4byte gActiveBank
+_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 @ =gActiveBank
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ 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 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08035614
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ b _08035628
+ .align 2, 0
+_08035604: .4byte 0x02000000
+_08035608: .4byte gActiveBank
+_0803560C: .4byte 0x000160c8
+_08035610: .4byte gBattleTypeFlags
+_08035614:
+ movs r0, 0x1
+ bl GetBankByPlayerAI
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0x3
+ bl GetBankByPlayerAI
+ 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 @ =gBattlePartyID
+ 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 gBattlePartyID
+_08035664:
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ lsls r0, 24
+ lsrs r0, 25
+ ldr r2, _080356B0 @ =0x000160c8
+ adds r0, r2
+ adds r0, r6
+ ldrb r4, [r0]
+ ldrb r0, [r5]
+ bl GetBankIdentity
+ 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 @ =gActiveBank
+ 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 OpponentBufferExecCompleted
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080356B0: .4byte 0x000160c8
+_080356B4: .4byte 0x02000000
+_080356B8: .4byte gActiveBank
+_080356BC: .4byte 0x00016068
+ thumb_func_end sub_80355C0
+
+ thumb_func_start sub_80356C0
+sub_80356C0: @ 80356C0
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80356C0
+
+ thumb_func_start OpponentHandleHealthBarUpdate
+OpponentHandleHealthBarUpdate: @ 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 @ =gBattleBufferA
+ ldr r0, _08035748 @ =gActiveBank
+ 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 @ =gBattlePartyID
+ 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 @ =gHealthboxIDs
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08035786
+ .align 2, 0
+_08035744: .4byte gBattleBufferA
+_08035748: .4byte gActiveBank
+_0803574C: .4byte 0x00007fff
+_08035750: .4byte gBattlePartyID
+_08035754: .4byte gEnemyParty
+_08035758: .4byte gHealthboxIDs
+_0803575C:
+ ldr r1, _080357A4 @ =gBattlePartyID
+ 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 @ =gHealthboxIDs
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08035786:
+ ldr r1, _080357B0 @ =gBattleBankFunc
+ ldr r0, _080357B4 @ =gActiveBank
+ 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 gBattlePartyID
+_080357A8: .4byte gEnemyParty
+_080357AC: .4byte gHealthboxIDs
+_080357B0: .4byte gBattleBankFunc
+_080357B4: .4byte gActiveBank
+_080357B8: .4byte sub_80330C8
+ thumb_func_end OpponentHandleHealthBarUpdate
+
+ thumb_func_start OpponentHandleExpBarUpdate
+OpponentHandleExpBarUpdate: @ 80357BC
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleExpBarUpdate
+
+ thumb_func_start OpponentHandleStatusIconUpdate
+OpponentHandleStatusIconUpdate: @ 80357C8
+ push {r4,lr}
+ ldr r4, _08035820 @ =gActiveBank
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035818
+ ldr r0, _08035824 @ =gHealthboxIDs
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _08035828 @ =gBattlePartyID
+ 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 @ =gBattleBankFunc
+ 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 gActiveBank
+_08035824: .4byte gHealthboxIDs
+_08035828: .4byte gBattlePartyID
+_0803582C: .4byte gEnemyParty
+_08035830: .4byte 0x02017810
+_08035834: .4byte gBattleBankFunc
+_08035838: .4byte sub_8033494
+ thumb_func_end OpponentHandleStatusIconUpdate
+
+ thumb_func_start OpponentHandleStatusAnimation
+OpponentHandleStatusAnimation: @ 803583C
+ push {r4,r5,lr}
+ ldr r5, _08035894 @ =gActiveBank
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0803588C
+ ldr r4, _08035898 @ =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, _0803589C @ =gBattleBankFunc
+ 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 gActiveBank
+_08035898: .4byte gBattleBufferA
+_0803589C: .4byte gBattleBankFunc
+_080358A0: .4byte sub_8033494
+ thumb_func_end OpponentHandleStatusAnimation
+
+ thumb_func_start OpponentHandleStatusXor
+OpponentHandleStatusXor: @ 80358A4
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleStatusXor
+
+ thumb_func_start sub_80358B0
+sub_80358B0: @ 80358B0
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358B0
+
+ thumb_func_start OpponentHandleDMATransfer
+OpponentHandleDMATransfer: @ 80358BC
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleDMATransfer
+
+ thumb_func_start sub_80358C8
+sub_80358C8: @ 80358C8
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358C8
+
+ thumb_func_start sub_80358D4
+sub_80358D4: @ 80358D4
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358D4
+
+ thumb_func_start sub_80358E0
+sub_80358E0: @ 80358E0
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358E0
+
+ thumb_func_start sub_80358EC
+sub_80358EC: @ 80358EC
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358EC
+
+ thumb_func_start sub_80358F8
+sub_80358F8: @ 80358F8
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80358F8
+
+ thumb_func_start sub_8035904
+sub_8035904: @ 8035904
+ push {lr}
+ bl OpponentBufferExecCompleted
+ 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 OpponentBufferExecCompleted
+ 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 @ =gBattleBufferA
+ ldr r0, _08035960 @ =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 OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035958: .4byte gUnknown_020238C8
+_0803595C: .4byte gBattleBufferA
+_08035960: .4byte gActiveBank
+ 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 OpponentBufferExecCompleted
+ 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 OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080359A0: .4byte gUnknown_020238C8
+ thumb_func_end sub_803597C
+
+ thumb_func_start OpponentHandleHitAnimation
+OpponentHandleHitAnimation: @ 80359A4
+ push {r4,lr}
+ ldr r3, _080359CC @ =gSprites
+ ldr r2, _080359D0 @ =gObjectBankIDs
+ ldr r4, _080359D4 @ =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 _080359D8
+ bl OpponentBufferExecCompleted
+ b _08035A02
+ .align 2, 0
+_080359CC: .4byte gSprites
+_080359D0: .4byte gObjectBankIDs
+_080359D4: .4byte gActiveBank
+_080359D8:
+ ldr r1, _08035A08 @ =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, _08035A0C @ =gBattleBankFunc
+ 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 gDoingBattleAnim
+_08035A0C: .4byte gBattleBankFunc
+_08035A10: .4byte bx_blink_t7
+ thumb_func_end OpponentHandleHitAnimation
+
+ thumb_func_start sub_8035A14
+sub_8035A14: @ 8035A14
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035A14
+
+ thumb_func_start OpponentHandleEffectivenessSound
+OpponentHandleEffectivenessSound: @ 8035A20
+ push {r4,lr}
+ ldr r4, _08035A5C @ =gActiveBank
+ ldrb r0, [r4]
+ bl GetBankSide
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _08035A34
+ movs r3, 0xC0
+_08035A34:
+ ldr r2, _08035A60 @ =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 OpponentBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A5C: .4byte gActiveBank
+_08035A60: .4byte gBattleBufferA
+ thumb_func_end OpponentHandleEffectivenessSound
+
+ thumb_func_start sub_8035A64
+sub_8035A64: @ 8035A64
+ push {lr}
+ ldr r2, _08035A8C @ =gBattleBufferA
+ ldr r0, _08035A90 @ =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 OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035A8C: .4byte gBattleBufferA
+_08035A90: .4byte gActiveBank
+ thumb_func_end sub_8035A64
+
+ thumb_func_start OpponentHandleFaintingCry
+OpponentHandleFaintingCry: @ 8035A94
+ push {lr}
+ ldr r1, _08035AC4 @ =gBattlePartyID
+ ldr r0, _08035AC8 @ =gActiveBank
+ 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 OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035AC4: .4byte gBattlePartyID
+_08035AC8: .4byte gActiveBank
+_08035ACC: .4byte gEnemyParty
+ thumb_func_end OpponentHandleFaintingCry
+
+ thumb_func_start dp01t_2E_7_battle_intro
+dp01t_2E_7_battle_intro: @ 8035AD0
+ push {lr}
+ ldr r1, _08035AF8 @ =gBattleBufferA
+ ldr r0, _08035AFC @ =gActiveBank
+ 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 OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035AF8: .4byte gBattleBufferA
+_08035AFC: .4byte gActiveBank
+_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 @ =gObjectBankIDs
+ ldr r6, _08035BE4 @ =gActiveBank
+ 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 @ =gBattleBankFunc
+ 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 gObjectBankIDs
+_08035BE4: .4byte gActiveBank
+_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 gBattleBankFunc
+_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 @ =gActiveBank
+ 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 IsDoubleBattle
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035C7E
+ ldr r0, _08035CA4 @ =gBattleTypeFlags
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08035CB0
+_08035C7E:
+ ldr r0, _08035CA8 @ =gBattleBufferA
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08035CAC @ =gBattlePartyID
+ 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 gActiveBank
+_08035CA0: .4byte gTasks
+_08035CA4: .4byte gBattleTypeFlags
+_08035CA8: .4byte gBattleBufferA
+_08035CAC: .4byte gBattlePartyID
+_08035CB0:
+ ldr r4, _08035D14 @ =gBattleBufferA
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r6, _08035D18 @ =gBattlePartyID
+ 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 @ =gBattleBankFunc
+ ldr r2, _08035D20 @ =gActiveBank
+ 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 gBattleBufferA
+_08035D18: .4byte gBattlePartyID
+_08035D1C: .4byte gBattleBankFunc
+_08035D20: .4byte gActiveBank
+_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 @ =gBattleBufferA
+ ldr r0, _08035D54 @ =gActiveBank
+ 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 GetBankSide
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035D58
+ bl OpponentBufferExecCompleted
+ b _08035E12
+ .align 2, 0
+_08035D50: .4byte gBattleBufferA
+_08035D54: .4byte gActiveBank
+_08035D58:
+ ldr r3, _08035DA8 @ =gActiveBank
+ 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 @ =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 _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 gActiveBank
+_08035DAC: .4byte 0x02017810
+_08035DB0: .4byte gBattleBufferA
+_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 @ =gBattleBankFunc
+ 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 gBattleBankFunc
+_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 @ =gActiveBank
+ 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 OpponentBufferExecCompleted
+_08035E5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035E64: .4byte gActiveBank
+_08035E68: .4byte 0x02017810
+ thumb_func_end sub_8035E2C
+
+ thumb_func_start sub_8035E6C
+sub_8035E6C: @ 8035E6C
+ push {lr}
+ ldr r0, _08035EA4 @ =gActiveBank
+ 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 OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035EA4: .4byte gActiveBank
+_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 OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8035EB8
+
+ thumb_func_start OpponentHandleSpriteInvisibility
+OpponentHandleSpriteInvisibility: @ 8035EC4
+ push {r4,lr}
+ ldr r4, _08035F14 @ =gActiveBank
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _08035F0A
+ ldr r3, _08035F18 @ =gSprites
+ ldr r0, _08035F1C @ =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, _08035F20 @ =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
+_08035F0A:
+ bl OpponentBufferExecCompleted
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035F14: .4byte gActiveBank
+_08035F18: .4byte gSprites
+_08035F1C: .4byte gObjectBankIDs
+_08035F20: .4byte gBattleBufferA
+ thumb_func_end OpponentHandleSpriteInvisibility
+
+ thumb_func_start OpponentHandleBattleAnimation
+OpponentHandleBattleAnimation: @ 8035F24
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _08035F68 @ =gActiveBank
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08035F7C
+ ldr r5, _08035F6C @ =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 _08035F70
+ bl OpponentBufferExecCompleted
+ b _08035F7C
+ .align 2, 0
+_08035F68: .4byte gActiveBank
+_08035F6C: .4byte gBattleBufferA
+_08035F70:
+ ldr r0, _08035F84 @ =gBattleBankFunc
+ 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 gBattleBankFunc
+_08035F88: .4byte sub_80334C0
+ thumb_func_end OpponentHandleBattleAnimation
+
+ thumb_func_start OpponentHandleLinkStandbyMsg
+OpponentHandleLinkStandbyMsg: @ 8035F8C
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleLinkStandbyMsg
+
+ thumb_func_start OpponentHandleResetActionMoveSelection
+OpponentHandleResetActionMoveSelection: @ 8035F98
+ push {lr}
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ thumb_func_end OpponentHandleResetActionMoveSelection
+
+ thumb_func_start sub_8035FA4
+sub_8035FA4: @ 8035FA4
+ push {lr}
+ ldr r0, _08035FD8 @ =gBattleTypeFlags
+ 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 @ =gPreBattleCallback1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08035FCE:
+ bl OpponentBufferExecCompleted
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08035FD8: .4byte gBattleTypeFlags
+_08035FDC: .4byte gMain
+_08035FE0: .4byte 0x0000043d
+_08035FE4: .4byte gPreBattleCallback1
+ thumb_func_end sub_8035FA4
+
+ thumb_func_start nullsub_46
+nullsub_46: @ 8035FE8
+ bx lr
+ thumb_func_end nullsub_46
+
+ .align 2, 0 @ Don't pad with nop.