pokeruby/asm/battle_10.s
2017-05-21 20:21:00 +02:00

4676 lines
80 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start dp01t_00_4_getattr
dp01t_00_4_getattr: @ 803807C
push {r4-r6,lr}
sub sp, 0x100
movs r6, 0
ldr r1, _080380A8 @ =gUnknown_02023A60
ldr r0, _080380AC @ =gUnknown_02024A60
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _080380B4
ldr r0, _080380B0 @ =gUnknown_02024A6A
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
mov r1, sp
bl dp01_getattr_by_ch1_for_player_pokemon__
adds r6, r0, 0
b _080380D6
.align 2, 0
_080380A8: .4byte gUnknown_02023A60
_080380AC: .4byte gUnknown_02024A60
_080380B0: .4byte gUnknown_02024A6A
_080380B4:
ldrb r4, [r1]
movs r5, 0
_080380B8:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _080380CE
lsls r0, r5, 24
lsrs r0, 24
mov r2, sp
adds r1, r2, r6
bl dp01_getattr_by_ch1_for_player_pokemon__
adds r6, r0
_080380CE:
lsrs r4, 1
adds r5, 0x1
cmp r5, 0x5
ble _080380B8
_080380D6:
lsls r1, r6, 16
lsrs r1, 16
movs r0, 0x1
mov r2, sp
bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
bl dp01_tbl4_exec_completed
add sp, 0x100
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end dp01t_00_4_getattr
thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__
dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x90
adds r7, r1, 0
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
ldr r2, _08038124 @ =gUnknown_02023A60
ldr r3, _08038128 @ =gUnknown_02024A60
ldrb r0, [r3]
lsls r0, 9
adds r1, r2, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3B
bls _0803811A
bl _08038886
_0803811A:
lsls r0, 2
ldr r1, _0803812C @ =_08038130
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08038124: .4byte gUnknown_02023A60
_08038128: .4byte gUnknown_02024A60
_0803812C: .4byte _08038130
.align 2, 0
_08038130:
.4byte _08038220
.4byte _08038444
.4byte _08038454
.4byte _08038464
.4byte _080384CC
.4byte _080384CC
.4byte _080384CC
.4byte _080384CC
.4byte _080384E8
.4byte _08038524
.4byte _08038524
.4byte _08038524
.4byte _08038524
.4byte _08038886
.4byte _08038886
.4byte _08038886
.4byte _08038886
.4byte _08038540
.4byte _08038550
.4byte _08038580
.4byte _08038590
.4byte _080385A0
.4byte _080385B0
.4byte _080385C0
.4byte _080385D0
.4byte _080385E0
.4byte _080385F0
.4byte _08038600
.4byte _08038610
.4byte _08038620
.4byte _08038630
.4byte _08038640
.4byte _08038690
.4byte _080386A0
.4byte _080386B0
.4byte _080386C0
.4byte _080386D0
.4byte _080386E0
.4byte _080386F0
.4byte _08038700
.4byte _08038710
.4byte _08038744
.4byte _08038754
.4byte _08038764
.4byte _08038774
.4byte _08038784
.4byte _08038794
.4byte _080387A4
.4byte _080387B4
.4byte _080387D4
.4byte _080387E4
.4byte _080387F4
.4byte _08038804
.4byte _08038814
.4byte _08038824
.4byte _08038834
.4byte _08038844
.4byte _08038854
.4byte _08038864
.4byte _08038874
_08038220:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08038434 @ =gEnemyParty
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
bl GetMonData
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
bl GetMonData
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
add r0, sp, 0x24
mov r9, r0
movs r1, 0x3B
add r1, sp
mov r10, r1
mov r2, sp
adds r2, 0x2B
str r2, [sp, 0x80]
mov r0, sp
adds r0, 0x2A
str r0, [sp, 0x7C]
mov r1, sp
adds r1, 0x68
str r1, [sp, 0x8C]
adds r2, 0x5
str r2, [sp, 0x84]
adds r0, 0x12
str r0, [sp, 0x88]
mov r8, r4
add r4, sp, 0xC
_0803826C:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
bl GetMonData
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
bl GetMonData
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _0803826C
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08038434 @ =gEnemyParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
bl GetMonData
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
bl GetMonData
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
bl GetMonData
mov r3, sp
movs r5, 0x1F
ands r0, r5
ldrb r2, [r3, 0x14]
movs r1, 0x20
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
bl GetMonData
mov r3, sp
movs r6, 0x1F
ands r0, r6
lsls r0, 5
ldrh r2, [r3, 0x14]
ldr r1, _08038438 @ =0xfffffc1f
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 2
ldrb r2, [r3, 0x15]
movs r1, 0x7D
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
bl GetMonData
movs r1, 0x1F
ands r1, r0
lsls r1, 15
ldr r0, [sp, 0x14]
ldr r2, _0803843C @ =0xfff07fff
ands r0, r2
orrs r0, r1
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
bl GetMonData
mov r3, sp
ands r0, r6
lsls r0, 4
ldrh r2, [r3, 0x16]
ldr r1, _08038440 @ =0xfffffe0f
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
bl GetMonData
mov r3, sp
ands r0, r5
lsls r0, 1
ldrb r2, [r3, 0x17]
movs r1, 0x3F
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
bl GetMonData
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
bl GetMonData
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
bl GetMonData
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
bl GetMonData
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
bl GetMonData
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
bl GetMonData
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
bl GetMonData
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
bl GetMonData
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
bl GetMonData
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
bl GetMonData
mov r3, sp
movs r1, 0x1
ands r0, r1
lsls r0, 6
ldrb r2, [r3, 0x17]
movs r1, 0x41
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
bl GetMonData
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
movs r1, 0x7F
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
bl GetMonData
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
bl GetMonData
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl StringCopy10
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
bl GetMonData
mov r2, sp
movs r6, 0
_08038424:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0x57
bls _08038424
b _08038886
.align 2, 0
_08038434: .4byte gEnemyParty
_08038438: .4byte 0xfffffc1f
_0803843C: .4byte 0xfff07fff
_08038440: .4byte 0xfffffe0f
_08038444:
movs r0, 0x64
muls r0, r5
ldr r1, _08038450 @ =gEnemyParty
adds r0, r1
movs r1, 0xB
b _080387BE
.align 2, 0
_08038450: .4byte gEnemyParty
_08038454:
movs r0, 0x64
muls r0, r5
ldr r1, _08038460 @ =gEnemyParty
adds r0, r1
movs r1, 0xC
b _080387BE
.align 2, 0
_08038460: .4byte gEnemyParty
_08038464:
movs r6, 0
add r2, sp, 0x58
mov r9, r2
add r0, sp, 0x60
mov r10, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _080384C8 @ =gEnemyParty
adds r4, r1, r0
mov r8, r9
_0803847A:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
bl GetMonData
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
bl GetMonData
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
movs r0, 0x2
add r8, r0
adds r6, 0x1
cmp r6, 0x3
ble _0803847A
movs r0, 0x64
muls r0, r5
ldr r1, _080384C8 @ =gEnemyParty
adds r0, r1
movs r1, 0x15
bl GetMonData
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
movs r6, 0
_080384B8:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0xF
bls _080384B8
b _08038886
.align 2, 0
_080384C8: .4byte gEnemyParty
_080384CC:
movs r0, 0x64
muls r0, r5
ldr r1, _080384E4 @ =gEnemyParty
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x9
b _080387BE
.align 2, 0
_080384E4: .4byte gEnemyParty
_080384E8:
movs r6, 0
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r2, _08038520 @ =gEnemyParty
mov r8, r2
_080384F4:
adds r1, r6, 0
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
cmp r6, 0x3
ble _080384F4
movs r0, 0x64
muls r0, r5
ldr r1, _08038520 @ =gEnemyParty
adds r0, r1
movs r1, 0x15
bl GetMonData
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
b _08038886
.align 2, 0
_08038520: .4byte gEnemyParty
_08038524:
movs r0, 0x64
muls r0, r5
ldr r1, _0803853C @ =gEnemyParty
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x8
b _0803887E
.align 2, 0
_0803853C: .4byte gEnemyParty
_08038540:
movs r0, 0x64
muls r0, r5
ldr r1, _0803854C @ =gEnemyParty
adds r0, r1
movs r1, 0x1
b _0803855A
.align 2, 0
_0803854C: .4byte gEnemyParty
_08038550:
movs r0, 0x64
muls r0, r5
ldr r1, _0803857C @ =gEnemyParty
adds r0, r1
movs r1, 0x19
_0803855A:
bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r0, 8
strb r0, [r7, 0x1]
movs r0, 0xFF
lsls r0, 16
ands r0, r1
lsrs r0, 16
strb r0, [r7, 0x2]
movs r6, 0x3
b _08038886
.align 2, 0
_0803857C: .4byte gEnemyParty
_08038580:
movs r0, 0x64
muls r0, r5
ldr r1, _0803858C @ =gEnemyParty
adds r0, r1
movs r1, 0x1A
b _0803887E
.align 2, 0
_0803858C: .4byte gEnemyParty
_08038590:
movs r0, 0x64
muls r0, r5
ldr r1, _0803859C @ =gEnemyParty
adds r0, r1
movs r1, 0x1B
b _0803887E
.align 2, 0
_0803859C: .4byte gEnemyParty
_080385A0:
movs r0, 0x64
muls r0, r5
ldr r1, _080385AC @ =gEnemyParty
adds r0, r1
movs r1, 0x1C
b _0803887E
.align 2, 0
_080385AC: .4byte gEnemyParty
_080385B0:
movs r0, 0x64
muls r0, r5
ldr r1, _080385BC @ =gEnemyParty
adds r0, r1
movs r1, 0x1D
b _0803887E
.align 2, 0
_080385BC: .4byte gEnemyParty
_080385C0:
movs r0, 0x64
muls r0, r5
ldr r1, _080385CC @ =gEnemyParty
adds r0, r1
movs r1, 0x1E
b _0803887E
.align 2, 0
_080385CC: .4byte gEnemyParty
_080385D0:
movs r0, 0x64
muls r0, r5
ldr r1, _080385DC @ =gEnemyParty
adds r0, r1
movs r1, 0x1F
b _0803887E
.align 2, 0
_080385DC: .4byte gEnemyParty
_080385E0:
movs r0, 0x64
muls r0, r5
ldr r1, _080385EC @ =gEnemyParty
adds r0, r1
movs r1, 0x20
b _0803887E
.align 2, 0
_080385EC: .4byte gEnemyParty
_080385F0:
movs r0, 0x64
muls r0, r5
ldr r1, _080385FC @ =gEnemyParty
adds r0, r1
movs r1, 0x22
b _0803887E
.align 2, 0
_080385FC: .4byte gEnemyParty
_08038600:
movs r0, 0x64
muls r0, r5
ldr r1, _0803860C @ =gEnemyParty
adds r0, r1
movs r1, 0x23
b _0803887E
.align 2, 0
_0803860C: .4byte gEnemyParty
_08038610:
movs r0, 0x64
muls r0, r5
ldr r1, _0803861C @ =gEnemyParty
adds r0, r1
movs r1, 0x24
b _0803887E
.align 2, 0
_0803861C: .4byte gEnemyParty
_08038620:
movs r0, 0x64
muls r0, r5
ldr r1, _0803862C @ =gEnemyParty
adds r0, r1
movs r1, 0x25
b _0803887E
.align 2, 0
_0803862C: .4byte gEnemyParty
_08038630:
movs r0, 0x64
muls r0, r5
ldr r1, _0803863C @ =gEnemyParty
adds r0, r1
movs r1, 0x26
b _0803887E
.align 2, 0
_0803863C: .4byte gEnemyParty
_08038640:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _0803868C @ =gEnemyParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
bl GetMonData
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
bl GetMonData
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
bl GetMonData
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
bl GetMonData
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
bl GetMonData
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
bl GetMonData
strb r0, [r7, 0x5]
movs r6, 0x6
b _08038886
.align 2, 0
_0803868C: .4byte gEnemyParty
_08038690:
movs r0, 0x64
muls r0, r5
ldr r1, _0803869C @ =gEnemyParty
adds r0, r1
movs r1, 0x27
b _0803887E
.align 2, 0
_0803869C: .4byte gEnemyParty
_080386A0:
movs r0, 0x64
muls r0, r5
ldr r1, _080386AC @ =gEnemyParty
adds r0, r1
movs r1, 0x28
b _0803887E
.align 2, 0
_080386AC: .4byte gEnemyParty
_080386B0:
movs r0, 0x64
muls r0, r5
ldr r1, _080386BC @ =gEnemyParty
adds r0, r1
movs r1, 0x29
b _0803887E
.align 2, 0
_080386BC: .4byte gEnemyParty
_080386C0:
movs r0, 0x64
muls r0, r5
ldr r1, _080386CC @ =gEnemyParty
adds r0, r1
movs r1, 0x2A
b _0803887E
.align 2, 0
_080386CC: .4byte gEnemyParty
_080386D0:
movs r0, 0x64
muls r0, r5
ldr r1, _080386DC @ =gEnemyParty
adds r0, r1
movs r1, 0x2B
b _0803887E
.align 2, 0
_080386DC: .4byte gEnemyParty
_080386E0:
movs r0, 0x64
muls r0, r5
ldr r1, _080386EC @ =gEnemyParty
adds r0, r1
movs r1, 0x2C
b _0803887E
.align 2, 0
_080386EC: .4byte gEnemyParty
_080386F0:
movs r0, 0x64
muls r0, r5
ldr r1, _080386FC @ =gEnemyParty
adds r0, r1
movs r1, 0
b _0803871A
.align 2, 0
_080386FC: .4byte gEnemyParty
_08038700:
movs r0, 0x64
muls r0, r5
ldr r1, _0803870C @ =gEnemyParty
adds r0, r1
movs r1, 0x9
b _080387BE
.align 2, 0
_0803870C: .4byte gEnemyParty
_08038710:
movs r0, 0x64
muls r0, r5
ldr r1, _08038740 @ =gEnemyParty
adds r0, r1
movs r1, 0x37
_0803871A:
bl GetMonData
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r0, 8
strb r0, [r7, 0x1]
movs r0, 0xFF
lsls r0, 16
ands r0, r1
lsrs r0, 16
strb r0, [r7, 0x2]
lsrs r0, r1, 24
strb r0, [r7, 0x3]
movs r6, 0x4
b _08038886
.align 2, 0
_08038740: .4byte gEnemyParty
_08038744:
movs r0, 0x64
muls r0, r5
ldr r1, _08038750 @ =gEnemyParty
adds r0, r1
movs r1, 0x38
b _0803887E
.align 2, 0
_08038750: .4byte gEnemyParty
_08038754:
movs r0, 0x64
muls r0, r5
ldr r1, _08038760 @ =gEnemyParty
adds r0, r1
movs r1, 0x39
b _080387BE
.align 2, 0
_08038760: .4byte gEnemyParty
_08038764:
movs r0, 0x64
muls r0, r5
ldr r1, _08038770 @ =gEnemyParty
adds r0, r1
movs r1, 0x3A
b _080387BE
.align 2, 0
_08038770: .4byte gEnemyParty
_08038774:
movs r0, 0x64
muls r0, r5
ldr r1, _08038780 @ =gEnemyParty
adds r0, r1
movs r1, 0x3B
b _080387BE
.align 2, 0
_08038780: .4byte gEnemyParty
_08038784:
movs r0, 0x64
muls r0, r5
ldr r1, _08038790 @ =gEnemyParty
adds r0, r1
movs r1, 0x3C
b _080387BE
.align 2, 0
_08038790: .4byte gEnemyParty
_08038794:
movs r0, 0x64
muls r0, r5
ldr r1, _080387A0 @ =gEnemyParty
adds r0, r1
movs r1, 0x3D
b _080387BE
.align 2, 0
_080387A0: .4byte gEnemyParty
_080387A4:
movs r0, 0x64
muls r0, r5
ldr r1, _080387B0 @ =gEnemyParty
adds r0, r1
movs r1, 0x3E
b _080387BE
.align 2, 0
_080387B0: .4byte gEnemyParty
_080387B4:
movs r0, 0x64
muls r0, r5
ldr r1, _080387D0 @ =gEnemyParty
adds r0, r1
movs r1, 0x3F
_080387BE:
bl GetMonData
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
lsrs r0, 8
strb r0, [r7, 0x1]
movs r6, 0x2
b _08038886
.align 2, 0
_080387D0: .4byte gEnemyParty
_080387D4:
movs r0, 0x64
muls r0, r5
ldr r1, _080387E0 @ =gEnemyParty
adds r0, r1
movs r1, 0x16
b _0803887E
.align 2, 0
_080387E0: .4byte gEnemyParty
_080387E4:
movs r0, 0x64
muls r0, r5
ldr r1, _080387F0 @ =gEnemyParty
adds r0, r1
movs r1, 0x17
b _0803887E
.align 2, 0
_080387F0: .4byte gEnemyParty
_080387F4:
movs r0, 0x64
muls r0, r5
ldr r1, _08038800 @ =gEnemyParty
adds r0, r1
movs r1, 0x18
b _0803887E
.align 2, 0
_08038800: .4byte gEnemyParty
_08038804:
movs r0, 0x64
muls r0, r5
ldr r1, _08038810 @ =gEnemyParty
adds r0, r1
movs r1, 0x21
b _0803887E
.align 2, 0
_08038810: .4byte gEnemyParty
_08038814:
movs r0, 0x64
muls r0, r5
ldr r1, _08038820 @ =gEnemyParty
adds r0, r1
movs r1, 0x2F
b _0803887E
.align 2, 0
_08038820: .4byte gEnemyParty
_08038824:
movs r0, 0x64
muls r0, r5
ldr r1, _08038830 @ =gEnemyParty
adds r0, r1
movs r1, 0x30
b _0803887E
.align 2, 0
_08038830: .4byte gEnemyParty
_08038834:
movs r0, 0x64
muls r0, r5
ldr r1, _08038840 @ =gEnemyParty
adds r0, r1
movs r1, 0x32
b _0803887E
.align 2, 0
_08038840: .4byte gEnemyParty
_08038844:
movs r0, 0x64
muls r0, r5
ldr r1, _08038850 @ =gEnemyParty
adds r0, r1
movs r1, 0x33
b _0803887E
.align 2, 0
_08038850: .4byte gEnemyParty
_08038854:
movs r0, 0x64
muls r0, r5
ldr r1, _08038860 @ =gEnemyParty
adds r0, r1
movs r1, 0x34
b _0803887E
.align 2, 0
_08038860: .4byte gEnemyParty
_08038864:
movs r0, 0x64
muls r0, r5
ldr r1, _08038870 @ =gEnemyParty
adds r0, r1
movs r1, 0x35
b _0803887E
.align 2, 0
_08038870: .4byte gEnemyParty
_08038874:
movs r0, 0x64
muls r0, r5
ldr r1, _08038898 @ =gEnemyParty
adds r0, r1
movs r1, 0x36
_0803887E:
bl GetMonData
strb r0, [r7]
movs r6, 0x1
_08038886:
adds r0, r6, 0
add sp, 0x90
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08038898: .4byte gEnemyParty
thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__
thumb_func_start sub_803889C
sub_803889C: @ 803889C
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_803889C
thumb_func_start sub_80388A8
sub_80388A8: @ 80388A8
push {r4,r5,lr}
ldr r1, _080388CC @ =gUnknown_02023A60
ldr r0, _080388D0 @ =gUnknown_02024A60
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _080388D8
ldr r0, _080388D4 @ =gUnknown_02024A6A
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
bl sub_8038900
b _080388F6
.align 2, 0
_080388CC: .4byte gUnknown_02023A60
_080388D0: .4byte gUnknown_02024A60
_080388D4: .4byte gUnknown_02024A6A
_080388D8:
ldrb r4, [r1]
movs r5, 0
_080388DC:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _080388EA
adds r0, r5, 0
bl sub_8038900
_080388EA:
lsrs r4, 1
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _080388DC
_080388F6:
bl dp01_tbl4_exec_completed
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80388A8
thumb_func_start sub_8038900
sub_8038900: @ 8038900
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x38
lsls r0, 24
lsrs r5, r0, 24
ldr r3, _08038938 @ =gUnknown_02024A60
ldrb r0, [r3]
lsls r0, 9
ldr r2, _0803893C @ =gUnknown_02023A63
adds r4, r0, r2
adds r7, r4, 0
subs r1, r2, 0x2
adds r0, r1
ldrb r0, [r0]
adds r6, r3, 0
adds r3, r2, 0
cmp r0, 0x3B
bls _0803892E
bl _0803920C
_0803892E:
lsls r0, 2
ldr r1, _08038940 @ =_08038944
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08038938: .4byte gUnknown_02024A60
_0803893C: .4byte gUnknown_02023A63
_08038940: .4byte _08038944
.align 2, 0
_08038944:
.4byte _08038A34
.4byte _08038BCC
.4byte _08038BE8
.4byte _08038C04
.4byte _08038C58
.4byte _08038C58
.4byte _08038C58
.4byte _08038C58
.4byte _08038C78
.4byte _08038CE0
.4byte _08038CE0
.4byte _08038CE0
.4byte _08038CE0
.4byte _0803920C
.4byte _0803920C
.4byte _0803920C
.4byte _0803920C
.4byte _08038D08
.4byte _08038D24
.4byte _08038D40
.4byte _08038D5C
.4byte _08038D78
.4byte _08038D94
.4byte _08038DB0
.4byte _08038DCC
.4byte _08038DE8
.4byte _08038E04
.4byte _08038E20
.4byte _08038E3C
.4byte _08038E58
.4byte _08038E74
.4byte _08038E90
.4byte _08038F04
.4byte _08038F20
.4byte _08038F3C
.4byte _08038F58
.4byte _08038F74
.4byte _08038F90
.4byte _08038FAC
.4byte _08038FC8
.4byte _08038FE4
.4byte _08039000
.4byte _0803901C
.4byte _08039038
.4byte _08039054
.4byte _08039070
.4byte _0803908C
.4byte _080390A8
.4byte _080390C4
.4byte _080390E0
.4byte _080390FC
.4byte _08039118
.4byte _08039134
.4byte _08039150
.4byte _0803916C
.4byte _08039188
.4byte _080391A4
.4byte _080391C0
.4byte _080391DC
.4byte _080391F8
_08038A34:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08038BC8 @ =gEnemyParty
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
adds r2, r7, 0
bl SetMonData
adds r2, r7, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
bl SetMonData
movs r0, 0
mov r8, r0
movs r0, 0x3B
adds r0, r7
mov r10, r0
adds r0, r7, 0
adds r0, 0x2B
str r0, [sp, 0x20]
adds r0, 0x19
str r0, [sp, 0x28]
adds r0, 0x4
str r0, [sp, 0x2C]
adds r0, 0x4
str r0, [sp, 0x30]
subs r0, 0x22
str r0, [sp, 0x1C]
subs r0, 0x2
str r0, [sp, 0x18]
adds r0, 0x4
str r0, [sp, 0x24]
adds r0, r7, 0x2
str r0, [sp, 0x4]
adds r0, r7, 0x4
str r0, [sp, 0x8]
adds r0, r7, 0x6
str r0, [sp, 0xC]
adds r0, 0x2
str r0, [sp, 0x10]
adds r0, 0x2
str r0, [sp, 0x14]
mov r9, r4
adds r6, r7, 0
adds r6, 0x24
adds r4, r7, 0
adds r4, 0xC
_08038A9A:
mov r1, r8
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
bl SetMonData
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r6, 0
bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _08038A9A
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08038BC8 @ =gEnemyParty
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
bl SetMonData
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
bl SetMonData
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
bl SetMonData
ldrb r0, [r7, 0x14]
lsls r0, 27
lsrs r0, 27
mov r1, sp
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x14]
lsls r0, 22
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x15]
lsls r0, 25
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
bl SetMonData
mov r1, sp
ldr r0, [r7, 0x14]
lsls r0, 12
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
bl SetMonData
mov r1, sp
ldrh r0, [r7, 0x16]
lsls r0, 23
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
bl SetMonData
mov r1, sp
ldrb r0, [r7, 0x17]
lsls r0, 26
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
bl SetMonData
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
bl SetMonData
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
bl SetMonData
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
bl SetMonData
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
bl SetMonData
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
bl SetMonData
b _0803920C
.align 2, 0
_08038BC8: .4byte gEnemyParty
_08038BCC:
movs r0, 0x64
muls r0, r5
ldr r1, _08038BE4 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0xB
bl SetMonData
b _0803920C
.align 2, 0
_08038BE4: .4byte gEnemyParty
_08038BE8:
movs r0, 0x64
muls r0, r5
ldr r1, _08038C00 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0xC
bl SetMonData
b _0803920C
.align 2, 0
_08038C00: .4byte gEnemyParty
_08038C04:
movs r0, 0
mov r8, r0
movs r0, 0xC
adds r0, r4
mov r9, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _08038C54 @ =gEnemyParty
adds r7, r1, r0
adds r6, r4, 0
adds r6, 0x8
_08038C1C:
mov r1, r8
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
bl SetMonData
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
bl SetMonData
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _08038C1C
movs r0, 0x64
muls r0, r5
ldr r1, _08038C54 @ =gEnemyParty
adds r0, r1
movs r1, 0x15
mov r2, r9
bl SetMonData
b _0803920C
.align 2, 0
_08038C54: .4byte gEnemyParty
_08038C58:
movs r0, 0x64
muls r0, r5
ldr r1, _08038C70 @ =gEnemyParty
adds r0, r1
ldr r3, _08038C74 @ =gUnknown_02023A60
ldrb r2, [r6]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x9
b _08038CF6
.align 2, 0
_08038C70: .4byte gEnemyParty
_08038C74: .4byte gUnknown_02023A60
_08038C78:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08038CDC @ =gEnemyParty
adds r4, r0
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
adds r0, r4, 0
movs r1, 0x11
str r3, [sp, 0x34]
bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
bl SetMonData
b _0803920C
.align 2, 0
_08038CDC: .4byte gEnemyParty
_08038CE0:
movs r0, 0x64
muls r0, r5
ldr r1, _08038D00 @ =gEnemyParty
adds r0, r1
ldr r3, _08038D04 @ =gUnknown_02023A60
ldrb r2, [r6]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x8
_08038CF6:
adds r3, 0x3
adds r2, r3
bl SetMonData
b _0803920C
.align 2, 0
_08038D00: .4byte gEnemyParty
_08038D04: .4byte gUnknown_02023A60
_08038D08:
movs r0, 0x64
muls r0, r5
ldr r1, _08038D20 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1
bl SetMonData
b _0803920C
.align 2, 0
_08038D20: .4byte gEnemyParty
_08038D24:
movs r0, 0x64
muls r0, r5
ldr r1, _08038D3C @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x19
bl SetMonData
b _0803920C
.align 2, 0
_08038D3C: .4byte gEnemyParty
_08038D40:
movs r0, 0x64
muls r0, r5
ldr r1, _08038D58 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1A
bl SetMonData
b _0803920C
.align 2, 0
_08038D58: .4byte gEnemyParty
_08038D5C:
movs r0, 0x64
muls r0, r5
ldr r1, _08038D74 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1B
bl SetMonData
b _0803920C
.align 2, 0
_08038D74: .4byte gEnemyParty
_08038D78:
movs r0, 0x64
muls r0, r5
ldr r1, _08038D90 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1C
bl SetMonData
b _0803920C
.align 2, 0
_08038D90: .4byte gEnemyParty
_08038D94:
movs r0, 0x64
muls r0, r5
ldr r1, _08038DAC @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1D
bl SetMonData
b _0803920C
.align 2, 0
_08038DAC: .4byte gEnemyParty
_08038DB0:
movs r0, 0x64
muls r0, r5
ldr r1, _08038DC8 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1E
bl SetMonData
b _0803920C
.align 2, 0
_08038DC8: .4byte gEnemyParty
_08038DCC:
movs r0, 0x64
muls r0, r5
ldr r1, _08038DE4 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1F
bl SetMonData
b _0803920C
.align 2, 0
_08038DE4: .4byte gEnemyParty
_08038DE8:
movs r0, 0x64
muls r0, r5
ldr r1, _08038E00 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x20
bl SetMonData
b _0803920C
.align 2, 0
_08038E00: .4byte gEnemyParty
_08038E04:
movs r0, 0x64
muls r0, r5
ldr r1, _08038E1C @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x22
bl SetMonData
b _0803920C
.align 2, 0
_08038E1C: .4byte gEnemyParty
_08038E20:
movs r0, 0x64
muls r0, r5
ldr r1, _08038E38 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x23
bl SetMonData
b _0803920C
.align 2, 0
_08038E38: .4byte gEnemyParty
_08038E3C:
movs r0, 0x64
muls r0, r5
ldr r1, _08038E54 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x24
bl SetMonData
b _0803920C
.align 2, 0
_08038E54: .4byte gEnemyParty
_08038E58:
movs r0, 0x64
muls r0, r5
ldr r1, _08038E70 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x25
bl SetMonData
b _0803920C
.align 2, 0
_08038E70: .4byte gEnemyParty
_08038E74:
movs r0, 0x64
muls r0, r5
ldr r1, _08038E8C @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x26
bl SetMonData
b _0803920C
.align 2, 0
_08038E8C: .4byte gEnemyParty
_08038E90:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08038F00 @ =gEnemyParty
adds r4, r0
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
adds r0, r4, 0
movs r1, 0x27
str r3, [sp, 0x34]
bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
bl SetMonData
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x5
adds r2, r0
adds r0, r4, 0
b _08038F9E
.align 2, 0
_08038F00: .4byte gEnemyParty
_08038F04:
movs r0, 0x64
muls r0, r5
ldr r1, _08038F1C @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x27
bl SetMonData
b _0803920C
.align 2, 0
_08038F1C: .4byte gEnemyParty
_08038F20:
movs r0, 0x64
muls r0, r5
ldr r1, _08038F38 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x28
bl SetMonData
b _0803920C
.align 2, 0
_08038F38: .4byte gEnemyParty
_08038F3C:
movs r0, 0x64
muls r0, r5
ldr r1, _08038F54 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x29
bl SetMonData
b _0803920C
.align 2, 0
_08038F54: .4byte gEnemyParty
_08038F58:
movs r0, 0x64
muls r0, r5
ldr r1, _08038F70 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x2A
bl SetMonData
b _0803920C
.align 2, 0
_08038F70: .4byte gEnemyParty
_08038F74:
movs r0, 0x64
muls r0, r5
ldr r1, _08038F8C @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x2B
bl SetMonData
b _0803920C
.align 2, 0
_08038F8C: .4byte gEnemyParty
_08038F90:
movs r0, 0x64
muls r0, r5
ldr r1, _08038FA8 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
_08038F9E:
movs r1, 0x2C
bl SetMonData
b _0803920C
.align 2, 0
_08038FA8: .4byte gEnemyParty
_08038FAC:
movs r0, 0x64
muls r0, r5
ldr r1, _08038FC4 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0
bl SetMonData
b _0803920C
.align 2, 0
_08038FC4: .4byte gEnemyParty
_08038FC8:
movs r0, 0x64
muls r0, r5
ldr r1, _08038FE0 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x9
bl SetMonData
b _0803920C
.align 2, 0
_08038FE0: .4byte gEnemyParty
_08038FE4:
movs r0, 0x64
muls r0, r5
ldr r1, _08038FFC @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x37
bl SetMonData
b _0803920C
.align 2, 0
_08038FFC: .4byte gEnemyParty
_08039000:
movs r0, 0x64
muls r0, r5
ldr r1, _08039018 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x38
bl SetMonData
b _0803920C
.align 2, 0
_08039018: .4byte gEnemyParty
_0803901C:
movs r0, 0x64
muls r0, r5
ldr r1, _08039034 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x39
bl SetMonData
b _0803920C
.align 2, 0
_08039034: .4byte gEnemyParty
_08039038:
movs r0, 0x64
muls r0, r5
ldr r1, _08039050 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3A
bl SetMonData
b _0803920C
.align 2, 0
_08039050: .4byte gEnemyParty
_08039054:
movs r0, 0x64
muls r0, r5
ldr r1, _0803906C @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3B
bl SetMonData
b _0803920C
.align 2, 0
_0803906C: .4byte gEnemyParty
_08039070:
movs r0, 0x64
muls r0, r5
ldr r1, _08039088 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3C
bl SetMonData
b _0803920C
.align 2, 0
_08039088: .4byte gEnemyParty
_0803908C:
movs r0, 0x64
muls r0, r5
ldr r1, _080390A4 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3D
bl SetMonData
b _0803920C
.align 2, 0
_080390A4: .4byte gEnemyParty
_080390A8:
movs r0, 0x64
muls r0, r5
ldr r1, _080390C0 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3E
bl SetMonData
b _0803920C
.align 2, 0
_080390C0: .4byte gEnemyParty
_080390C4:
movs r0, 0x64
muls r0, r5
ldr r1, _080390DC @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3F
bl SetMonData
b _0803920C
.align 2, 0
_080390DC: .4byte gEnemyParty
_080390E0:
movs r0, 0x64
muls r0, r5
ldr r1, _080390F8 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x16
bl SetMonData
b _0803920C
.align 2, 0
_080390F8: .4byte gEnemyParty
_080390FC:
movs r0, 0x64
muls r0, r5
ldr r1, _08039114 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x17
bl SetMonData
b _0803920C
.align 2, 0
_08039114: .4byte gEnemyParty
_08039118:
movs r0, 0x64
muls r0, r5
ldr r1, _08039130 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x18
bl SetMonData
b _0803920C
.align 2, 0
_08039130: .4byte gEnemyParty
_08039134:
movs r0, 0x64
muls r0, r5
ldr r1, _0803914C @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x21
bl SetMonData
b _0803920C
.align 2, 0
_0803914C: .4byte gEnemyParty
_08039150:
movs r0, 0x64
muls r0, r5
ldr r1, _08039168 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x2F
bl SetMonData
b _0803920C
.align 2, 0
_08039168: .4byte gEnemyParty
_0803916C:
movs r0, 0x64
muls r0, r5
ldr r1, _08039184 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x30
bl SetMonData
b _0803920C
.align 2, 0
_08039184: .4byte gEnemyParty
_08039188:
movs r0, 0x64
muls r0, r5
ldr r1, _080391A0 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x32
bl SetMonData
b _0803920C
.align 2, 0
_080391A0: .4byte gEnemyParty
_080391A4:
movs r0, 0x64
muls r0, r5
ldr r1, _080391BC @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x33
bl SetMonData
b _0803920C
.align 2, 0
_080391BC: .4byte gEnemyParty
_080391C0:
movs r0, 0x64
muls r0, r5
ldr r1, _080391D8 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x34
bl SetMonData
b _0803920C
.align 2, 0
_080391D8: .4byte gEnemyParty
_080391DC:
movs r0, 0x64
muls r0, r5
ldr r1, _080391F4 @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x35
bl SetMonData
b _0803920C
.align 2, 0
_080391F4: .4byte gEnemyParty
_080391F8:
movs r0, 0x64
muls r0, r5
ldr r1, _0803921C @ =gEnemyParty
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x36
bl SetMonData
_0803920C:
add sp, 0x38
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803921C: .4byte gEnemyParty
thumb_func_end sub_8038900
thumb_func_start sub_8039220
sub_8039220: @ 8039220
push {r4-r7,lr}
ldr r1, _08039284 @ =gUnknown_02024A6A
ldr r7, _08039288 @ =gUnknown_02024A60
ldrb r2, [r7]
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
adds r3, r1, 0
muls r3, r0
ldr r4, _0803928C @ =gUnknown_02023A60
lsls r2, 9
adds r0, r4, 0x1
adds r0, r2, r0
ldrb r0, [r0]
ldr r1, _08039290 @ =gEnemyParty
adds r0, r1
adds r5, r3, r0
movs r3, 0
adds r0, r4, 0x2
adds r2, r0
ldrb r2, [r2]
cmp r3, r2
bcs _08039278
adds r6, r4, 0
adds r2, r7, 0
adds r4, r0, 0
_08039256:
adds r1, r5, r3
ldrb r0, [r2]
lsls r0, 9
adds r0, 0x3
adds r0, r3, r0
adds r0, r6
ldrb r0, [r0]
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
ldrb r0, [r2]
lsls r0, 9
adds r0, r4
ldrb r0, [r0]
cmp r3, r0
bcc _08039256
_08039278:
bl dp01_tbl4_exec_completed
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08039284: .4byte gUnknown_02024A6A
_08039288: .4byte gUnknown_02024A60
_0803928C: .4byte gUnknown_02023A60
_08039290: .4byte gEnemyParty
thumb_func_end sub_8039220
thumb_func_start sub_8039294
sub_8039294: @ 8039294
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r7, _080393BC @ =gUnknown_02024A6A
ldr r6, _080393C0 @ =gUnknown_02024A60
ldrb r0, [r6]
lsls r0, 1
adds r0, r7
ldrh r0, [r0]
movs r1, 0x64
mov r10, r1
mov r2, r10
muls r2, r0
adds r0, r2, 0
ldr r1, _080393C4 @ =gEnemyParty
mov r9, r1
add r0, r9
movs r1, 0xB
bl GetMonData
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r1, [r6]
lsls r0, r1, 1
adds r0, r7
ldrh r0, [r0]
mov r2, r10
muls r2, r0
adds r0, r2, 0
add r0, r9
bl sub_8031794
ldrb r0, [r6]
bl battle_get_per_side_status
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
bl GetMonSpriteTemplate_803C56C
ldr r0, _080393C8 @ =gUnknown_02024E8C
mov r8, r0
ldrb r0, [r6]
movs r1, 0x2
bl sub_8077ABC
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldrb r0, [r6]
bl sub_8077F68
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r6]
bl sub_8079E90
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
mov r0, r8
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
ldr r4, _080393CC @ =gUnknown_02024BE0
ldrb r1, [r6]
adds r1, r4
strb r0, [r1]
ldr r5, _080393D0 @ =gSprites
ldrb r0, [r6]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080393D4 @ =0x0000ff10
strh r1, [r0, 0x24]
ldrb r2, [r6]
adds r0, r2, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r2, [r0, 0x2E]
ldrb r3, [r6]
adds r0, r3, r4
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
lsls r3, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r2, [r6]
adds r4, r2, r4
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080393D8 @ =gBattleMonForms
adds r2, r1
ldrb r1, [r2]
bl StartSpriteAnim
ldrb r4, [r6]
lsls r0, r4, 1
adds r0, r7
ldrh r0, [r0]
mov r1, r10
muls r1, r0
adds r0, r1, 0
add r0, r9
movs r1, 0xB
bl GetMonData
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_8032984
ldr r1, _080393DC @ =gUnknown_03004330
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _080393E0 @ =sub_8037A74
str r1, [r0]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080393BC: .4byte gUnknown_02024A6A
_080393C0: .4byte gUnknown_02024A60
_080393C4: .4byte gEnemyParty
_080393C8: .4byte gUnknown_02024E8C
_080393CC: .4byte gUnknown_02024BE0
_080393D0: .4byte gSprites
_080393D4: .4byte 0x0000ff10
_080393D8: .4byte gBattleMonForms
_080393DC: .4byte gUnknown_03004330
_080393E0: .4byte sub_8037A74
thumb_func_end sub_8039294
thumb_func_start sub_80393E4
sub_80393E4: @ 80393E4
push {r4,lr}
ldr r1, _0803941C @ =gUnknown_02024A6A
ldr r4, _08039420 @ =gUnknown_02024A60
ldrb r0, [r4]
lsls r2, r0, 1
adds r2, r1
ldr r3, _08039424 @ =gUnknown_02023A60
lsls r0, 9
adds r1, r3, 0x1
adds r0, r1
ldrb r0, [r0]
strh r0, [r2]
ldrb r0, [r4]
lsls r1, r0, 9
adds r3, 0x2
adds r1, r3
ldrb r1, [r1]
bl sub_8039430
ldr r1, _08039428 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _0803942C @ =sub_8037E30
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803941C: .4byte gUnknown_02024A6A
_08039420: .4byte gUnknown_02024A60
_08039424: .4byte gUnknown_02023A60
_08039428: .4byte gUnknown_03004330
_0803942C: .4byte sub_8037E30
thumb_func_end sub_80393E4
thumb_func_start sub_8039430
sub_8039430: @ 8039430
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
bl sub_8032AA8
ldr r0, _0803958C @ =gUnknown_02024A6A
lsls r4, r6, 1
adds r4, r0
ldr r0, _08039590 @ =gUnknown_02023A60
lsls r1, r6, 9
adds r0, 0x1
adds r1, r0
ldrb r0, [r1]
strh r0, [r4]
ldrh r0, [r4]
movs r1, 0x64
mov r9, r1
mov r1, r9
muls r1, r0
adds r0, r1, 0
ldr r5, _08039594 @ =gEnemyParty
adds r0, r5
movs r1, 0xB
bl GetMonData
mov r8, r0
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldr r0, _08039598 @ =sub_80312F0
bl CreateInvisibleSpriteWithCallback
ldr r1, _0803959C @ =gUnknown_0300434C
mov r10, r1
add r10, r6
mov r1, r10
strb r0, [r1]
ldrh r0, [r4]
mov r1, r9
muls r1, r0
adds r0, r1, 0
adds r0, r5
adds r1, r6, 0
bl sub_8031794
adds r0, r6, 0
bl battle_get_per_side_status
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl GetMonSpriteTemplate_803C56C
ldr r0, _080395A0 @ =gUnknown_02024E8C
mov r9, r0
adds r0, r6, 0
movs r1, 0x2
bl sub_8077ABC
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
adds r0, r6, 0
bl sub_8077F68
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
bl sub_8079E90
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
mov r0, r9
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
ldr r4, _080395A4 @ =gUnknown_02024BE0
adds r4, r6, r4
strb r0, [r4]
ldr r5, _080395A8 @ =gSprites
mov r0, r10
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r4]
strh r1, [r0, 0x30]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r6, [r0, 0x2E]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
mov r1, r8
strh r1, [r0, 0x32]
ldrb r0, [r4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
lsls r3, r6, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080395AC @ =gBattleMonForms
adds r6, r1
ldrb r1, [r6]
bl StartSpriteAnim
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _080395B0 @ =SpriteCallbackDummy
str r1, [r0]
movs r0, 0
movs r1, 0xFE
bl sub_8046400
mov r1, r10
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r5
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x2E]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803958C: .4byte gUnknown_02024A6A
_08039590: .4byte gUnknown_02023A60
_08039594: .4byte gEnemyParty
_08039598: .4byte sub_80312F0
_0803959C: .4byte gUnknown_0300434C
_080395A0: .4byte gUnknown_02024E8C
_080395A4: .4byte gUnknown_02024BE0
_080395A8: .4byte gSprites
_080395AC: .4byte gBattleMonForms
_080395B0: .4byte SpriteCallbackDummy
thumb_func_end sub_8039430
thumb_func_start sub_80395B4
sub_80395B4: @ 80395B4
push {r4-r6,lr}
ldr r1, _080395E4 @ =gUnknown_02023A60
ldr r6, _080395E8 @ =gUnknown_02024A60
ldrb r2, [r6]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r3, [r0]
cmp r3, 0
bne _080395F8
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r1, _080395EC @ =0x02017810
adds r0, r1
strb r3, [r0, 0x4]
ldr r1, _080395F0 @ =gUnknown_03004330
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _080395F4 @ =sub_8039648
str r1, [r0]
b _08039634
.align 2, 0
_080395E4: .4byte gUnknown_02023A60
_080395E8: .4byte gUnknown_02024A60
_080395EC: .4byte 0x02017810
_080395F0: .4byte gUnknown_03004330
_080395F4: .4byte sub_8039648
_080395F8:
ldr r5, _0803963C @ =gUnknown_02024BE0
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _08039640 @ =gSprites
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldrb r0, [r6]
bl sub_8032A08
ldr r1, _08039644 @ =gUnknown_03004340
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8043DB0
bl dp01_tbl4_exec_completed
_08039634:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803963C: .4byte gUnknown_02024BE0
_08039640: .4byte gSprites
_08039644: .4byte gUnknown_03004340
thumb_func_end sub_80395B4
thumb_func_start sub_8039648
sub_8039648: @ 8039648
push {r4,r5,lr}
ldr r5, _08039664 @ =gUnknown_02024A60
ldrb r2, [r5]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r4, _08039668 @ =0x02017810
adds r3, r0, r4
ldrb r0, [r3, 0x4]
cmp r0, 0
beq _0803966C
cmp r0, 0x1
beq _08039698
b _080396C0
.align 2, 0
_08039664: .4byte gUnknown_02024A60
_08039668: .4byte 0x02017810
_0803966C:
lsls r0, r2, 2
adds r1, r4, 0
subs r1, 0x10
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08039688
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl move_anim_start_t4
_08039688:
ldrb r0, [r5]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r4
movs r0, 0x1
strb r0, [r1, 0x4]
b _080396C0
_08039698:
ldrb r1, [r3]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080396C0
strb r0, [r3, 0x4]
ldrb r2, [r5]
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x2
bl move_anim_start_t4
ldr r1, _080396C8 @ =gUnknown_03004330
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _080396CC @ =sub_8037BBC
str r1, [r0]
_080396C0:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080396C8: .4byte gUnknown_03004330
_080396CC: .4byte sub_8037BBC
thumb_func_end sub_8039648
thumb_func_start sub_80396D0
sub_80396D0: @ 80396D0
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
ldr r0, _08039704 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08039714
ldr r6, _08039708 @ =gUnknown_02024A60
ldrb r0, [r6]
bl battle_get_per_side_status
movs r1, 0x2
ands r1, r0
movs r5, 0x10
cmp r1, 0
beq _080396F8
ldr r5, _0803970C @ =0x0000fff0
_080396F8:
ldr r4, _08039710 @ =gLinkPlayers
ldrb r0, [r6]
bl sub_803FC34
b _08039724
.align 2, 0
_08039704: .4byte gBattleTypeFlags
_08039708: .4byte gUnknown_02024A60
_0803970C: .4byte 0x0000fff0
_08039710: .4byte gLinkPlayers
_08039714:
movs r5, 0
ldr r4, _0803986C @ =gLinkPlayers
bl GetMultiplayerId
movs r1, 0x1
eors r0, r1
lsls r0, 24
lsrs r0, 24
_08039724:
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r4
ldrb r0, [r1, 0x13]
mov r9, r0
ldr r0, _08039870 @ =gUnknown_02024A60
mov r8, r0
ldrb r1, [r0]
mov r0, r9
bl sub_8031A6C
mov r1, r8
ldrb r0, [r1]
bl battle_get_per_side_status
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r9
bl GetMonSpriteTemplate_803C5A0
ldr r6, _08039874 @ =gUnknown_02024E8C
lsls r5, 16
movs r2, 0xB0
lsls r2, 16
adds r5, r2
asrs r5, 16
ldr r1, _08039878 @ =gTrainerFrontPicCoords
mov r2, r9
lsls r0, r2, 2
adds r0, r1
ldrb r0, [r0]
movs r4, 0x8
subs r4, r0
lsls r4, 18
movs r0, 0xA0
lsls r0, 14
adds r4, r0
asrs r4, 16
mov r1, r8
ldrb r0, [r1]
bl sub_8079E90
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl CreateSprite
ldr r5, _0803987C @ =gUnknown_02024BE0
mov r2, r8
ldrb r1, [r2]
adds r1, r5
strb r0, [r1]
ldr r4, _08039880 @ =gSprites
ldrb r0, [r2]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, _08039884 @ =0x0000ff10
strh r1, [r0, 0x24]
ldrb r0, [r2]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x2
strh r1, [r0, 0x2E]
ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable
mov r1, r9
lsls r6, r1, 3
adds r0, r6, r0
ldrh r0, [r0, 0x4]
bl IndexOfSpritePaletteTag
mov r2, r8
ldrb r1, [r2]
adds r1, r5
ldrb r1, [r1]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
adds r2, r4
lsls r0, 4
ldrb r3, [r2, 0x5]
movs r1, 0xF
ands r1, r3
orrs r1, r0
strb r1, [r2, 0x5]
mov r1, r8
ldrb r0, [r1]
adds r0, r5
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrh r0, [r1, 0x4]
lsls r0, 22
lsrs r0, 22
strh r0, [r1, 0x38]
ldr r0, _0803988C @ =gTrainerFrontPicTable
adds r6, r0
ldrh r0, [r6, 0x6]
bl GetSpriteTileStartByTag
mov r2, r8
ldrb r1, [r2]
adds r1, r5
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldr r2, _08039890 @ =0x000003ff
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _08039894 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
mov r1, r8
ldrb r0, [r1]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
mov r2, r9
strh r2, [r0, 0x6]
mov r1, r8
ldrb r0, [r1]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, _08039898 @ =sub_80313A0
str r1, [r0]
ldr r1, _0803989C @ =gUnknown_03004330
mov r2, r8
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _080398A0 @ =sub_803757C
str r1, [r0]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803986C: .4byte gLinkPlayers
_08039870: .4byte gUnknown_02024A60
_08039874: .4byte gUnknown_02024E8C
_08039878: .4byte gTrainerFrontPicCoords
_0803987C: .4byte gUnknown_02024BE0
_08039880: .4byte gSprites
_08039884: .4byte 0x0000ff10
_08039888: .4byte gTrainerFrontPicPaletteTable
_0803988C: .4byte gTrainerFrontPicTable
_08039890: .4byte 0x000003ff
_08039894: .4byte 0xfffffc00
_08039898: .4byte sub_80313A0
_0803989C: .4byte gUnknown_03004330
_080398A0: .4byte sub_803757C
thumb_func_end sub_80396D0
thumb_func_start sub_80398A4
sub_80398A4: @ 80398A4
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_80398A4
thumb_func_start sub_80398B0
sub_80398B0: @ 80398B0
push {r4-r6,lr}
ldr r6, _08039940 @ =gUnknown_02024BE0
ldr r4, _08039944 @ =gUnknown_02024A60
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r5, _08039948 @ =gSprites
adds r0, r5
bl oamt_add_pos2_onto_pos1
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x23
strh r1, [r0, 0x2E]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x8C
lsls r1, 1
strh r1, [r0, 0x32]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r0, 0x22]
strh r1, [r0, 0x36]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _0803994C @ =sub_8078B34
str r1, [r0]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08039950 @ =SpriteCallbackDummy
bl oamt_set_x3A_32
ldr r1, _08039954 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _08039958 @ =sub_80375B4
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08039940: .4byte gUnknown_02024BE0
_08039944: .4byte gUnknown_02024A60
_08039948: .4byte gSprites
_0803994C: .4byte sub_8078B34
_08039950: .4byte SpriteCallbackDummy
_08039954: .4byte gUnknown_03004330
_08039958: .4byte sub_80375B4
thumb_func_end sub_80398B0
thumb_func_start sub_803995C
sub_803995C: @ 803995C
push {r4,r5,lr}
ldr r5, _080399A0 @ =gUnknown_02024A60
ldrb r2, [r5]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r4, _080399A4 @ =0x02017810
adds r3, r0, r4
ldrb r0, [r3, 0x4]
cmp r0, 0
bne _080399A8
lsls r0, r2, 2
adds r1, r4, 0
subs r1, 0x10
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0803998E
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl move_anim_start_t4
_0803998E:
ldrb r0, [r5]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r4
ldrb r0, [r1, 0x4]
adds r0, 0x1
strb r0, [r1, 0x4]
b _080399E4
.align 2, 0
_080399A0: .4byte gUnknown_02024A60
_080399A4: .4byte 0x02017810
_080399A8:
ldrb r1, [r3]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080399E4
strb r0, [r3, 0x4]
movs r0, 0x10
movs r1, 0x3F
bl PlaySE12WithPanning
ldr r2, _080399EC @ =gSprites
ldr r1, _080399F0 @ =gUnknown_02024BE0
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _080399F4 @ =sub_8010384
str r1, [r0]
ldr r1, _080399F8 @ =gUnknown_03004330
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _080399FC @ =sub_8037B78
str r1, [r0]
_080399E4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080399EC: .4byte gSprites
_080399F0: .4byte gUnknown_02024BE0
_080399F4: .4byte sub_8010384
_080399F8: .4byte gUnknown_03004330
_080399FC: .4byte sub_8037B78
thumb_func_end sub_803995C
thumb_func_start sub_8039A00
sub_8039A00: @ 8039A00
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039A00
thumb_func_start sub_8039A0C
sub_8039A0C: @ 8039A0C
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039A0C
thumb_func_start sub_8039A18
sub_8039A18: @ 8039A18
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039A18
thumb_func_start sub_8039A24
sub_8039A24: @ 8039A24
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039A24
thumb_func_start sub_8039A30
sub_8039A30: @ 8039A30
push {r4-r6,lr}
ldr r6, _08039B14 @ =gUnknown_02024A60
ldrb r0, [r6]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
beq _08039A42
b _08039B52
_08039A42:
ldr r0, _08039B18 @ =gUnknown_02023A60
mov r12, r0
ldrb r2, [r6]
lsls r2, 9
adds r0, 0x1
adds r0, r2, r0
ldrb r0, [r0]
mov r1, r12
adds r1, 0x2
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
ldr r5, _08039B1C @ =gUnknown_0202F7C4
mov r1, r12
adds r1, 0x3
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
ldr r4, _08039B20 @ =gUnknown_0202F7BC
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x4
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x5
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
ldr r4, _08039B24 @ =gUnknown_0202F7B8
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x6
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x7
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 8
orrs r3, r1
mov r1, r12
adds r1, 0x8
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 16
orrs r3, r1
mov r1, r12
adds r1, 0x9
adds r2, r1
ldrb r1, [r2]
lsls r1, 24
orrs r3, r1
str r3, [r4]
ldr r3, _08039B28 @ =gUnknown_0202F7BE
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
adds r2, 0xA
adds r1, r2
ldrb r1, [r1]
strb r1, [r3]
ldr r4, _08039B2C @ =gUnknown_0202F7C0
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0xC
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0xD
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
ldr r3, _08039B30 @ =gUnknown_0202F7B4
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x10
adds r2, r1
str r2, [r3]
ldr r3, _08039B34 @ =gUnknown_02024E70
ldrb r1, [r6]
lsls r1, 2
adds r1, r3
ldr r2, [r2]
str r2, [r1]
ldrb r1, [r5]
bl sub_8031720
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
beq _08039B38
bl dp01_tbl4_exec_completed
b _08039B52
.align 2, 0
_08039B14: .4byte gUnknown_02024A60
_08039B18: .4byte gUnknown_02023A60
_08039B1C: .4byte gUnknown_0202F7C4
_08039B20: .4byte gUnknown_0202F7BC
_08039B24: .4byte gUnknown_0202F7B8
_08039B28: .4byte gUnknown_0202F7BE
_08039B2C: .4byte gUnknown_0202F7C0
_08039B30: .4byte gUnknown_0202F7B4
_08039B34: .4byte gUnknown_02024E70
_08039B38:
ldrb r1, [r6]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _08039B58 @ =0x02017810
adds r0, r1
strb r2, [r0, 0x4]
ldr r1, _08039B5C @ =gUnknown_03004330
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _08039B60 @ =sub_8039B64
str r1, [r0]
_08039B52:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08039B58: .4byte 0x02017810
_08039B5C: .4byte gUnknown_03004330
_08039B60: .4byte sub_8039B64
thumb_func_end sub_8039A30
thumb_func_start sub_8039B64
sub_8039B64: @ 8039B64
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r2, _08039BA8 @ =gUnknown_02023A60
ldr r5, _08039BAC @ =gUnknown_02024A60
ldrb r3, [r5]
lsls r1, r3, 9
adds r0, r2, 0x1
mov r9, r0
adds r0, r1, r0
ldrb r4, [r0]
adds r6, r2, 0x2
mov r8, r6
adds r0, r1, r6
ldrb r0, [r0]
lsls r0, 8
orrs r4, r0
adds r2, 0xB
adds r1, r2
ldrb r7, [r1]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
ldr r6, _08039BB0 @ =0x02017810
adds r0, r6
ldrb r2, [r0, 0x4]
cmp r2, 0x1
beq _08039BF2
cmp r2, 0x1
bgt _08039BB4
cmp r2, 0
beq _08039BBE
b _08039CBC
.align 2, 0
_08039BA8: .4byte gUnknown_02023A60
_08039BAC: .4byte gUnknown_02024A60
_08039BB0: .4byte 0x02017810
_08039BB4:
cmp r2, 0x2
beq _08039C18
cmp r2, 0x3
beq _08039C84
b _08039CBC
_08039BBE:
lsls r1, r3, 2
adds r0, r6, 0
subs r0, 0x10
adds r1, r0
ldrb r2, [r1]
movs r0, 0xC
ands r0, r2
cmp r0, 0x4
bne _08039BE2
movs r0, 0x8
orrs r0, r2
strb r0, [r1]
ldrb r2, [r5]
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl move_anim_start_t4
_08039BE2:
ldrb r0, [r5]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r6
movs r0, 0x1
strb r0, [r1, 0x4]
b _08039CBC
_08039BF2:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _08039CBC
movs r0, 0
bl sub_80326EC
adds r0, r4, 0
bl ExecuteMoveAnim
ldrb r0, [r5]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r6
movs r0, 0x2
strb r0, [r1, 0x4]
b _08039CBC
_08039C18:
ldr r0, _08039C74 @ =gAnimScriptCallback
ldr r0, [r0]
bl _call_via_r0
ldr r0, _08039C78 @ =gAnimScriptActive
ldrb r0, [r0]
cmp r0, 0
bne _08039CBC
movs r0, 0x1
bl sub_80326EC
ldrb r2, [r5]
lsls r0, r2, 2
adds r4, r6, 0
subs r4, 0x10
adds r0, r4
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08039C60
cmp r7, 0x1
bhi _08039C60
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x6
bl move_anim_start_t4
ldrb r0, [r5]
lsls r0, 2
adds r0, r4
ldrb r2, [r0]
movs r1, 0x9
negs r1, r1
ands r1, r2
strb r1, [r0]
_08039C60:
ldr r0, _08039C7C @ =gUnknown_02024A60
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _08039C80 @ =0x02017810
adds r0, r1
movs r1, 0x3
strb r1, [r0, 0x4]
b _08039CBC
.align 2, 0
_08039C74: .4byte gAnimScriptCallback
_08039C78: .4byte gAnimScriptActive
_08039C7C: .4byte gUnknown_02024A60
_08039C80: .4byte 0x02017810
_08039C84:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _08039CBC
bl sub_8031F24
ldrb r0, [r5]
lsls r2, r0, 9
mov r3, r9
adds r1, r2, r3
ldrb r1, [r1]
add r2, r8
ldrb r2, [r2]
lsls r2, 8
orrs r1, r2
bl sub_80324BC
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r6
strb r4, [r0, 0x4]
bl dp01_tbl4_exec_completed
_08039CBC:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8039B64
thumb_func_start sub_8039CC8
sub_8039CC8: @ 8039CC8
push {r4,lr}
sub sp, 0x4
ldr r0, _08039D0C @ =gUnknown_030042A4
movs r1, 0
strh r1, [r0]
ldr r0, _08039D10 @ =gUnknown_030042A0
strh r1, [r0]
ldr r4, _08039D14 @ =gUnknown_02024A60
ldrb r0, [r4]
lsls r0, 9
ldr r1, _08039D18 @ =gUnknown_02023A62
adds r0, r1
ldrh r0, [r0]
bl sub_8120AA8
ldr r0, _08039D1C @ =gUnknown_03004210
ldr r1, _08039D20 @ =gUnknown_020238CC
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
ldr r1, _08039D24 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _08039D28 @ =sub_8037C2C
str r1, [r0]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08039D0C: .4byte gUnknown_030042A4
_08039D10: .4byte gUnknown_030042A0
_08039D14: .4byte gUnknown_02024A60
_08039D18: .4byte gUnknown_02023A62
_08039D1C: .4byte gUnknown_03004210
_08039D20: .4byte gUnknown_020238CC
_08039D24: .4byte gUnknown_03004330
_08039D28: .4byte sub_8037C2C
thumb_func_end sub_8039CC8
thumb_func_start sub_8039D2C
sub_8039D2C: @ 8039D2C
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039D2C
thumb_func_start sub_8039D38
sub_8039D38: @ 8039D38
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039D38
thumb_func_start sub_8039D44
sub_8039D44: @ 8039D44
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039D44
thumb_func_start sub_8039D50
sub_8039D50: @ 8039D50
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039D50
thumb_func_start sub_8039D5C
sub_8039D5C: @ 8039D5C
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039D5C
thumb_func_start sub_8039D68
sub_8039D68: @ 8039D68
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039D68
thumb_func_start sub_8039D74
sub_8039D74: @ 8039D74
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039D74
thumb_func_start sub_8039D80
sub_8039D80: @ 8039D80
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r0, 0
bl load_gfxc_health_bar
ldr r3, _08039DF8 @ =gUnknown_02023A60
ldr r0, _08039DFC @ =gUnknown_02024A60
mov r9, r0
ldrb r4, [r0]
lsls r2, r4, 9
adds r0, r3, 0x2
adds r0, r2, r0
ldrb r1, [r0]
adds r3, 0x3
adds r2, r3
ldrb r0, [r2]
lsls r0, 8
orrs r1, r0
lsls r1, 16
asrs r7, r1, 16
ldr r0, _08039E00 @ =0x00007fff
cmp r7, r0
beq _08039E10
ldr r6, _08039E04 @ =gUnknown_02024A6A
lsls r0, r4, 1
adds r0, r6
ldrh r0, [r0]
movs r5, 0x64
muls r0, r5
ldr r4, _08039E08 @ =gEnemyParty
adds r0, r4
movs r1, 0x3A
bl GetMonData
mov r8, r0
mov r1, r9
ldrb r0, [r1]
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
muls r0, r5
adds r0, r4
movs r1, 0x39
bl GetMonData
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
ldr r1, _08039E0C @ =gUnknown_03004340
adds r1, r0, r1
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
bl sub_8043D84
b _08039E3A
.align 2, 0
_08039DF8: .4byte gUnknown_02023A60
_08039DFC: .4byte gUnknown_02024A60
_08039E00: .4byte 0x00007fff
_08039E04: .4byte gUnknown_02024A6A
_08039E08: .4byte gEnemyParty
_08039E0C: .4byte gUnknown_03004340
_08039E10:
ldr r1, _08039E58 @ =gUnknown_02024A6A
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08039E5C @ =gEnemyParty
adds r0, r1
movs r1, 0x3A
bl GetMonData
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
ldr r1, _08039E60 @ =gUnknown_03004340
adds r1, r0, r1
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
bl sub_8043D84
_08039E3A:
ldr r1, _08039E64 @ =gUnknown_03004330
ldr r0, _08039E68 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _08039E6C @ =sub_8037B24
str r1, [r0]
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08039E58: .4byte gUnknown_02024A6A
_08039E5C: .4byte gEnemyParty
_08039E60: .4byte gUnknown_03004340
_08039E64: .4byte gUnknown_03004330
_08039E68: .4byte gUnknown_02024A60
_08039E6C: .4byte sub_8037B24
thumb_func_end sub_8039D80
thumb_func_start sub_8039E70
sub_8039E70: @ 8039E70
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039E70
thumb_func_start sub_8039E7C
sub_8039E7C: @ 8039E7C
push {r4,lr}
ldr r4, _08039ED4 @ =gUnknown_02024A60
ldrb r0, [r4]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
bne _08039ECC
ldr r0, _08039ED8 @ =gUnknown_03004340
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
ldr r2, _08039EDC @ =gUnknown_02024A6A
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _08039EE0 @ =gEnemyParty
adds r1, r2
movs r2, 0x9
bl sub_8045A5C
ldrb r0, [r4]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
ldr r0, _08039EE4 @ =0x02017810
adds r1, r0
ldrb r2, [r1]
movs r0, 0x11
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r1, _08039EE8 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _08039EEC @ =sub_8037FAC
str r1, [r0]
_08039ECC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08039ED4: .4byte gUnknown_02024A60
_08039ED8: .4byte gUnknown_03004340
_08039EDC: .4byte gUnknown_02024A6A
_08039EE0: .4byte gEnemyParty
_08039EE4: .4byte 0x02017810
_08039EE8: .4byte gUnknown_03004330
_08039EEC: .4byte sub_8037FAC
thumb_func_end sub_8039E7C
thumb_func_start sub_8039EF0
sub_8039EF0: @ 8039EF0
push {r4,r5,lr}
ldr r5, _08039F48 @ =gUnknown_02024A60
ldrb r0, [r5]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
bne _08039F40
ldr r4, _08039F4C @ =gUnknown_02023A60
ldrb r3, [r5]
lsls r3, 9
adds r0, r4, 0x1
adds r0, r3, r0
ldrb r0, [r0]
adds r1, r4, 0x2
adds r1, r3, r1
ldrb r1, [r1]
adds r2, r4, 0x3
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, 8
orrs r1, r2
adds r2, r4, 0x4
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, 16
orrs r1, r2
adds r4, 0x5
adds r3, r4
ldrb r2, [r3]
lsls r2, 24
orrs r1, r2
bl move_anim_start_t2_for_situation
ldr r1, _08039F50 @ =gUnknown_03004330
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _08039F54 @ =sub_8037FAC
str r1, [r0]
_08039F40:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08039F48: .4byte gUnknown_02024A60
_08039F4C: .4byte gUnknown_02023A60
_08039F50: .4byte gUnknown_03004330
_08039F54: .4byte sub_8037FAC
thumb_func_end sub_8039EF0
thumb_func_start sub_8039F58
sub_8039F58: @ 8039F58
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039F58
thumb_func_start sub_8039F64
sub_8039F64: @ 8039F64
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039F64
thumb_func_start sub_8039F70
sub_8039F70: @ 8039F70
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039F70
thumb_func_start sub_8039F7C
sub_8039F7C: @ 8039F7C
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039F7C
thumb_func_start sub_8039F88
sub_8039F88: @ 8039F88
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039F88
thumb_func_start sub_8039F94
sub_8039F94: @ 8039F94
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039F94
thumb_func_start sub_8039FA0
sub_8039FA0: @ 8039FA0
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039FA0
thumb_func_start sub_8039FAC
sub_8039FAC: @ 8039FAC
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039FAC
thumb_func_start sub_8039FB8
sub_8039FB8: @ 8039FB8
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_8039FB8
thumb_func_start sub_8039FC4
sub_8039FC4: @ 8039FC4
push {lr}
ldr r2, _08039FDC @ =gUnknown_020238C8
ldrb r1, [r2]
movs r0, 0x80
negs r0, r0
ands r0, r1
strb r0, [r2]
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
.align 2, 0
_08039FDC: .4byte gUnknown_020238C8
thumb_func_end sub_8039FC4
thumb_func_start sub_8039FE0
sub_8039FE0: @ 8039FE0
push {lr}
ldr r3, _0803A00C @ =gUnknown_020238C8
ldr r1, _0803A010 @ =gUnknown_02023A60
ldr r0, _0803A014 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
movs r1, 0x7F
ands r1, r0
ldrb r2, [r3]
movs r0, 0x80
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
.align 2, 0
_0803A00C: .4byte gUnknown_020238C8
_0803A010: .4byte gUnknown_02023A60
_0803A014: .4byte gUnknown_02024A60
thumb_func_end sub_8039FE0
thumb_func_start sub_803A018
sub_803A018: @ 803A018
push {lr}
ldr r2, _0803A02C @ =gUnknown_020238C8
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
.align 2, 0
_0803A02C: .4byte gUnknown_020238C8
thumb_func_end sub_803A018
thumb_func_start sub_803A030
sub_803A030: @ 803A030
push {lr}
ldr r3, _0803A054 @ =gUnknown_020238C8
ldr r1, [r3]
lsls r1, 24
lsrs r1, 31
movs r0, 0x1
eors r1, r0
lsls r1, 7
ldrb r2, [r3]
movs r0, 0x7F
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
.align 2, 0
_0803A054: .4byte gUnknown_020238C8
thumb_func_end sub_803A030
thumb_func_start dp01t_29_4_blink
dp01t_29_4_blink: @ 803A058
push {r4,lr}
ldr r3, _0803A080 @ =gSprites
ldr r2, _0803A084 @ =gUnknown_02024BE0
ldr r4, _0803A088 @ =gUnknown_02024A60
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
bge _0803A08C
bl dp01_tbl4_exec_completed
b _0803A0B6
.align 2, 0
_0803A080: .4byte gSprites
_0803A084: .4byte gUnknown_02024BE0
_0803A088: .4byte gUnknown_02024A60
_0803A08C:
ldr r1, _0803A0BC @ =gUnknown_02024E6D
movs r0, 0x1
strb r0, [r1]
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0
strh r1, [r0, 0x30]
ldrb r0, [r4]
bl sub_8047858
ldr r1, _0803A0C0 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim
str r1, [r0]
_0803A0B6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A0BC: .4byte gUnknown_02024E6D
_0803A0C0: .4byte gUnknown_03004330
_0803A0C4: .4byte dp01t_0F_4_move_anim
thumb_func_end dp01t_29_4_blink
thumb_func_start sub_803A0C8
sub_803A0C8: @ 803A0C8
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_803A0C8
thumb_func_start sub_803A0D4
sub_803A0D4: @ 803A0D4
push {r4,lr}
ldr r4, _0803A110 @ =gUnknown_02024A60
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
movs r3, 0x3F
cmp r0, 0
bne _0803A0E8
movs r3, 0xC0
_0803A0E8:
ldr r2, _0803A114 @ =gUnknown_02023A60
ldrb r1, [r4]
lsls r1, 9
adds r0, r2, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
lsls r1, r3, 24
asrs r1, 24
bl PlaySE12WithPanning
bl dp01_tbl4_exec_completed
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A110: .4byte gUnknown_02024A60
_0803A114: .4byte gUnknown_02023A60
thumb_func_end sub_803A0D4
thumb_func_start sub_803A118
sub_803A118: @ 803A118
push {lr}
ldr r2, _0803A140 @ =gUnknown_02023A60
ldr r0, _0803A144 @ =gUnknown_02024A60
ldrb r1, [r0]
lsls r1, 9
adds r0, r2, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
bl PlayFanfare
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
.align 2, 0
_0803A140: .4byte gUnknown_02023A60
_0803A144: .4byte gUnknown_02024A60
thumb_func_end sub_803A118
thumb_func_start sub_803A148
sub_803A148: @ 803A148
push {lr}
ldr r1, _0803A178 @ =gUnknown_02024A6A
ldr r0, _0803A17C @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0803A180 @ =gEnemyParty
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
movs r2, 0x5
bl PlayCry3
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
.align 2, 0
_0803A178: .4byte gUnknown_02024A6A
_0803A17C: .4byte gUnknown_02024A60
_0803A180: .4byte gEnemyParty
thumb_func_end sub_803A148
thumb_func_start dp01t_2E_4_battle_intro
dp01t_2E_4_battle_intro: @ 803A184
push {lr}
ldr r1, _0803A1AC @ =gUnknown_02023A60
ldr r0, _0803A1B0 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
bl sub_80E43C0
ldr r2, _0803A1B4 @ =gUnknown_02024DE8
ldrh r0, [r2]
movs r1, 0x1
orrs r0, r1
strh r0, [r2]
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
.align 2, 0
_0803A1AC: .4byte gUnknown_02023A60
_0803A1B0: .4byte gUnknown_02024A60
_0803A1B4: .4byte gUnknown_02024DE8
thumb_func_end dp01t_2E_4_battle_intro
thumb_func_start sub_803A1B8
sub_803A1B8: @ 803A1B8
push {r4-r6,lr}
ldr r5, _0803A294 @ =gUnknown_02024BE0
ldr r6, _0803A298 @ =gUnknown_02024A60
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _0803A29C @ =gSprites
adds r0, r4
bl oamt_add_pos2_onto_pos1
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x23
strh r1, [r0, 0x2E]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x8C
lsls r1, 1
strh r1, [r0, 0x32]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x22]
strh r1, [r0, 0x36]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _0803A2A0 @ =sub_8078B34
str r1, [r0]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, _0803A2A4 @ =sub_803A3A8
bl oamt_set_x3A_32
ldr r0, _0803A2A8 @ =sub_803A2C4
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r4, _0803A2AC @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r4
ldrb r0, [r6]
strh r0, [r1, 0x8]
ldrb r3, [r6]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
ldr r2, _0803A2B0 @ =0x02017810
adds r0, r2
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0803A276
ldr r0, _0803A2B4 @ =gUnknown_02024E68
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r4
ldr r1, _0803A2B8 @ =sub_8044CA0
str r1, [r0]
_0803A276:
adds r2, 0x30
ldrb r0, [r2, 0x9]
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x9]
ldr r1, _0803A2BC @ =gUnknown_03004330
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _0803A2C0 @ =nullsub_47
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803A294: .4byte gUnknown_02024BE0
_0803A298: .4byte gUnknown_02024A60
_0803A29C: .4byte gSprites
_0803A2A0: .4byte sub_8078B34
_0803A2A4: .4byte sub_803A3A8
_0803A2A8: .4byte sub_803A2C4
_0803A2AC: .4byte gTasks
_0803A2B0: .4byte 0x02017810
_0803A2B4: .4byte gUnknown_02024E68
_0803A2B8: .4byte sub_8044CA0
_0803A2BC: .4byte gUnknown_03004330
_0803A2C0: .4byte nullsub_47
thumb_func_end sub_803A1B8
thumb_func_start sub_803A2C4
sub_803A2C4: @ 803A2C4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r7, _0803A31C @ =gUnknown_02024A60
ldrb r0, [r7]
mov r9, r0
ldr r1, _0803A320 @ =gTasks
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r0, r1
ldrh r0, [r0, 0x8]
strb r0, [r7]
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0803A2FE
ldr r0, _0803A324 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0803A330
_0803A2FE:
ldr r0, _0803A328 @ =gUnknown_02023A60
ldrb r1, [r7]
lsls r2, r1, 9
adds r0, 0x1
adds r2, r0
ldr r0, _0803A32C @ =gUnknown_02024A6A
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
strb r0, [r2]
ldrb r0, [r7]
movs r1, 0
bl sub_8039430
b _0803A370
.align 2, 0
_0803A31C: .4byte gUnknown_02024A60
_0803A320: .4byte gTasks
_0803A324: .4byte gBattleTypeFlags
_0803A328: .4byte gUnknown_02023A60
_0803A32C: .4byte gUnknown_02024A6A
_0803A330:
ldr r4, _0803A394 @ =gUnknown_02023A60
ldrb r0, [r7]
lsls r1, r0, 9
adds r4, 0x1
adds r1, r4
ldr r6, _0803A398 @ =gUnknown_02024A6A
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
strb r0, [r1]
ldrb r0, [r7]
movs r1, 0
bl sub_8039430
ldrb r0, [r7]
movs r5, 0x2
eors r0, r5
strb r0, [r7]
ldrb r0, [r7]
lsls r1, r0, 9
adds r1, r4
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
strb r0, [r1]
ldrb r0, [r7]
movs r1, 0
bl sub_8039430
ldrb r0, [r7]
eors r0, r5
strb r0, [r7]
_0803A370:
ldr r1, _0803A39C @ =gUnknown_03004330
ldr r2, _0803A3A0 @ =gUnknown_02024A60
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _0803A3A4 @ =sub_8037840
str r1, [r0]
mov r0, r9
strb r0, [r2]
mov r0, r8
bl DestroyTask
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803A394: .4byte gUnknown_02023A60
_0803A398: .4byte gUnknown_02024A6A
_0803A39C: .4byte gUnknown_03004330
_0803A3A0: .4byte gUnknown_02024A60
_0803A3A4: .4byte sub_8037840
thumb_func_end sub_803A2C4
thumb_func_start sub_803A3A8
sub_803A3A8: @ 803A3A8
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x6]
bl sub_8031B74
ldrh r0, [r4, 0x38]
ldr r1, _0803A3D4 @ =0x000003ff
ands r1, r0
ldrh r2, [r4, 0x4]
ldr r0, _0803A3D8 @ =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
adds r0, r4, 0
bl FreeSpriteOamMatrix
adds r0, r4, 0
bl DestroySprite
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A3D4: .4byte 0x000003ff
_0803A3D8: .4byte 0xfffffc00
thumb_func_end sub_803A3A8
thumb_func_start sub_803A3DC
sub_803A3DC: @ 803A3DC
push {r4-r6,lr}
ldr r1, _0803A404 @ =gUnknown_02023A60
ldr r0, _0803A408 @ =gUnknown_02024A60
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _0803A40C
adds r0, r2, 0
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _0803A40C
bl dp01_tbl4_exec_completed
b _0803A4C6
.align 2, 0
_0803A404: .4byte gUnknown_02023A60
_0803A408: .4byte gUnknown_02024A60
_0803A40C:
ldr r3, _0803A45C @ =gUnknown_02024A60
ldrb r1, [r3]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r4, _0803A460 @ =0x02017810
adds r0, r4
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
ldr r1, _0803A464 @ =gUnknown_02023A60
ldrb r2, [r3]
lsls r0, r2, 9
adds r1, 0x2
adds r0, r1
ldrb r0, [r0]
adds r6, r3, 0
cmp r0, 0
beq _0803A470
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r3, r0, r4
ldrb r2, [r3, 0x1]
lsls r1, r2, 26
lsrs r0, r1, 27
cmp r0, 0x1
bhi _0803A468
adds r0, 0x1
movs r1, 0x1F
ands r0, r1
lsls r0, 1
movs r1, 0x3F
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x1]
b _0803A4C6
.align 2, 0
_0803A45C: .4byte gUnknown_02024A60
_0803A460: .4byte 0x02017810
_0803A464: .4byte gUnknown_02023A60
_0803A468:
movs r0, 0x3F
negs r0, r0
ands r0, r2
strb r0, [r3, 0x1]
_0803A470:
adds r5, r6, 0
ldrb r0, [r5]
lsls r3, r0, 9
ldr r4, _0803A4CC @ =gUnknown_02023A64
adds r1, r3, r4
subs r2, r4, 0x3
adds r2, r3, r2
ldrb r2, [r2]
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
bl sub_8044804
ldr r2, _0803A4D0 @ =gUnknown_02024E68
ldrb r1, [r5]
adds r1, r2
movs r2, 0
strb r0, [r1]
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r3, _0803A4D4 @ =0x02017810
adds r0, r3
strb r2, [r0, 0x5]
ldrb r1, [r5]
lsls r0, r1, 9
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _0803A4BA
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0x5D
strb r1, [r0, 0x5]
_0803A4BA:
ldr r0, _0803A4D8 @ =gUnknown_03004330
ldrb r1, [r6]
lsls r1, 2
adds r1, r0
ldr r0, _0803A4DC @ =sub_803A4E0
str r0, [r1]
_0803A4C6:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803A4CC: .4byte gUnknown_02023A64
_0803A4D0: .4byte gUnknown_02024E68
_0803A4D4: .4byte 0x02017810
_0803A4D8: .4byte gUnknown_03004330
_0803A4DC: .4byte sub_803A4E0
thumb_func_end sub_803A3DC
thumb_func_start sub_803A4E0
sub_803A4E0: @ 803A4E0
push {r4,lr}
ldr r4, _0803A518 @ =gUnknown_02024A60
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r3, _0803A51C @ =0x02017810
adds r0, r3
ldrb r1, [r0, 0x5]
adds r2, r1, 0x1
strb r2, [r0, 0x5]
lsls r1, 24
lsrs r1, 24
cmp r1, 0x5C
bls _0803A510
ldrb r0, [r4]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r3
movs r0, 0
strb r0, [r1, 0x5]
bl dp01_tbl4_exec_completed
_0803A510:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A518: .4byte gUnknown_02024A60
_0803A51C: .4byte 0x02017810
thumb_func_end sub_803A4E0
thumb_func_start sub_803A520
sub_803A520: @ 803A520
push {lr}
ldr r0, _0803A558 @ =gUnknown_02024A60
ldrb r3, [r0]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
ldr r1, _0803A55C @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0803A54E
ldr r2, _0803A560 @ =gTasks
ldr r0, _0803A564 @ =gUnknown_02024E68
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, _0803A568 @ =sub_8044CA0
str r1, [r0]
_0803A54E:
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
.align 2, 0
_0803A558: .4byte gUnknown_02024A60
_0803A55C: .4byte 0x02017810
_0803A560: .4byte gTasks
_0803A564: .4byte gUnknown_02024E68
_0803A568: .4byte sub_8044CA0
thumb_func_end sub_803A520
thumb_func_start sub_803A56C
sub_803A56C: @ 803A56C
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_803A56C
thumb_func_start sub_803A578
sub_803A578: @ 803A578
push {r4,lr}
ldr r4, _0803A5C8 @ =gUnknown_02024A60
ldrb r0, [r4]
bl sub_8078874
lsls r0, 24
cmp r0, 0
beq _0803A5BE
ldr r3, _0803A5CC @ =gSprites
ldr r0, _0803A5D0 @ =gUnknown_02024BE0
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldr r0, _0803A5D4 @ =gUnknown_02023A60
lsls r1, 9
adds r0, 0x1
adds r1, r0
adds r2, 0x3E
movs r0, 0x1
ldrb r1, [r1]
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4]
bl sub_8031F88
_0803A5BE:
bl dp01_tbl4_exec_completed
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803A5C8: .4byte gUnknown_02024A60
_0803A5CC: .4byte gSprites
_0803A5D0: .4byte gUnknown_02024BE0
_0803A5D4: .4byte gUnknown_02023A60
thumb_func_end sub_803A578
thumb_func_start bx_exec_buffer_A_ch0_tbl4
bx_exec_buffer_A_ch0_tbl4: @ 803A5D8
push {r4-r6,lr}
sub sp, 0x4
ldr r6, _0803A61C @ =gUnknown_02024A60
ldrb r0, [r6]
bl mplay_80342A4
lsls r0, 24
cmp r0, 0
bne _0803A630
ldr r5, _0803A620 @ =gUnknown_02023A60
ldrb r2, [r6]
lsls r1, r2, 9
adds r0, r5, 0x1
adds r0, r1, r0
ldrb r3, [r0]
adds r0, r5, 0x2
adds r0, r1, r0
ldrb r4, [r0]
adds r5, 0x3
adds r1, r5
ldrb r0, [r1]
lsls r0, 8
orrs r4, r0
str r4, [sp]
adds r0, r2, 0
adds r1, r2, 0
bl move_anim_start_t3
lsls r0, 24
cmp r0, 0
beq _0803A624
bl dp01_tbl4_exec_completed
b _0803A630
.align 2, 0
_0803A61C: .4byte gUnknown_02024A60
_0803A620: .4byte gUnknown_02023A60
_0803A624:
ldr r0, _0803A638 @ =gUnknown_03004330
ldrb r1, [r6]
lsls r1, 2
adds r1, r0
ldr r0, _0803A63C @ =sub_8037FD8
str r0, [r1]
_0803A630:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803A638: .4byte gUnknown_03004330
_0803A63C: .4byte sub_8037FD8
thumb_func_end bx_exec_buffer_A_ch0_tbl4
thumb_func_start sub_803A640
sub_803A640: @ 803A640
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_803A640
thumb_func_start sub_803A64C
sub_803A64C: @ 803A64C
push {lr}
bl dp01_tbl4_exec_completed
pop {r0}
bx r0
thumb_func_end sub_803A64C
thumb_func_start sub_803A658
sub_803A658: @ 803A658
push {lr}
ldr r1, _0803A674 @ =gUnknown_02023A60
ldr r0, _0803A678 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r2, [r0]
cmp r2, 0x3
bne _0803A680
ldr r0, _0803A67C @ =gUnknown_02024D26
strb r2, [r0]
b _0803A688
.align 2, 0
_0803A674: .4byte gUnknown_02023A60
_0803A678: .4byte gUnknown_02024A60
_0803A67C: .4byte gUnknown_02024D26
_0803A680:
ldr r0, _0803A6AC @ =gUnknown_02024D26
movs r1, 0x3
eors r1, r2
strb r1, [r0]
_0803A688:
movs r0, 0x5
bl FadeOutMapMusic
movs r0, 0x3
bl BeginFastPaletteFade
bl dp01_tbl4_exec_completed
ldr r1, _0803A6B0 @ =gUnknown_03004330
ldr r0, _0803A6B4 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _0803A6B8 @ =sub_8037F34
str r1, [r0]
pop {r0}
bx r0
.align 2, 0
_0803A6AC: .4byte gUnknown_02024D26
_0803A6B0: .4byte gUnknown_03004330
_0803A6B4: .4byte gUnknown_02024A60
_0803A6B8: .4byte sub_8037F34
thumb_func_end sub_803A658
thumb_func_start nullsub_48
nullsub_48: @ 803A6BC
bx lr
thumb_func_end nullsub_48
.align 2, 0 @ Don't pad with nop.