pokeruby/asm/battle_5.s
2017-06-09 02:43:39 -04:00

4592 lines
82 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start nullsub_91
nullsub_91: @ 802BF70
bx lr
thumb_func_end nullsub_91
thumb_func_start sub_802BF74
sub_802BF74: @ 802BF74
ldr r1, _0802BF8C @ =gUnknown_03004330
ldr r0, _0802BF90 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _0802BF94 @ =sub_802C014
str r1, [r0]
ldr r1, _0802BF98 @ =gUnknown_02024E6D
movs r0, 0
strb r0, [r1]
bx lr
.align 2, 0
_0802BF8C: .4byte gUnknown_03004330
_0802BF90: .4byte gUnknown_02024A60
_0802BF94: .4byte sub_802C014
_0802BF98: .4byte gUnknown_02024E6D
thumb_func_end sub_802BF74
thumb_func_start dp01_tbl1_exec_completed
dp01_tbl1_exec_completed: @ 802BF9C
push {r4,lr}
sub sp, 0x4
ldr r1, _0802BFDC @ =gUnknown_03004330
ldr r4, _0802BFE0 @ =gUnknown_02024A60
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _0802BFE4 @ =sub_802C014
str r1, [r0]
ldr r0, _0802BFE8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0802BFF0
bl GetMultiplayerId
mov r1, sp
strb r0, [r1]
movs r0, 0x2
movs r1, 0x4
mov r2, sp
bl dp01_prepare_buffer_wireless_probably
ldr r1, _0802BFEC @ =gUnknown_02023A60
ldrb r0, [r4]
lsls r0, 9
adds r0, r1
movs r1, 0x38
strb r1, [r0]
b _0802C002
.align 2, 0
_0802BFDC: .4byte gUnknown_03004330
_0802BFE0: .4byte gUnknown_02024A60
_0802BFE4: .4byte sub_802C014
_0802BFE8: .4byte gBattleTypeFlags
_0802BFEC: .4byte gUnknown_02023A60
_0802BFF0:
ldr r2, _0802C00C @ =gUnknown_02024A64
ldr r1, _0802C010 @ =gBitTable
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
ldr r0, [r2]
bics r0, r1
str r0, [r2]
_0802C002:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802C00C: .4byte gUnknown_02024A64
_0802C010: .4byte gBitTable
thumb_func_end dp01_tbl1_exec_completed
thumb_func_start sub_802C014
sub_802C014: @ 802C014
push {lr}
ldr r2, _0802C048 @ =gUnknown_02024A64
ldr r1, _0802C04C @ =gBitTable
ldr r0, _0802C050 @ =gUnknown_02024A60
ldrb r3, [r0]
lsls r0, r3, 2
adds r0, r1
ldr r1, [r2]
ldr r0, [r0]
ands r1, r0
cmp r1, 0
beq _0802C060
ldr r0, _0802C054 @ =gUnknown_02023A60
lsls r1, r3, 9
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x38
bhi _0802C05C
ldr r0, _0802C058 @ =gUnknown_081FAD98
ldrb r1, [r1]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
b _0802C060
.align 2, 0
_0802C048: .4byte gUnknown_02024A64
_0802C04C: .4byte gBitTable
_0802C050: .4byte gUnknown_02024A60
_0802C054: .4byte gUnknown_02023A60
_0802C058: .4byte gUnknown_081FAD98
_0802C05C:
bl dp01_tbl1_exec_completed
_0802C060:
pop {r0}
bx r0
thumb_func_end sub_802C014
thumb_func_start bx_0802E404
bx_0802E404: @ 802C064
push {lr}
ldr r2, _0802C08C @ =gSprites
ldr r1, _0802C090 @ =gUnknown_02024BE0
ldr r0, _0802C094 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x24
ldrsh r0, [r0, r1]
cmp r0, 0
bne _0802C086
bl dp01_tbl1_exec_completed
_0802C086:
pop {r0}
bx r0
.align 2, 0
_0802C08C: .4byte gSprites
_0802C090: .4byte gUnknown_02024BE0
_0802C094: .4byte gUnknown_02024A60
thumb_func_end bx_0802E404
thumb_func_start sub_802C098
sub_802C098: @ 802C098
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r7, _0802C0FC @ =gUnknown_02023A60
ldr r4, _0802C100 @ =gUnknown_02024A60
ldrb r0, [r4]
lsls r2, r0, 9
adds r1, r7, 0x2
adds r1, r2, r1
ldrb r5, [r1]
adds r1, r7, 0x3
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r5, r1
movs r1, 0x1
movs r2, 0x7
movs r3, 0x1
bl dp11b_obj_instanciate
ldrb r0, [r4]
movs r1, 0
movs r2, 0x7
movs r3, 0x1
bl dp11b_obj_instanciate
ldr r0, _0802C104 @ =gMain
ldrh r1, [r0, 0x2E]
movs r2, 0x1
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _0802C13E
movs r0, 0x5
bl PlaySE
bl DestroyMenuCursor
ldr r1, _0802C108 @ =gUnknown_02024E60
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _0802C11C
cmp r0, 0x1
bgt _0802C10C
cmp r0, 0
beq _0802C116
b _0802C138
.align 2, 0
_0802C0FC: .4byte gUnknown_02023A60
_0802C100: .4byte gUnknown_02024A60
_0802C104: .4byte gMain
_0802C108: .4byte gUnknown_02024E60
_0802C10C:
cmp r0, 0x2
beq _0802C122
cmp r0, 0x3
beq _0802C12E
b _0802C138
_0802C116:
movs r0, 0x1
movs r1, 0
b _0802C126
_0802C11C:
movs r0, 0x1
movs r1, 0x1
b _0802C126
_0802C122:
movs r0, 0x1
movs r1, 0x2
_0802C126:
movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb
b _0802C138
_0802C12E:
movs r0, 0x1
movs r1, 0x3
movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb
_0802C138:
bl dp01_tbl1_exec_completed
b _0802C2AC
_0802C13E:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0802C178
ldr r5, _0802C174 @ =gUnknown_02024E60
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _0802C158
b _0802C2AC
_0802C158:
movs r0, 0x5
bl PlaySE
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl nullsub_8
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
movs r2, 0x1
b _0802C200
.align 2, 0
_0802C174: .4byte gUnknown_02024E60
_0802C178:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0802C1B0
ldr r5, _0802C1AC @ =gUnknown_02024E60
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _0802C192
b _0802C2AC
_0802C192:
movs r0, 0x5
bl PlaySE
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl nullsub_8
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
movs r2, 0x1
b _0802C200
.align 2, 0
_0802C1AC: .4byte gUnknown_02024E60
_0802C1B0:
movs r0, 0x40
mov r8, r0
ands r0, r1
cmp r0, 0
beq _0802C1D0
ldr r5, _0802C1CC @ =gUnknown_02024E60
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0802C2AC
b _0802C1E8
.align 2, 0
_0802C1CC: .4byte gUnknown_02024E60
_0802C1D0:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0802C218
ldr r5, _0802C214 @ =gUnknown_02024E60
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _0802C2AC
_0802C1E8:
movs r0, 0x5
bl PlaySE
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl nullsub_8
ldrb r1, [r4]
adds r1, r5
ldrb r0, [r1]
movs r2, 0x2
_0802C200:
eors r0, r2
strb r0, [r1]
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_802E3E4
b _0802C2AC
.align 2, 0
_0802C214: .4byte gUnknown_02024E60
_0802C218:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0802C2A0
ldr r6, _0802C294 @ =gBattleTypeFlags
ldrh r1, [r6]
adds r0, r2, 0
ands r0, r1
cmp r0, 0
beq _0802C2AC
ldrb r0, [r4]
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _0802C2AC
movs r0, 0
bl battle_get_side_with_given_state
ldr r1, _0802C298 @ =gUnknown_02024C0C
ldrb r1, [r1]
ldr r2, _0802C29C @ =gBitTable
lsls r0, 24
lsrs r0, 22
adds r0, r2
ldr r0, [r0]
ands r1, r0
cmp r1, 0
bne _0802C2AC
ldrh r1, [r6]
mov r0, r8
ands r0, r1
cmp r0, 0
bne _0802C2AC
ldrb r0, [r4]
lsls r0, 9
adds r1, r7, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _0802C278
cmp r5, 0xC
bhi _0802C2AC
adds r0, r5, 0
movs r1, 0x1
bl AddBagItem
_0802C278:
movs r0, 0x5
bl PlaySE
movs r0, 0x1
movs r1, 0xC
movs r2, 0
bl dp01_build_cmdbuf_x21_a_bb
bl dp01_tbl1_exec_completed
bl DestroyMenuCursor
b _0802C2AC
.align 2, 0
_0802C294: .4byte gBattleTypeFlags
_0802C298: .4byte gUnknown_02024C0C
_0802C29C: .4byte gBitTable
_0802C2A0:
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _0802C2AC
bl sub_804454C
_0802C2AC:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802C098
thumb_func_start unref_sub_802C2B8
unref_sub_802C2B8: @ 802C2B8
push {r4,lr}
ldr r4, _0802C2E0 @ =gUnknown_02024A60
ldrb r0, [r4]
movs r1, 0x1
bl dp11b_obj_free
ldrb r0, [r4]
movs r1, 0
bl dp11b_obj_free
ldr r1, _0802C2E4 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _0802C2E8 @ =sub_802C2EC
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802C2E0: .4byte gUnknown_02024A60
_0802C2E4: .4byte gUnknown_03004330
_0802C2E8: .4byte sub_802C2EC
thumb_func_end unref_sub_802C2B8
thumb_func_start sub_802C2EC
sub_802C2EC: @ 802C2EC
push {r4,r5,lr}
sub sp, 0x4
ldr r1, _0802C384 @ =gUnknown_081FAE7C
mov r0, sp
movs r2, 0x4
bl memcpy
ldr r0, _0802C388 @ =gUnknown_03004344
ldrb r0, [r0]
movs r1, 0x1
movs r2, 0xF
movs r3, 0x1
bl dp11b_obj_instanciate
movs r4, 0
ldr r0, _0802C38C @ =gUnknown_02024A68
ldrb r0, [r0]
cmp r0, 0
beq _0802C32E
_0802C312:
ldr r0, _0802C388 @ =gUnknown_03004344
ldrb r0, [r0]
cmp r4, r0
beq _0802C324
lsls r0, r4, 24
lsrs r0, 24
movs r1, 0x1
bl dp11b_obj_free
_0802C324:
adds r4, 0x1
ldr r0, _0802C38C @ =gUnknown_02024A68
ldrb r0, [r0]
cmp r4, r0
blt _0802C312
_0802C32E:
ldr r0, _0802C390 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0802C3A8
bl DestroyMenuCursor
movs r0, 0x5
bl PlaySE
ldr r2, _0802C394 @ =gSprites
ldr r1, _0802C398 @ =gUnknown_02024BE0
ldr r4, _0802C388 @ =gUnknown_03004344
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _0802C39C @ =sub_8010574
str r1, [r0]
ldr r1, _0802C3A0 @ =gUnknown_02024E64
ldr r0, _0802C3A4 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
ldrb r0, [r4]
lsls r0, 8
orrs r2, r0
movs r0, 0x1
movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb
ldrb r0, [r4]
movs r1, 0x1
bl dp11b_obj_free
bl dp01_tbl1_exec_completed
b _0802C658
.align 2, 0
_0802C384: .4byte gUnknown_081FAE7C
_0802C388: .4byte gUnknown_03004344
_0802C38C: .4byte gUnknown_02024A68
_0802C390: .4byte gMain
_0802C394: .4byte gSprites
_0802C398: .4byte gUnknown_02024BE0
_0802C39C: .4byte sub_8010574
_0802C3A0: .4byte gUnknown_02024E64
_0802C3A4: .4byte gUnknown_02024A60
_0802C3A8:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0802C41C
movs r0, 0x5
bl PlaySE
ldr r2, _0802C400 @ =gSprites
ldr r1, _0802C404 @ =gUnknown_02024BE0
ldr r5, _0802C408 @ =gUnknown_03004344
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _0802C40C @ =sub_8010574
str r1, [r0]
ldr r1, _0802C410 @ =gUnknown_03004330
ldr r4, _0802C414 @ =gUnknown_02024A60
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _0802C418 @ =sub_802C68C
str r1, [r0]
ldrb r0, [r4]
movs r1, 0x1
movs r2, 0x7
movs r3, 0x1
bl dp11b_obj_instanciate
ldrb r0, [r4]
movs r1, 0
movs r2, 0x7
movs r3, 0x1
bl dp11b_obj_instanciate
ldrb r0, [r5]
movs r1, 0x1
bl dp11b_obj_free
b _0802C658
.align 2, 0
_0802C400: .4byte gSprites
_0802C404: .4byte gUnknown_02024BE0
_0802C408: .4byte gUnknown_03004344
_0802C40C: .4byte sub_8010574
_0802C410: .4byte gUnknown_03004330
_0802C414: .4byte gUnknown_02024A60
_0802C418: .4byte sub_802C68C
_0802C41C:
movs r0, 0x60
ands r0, r1
cmp r0, 0
bne _0802C426
b _0802C540
_0802C426:
movs r0, 0x5
bl PlaySE
ldr r2, _0802C458 @ =gSprites
ldr r1, _0802C45C @ =gUnknown_02024BE0
ldr r3, _0802C460 @ =gUnknown_03004344
ldrb r0, [r3]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _0802C464 @ =sub_8010574
str r1, [r0]
adds r5, r3, 0
_0802C448:
ldrb r0, [r5]
bl battle_get_per_side_status
lsls r0, 24
lsrs r1, r0, 24
movs r4, 0
mov r0, sp
b _0802C472
.align 2, 0
_0802C458: .4byte gSprites
_0802C45C: .4byte gUnknown_02024BE0
_0802C460: .4byte gUnknown_03004344
_0802C464: .4byte sub_8010574
_0802C468:
adds r4, 0x1
cmp r4, 0x3
bgt _0802C478
mov r2, sp
adds r0, r2, r4
_0802C472:
ldrb r0, [r0]
cmp r1, r0
bne _0802C468
_0802C478:
subs r4, 0x1
cmp r4, 0
bge _0802C480
movs r4, 0x3
_0802C480:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
bl battle_get_side_with_given_state
strb r0, [r5]
ldr r1, _0802C4B4 @ =gUnknown_02024A68
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
cmp r0, r1
beq _0802C478
movs r4, 0
ldrb r0, [r5]
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0802C4FE
cmp r0, 0x1
bgt _0802C4B8
cmp r0, 0
beq _0802C4C2
b _0802C500
.align 2, 0
_0802C4B4: .4byte gUnknown_02024A68
_0802C4B8:
cmp r0, 0x2
beq _0802C4C2
cmp r0, 0x3
beq _0802C4FE
b _0802C500
_0802C4C2:
ldr r2, _0802C520 @ =gUnknown_02024A60
ldrb r0, [r2]
ldrb r1, [r5]
cmp r0, r1
bne _0802C4FE
ldr r1, _0802C524 @ =gUnknown_02024A6A
ldrb r2, [r2]
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0802C528 @ =gPlayerParty
adds r0, r1
ldr r1, _0802C52C @ =gUnknown_02024E64
adds r2, r1
ldrb r1, [r2]
adds r1, 0xD
bl GetMonData
ldr r2, _0802C530 @ =gBattleMoves
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r1, [r1, 0x6]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0802C500
_0802C4FE:
adds r4, 0x1
_0802C500:
ldr r0, _0802C534 @ =gUnknown_02024C0C
ldrb r1, [r0]
ldr r2, _0802C538 @ =gBitTable
ldrb r0, [r5]
lsls r0, 2
adds r0, r2
ldr r0, [r0]
ands r1, r0
ldr r0, _0802C53C @ =gUnknown_03004344
cmp r1, 0
beq _0802C518
movs r4, 0
_0802C518:
cmp r4, 0
beq _0802C448
b _0802C640
.align 2, 0
_0802C520: .4byte gUnknown_02024A60
_0802C524: .4byte gUnknown_02024A6A
_0802C528: .4byte gPlayerParty
_0802C52C: .4byte gUnknown_02024E64
_0802C530: .4byte gBattleMoves
_0802C534: .4byte gUnknown_02024C0C
_0802C538: .4byte gBitTable
_0802C53C: .4byte gUnknown_03004344
_0802C540:
movs r0, 0x90
ands r0, r1
cmp r0, 0
bne _0802C54A
b _0802C658
_0802C54A:
movs r0, 0x5
bl PlaySE
ldr r2, _0802C57C @ =gSprites
ldr r1, _0802C580 @ =gUnknown_02024BE0
ldr r3, _0802C584 @ =gUnknown_03004344
ldrb r0, [r3]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _0802C588 @ =sub_8010574
str r1, [r0]
adds r5, r3, 0
_0802C56C:
ldrb r0, [r5]
bl battle_get_per_side_status
lsls r0, 24
lsrs r1, r0, 24
movs r4, 0
mov r0, sp
b _0802C596
.align 2, 0
_0802C57C: .4byte gSprites
_0802C580: .4byte gUnknown_02024BE0
_0802C584: .4byte gUnknown_03004344
_0802C588: .4byte sub_8010574
_0802C58C:
adds r4, 0x1
cmp r4, 0x3
bgt _0802C59C
mov r2, sp
adds r0, r2, r4
_0802C596:
ldrb r0, [r0]
cmp r1, r0
bne _0802C58C
_0802C59C:
adds r4, 0x1
cmp r4, 0x3
ble _0802C5A4
movs r4, 0
_0802C5A4:
mov r1, sp
adds r0, r1, r4
ldrb r0, [r0]
bl battle_get_side_with_given_state
strb r0, [r5]
ldr r1, _0802C5D8 @ =gUnknown_02024A68
lsls r0, 24
lsrs r0, 24
ldrb r1, [r1]
cmp r0, r1
beq _0802C59C
movs r4, 0
ldrb r0, [r5]
bl battle_get_per_side_status
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0802C622
cmp r0, 0x1
bgt _0802C5DC
cmp r0, 0
beq _0802C5E6
b _0802C624
.align 2, 0
_0802C5D8: .4byte gUnknown_02024A68
_0802C5DC:
cmp r0, 0x2
beq _0802C5E6
cmp r0, 0x3
beq _0802C622
b _0802C624
_0802C5E6:
ldr r2, _0802C660 @ =gUnknown_02024A60
ldrb r0, [r2]
ldrb r1, [r5]
cmp r0, r1
bne _0802C622
ldr r1, _0802C664 @ =gUnknown_02024A6A
ldrb r2, [r2]
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0802C668 @ =gPlayerParty
adds r0, r1
ldr r1, _0802C66C @ =gUnknown_02024E64
adds r2, r1
ldrb r1, [r2]
adds r1, 0xD
bl GetMonData
ldr r2, _0802C670 @ =gBattleMoves
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r1, [r1, 0x6]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0802C624
_0802C622:
adds r4, 0x1
_0802C624:
ldr r0, _0802C674 @ =gUnknown_02024C0C
ldrb r1, [r0]
ldr r2, _0802C678 @ =gBitTable
ldrb r0, [r5]
lsls r0, 2
adds r0, r2
ldr r0, [r0]
ands r1, r0
ldr r0, _0802C67C @ =gUnknown_03004344
cmp r1, 0
beq _0802C63C
movs r4, 0
_0802C63C:
cmp r4, 0
beq _0802C56C
_0802C640:
ldr r2, _0802C680 @ =gSprites
ldr r1, _0802C684 @ =gUnknown_02024BE0
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _0802C688 @ =sub_8010520
str r1, [r0]
_0802C658:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802C660: .4byte gUnknown_02024A60
_0802C664: .4byte gUnknown_02024A6A
_0802C668: .4byte gPlayerParty
_0802C66C: .4byte gUnknown_02024E64
_0802C670: .4byte gBattleMoves
_0802C674: .4byte gUnknown_02024C0C
_0802C678: .4byte gBitTable
_0802C67C: .4byte gUnknown_03004344
_0802C680: .4byte gSprites
_0802C684: .4byte gUnknown_02024BE0
_0802C688: .4byte sub_8010520
thumb_func_end sub_802C2EC
thumb_func_start sub_802C68C
sub_802C68C: @ 802C68C
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
movs r0, 0
mov r8, r0
ldr r7, _0802C6E4 @ =gUnknown_02024A60
ldrb r2, [r7]
lsls r0, r2, 9
ldr r1, _0802C6E8 @ =gUnknown_02023A64
adds r6, r0, r1
ldr r0, _0802C6EC @ =gMain
ldrh r1, [r0, 0x2E]
movs r5, 0x1
adds r4, r5, 0
ands r4, r1
cmp r4, 0
bne _0802C6B2
b _0802C864
_0802C6B2:
movs r0, 0x5
bl PlaySE
ldr r1, _0802C6F0 @ =gUnknown_02024E64
ldrb r0, [r7]
adds r0, r1
ldrb r0, [r0]
lsls r0, 1
adds r1, r6, r0
ldrh r0, [r1]
cmp r0, 0xAE
bne _0802C6F4
ldrb r0, [r6, 0x12]
movs r4, 0
cmp r0, 0x7
beq _0802C702
ldrb r1, [r6, 0x13]
movs r0, 0x7
eors r1, r0
negs r0, r1
orrs r0, r1
asrs r4, r0, 31
movs r0, 0x10
ands r4, r0
b _0802C702
.align 2, 0
_0802C6E4: .4byte gUnknown_02024A60
_0802C6E8: .4byte gUnknown_02023A64
_0802C6EC: .4byte gMain
_0802C6F0: .4byte gUnknown_02024E64
_0802C6F4:
ldr r2, _0802C714 @ =gBattleMoves
ldrh r1, [r1]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r4, [r0, 0x6]
_0802C702:
movs r0, 0x10
ands r0, r4
cmp r0, 0
beq _0802C720
ldr r0, _0802C718 @ =gUnknown_03004344
ldr r1, _0802C71C @ =gUnknown_02024A60
ldrb r1, [r1]
strb r1, [r0]
b _0802C73A
.align 2, 0
_0802C714: .4byte gBattleMoves
_0802C718: .4byte gUnknown_03004344
_0802C71C: .4byte gUnknown_02024A60
_0802C720:
ldr r0, _0802C764 @ =gUnknown_02024A60
ldrb r0, [r0]
bl battle_get_per_side_status
adds r1, r0, 0
movs r2, 0x1
movs r0, 0x1
ands r0, r1
eors r0, r2
bl battle_get_side_with_given_state
ldr r1, _0802C768 @ =gUnknown_03004344
strb r0, [r1]
_0802C73A:
ldr r3, _0802C76C @ =gUnknown_02023A60
ldr r5, _0802C764 @ =gUnknown_02024A60
ldrb r2, [r5]
lsls r1, r2, 9
adds r0, r3, 0x1
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0
bne _0802C770
movs r0, 0x2
ands r0, r4
cmp r0, 0
beq _0802C7B2
adds r0, r3, 0x2
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0
bne _0802C7B2
movs r2, 0x1
add r8, r2
b _0802C7B2
.align 2, 0
_0802C764: .4byte gUnknown_02024A60
_0802C768: .4byte gUnknown_03004344
_0802C76C: .4byte gUnknown_02023A60
_0802C770:
movs r0, 0x7D
ands r0, r4
cmp r0, 0
bne _0802C77C
movs r0, 0x1
add r8, r0
_0802C77C:
ldr r0, _0802C7D0 @ =gUnknown_02024E64
adds r0, r2, r0
adds r1, r6, 0
adds r1, 0x8
ldrb r0, [r0]
adds r1, r0
ldrb r0, [r1]
cmp r0, 0
beq _0802C7B8
movs r0, 0x12
ands r0, r4
cmp r0, 0
bne _0802C7B2
movs r0, 0
bl sub_803C348
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _0802C7B2
ldrb r0, [r5]
bl sub_803C434
ldr r1, _0802C7D4 @ =gUnknown_03004344
strb r0, [r1]
movs r2, 0
mov r8, r2
_0802C7B2:
mov r0, r8
cmp r0, 0
bne _0802C7DC
_0802C7B8:
bl DestroyMenuCursor
ldr r1, _0802C7D0 @ =gUnknown_02024E64
ldr r0, _0802C7D8 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r2, [r0]
ldr r0, _0802C7D4 @ =gUnknown_03004344
ldrb r0, [r0]
lsls r0, 8
orrs r2, r0
b _0802C888
.align 2, 0
_0802C7D0: .4byte gUnknown_02024E64
_0802C7D4: .4byte gUnknown_03004344
_0802C7D8: .4byte gUnknown_02024A60
_0802C7DC:
ldr r1, _0802C7F8 @ =gUnknown_03004330
ldr r2, _0802C7FC @ =gUnknown_02024A60
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _0802C800 @ =sub_802C2EC
str r1, [r0]
movs r0, 0x12
ands r4, r0
cmp r4, 0
beq _0802C808
ldr r1, _0802C804 @ =gUnknown_03004344
ldrb r0, [r2]
b _0802C838
.align 2, 0
_0802C7F8: .4byte gUnknown_03004330
_0802C7FC: .4byte gUnknown_02024A60
_0802C800: .4byte sub_802C2EC
_0802C804: .4byte gUnknown_03004344
_0802C808:
movs r0, 0x1
bl battle_get_side_with_given_state
ldr r1, _0802C828 @ =gUnknown_02024C0C
ldrb r1, [r1]
ldr r2, _0802C82C @ =gBitTable
lsls r0, 24
lsrs r0, 22
adds r0, r2
ldr r0, [r0]
ands r1, r0
cmp r1, 0
beq _0802C830
movs r0, 0x3
b _0802C832
.align 2, 0
_0802C828: .4byte gUnknown_02024C0C
_0802C82C: .4byte gBitTable
_0802C830:
movs r0, 0x1
_0802C832:
bl battle_get_side_with_given_state
ldr r1, _0802C854 @ =gUnknown_03004344
_0802C838:
strb r0, [r1]
ldr r2, _0802C858 @ =gSprites
ldr r1, _0802C85C @ =gUnknown_02024BE0
ldr r0, _0802C854 @ =gUnknown_03004344
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _0802C860 @ =sub_8010520
b _0802CA36
.align 2, 0
_0802C854: .4byte gUnknown_03004344
_0802C858: .4byte gSprites
_0802C85C: .4byte gUnknown_02024BE0
_0802C860: .4byte sub_8010520
_0802C864:
movs r6, 0x2
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _0802C8A4
bl DestroyMenuCursor
movs r0, 0x5
bl PlaySE
ldr r0, _0802C898 @ =gUnknown_030042A4
strh r4, [r0]
ldr r1, _0802C89C @ =gUnknown_030042A0
movs r2, 0xA0
lsls r2, 1
adds r0, r2, 0
strh r0, [r1]
ldr r2, _0802C8A0 @ =0x0000ffff
_0802C888:
movs r0, 0x1
movs r1, 0xA
bl dp01_build_cmdbuf_x21_a_bb
bl dp01_tbl1_exec_completed
b _0802CA38
.align 2, 0
_0802C898: .4byte gUnknown_030042A4
_0802C89C: .4byte gUnknown_030042A0
_0802C8A0: .4byte 0x0000ffff
_0802C8A4:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0802C8D4
ldr r4, _0802C8D0 @ =gUnknown_02024E64
adds r2, r4
ldrb r1, [r2]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
bne _0802C8BC
b _0802CA38
_0802C8BC:
ldrb r0, [r2]
bl nullsub_7
ldrb r1, [r7]
adds r1, r4
ldrb r0, [r1]
movs r2, 0x1
eors r0, r2
b _0802C976
.align 2, 0
_0802C8D0: .4byte gUnknown_02024E64
_0802C8D4:
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0802C914
ldr r4, _0802C90C @ =gUnknown_02024E64
adds r3, r2, r4
ldrb r2, [r3]
movs r6, 0x1
adds r0, r5, 0
ands r0, r2
cmp r0, 0
beq _0802C8EE
b _0802CA38
_0802C8EE:
ldr r1, _0802C910 @ =gUnknown_03004348
adds r0, r6, 0
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
bcc _0802C8FC
b _0802CA38
_0802C8FC:
ldrb r0, [r3]
bl nullsub_7
ldrb r1, [r7]
adds r1, r4
ldrb r0, [r1]
eors r0, r6
b _0802C976
.align 2, 0
_0802C90C: .4byte gUnknown_02024E64
_0802C910: .4byte gUnknown_03004348
_0802C914:
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0802C944
ldr r4, _0802C940 @ =gUnknown_02024E64
adds r2, r4
ldrb r1, [r2]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
bne _0802C92C
b _0802CA38
_0802C92C:
ldrb r0, [r2]
bl nullsub_7
ldrb r1, [r7]
adds r1, r4
ldrb r0, [r1]
movs r2, 0x2
eors r0, r2
b _0802C976
.align 2, 0
_0802C940: .4byte gUnknown_02024E64
_0802C944:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0802C99C
ldr r4, _0802C994 @ =gUnknown_02024E64
adds r3, r2, r4
ldrb r2, [r3]
movs r5, 0x2
adds r0, r6, 0
ands r0, r2
cmp r0, 0
bne _0802CA38
ldr r1, _0802C998 @ =gUnknown_03004348
adds r0, r5, 0
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
bcs _0802CA38
ldrb r0, [r3]
bl nullsub_7
ldrb r1, [r7]
adds r1, r4
ldrb r0, [r1]
eors r0, r5
_0802C976:
strb r0, [r1]
movs r0, 0x5
bl PlaySE
ldrb r0, [r7]
adds r0, r4
ldrb r0, [r0]
movs r1, 0
bl sub_802E3B4
bl sub_802E220
bl sub_802E2D4
b _0802CA38
.align 2, 0
_0802C994: .4byte gUnknown_02024E64
_0802C998: .4byte gUnknown_03004348
_0802C99C:
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0802CA38
ldr r0, _0802C9D8 @ =gUnknown_03004348
ldrb r0, [r0]
cmp r0, 0x1
bls _0802CA38
ldr r0, _0802C9DC @ =gBattleTypeFlags
ldrh r1, [r0]
adds r0, r6, 0
ands r0, r1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0
bne _0802CA38
ldr r4, _0802C9E0 @ =gUnknown_02024E64
adds r0, r2, r4
ldrb r0, [r0]
ldr r1, _0802C9E4 @ =gUnknown_081FAE80
bl sub_802E12C
ldrb r0, [r7]
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _0802C9EC
ldr r0, _0802C9E8 @ =gUnknown_03004344
strb r5, [r0]
b _0802C9F4
.align 2, 0
_0802C9D8: .4byte gUnknown_03004348
_0802C9DC: .4byte gBattleTypeFlags
_0802C9E0: .4byte gUnknown_02024E64
_0802C9E4: .4byte gUnknown_081FAE80
_0802C9E8: .4byte gUnknown_03004344
_0802C9EC:
ldr r1, _0802CA44 @ =gUnknown_03004344
adds r0, 0x1
strb r0, [r1]
adds r0, r1, 0
_0802C9F4:
ldrb r0, [r0]
movs r1, 0x1B
bl sub_802E3B4
ldr r4, _0802CA48 @ =gUnknown_03004210
ldr r1, _0802CA4C @ =0x00001016
movs r0, 0x1C
str r0, [sp]
movs r0, 0x3A
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x17
movs r3, 0x37
bl FillWindowRect
ldr r1, _0802CA50 @ =gUnknown_08400D89
movs r2, 0xA4
lsls r2, 2
movs r0, 0x37
str r0, [sp]
adds r0, r4, 0
movs r3, 0x17
bl InitWindow
adds r0, r4, 0
bl sub_8002F44
ldr r1, _0802CA54 @ =gUnknown_03004330
ldr r0, _0802CA58 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _0802CA5C @ =sub_802CA60
_0802CA36:
str r1, [r0]
_0802CA38:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802CA44: .4byte gUnknown_03004344
_0802CA48: .4byte gUnknown_03004210
_0802CA4C: .4byte 0x00001016
_0802CA50: .4byte gUnknown_08400D89
_0802CA54: .4byte gUnknown_03004330
_0802CA58: .4byte gUnknown_02024A60
_0802CA5C: .4byte sub_802CA60
thumb_func_end sub_802C68C
thumb_func_start sub_802CA60
sub_802CA60: @ 802CA60
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x2C
ldr r0, _0802CDEC @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x5
ands r0, r1
cmp r0, 0
bne _0802CA7A
b _0802CE78
_0802CA7A:
movs r0, 0x5
bl PlaySE
ldr r0, _0802CDF0 @ =gUnknown_02024E64
mov r10, r0
ldr r1, _0802CDF4 @ =gUnknown_02024A60
mov r8, r1
ldrb r1, [r1]
adds r2, r1, r0
ldr r5, _0802CDF8 @ =gUnknown_03004344
ldrb r0, [r2]
ldrb r3, [r5]
cmp r0, r3
bne _0802CA98
b _0802CE14
_0802CA98:
lsls r1, 9
ldr r0, _0802CDFC @ =gUnknown_02023A64
adds r1, r0
mov r9, r1
ldrb r1, [r2]
lsls r1, 1
add r1, r9
ldrh r6, [r1]
ldrb r0, [r5]
lsls r0, 1
add r0, r9
ldrh r0, [r0]
strh r0, [r1]
ldrb r0, [r5]
lsls r0, 1
add r0, r9
strh r6, [r0]
mov r1, r8
ldrb r0, [r1]
add r0, r10
ldrb r1, [r0]
mov r7, r9
adds r7, 0x8
adds r1, r7, r1
ldrb r6, [r1]
ldrb r0, [r5]
adds r0, r7, r0
ldrb r0, [r0]
strb r0, [r1]
ldrb r0, [r5]
adds r0, r7, r0
strb r6, [r0]
mov r2, r8
ldrb r0, [r2]
add r0, r10
ldrb r1, [r0]
mov r2, r9
adds r2, 0xC
adds r1, r2, r1
ldrb r6, [r1]
ldrb r0, [r5]
adds r0, r2, r0
ldrb r0, [r0]
strb r0, [r1]
ldrb r0, [r5]
adds r2, r0
strb r6, [r2]
mov r3, r8
ldrb r1, [r3]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
ldr r2, _0802CE00 @ =gUnknown_02024CA8
adds r6, r0, r2
ldrb r4, [r6, 0x18]
lsls r3, r4, 24
lsrs r2, r3, 28
ldr r0, _0802CE04 @ =gBitTable
mov r12, r0
add r1, r10
ldrb r0, [r1]
lsls r0, 2
add r0, r12
ldr r0, [r0]
ands r2, r0
cmp r2, 0
beq _0802CB52
lsrs r1, r3, 28
bics r1, r0
lsls r1, 4
movs r2, 0xF
adds r0, r2, 0
ands r0, r4
orrs r0, r1
strb r0, [r6, 0x18]
mov r1, r8
ldrb r0, [r1]
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
ldr r3, _0802CE00 @ =gUnknown_02024CA8
adds r1, r3
ldrb r4, [r1, 0x18]
lsrs r3, r4, 4
ldrb r0, [r5]
lsls r0, 2
add r0, r12
ldr r0, [r0]
orrs r0, r3
lsls r0, 4
ands r2, r4
orrs r2, r0
strb r2, [r1, 0x18]
_0802CB52:
bl sub_802E1B0
movs r6, 0
mov r12, r7
mov r5, sp
adds r5, 0x20
str r5, [sp, 0x28]
ldr r2, _0802CE08 @ =gBattleMons
mov r0, r8
ldrb r1, [r0]
movs r0, 0x58
muls r0, r1
adds r0, r2
adds r4, r0, 0
adds r4, 0x3B
mov r7, r8
mov r10, r2
movs r5, 0x3
_0802CB76:
mov r3, sp
adds r3, r6
adds r3, 0x8
ldrb r1, [r4]
lsls r2, r6, 1
adds r0, r5, 0
lsls r0, r2
ands r1, r0
asrs r1, r2
strb r1, [r3]
adds r6, 0x1
cmp r6, 0x3
ble _0802CB76
ldr r1, _0802CDF0 @ =gUnknown_02024E64
ldrb r0, [r7]
adds r0, r1
ldrb r0, [r0]
add r0, sp
adds r0, 0x8
ldrb r0, [r0]
ldr r2, [sp, 0x28]
strb r0, [r2]
ldrb r0, [r7]
adds r0, r1
ldrb r0, [r0]
mov r2, sp
adds r2, r0
adds r2, 0x8
ldr r1, _0802CDF8 @ =gUnknown_03004344
ldrb r0, [r1]
add r0, sp
adds r0, 0x8
ldrb r0, [r0]
movs r3, 0
strb r0, [r2]
ldrb r0, [r1]
mov r1, sp
adds r1, r0
adds r1, 0x8
ldr r5, [sp, 0x28]
ldrb r0, [r5]
strb r0, [r1]
strb r3, [r5]
movs r6, 0
ldr r2, [sp, 0x28]
_0802CBD0:
mov r0, sp
adds r0, r6
adds r0, 0x8
ldrb r1, [r0]
lsls r0, r6, 1
lsls r1, r0
ldrb r0, [r2]
orrs r0, r1
strb r0, [r2]
adds r6, 0x1
cmp r6, 0x3
ble _0802CBD0
ldrb r1, [r7]
movs r0, 0x58
muls r0, r1
add r0, r10
adds r0, 0x3B
ldr r2, [sp, 0x28]
ldrb r1, [r2]
strb r1, [r0]
movs r6, 0
adds r4, r7, 0
movs r3, 0x58
movs r5, 0x24
add r5, r10
mov r8, r5
mov r2, r9
mov r7, r10
adds r7, 0xC
mov r5, r12
_0802CC0C:
lsls r1, r6, 1
ldrb r0, [r4]
muls r0, r3
adds r1, r0
adds r1, r7
ldrh r0, [r2]
strh r0, [r1]
ldrb r0, [r4]
adds r1, r0, 0
muls r1, r3
adds r1, r6, r1
add r1, r8
adds r0, r5, r6
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _0802CC0C
ldr r2, _0802CDF4 @ =gUnknown_02024A60
ldrb r1, [r2]
movs r0, 0x58
muls r0, r1
mov r1, r10
adds r1, 0x50
adds r0, r1
ldr r0, [r0]
movs r1, 0x80
lsls r1, 14
ands r0, r1
cmp r0, 0
beq _0802CC4E
b _0802CE1C
_0802CC4E:
movs r6, 0
mov r0, sp
adds r0, 0xC
str r0, [sp, 0x24]
add r1, sp, 0x14
mov r10, r1
ldr r3, _0802CE0C @ =gUnknown_02024A6A
mov r9, r3
mov r8, r2
movs r7, 0x64
ldr r5, _0802CE10 @ =gPlayerParty
adds r4, r0, 0
_0802CC66:
mov r1, r8
ldrb r0, [r1]
lsls r0, 1
add r0, r9
ldrh r0, [r0]
muls r0, r7
adds r0, r5
adds r1, r6, 0
adds r1, 0xD
bl GetMonData
strh r0, [r4]
mov r2, r8
ldrb r0, [r2]
lsls r0, 1
add r0, r9
ldrh r0, [r0]
muls r0, r7
adds r0, r5
adds r1, r6, 0
adds r1, 0x11
bl GetMonData
mov r3, r10
adds r1, r3, r6
strb r0, [r1]
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _0802CC66
ldr r1, _0802CE0C @ =gUnknown_02024A6A
ldr r0, _0802CDF4 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0802CE10 @ =gPlayerParty
adds r0, r1
movs r1, 0x15
bl GetMonData
ldr r5, [sp, 0x28]
strb r0, [r5]
movs r6, 0
movs r5, 0x3
ldr r4, [sp, 0x28]
_0802CCC6:
mov r3, sp
adds r3, r6
adds r3, 0x8
lsls r2, r6, 1
adds r1, r5, 0
lsls r1, r2
ldrb r0, [r4]
ands r0, r1
asrs r0, r2
strb r0, [r3]
adds r6, 0x1
cmp r6, 0x3
ble _0802CCC6
ldr r4, _0802CDF0 @ =gUnknown_02024E64
ldr r3, _0802CDF4 @ =gUnknown_02024A60
ldrb r0, [r3]
adds r0, r4
ldrb r1, [r0]
lsls r1, 1
ldr r0, [sp, 0x24]
adds r1, r0, r1
ldrh r6, [r1]
ldr r2, _0802CDF8 @ =gUnknown_03004344
ldrb r0, [r2]
lsls r0, 1
ldr r5, [sp, 0x24]
adds r0, r5, r0
ldrh r0, [r0]
movs r5, 0
strh r0, [r1]
ldrb r0, [r2]
lsls r0, 1
ldr r1, [sp, 0x24]
adds r0, r1, r0
strh r6, [r0]
ldrb r0, [r3]
adds r0, r4
ldrb r1, [r0]
add r1, r10
ldrb r6, [r1]
ldrb r0, [r2]
add r0, r10
ldrb r0, [r0]
strb r0, [r1]
ldrb r0, [r2]
add r0, r10
strb r6, [r0]
ldrb r0, [r3]
adds r0, r4
ldrb r0, [r0]
add r0, sp
adds r0, 0x8
ldrb r0, [r0]
ldr r1, [sp, 0x28]
strb r0, [r1]
ldrb r0, [r3]
adds r0, r4
ldrb r0, [r0]
mov r1, sp
adds r1, r0
adds r1, 0x8
ldrb r0, [r2]
add r0, sp
adds r0, 0x8
ldrb r0, [r0]
strb r0, [r1]
ldrb r0, [r2]
mov r1, sp
adds r1, r0
adds r1, 0x8
ldr r2, [sp, 0x28]
ldrb r0, [r2]
strb r0, [r1]
strb r5, [r2]
movs r6, 0
ldr r2, [sp, 0x28]
_0802CD5E:
mov r0, sp
adds r0, r6
adds r0, 0x8
ldrb r1, [r0]
lsls r0, r6, 1
lsls r1, r0
ldrb r0, [r2]
orrs r0, r1
strb r0, [r2]
adds r6, 0x1
cmp r6, 0x3
ble _0802CD5E
movs r6, 0
ldr r3, _0802CE0C @ =gUnknown_02024A6A
mov r10, r3
ldr r5, _0802CDF4 @ =gUnknown_02024A60
mov r9, r5
movs r0, 0x64
mov r8, r0
ldr r7, _0802CE10 @ =gPlayerParty
ldr r5, [sp, 0x24]
adds r5, 0x8
ldr r4, [sp, 0x24]
_0802CD8C:
mov r1, r9
ldrb r0, [r1]
lsls r0, 1
add r0, r10
ldrh r0, [r0]
mov r2, r8
muls r2, r0
adds r0, r2, 0
adds r0, r7
adds r1, r6, 0
adds r1, 0xD
adds r2, r4, 0
bl SetMonData
mov r3, r9
ldrb r0, [r3]
lsls r0, 1
add r0, r10
ldrh r0, [r0]
mov r1, r8
muls r1, r0
adds r0, r1, 0
adds r0, r7
adds r1, r6, 0
adds r1, 0x11
adds r2, r5, 0
bl SetMonData
adds r5, 0x1
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _0802CD8C
ldr r1, _0802CE0C @ =gUnknown_02024A6A
ldr r0, _0802CDF4 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0802CE10 @ =gPlayerParty
adds r0, r1
movs r1, 0x15
ldr r2, [sp, 0x28]
bl SetMonData
b _0802CE1C
.align 2, 0
_0802CDEC: .4byte gMain
_0802CDF0: .4byte gUnknown_02024E64
_0802CDF4: .4byte gUnknown_02024A60
_0802CDF8: .4byte gUnknown_03004344
_0802CDFC: .4byte gUnknown_02023A64
_0802CE00: .4byte gUnknown_02024CA8
_0802CE04: .4byte gBitTable
_0802CE08: .4byte gBattleMons
_0802CE0C: .4byte gUnknown_02024A6A
_0802CE10: .4byte gPlayerParty
_0802CE14:
ldrb r0, [r5]
ldr r1, _0802CF20 @ =gUnknown_08400D49
bl sub_802E12C
_0802CE1C:
ldr r1, _0802CF24 @ =gUnknown_03004330
ldr r2, _0802CF28 @ =gUnknown_02024A60
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _0802CF2C @ =sub_802C68C
str r1, [r0]
ldr r3, _0802CF30 @ =gUnknown_02024E64
ldrb r0, [r2]
adds r0, r3
ldr r1, _0802CF34 @ =gUnknown_03004344
ldrb r1, [r1]
strb r1, [r0]
ldrb r0, [r2]
adds r0, r3
ldrb r0, [r0]
movs r1, 0
bl sub_802E3B4
ldr r4, _0802CF38 @ =gUnknown_03004210
ldr r1, _0802CF3C @ =0x00001016
movs r0, 0x1C
str r0, [sp]
movs r0, 0x3A
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x17
movs r3, 0x37
bl FillWindowRect
ldr r1, _0802CF40 @ =gUnknown_08400D38
movs r2, 0xA4
lsls r2, 2
movs r0, 0x37
str r0, [sp]
adds r0, r4, 0
movs r3, 0x17
bl InitWindow
adds r0, r4, 0
bl sub_8002F44
bl sub_802E220
bl sub_802E2D4
_0802CE78:
ldr r6, _0802CF44 @ =gMain
ldrh r1, [r6, 0x2E]
movs r0, 0x6
ands r0, r1
cmp r0, 0
beq _0802CEF0
movs r0, 0x5
bl PlaySE
ldr r0, _0802CF34 @ =gUnknown_03004344
ldrb r0, [r0]
bl nullsub_7
ldr r5, _0802CF30 @ =gUnknown_02024E64
ldr r4, _0802CF28 @ =gUnknown_02024A60
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
movs r1, 0
bl sub_802E3B4
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
ldr r1, _0802CF20 @ =gUnknown_08400D49
bl sub_802E12C
ldr r1, _0802CF24 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _0802CF2C @ =sub_802C68C
str r1, [r0]
ldr r4, _0802CF38 @ =gUnknown_03004210
ldr r1, _0802CF3C @ =0x00001016
movs r0, 0x1C
str r0, [sp]
movs r0, 0x3A
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x17
movs r3, 0x37
bl FillWindowRect
ldr r1, _0802CF40 @ =gUnknown_08400D38
movs r2, 0xA4
lsls r2, 2
movs r0, 0x37
str r0, [sp]
adds r0, r4, 0
movs r3, 0x17
bl InitWindow
adds r0, r4, 0
bl sub_8002F44
bl sub_802E220
bl sub_802E2D4
_0802CEF0:
ldrh r1, [r6, 0x2E]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0802CF8C
ldr r3, _0802CF34 @ =gUnknown_03004344
ldrb r2, [r3]
movs r0, 0x1
ands r0, r2
cmp r0, 0
beq _0802CF8C
ldr r0, _0802CF30 @ =gUnknown_02024E64
ldr r1, _0802CF28 @ =gUnknown_02024A60
ldrb r1, [r1]
adds r1, r0
ldrb r5, [r1]
cmp r2, r5
bne _0802CF48
ldrb r0, [r1]
movs r1, 0x1D
bl sub_802E3B4
b _0802CF4E
.align 2, 0
_0802CF20: .4byte gUnknown_08400D49
_0802CF24: .4byte gUnknown_03004330
_0802CF28: .4byte gUnknown_02024A60
_0802CF2C: .4byte sub_802C68C
_0802CF30: .4byte gUnknown_02024E64
_0802CF34: .4byte gUnknown_03004344
_0802CF38: .4byte gUnknown_03004210
_0802CF3C: .4byte 0x00001016
_0802CF40: .4byte gUnknown_08400D38
_0802CF44: .4byte gMain
_0802CF48:
ldrb r0, [r3]
bl nullsub_7
_0802CF4E:
ldr r4, _0802CF78 @ =gUnknown_03004344
ldrb r0, [r4]
movs r1, 0x1
eors r0, r1
strb r0, [r4]
movs r0, 0x5
bl PlaySE
ldr r1, _0802CF7C @ =gUnknown_02024E64
ldr r0, _0802CF80 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
bne _0802CF84
adds r0, r1, 0
movs r1, 0
bl sub_802E3B4
b _0802CF8C
.align 2, 0
_0802CF78: .4byte gUnknown_03004344
_0802CF7C: .4byte gUnknown_02024E64
_0802CF80: .4byte gUnknown_02024A60
_0802CF84:
ldrb r0, [r4]
movs r1, 0x1B
bl sub_802E3B4
_0802CF8C:
ldr r0, _0802CFC8 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _0802D020
ldr r3, _0802CFCC @ =gUnknown_03004344
ldrb r2, [r3]
movs r0, 0x1
ands r0, r2
cmp r0, 0
bne _0802D020
ldr r1, _0802CFD0 @ =gUnknown_03004348
movs r0, 0x1
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
bcs _0802D020
ldr r0, _0802CFD4 @ =gUnknown_02024E64
ldr r1, _0802CFD8 @ =gUnknown_02024A60
ldrb r1, [r1]
adds r1, r0
ldrb r0, [r1]
cmp r2, r0
bne _0802CFDC
ldrb r0, [r1]
movs r1, 0x1D
bl sub_802E3B4
b _0802CFE2
.align 2, 0
_0802CFC8: .4byte gMain
_0802CFCC: .4byte gUnknown_03004344
_0802CFD0: .4byte gUnknown_03004348
_0802CFD4: .4byte gUnknown_02024E64
_0802CFD8: .4byte gUnknown_02024A60
_0802CFDC:
ldrb r0, [r3]
bl nullsub_7
_0802CFE2:
ldr r4, _0802D00C @ =gUnknown_03004344
ldrb r0, [r4]
movs r1, 0x1
eors r0, r1
strb r0, [r4]
movs r0, 0x5
bl PlaySE
ldr r1, _0802D010 @ =gUnknown_02024E64
ldr r0, _0802D014 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
bne _0802D018
adds r0, r1, 0
movs r1, 0
bl sub_802E3B4
b _0802D020
.align 2, 0
_0802D00C: .4byte gUnknown_03004344
_0802D010: .4byte gUnknown_02024E64
_0802D014: .4byte gUnknown_02024A60
_0802D018:
ldrb r0, [r4]
movs r1, 0x1B
bl sub_802E3B4
_0802D020:
ldr r0, _0802D050 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0802D0A4
ldr r3, _0802D054 @ =gUnknown_03004344
ldrb r2, [r3]
movs r0, 0x2
ands r0, r2
cmp r0, 0
beq _0802D0A4
ldr r0, _0802D058 @ =gUnknown_02024E64
ldr r1, _0802D05C @ =gUnknown_02024A60
ldrb r1, [r1]
adds r1, r0
ldrb r5, [r1]
cmp r2, r5
bne _0802D060
ldrb r0, [r1]
movs r1, 0x1D
bl sub_802E3B4
b _0802D066
.align 2, 0
_0802D050: .4byte gMain
_0802D054: .4byte gUnknown_03004344
_0802D058: .4byte gUnknown_02024E64
_0802D05C: .4byte gUnknown_02024A60
_0802D060:
ldrb r0, [r3]
bl nullsub_7
_0802D066:
ldr r4, _0802D090 @ =gUnknown_03004344
ldrb r0, [r4]
movs r1, 0x2
eors r0, r1
strb r0, [r4]
movs r0, 0x5
bl PlaySE
ldr r1, _0802D094 @ =gUnknown_02024E64
ldr r0, _0802D098 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
bne _0802D09C
adds r0, r1, 0
movs r1, 0
bl sub_802E3B4
b _0802D0A4
.align 2, 0
_0802D090: .4byte gUnknown_03004344
_0802D094: .4byte gUnknown_02024E64
_0802D098: .4byte gUnknown_02024A60
_0802D09C:
ldrb r0, [r4]
movs r1, 0x1B
bl sub_802E3B4
_0802D0A4:
ldr r0, _0802D0E0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0802D138
ldr r3, _0802D0E4 @ =gUnknown_03004344
ldrb r2, [r3]
movs r0, 0x2
ands r0, r2
cmp r0, 0
bne _0802D138
ldr r1, _0802D0E8 @ =gUnknown_03004348
movs r0, 0x2
eors r0, r2
ldrb r1, [r1]
cmp r0, r1
bcs _0802D138
ldr r0, _0802D0EC @ =gUnknown_02024E64
ldr r1, _0802D0F0 @ =gUnknown_02024A60
ldrb r1, [r1]
adds r1, r0
ldrb r0, [r1]
cmp r2, r0
bne _0802D0F4
ldrb r0, [r1]
movs r1, 0x1D
bl sub_802E3B4
b _0802D0FA
.align 2, 0
_0802D0E0: .4byte gMain
_0802D0E4: .4byte gUnknown_03004344
_0802D0E8: .4byte gUnknown_03004348
_0802D0EC: .4byte gUnknown_02024E64
_0802D0F0: .4byte gUnknown_02024A60
_0802D0F4:
ldrb r0, [r3]
bl nullsub_7
_0802D0FA:
ldr r4, _0802D124 @ =gUnknown_03004344
ldrb r0, [r4]
movs r1, 0x2
eors r0, r1
strb r0, [r4]
movs r0, 0x5
bl PlaySE
ldr r1, _0802D128 @ =gUnknown_02024E64
ldr r0, _0802D12C @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
bne _0802D130
adds r0, r1, 0
movs r1, 0
bl sub_802E3B4
b _0802D138
.align 2, 0
_0802D124: .4byte gUnknown_03004344
_0802D128: .4byte gUnknown_02024E64
_0802D12C: .4byte gUnknown_02024A60
_0802D130:
ldrb r0, [r4]
movs r1, 0x1B
bl sub_802E3B4
_0802D138:
add sp, 0x2C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_802CA60
thumb_func_start sub_802D148
sub_802D148: @ 802D148
push {lr}
ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _0802D174
movs r0, 0x5A
bl m4aSongNumStop
ldr r3, _0802D17C @ =gMain
ldr r0, _0802D180 @ =0x0000043d
adds r2, r3, r0
ldrb r1, [r2]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r2]
ldr r0, _0802D184 @ =gUnknown_030042D0
ldr r0, [r0]
str r0, [r3]
ldr r0, _0802D188 @ =c2_8011A1C
bl SetMainCallback2
_0802D174:
pop {r0}
bx r0
.align 2, 0
_0802D178: .4byte gReceivedRemoteLinkPlayers
_0802D17C: .4byte gMain
_0802D180: .4byte 0x0000043d
_0802D184: .4byte gUnknown_030042D0
_0802D188: .4byte c2_8011A1C
thumb_func_end sub_802D148
thumb_func_start sub_802D18C
sub_802D18C: @ 802D18C
push {lr}
ldr r0, _0802D1BC @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0802D1F2
ldr r0, _0802D1C0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0802D1D0
bl sub_800832C
ldr r1, _0802D1C4 @ =gUnknown_03004330
ldr r0, _0802D1C8 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _0802D1CC @ =sub_802D148
str r1, [r0]
b _0802D1F2
.align 2, 0
_0802D1BC: .4byte gPaletteFade
_0802D1C0: .4byte gBattleTypeFlags
_0802D1C4: .4byte gUnknown_03004330
_0802D1C8: .4byte gUnknown_02024A60
_0802D1CC: .4byte sub_802D148
_0802D1D0:
movs r0, 0x5A
bl m4aSongNumStop
ldr r2, _0802D1F8 @ =gMain
ldr r0, _0802D1FC @ =0x0000043d
adds r3, r2, r0
ldrb r1, [r3]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r3]
ldr r0, _0802D200 @ =gUnknown_030042D0
ldr r0, [r0]
str r0, [r2]
ldr r0, [r2, 0x8]
bl SetMainCallback2
_0802D1F2:
pop {r0}
bx r0
.align 2, 0
_0802D1F8: .4byte gMain
_0802D1FC: .4byte 0x0000043d
_0802D200: .4byte gUnknown_030042D0
thumb_func_end sub_802D18C
thumb_func_start sub_802D204
sub_802D204: @ 802D204
push {lr}
ldr r2, _0802D22C @ =gSprites
ldr r1, _0802D230 @ =gUnknown_02024BE0
ldr r0, _0802D234 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _0802D238 @ =SpriteCallbackDummy
cmp r1, r0
bne _0802D228
bl dp01_tbl1_exec_completed
_0802D228:
pop {r0}
bx r0
.align 2, 0
_0802D22C: .4byte gSprites
_0802D230: .4byte gUnknown_02024BE0
_0802D234: .4byte gUnknown_02024A60
_0802D238: .4byte SpriteCallbackDummy
thumb_func_end sub_802D204
thumb_func_start sub_802D23C
sub_802D23C: @ 802D23C
push {lr}
ldr r2, _0802D264 @ =gSprites
ldr r1, _0802D268 @ =gUnknown_02024BE0
ldr r0, _0802D26C @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _0802D270 @ =SpriteCallbackDummy
cmp r1, r0
bne _0802D260
bl dp01_tbl1_exec_completed
_0802D260:
pop {r0}
bx r0
.align 2, 0
_0802D264: .4byte gSprites
_0802D268: .4byte gUnknown_02024BE0
_0802D26C: .4byte gUnknown_02024A60
_0802D270: .4byte SpriteCallbackDummy
thumb_func_end sub_802D23C
thumb_func_start sub_802D274
sub_802D274: @ 802D274
push {r4-r6,lr}
ldr r6, _0802D2CC @ =gSprites
ldr r5, _0802D2D0 @ =gUnknown_02024BE0
ldr r4, _0802D2D4 @ =gUnknown_02024A60
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r6, 0
adds r1, 0x1C
adds r0, r1
ldr r1, [r0]
ldr r0, _0802D2D8 @ =SpriteCallbackDummy
cmp r1, r0
bne _0802D2C6
ldr r0, _0802D2DC @ =gSaveBlock2
ldrb r0, [r0, 0x8]
bl nullsub_10
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
bl FreeSpriteOamMatrix
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
bl DestroySprite
bl dp01_tbl1_exec_completed
_0802D2C6:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802D2CC: .4byte gSprites
_0802D2D0: .4byte gUnknown_02024BE0
_0802D2D4: .4byte gUnknown_02024A60
_0802D2D8: .4byte SpriteCallbackDummy
_0802D2DC: .4byte gSaveBlock2
thumb_func_end sub_802D274
thumb_func_start sub_802D2E0
sub_802D2E0: @ 802D2E0
push {lr}
ldr r3, _0802D314 @ =gUnknown_02024A60
ldrb r0, [r3]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
ldr r2, _0802D318 @ =0x02017810
adds r1, r2
ldrb r0, [r1, 0x9]
subs r0, 0x1
strb r0, [r1, 0x9]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _0802D310
ldrb r0, [r3]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r2
movs r0, 0
strb r0, [r1, 0x9]
bl dp01_tbl1_exec_completed
_0802D310:
pop {r0}
bx r0
.align 2, 0
_0802D314: .4byte gUnknown_02024A60
_0802D318: .4byte 0x02017810
thumb_func_end sub_802D2E0
thumb_func_start sub_802D31C
sub_802D31C: @ 802D31C
push {r4-r7,lr}
movs r6, 0
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D340
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D374
ldr r0, _0802D360 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0802D374
_0802D340:
ldr r2, _0802D364 @ =gSprites
ldr r1, _0802D368 @ =gUnknown_03004340
ldr r0, _0802D36C @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _0802D370 @ =SpriteCallbackDummy
cmp r1, r0
bne _0802D3AA
b _0802D3A8
.align 2, 0
_0802D360: .4byte gBattleTypeFlags
_0802D364: .4byte gSprites
_0802D368: .4byte gUnknown_03004340
_0802D36C: .4byte gUnknown_02024A60
_0802D370: .4byte SpriteCallbackDummy
_0802D374:
ldr r2, _0802D45C @ =gSprites
ldr r5, _0802D460 @ =gUnknown_03004340
ldr r0, _0802D464 @ =gUnknown_02024A60
ldrb r3, [r0]
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r4, [r0]
ldr r0, _0802D468 @ =SpriteCallbackDummy
cmp r4, r0
bne _0802D3AA
movs r0, 0x2
eors r3, r0
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r0, [r0]
cmp r0, r4
bne _0802D3AA
_0802D3A8:
movs r6, 0x1
_0802D3AA:
bl IsCryPlayingOrClearCrySongs
lsls r0, 24
cmp r0, 0
beq _0802D3B6
movs r6, 0
_0802D3B6:
cmp r6, 0
bne _0802D3BC
b _0802D4DA
_0802D3BC:
ldr r7, _0802D464 @ =gUnknown_02024A60
ldrb r2, [r7]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r5, _0802D46C @ =0x02017810
adds r4, r0, r5
ldrb r1, [r4, 0x1]
movs r3, 0x1
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _0802D3D8
b _0802D4DA
_0802D3D8:
movs r6, 0x2
adds r1, r6, 0
eors r1, r2
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r0, 0x1]
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _0802D4DA
ldrb r1, [r4]
movs r3, 0x7F
adds r0, r3, 0
ands r0, r1
strb r0, [r4]
ldrb r0, [r7]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x1]
movs r4, 0x2
negs r4, r4
adds r0, r4, 0
ands r0, r2
strb r0, [r1, 0x1]
ldrb r0, [r7]
adds r1, r6, 0
eors r1, r0
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r0]
ands r3, r1
strb r3, [r0]
ldrb r0, [r7]
adds r1, r6, 0
eors r1, r0
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r0, 0x1]
ands r4, r1
strb r4, [r0, 0x1]
ldr r4, _0802D470 @ =0x000027f9
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
ldr r0, _0802D474 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _0802D47C
ldr r0, _0802D478 @ =gMPlay_BGM
bl m4aMPlayContinue
b _0802D488
.align 2, 0
_0802D45C: .4byte gSprites
_0802D460: .4byte gUnknown_03004340
_0802D464: .4byte gUnknown_02024A60
_0802D468: .4byte SpriteCallbackDummy
_0802D46C: .4byte 0x02017810
_0802D470: .4byte 0x000027f9
_0802D474: .4byte gBattleTypeFlags
_0802D478: .4byte gMPlay_BGM
_0802D47C:
ldr r0, _0802D4E0 @ =gMPlay_BGM
ldr r1, _0802D4E4 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
_0802D488:
ldr r7, _0802D4E8 @ =gUnknown_02024A6A
ldr r4, _0802D4EC @ =gUnknown_02024A60
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r7
ldrh r0, [r0]
movs r6, 0x64
muls r0, r6
ldr r5, _0802D4F0 @ =gPlayerParty
adds r0, r5
bl sub_80324F8
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D4BE
ldrb r0, [r4]
movs r1, 0x2
eors r1, r0
lsls r0, r1, 1
adds r0, r7
ldrh r0, [r0]
muls r0, r6
adds r0, r5
bl sub_80324F8
_0802D4BE:
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _0802D4F4 @ =0x02017810
adds r0, r1
movs r1, 0x3
strb r1, [r0, 0x9]
ldr r1, _0802D4F8 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _0802D4FC @ =sub_802D2E0
str r1, [r0]
_0802D4DA:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802D4E0: .4byte gMPlay_BGM
_0802D4E4: .4byte 0x0000ffff
_0802D4E8: .4byte gUnknown_02024A6A
_0802D4EC: .4byte gUnknown_02024A60
_0802D4F0: .4byte gPlayerParty
_0802D4F4: .4byte 0x02017810
_0802D4F8: .4byte gUnknown_03004330
_0802D4FC: .4byte sub_802D2E0
thumb_func_end sub_802D31C
thumb_func_start sub_802D500
sub_802D500: @ 802D500
push {r4-r7,lr}
ldr r5, _0802D654 @ =gUnknown_02024A60
ldrb r2, [r5]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
ldr r4, _0802D658 @ =0x02017810
adds r0, r4
ldrb r1, [r0]
movs r7, 0x88
adds r0, r7, 0
ands r0, r1
cmp r0, 0
bne _0802D530
ldr r0, _0802D65C @ =gUnknown_02024A6A
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _0802D660 @ =gPlayerParty
adds r1, r0
adds r0, r2, 0
bl sub_8141828
_0802D530:
ldrb r0, [r5]
movs r6, 0x2
adds r2, r6, 0
eors r2, r0
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r0, r4
ldrb r1, [r0]
adds r0, r7, 0
ands r0, r1
cmp r0, 0
bne _0802D55E
ldr r0, _0802D65C @ =gUnknown_02024A6A
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _0802D660 @ =gPlayerParty
adds r1, r0
adds r0, r2, 0
bl sub_8141828
_0802D55E:
ldrb r2, [r5]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r4
ldrb r1, [r0]
movs r3, 0x8
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _0802D64C
adds r1, r6, 0
eors r1, r2
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r4
ldrb r1, [r0]
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _0802D64C
bl IsDoubleBattle
lsls r0, 24
cmp r0, 0
beq _0802D5EE
ldr r0, _0802D664 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0802D5EE
ldr r1, _0802D668 @ =gUnknown_0300434C
ldrb r0, [r5]
eors r0, r6
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0802D66C @ =gSprites
adds r0, r1
bl DestroySprite
ldr r4, _0802D670 @ =gUnknown_03004340
ldrb r0, [r5]
adds r1, r6, 0
eors r1, r0
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, _0802D65C @ =gUnknown_02024A6A
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _0802D660 @ =gPlayerParty
adds r1, r2
movs r2, 0
bl sub_8045A5C
ldrb r0, [r5]
eors r0, r6
bl sub_804777C
ldrb r0, [r5]
eors r0, r6
adds r0, r4
ldrb r0, [r0]
bl sub_8043DFC
_0802D5EE:
ldr r1, _0802D668 @ =gUnknown_0300434C
ldr r4, _0802D654 @ =gUnknown_02024A60
ldrb r0, [r4]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _0802D66C @ =gSprites
adds r0, r1
bl DestroySprite
ldr r5, _0802D670 @ =gUnknown_03004340
ldrb r1, [r4]
adds r0, r1, r5
ldrb r0, [r0]
ldr r2, _0802D65C @ =gUnknown_02024A6A
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _0802D660 @ =gPlayerParty
adds r1, r2
movs r2, 0
bl sub_8045A5C
ldrb r0, [r4]
bl sub_804777C
ldrb r0, [r4]
adds r0, r5
ldrb r0, [r0]
bl sub_8043DFC
ldr r2, _0802D674 @ =0x02017840
ldrb r1, [r2, 0x9]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2, 0x9]
ldr r1, _0802D678 @ =gUnknown_03004330
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _0802D67C @ =sub_802D31C
str r1, [r0]
_0802D64C:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802D654: .4byte gUnknown_02024A60
_0802D658: .4byte 0x02017810
_0802D65C: .4byte gUnknown_02024A6A
_0802D660: .4byte gPlayerParty
_0802D664: .4byte gBattleTypeFlags
_0802D668: .4byte gUnknown_0300434C
_0802D66C: .4byte gSprites
_0802D670: .4byte gUnknown_03004340
_0802D674: .4byte 0x02017840
_0802D678: .4byte gUnknown_03004330
_0802D67C: .4byte sub_802D31C
thumb_func_end sub_802D500
thumb_func_start sub_802D680
sub_802D680: @ 802D680
push {r4-r6,lr}
ldr r2, _0802D710 @ =gSprites
ldr r0, _0802D714 @ =gUnknown_03004340
ldr r6, _0802D718 @ =gUnknown_02024A60
ldrb r3, [r6]
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _0802D71C @ =SpriteCallbackDummy
cmp r1, r0
bne _0802D708
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
ldr r5, _0802D720 @ =0x02017810
adds r2, r0, r5
ldrb r1, [r2, 0x1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0802D708
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
ldrb r0, [r6]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r5
ldrb r2, [r1, 0x1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
ldr r4, _0802D724 @ =0x000027f9
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
ldrb r2, [r6]
lsls r0, r2, 2
adds r1, r5, 0
subs r1, 0x10
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _0802D6FC
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x6
bl move_anim_start_t4
_0802D6FC:
ldr r0, _0802D728 @ =gUnknown_03004330
ldrb r1, [r6]
lsls r1, 2
adds r1, r0
ldr r0, _0802D72C @ =sub_802D730
str r0, [r1]
_0802D708:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802D710: .4byte gSprites
_0802D714: .4byte gUnknown_03004340
_0802D718: .4byte gUnknown_02024A60
_0802D71C: .4byte SpriteCallbackDummy
_0802D720: .4byte 0x02017810
_0802D724: .4byte 0x000027f9
_0802D728: .4byte gUnknown_03004330
_0802D72C: .4byte sub_802D730
thumb_func_end sub_802D680
thumb_func_start sub_802D730
sub_802D730: @ 802D730
push {r4,lr}
ldr r4, _0802D780 @ =gUnknown_02024A60
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _0802D784 @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0802D77A
bl IsCryPlayingOrClearCrySongs
lsls r0, 24
cmp r0, 0
bne _0802D77A
ldr r0, _0802D788 @ =gMPlay_BGM
ldr r1, _0802D78C @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
ldr r2, _0802D790 @ =gUnknown_02024A6A
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, _0802D794 @ =gPlayerParty
adds r0, r2
bl sub_80324F8
bl dp01_tbl1_exec_completed
_0802D77A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802D780: .4byte gUnknown_02024A60
_0802D784: .4byte 0x02017810
_0802D788: .4byte gMPlay_BGM
_0802D78C: .4byte 0x0000ffff
_0802D790: .4byte gUnknown_02024A6A
_0802D794: .4byte gPlayerParty
thumb_func_end sub_802D730
thumb_func_start sub_802D798
sub_802D798: @ 802D798
push {r4-r6,lr}
ldr r5, _0802D844 @ =gUnknown_02024A60
ldrb r2, [r5]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
ldr r6, _0802D848 @ =0x02017810
adds r0, r6
ldrb r1, [r0]
movs r0, 0x88
ands r0, r1
cmp r0, 0
bne _0802D7C6
ldr r0, _0802D84C @ =gUnknown_02024A6A
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _0802D850 @ =gPlayerParty
adds r1, r0
adds r0, r2, 0
bl sub_8141828
_0802D7C6:
ldr r4, _0802D854 @ =gSprites
ldr r0, _0802D858 @ =gUnknown_0300434C
ldrb r2, [r5]
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r3, r0, 2
adds r0, r4, 0
adds r0, 0x1C
adds r0, r3, r0
ldr r1, [r0]
ldr r0, _0802D85C @ =SpriteCallbackDummy
cmp r1, r0
bne _0802D83C
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r6
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _0802D83C
adds r0, r3, r4
bl DestroySprite
ldr r4, _0802D860 @ =gUnknown_03004340
ldrb r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, _0802D84C @ =gUnknown_02024A6A
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _0802D850 @ =gPlayerParty
adds r1, r2
movs r2, 0
bl sub_8045A5C
ldrb r0, [r5]
bl sub_804777C
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl sub_8043DFC
ldrb r0, [r5]
bl sub_8031F88
ldr r1, _0802D864 @ =gUnknown_03004330
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _0802D868 @ =sub_802D680
str r1, [r0]
_0802D83C:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802D844: .4byte gUnknown_02024A60
_0802D848: .4byte 0x02017810
_0802D84C: .4byte gUnknown_02024A6A
_0802D850: .4byte gPlayerParty
_0802D854: .4byte gSprites
_0802D858: .4byte gUnknown_0300434C
_0802D85C: .4byte SpriteCallbackDummy
_0802D860: .4byte gUnknown_03004340
_0802D864: .4byte gUnknown_03004330
_0802D868: .4byte sub_802D680
thumb_func_end sub_802D798
thumb_func_start c3_0802FDF4
c3_0802FDF4: @ 802D86C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl IsCryPlayingOrClearCrySongs
lsls r0, 24
cmp r0, 0
bne _0802D88E
ldr r0, _0802D894 @ =gMPlay_BGM
ldr r1, _0802D898 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
adds r0, r4, 0
bl DestroyTask
_0802D88E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802D894: .4byte gMPlay_BGM
_0802D898: .4byte 0x0000ffff
thumb_func_end c3_0802FDF4
thumb_func_start bx_t1_healthbar_update
bx_t1_healthbar_update: @ 802D89C
push {r4-r6,lr}
ldr r5, _0802D8DC @ =gUnknown_02024A60
ldrb r0, [r5]
ldr r6, _0802D8E0 @ =gUnknown_03004340
adds r1, r0, r6
ldrb r1, [r1]
movs r2, 0
movs r3, 0
bl sub_8045C78
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
bl sub_8043DFC
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _0802D8E4
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
movs r2, 0
bl sub_80440EC
b _0802D8FE
.align 2, 0
_0802D8DC: .4byte gUnknown_02024A60
_0802D8E0: .4byte gUnknown_03004340
_0802D8E4:
ldr r2, _0802D904 @ =gUnknown_02024A6A
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
muls r0, r2
ldr r2, _0802D908 @ =gPlayerParty
adds r0, r2
bl sub_80324F8
bl dp01_tbl1_exec_completed
_0802D8FE:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802D904: .4byte gUnknown_02024A6A
_0802D908: .4byte gPlayerParty
thumb_func_end bx_t1_healthbar_update
thumb_func_start sub_802D90C
sub_802D90C: @ 802D90C
push {lr}
ldr r0, _0802D920 @ =gUnknown_03004210
ldrh r0, [r0, 0x16]
cmp r0, 0
bne _0802D91A
bl dp01_tbl1_exec_completed
_0802D91A:
pop {r0}
bx r0
.align 2, 0
_0802D920: .4byte gUnknown_03004210
thumb_func_end sub_802D90C
thumb_func_start sub_802D924
sub_802D924: @ 802D924
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r1, _0802DA24 @ =gTasks
lsls r0, 2
add r0, r9
lsls r0, 3
adds r0, r1
mov r8, r0
ldrb r0, [r0, 0x8]
mov r10, r0
mov r1, r8
ldrb r7, [r1, 0xC]
str r7, [sp, 0x8]
ldrh r2, [r1, 0xA]
str r2, [sp, 0xC]
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _0802D96A
ldr r1, _0802DA28 @ =gUnknown_02024A6A
lsls r0, r7, 1
adds r0, r1
ldrh r0, [r0]
cmp r10, r0
bne _0802D96A
b _0802DA80
_0802D96A:
movs r0, 0x64
mov r1, r10
muls r1, r0
ldr r0, _0802DA2C @ =gPlayerParty
adds r6, r1, r0
adds r0, r6, 0
movs r1, 0xB
bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
movs r1, 0x38
bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x4]
ldr r3, _0802DA30 @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _0802DA34 @ =gBaseStats
lsls r1, r5, 3
subs r1, r5
lsls r1, 2
adds r1, r2
ldrb r2, [r1, 0x13]
movs r1, 0xCA
lsls r1, 1
muls r1, r2
adds r4, r1
adds r4, r3
ldr r2, [r4]
str r2, [sp]
ldr r3, [sp, 0xC]
lsls r1, r3, 16
asrs r1, 16
adds r0, r1
cmp r0, r2
bcc _0802DA58
adds r0, r6, 0
movs r1, 0x19
mov r2, sp
bl SetMonData
adds r0, r6, 0
bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
subs r2, r0
ldr r0, [sp, 0xC]
subs r2, r0, r2
ldr r4, _0802DA38 @ =gUnknown_02024A60
ldrb r5, [r4]
strb r7, [r4]
lsls r2, 16
lsrs r2, 16
movs r0, 0x1
movs r1, 0xB
bl dp01_build_cmdbuf_x21_a_bb
strb r5, [r4]
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0802DA40
ldr r2, _0802DA28 @ =gUnknown_02024A6A
lsls r0, r7, 1
adds r0, r2
mov r1, r10
ldrh r0, [r0]
cmp r1, r0
beq _0802DA1E
movs r0, 0x2
eors r7, r0
lsls r0, r7, 1
adds r0, r2
ldrh r0, [r0]
cmp r1, r0
bne _0802DA40
_0802DA1E:
ldr r0, _0802DA3C @ =sub_802DCB0
b _0802DA82
.align 2, 0
_0802DA24: .4byte gTasks
_0802DA28: .4byte gUnknown_02024A6A
_0802DA2C: .4byte gPlayerParty
_0802DA30: .4byte gExperienceTables
_0802DA34: .4byte gBaseStats
_0802DA38: .4byte gUnknown_02024A60
_0802DA3C: .4byte sub_802DCB0
_0802DA40:
ldr r0, _0802DA50 @ =gTasks
mov r2, r9
lsls r1, r2, 2
add r1, r9
lsls r1, 3
adds r1, r0
ldr r0, _0802DA54 @ =sub_802DDC4
b _0802DA84
.align 2, 0
_0802DA50: .4byte gTasks
_0802DA54: .4byte sub_802DDC4
_0802DA58:
str r0, [sp, 0x4]
add r2, sp, 0x4
adds r0, r6, 0
movs r1, 0x19
bl SetMonData
ldr r1, _0802DA78 @ =gUnknown_03004330
ldr r3, [sp, 0x8]
lsls r0, r3, 2
adds r0, r1
ldr r1, _0802DA7C @ =sub_802D90C
str r1, [r0]
mov r0, r9
bl DestroyTask
b _0802DA86
.align 2, 0
_0802DA78: .4byte gUnknown_03004330
_0802DA7C: .4byte sub_802D90C
_0802DA80:
ldr r0, _0802DA98 @ =sub_802DA9C
_0802DA82:
mov r1, r8
_0802DA84:
str r0, [r1]
_0802DA86:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802DA98: .4byte sub_802DA9C
thumb_func_end sub_802D924
thumb_func_start sub_802DA9C
sub_802DA9C: @ 802DA9C
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
ldr r1, _0802DB54 @ =gTasks
lsls r2, r0, 2
mov r8, r2
add r8, r0
mov r0, r8
lsls r0, 3
mov r8, r0
add r8, r1
mov r2, r8
ldrb r1, [r2, 0x8]
movs r0, 0xA
ldrsh r2, [r2, r0]
mov r9, r2
mov r2, r8
ldrb r2, [r2, 0xC]
mov r10, r2
movs r0, 0x64
adds r6, r1, 0
muls r6, r0
ldr r0, _0802DB58 @ =gPlayerParty
adds r6, r0
adds r0, r6, 0
movs r1, 0x38
bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
movs r1, 0xB
bl GetMonData
adds r5, r0, 0
lsls r5, 16
lsrs r5, 16
adds r0, r6, 0
movs r1, 0x19
bl GetMonData
adds r3, r0, 0
ldr r6, _0802DB5C @ =gExperienceTables
lsls r1, r4, 2
ldr r2, _0802DB60 @ =gBaseStats
lsls r0, r5, 3
subs r0, r5
lsls r0, 2
adds r0, r2
ldrb r2, [r0, 0x13]
movs r0, 0xCA
lsls r0, 1
muls r0, r2
adds r1, r0
adds r1, r6
ldr r1, [r1]
subs r3, r1
adds r4, 0x1
lsls r4, 2
adds r4, r0
adds r4, r6
ldr r2, [r4]
subs r2, r1
ldr r0, _0802DB64 @ =gUnknown_03004340
add r0, r10
ldrb r1, [r0]
mov r0, r9
negs r0, r0
str r0, [sp]
mov r0, r10
bl sub_8043D84
movs r0, 0x21
bl PlaySE
ldr r0, _0802DB68 @ =sub_802DB6C
mov r1, r8
str r0, [r1]
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802DB54: .4byte gTasks
_0802DB58: .4byte gPlayerParty
_0802DB5C: .4byte gExperienceTables
_0802DB60: .4byte gBaseStats
_0802DB64: .4byte gUnknown_03004340
_0802DB68: .4byte sub_802DB6C
thumb_func_end sub_802DA9C
thumb_func_start sub_802DB6C
sub_802DB6C: @ 802DB6C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r1, _0802DB98 @ =gTasks
lsls r0, 2
add r0, r8
lsls r0, 3
adds r6, r0, r1
ldrh r1, [r6, 0x1C]
movs r2, 0x1C
ldrsh r0, [r6, r2]
cmp r0, 0xC
bgt _0802DB9C
adds r0, r1, 0x1
strh r0, [r6, 0x1C]
b _0802DC98
.align 2, 0
_0802DB98: .4byte gTasks
_0802DB9C:
ldrb r0, [r6, 0x8]
mov r9, r0
ldrh r2, [r6, 0xA]
mov r10, r2
ldrb r7, [r6, 0xC]
ldr r5, _0802DC64 @ =gUnknown_03004340
adds r5, r7, r5
ldrb r1, [r5]
adds r0, r7, 0
movs r2, 0x1
movs r3, 0
bl sub_8045C78
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r5]
bl sub_8043DFC
lsls r4, 16
asrs r4, 16
movs r0, 0x1
negs r0, r0
cmp r4, r0
bne _0802DC98
movs r0, 0x21
bl m4aSongNumStop
movs r0, 0x64
mov r1, r9
muls r1, r0
ldr r0, _0802DC68 @ =gPlayerParty
adds r5, r1, r0
adds r0, r5, 0
movs r1, 0x38
bl GetMonData
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
movs r1, 0x19
bl GetMonData
str r0, [sp, 0x4]
adds r0, r5, 0
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
ldr r3, _0802DC6C @ =gExperienceTables
adds r4, 0x1
lsls r4, 2
ldr r2, _0802DC70 @ =gBaseStats
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r1, r2
ldrb r1, [r1, 0x13]
movs r0, 0xCA
lsls r0, 1
muls r0, r1
adds r4, r0
adds r4, r3
ldr r1, [r4]
str r1, [sp]
mov r2, r10
lsls r0, r2, 16
asrs r4, r0, 16
ldr r0, [sp, 0x4]
adds r0, r4
cmp r0, r1
blt _0802DC7C
adds r0, r5, 0
movs r1, 0x19
mov r2, sp
bl SetMonData
adds r0, r5, 0
bl CalculateMonStats
ldr r2, [sp]
add r0, sp, 0x4
ldrh r0, [r0]
subs r2, r0
subs r2, r4, r2
ldr r4, _0802DC74 @ =gUnknown_02024A60
ldrb r5, [r4]
strb r7, [r4]
lsls r2, 16
lsrs r2, 16
movs r0, 0x1
movs r1, 0xB
bl dp01_build_cmdbuf_x21_a_bb
strb r5, [r4]
ldr r0, _0802DC78 @ =sub_802DCB0
str r0, [r6]
b _0802DC98
.align 2, 0
_0802DC64: .4byte gUnknown_03004340
_0802DC68: .4byte gPlayerParty
_0802DC6C: .4byte gExperienceTables
_0802DC70: .4byte gBaseStats
_0802DC74: .4byte gUnknown_02024A60
_0802DC78: .4byte sub_802DCB0
_0802DC7C:
str r0, [sp, 0x4]
add r2, sp, 0x4
adds r0, r5, 0
movs r1, 0x19
bl SetMonData
ldr r1, _0802DCA8 @ =gUnknown_03004330
lsls r0, r7, 2
adds r0, r1
ldr r1, _0802DCAC @ =sub_802D90C
str r1, [r0]
mov r0, r8
bl DestroyTask
_0802DC98:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802DCA8: .4byte gUnknown_03004330
_0802DCAC: .4byte sub_802D90C
thumb_func_end sub_802DB6C
thumb_func_start sub_802DCB0
sub_802DCB0: @ 802DCB0
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r1, _0802DD04 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
ldrb r4, [r0, 0xC]
ldrb r6, [r0, 0x8]
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0802DCE4
ldr r1, _0802DD08 @ =gUnknown_02024A6A
movs r0, 0x2
adds r2, r4, 0
eors r2, r0
lsls r0, r2, 1
adds r0, r1
ldrh r0, [r0]
cmp r6, r0
bne _0802DCE4
adds r4, r2, 0
_0802DCE4:
adds r0, r4, 0
adds r1, r4, 0
adds r2, r4, 0
movs r3, 0
bl move_anim_start_t4
ldr r0, _0802DD04 @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
ldr r0, _0802DD0C @ =sub_802DD10
str r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802DD04: .4byte gTasks
_0802DD08: .4byte gUnknown_02024A6A
_0802DD0C: .4byte sub_802DD10
thumb_func_end sub_802DCB0
thumb_func_start sub_802DD10
sub_802DD10: @ 802DD10
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _0802DD78 @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r2, r0, r1
ldrb r5, [r2, 0xC]
lsls r0, r5, 1
adds r0, r5
lsls r0, 2
ldr r1, _0802DD7C @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0802DDAE
ldrb r4, [r2, 0x8]
movs r0, 0x64
adds r1, r4, 0
muls r1, r0
ldr r0, _0802DD80 @ =gPlayerParty
adds r7, r1, r0
adds r0, r7, 0
movs r1, 0x38
bl GetMonData
bl IsDoubleBattle
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0802DD8C
ldr r1, _0802DD84 @ =gUnknown_02024A6A
movs r0, 0x2
adds r2, r5, 0
eors r2, r0
lsls r0, r2, 1
adds r0, r1
ldrh r0, [r0]
cmp r4, r0
bne _0802DD8C
ldr r0, _0802DD88 @ =gUnknown_03004340
adds r0, r2, r0
ldrb r0, [r0]
adds r1, r7, 0
movs r2, 0
bl sub_8045A5C
b _0802DDA0
.align 2, 0
_0802DD78: .4byte gTasks
_0802DD7C: .4byte 0x02017810
_0802DD80: .4byte gPlayerParty
_0802DD84: .4byte gUnknown_02024A6A
_0802DD88: .4byte gUnknown_03004340
_0802DD8C:
ldr r0, _0802DDB4 @ =gUnknown_03004340
adds r0, r5, r0
ldrb r0, [r0]
movs r1, 0x64
muls r1, r4
ldr r2, _0802DDB8 @ =gPlayerParty
adds r1, r2
movs r2, 0
bl sub_8045A5C
_0802DDA0:
ldr r0, _0802DDBC @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
ldr r0, _0802DDC0 @ =sub_802DDC4
str r0, [r1]
_0802DDAE:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0802DDB4: .4byte gUnknown_03004340
_0802DDB8: .4byte gPlayerParty
_0802DDBC: .4byte gTasks
_0802DDC0: .4byte sub_802DDC4
thumb_func_end sub_802DD10
thumb_func_start sub_802DDC4
sub_802DDC4: @ 802DDC4
push {r4,r5,lr}
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, _0802DE00 @ =gTasks
lsls r4, r5, 2
adds r4, r5
lsls r4, 3
adds r4, r0
ldrb r1, [r4, 0x8]
movs r0, 0x64
muls r0, r1
ldr r1, _0802DE04 @ =gPlayerParty
adds r0, r1
movs r1, 0x38
bl GetMonData
ldrb r0, [r4, 0xC]
ldr r1, _0802DE08 @ =gUnknown_03004330
lsls r0, 2
adds r0, r1
ldr r1, _0802DE0C @ =sub_802D90C
str r1, [r0]
adds r0, r5, 0
bl DestroyTask
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802DE00: .4byte gTasks
_0802DE04: .4byte gPlayerParty
_0802DE08: .4byte gUnknown_03004330
_0802DE0C: .4byte sub_802D90C
thumb_func_end sub_802DDC4
thumb_func_start sub_802DE10
sub_802DE10: @ 802DE10
push {r4-r6,lr}
ldr r6, _0802DE94 @ =gSprites
ldr r5, _0802DE98 @ =gUnknown_02024BE0
ldr r4, _0802DE9C @ =gUnknown_02024A60
ldrb r2, [r4]
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r3, 0x22
ldrsh r1, [r0, r3]
movs r3, 0x26
ldrsh r0, [r0, r3]
adds r1, r0
cmp r1, 0xA0
ble _0802DE8C
ldr r1, _0802DEA0 @ =gUnknown_02024A6A
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0802DEA4 @ =gPlayerParty
adds r0, r1
movs r1, 0xB
bl GetMonData
lsls r0, 16
lsrs r0, 16
bl nullsub_9
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
ldrb r0, [r0, 0x3]
lsls r0, 26
lsrs r0, 27
bl FreeOamMatrix
ldrb r0, [r4]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
bl DestroySprite
ldr r1, _0802DEA8 @ =gUnknown_03004340
ldrb r0, [r4]
adds r0, r1
ldrb r0, [r0]
bl sub_8043DB0
bl dp01_tbl1_exec_completed
_0802DE8C:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802DE94: .4byte gSprites
_0802DE98: .4byte gUnknown_02024BE0
_0802DE9C: .4byte gUnknown_02024A60
_0802DEA0: .4byte gUnknown_02024A6A
_0802DEA4: .4byte gPlayerParty
_0802DEA8: .4byte gUnknown_03004340
thumb_func_end sub_802DE10
thumb_func_start sub_802DEAC
sub_802DEAC: @ 802DEAC
push {r4-r6,lr}
ldr r6, _0802DF04 @ =gUnknown_02024A60
ldrb r2, [r6]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
ldr r1, _0802DF08 @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0802DEFC
ldr r5, _0802DF0C @ =gUnknown_02024BE0
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _0802DF10 @ =gSprites
adds r0, r4
bl FreeSpriteOamMatrix
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldr r1, _0802DF14 @ =gUnknown_03004340
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8043DB0
bl dp01_tbl1_exec_completed
_0802DEFC:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802DF04: .4byte gUnknown_02024A60
_0802DF08: .4byte 0x02017810
_0802DF0C: .4byte gUnknown_02024BE0
_0802DF10: .4byte gSprites
_0802DF14: .4byte gUnknown_03004340
thumb_func_end sub_802DEAC
thumb_func_start sub_802DF18
sub_802DF18: @ 802DF18
push {lr}
ldr r0, _0802DF2C @ =gUnknown_03004210
ldrh r0, [r0, 0x16]
cmp r0, 0
bne _0802DF26
bl dp01_tbl1_exec_completed
_0802DF26:
pop {r0}
bx r0
.align 2, 0
_0802DF2C: .4byte gUnknown_03004210
thumb_func_end sub_802DF18
thumb_func_start sub_802DF30
sub_802DF30: @ 802DF30
push {r4,lr}
ldr r0, _0802DF70 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0802DF6A
ldr r1, _0802DF74 @ =gUnknown_03004330
ldr r2, _0802DF78 @ =gUnknown_02024A60
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _0802DF7C @ =sub_802DF88
str r1, [r0]
ldr r3, _0802DF80 @ =gTasks
ldr r1, _0802DF84 @ =gUnknown_0300434C
ldrb r0, [r2]
adds r0, r1
ldrb r0, [r0]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r3
ldrb r4, [r1, 0x8]
bl DestroyTask
adds r0, r4, 0
bl sub_8094E20
_0802DF6A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802DF70: .4byte gPaletteFade
_0802DF74: .4byte gUnknown_03004330
_0802DF78: .4byte gUnknown_02024A60
_0802DF7C: .4byte sub_802DF88
_0802DF80: .4byte gTasks
_0802DF84: .4byte gUnknown_0300434C
thumb_func_end sub_802DF30
thumb_func_start sub_802DF88
sub_802DF88: @ 802DF88
push {lr}
ldr r0, _0802DFB8 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _0802DFBC @ =sub_800F808
cmp r1, r0
bne _0802DFF8
ldr r0, _0802DFC0 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0802DFF8
ldr r0, _0802DFC4 @ =gUnknown_0202E8F4
ldrb r0, [r0]
cmp r0, 0x1
bne _0802DFD0
ldr r0, _0802DFC8 @ =gUnknown_0202E8F5
ldrb r1, [r0]
ldr r2, _0802DFCC @ =gUnknown_02038470
movs r0, 0x1
bl dp01_build_cmdbuf_x22_a_three_bytes
b _0802DFDA
.align 2, 0
_0802DFB8: .4byte gMain
_0802DFBC: .4byte sub_800F808
_0802DFC0: .4byte gPaletteFade
_0802DFC4: .4byte gUnknown_0202E8F4
_0802DFC8: .4byte gUnknown_0202E8F5
_0802DFCC: .4byte gUnknown_02038470
_0802DFD0:
movs r0, 0x1
movs r1, 0x6
movs r2, 0
bl dp01_build_cmdbuf_x22_a_three_bytes
_0802DFDA:
ldr r1, _0802DFFC @ =gUnknown_02023A60
ldr r0, _0802E000 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r1, [r0]
movs r0, 0xF
ands r0, r1
cmp r0, 0x1
bne _0802DFF4
bl b_link_standby_message
_0802DFF4:
bl dp01_tbl1_exec_completed
_0802DFF8:
pop {r0}
bx r0
.align 2, 0
_0802DFFC: .4byte gUnknown_02023A60
_0802E000: .4byte gUnknown_02024A60
thumb_func_end sub_802DF88
thumb_func_start sub_802E004
sub_802E004: @ 802E004
push {lr}
ldr r0, _0802E02C @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0802E028
ldr r1, _0802E030 @ =gUnknown_03004330
ldr r0, _0802E034 @ =gUnknown_02024A60
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _0802E038 @ =sub_802E03C
str r1, [r0]
bl nullsub_14
bl sub_80A6DCC
_0802E028:
pop {r0}
bx r0
.align 2, 0
_0802E02C: .4byte gPaletteFade
_0802E030: .4byte gUnknown_03004330
_0802E034: .4byte gUnknown_02024A60
_0802E038: .4byte sub_802E03C
thumb_func_end sub_802E004
thumb_func_start sub_802E03C
sub_802E03C: @ 802E03C
push {lr}
ldr r0, _0802E068 @ =gMain
ldr r1, [r0, 0x4]
ldr r0, _0802E06C @ =sub_800F808
cmp r1, r0
bne _0802E062
ldr r0, _0802E070 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _0802E062
ldr r0, _0802E074 @ =gScriptItemId
ldrh r1, [r0]
movs r0, 0x1
bl dp01_build_cmdbuf_x23_aa_0
bl dp01_tbl1_exec_completed
_0802E062:
pop {r0}
bx r0
.align 2, 0
_0802E068: .4byte gMain
_0802E06C: .4byte sub_800F808
_0802E070: .4byte gPaletteFade
_0802E074: .4byte gScriptItemId
thumb_func_end sub_802E03C
thumb_func_start bx_wait_t1
bx_wait_t1: @ 802E078
push {lr}
ldr r0, _0802E0A4 @ =gUnknown_02024E6D
ldrb r0, [r0]
cmp r0, 0
beq _0802E09A
ldr r0, _0802E0A8 @ =gUnknown_02024A60
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _0802E0AC @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _0802E09E
_0802E09A:
bl dp01_tbl1_exec_completed
_0802E09E:
pop {r0}
bx r0
.align 2, 0
_0802E0A4: .4byte gUnknown_02024E6D
_0802E0A8: .4byte gUnknown_02024A60
_0802E0AC: .4byte 0x02017810
thumb_func_end bx_wait_t1
thumb_func_start bx_blink_t1
bx_blink_t1: @ 802E0B0
push {r4,lr}
ldr r1, _0802E0EC @ =gUnknown_02024BE0
ldr r0, _0802E0F0 @ =gUnknown_02024A60
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
ldr r2, _0802E0F4 @ =gSprites
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, r0, r2
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0x20
bne _0802E0FC
movs r3, 0
movs r0, 0
strh r0, [r4, 0x30]
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
subs r0, 0x5
ands r0, r1
strb r0, [r2]
ldr r0, _0802E0F8 @ =gUnknown_02024E6D
strb r3, [r0]
bl dp01_tbl1_exec_completed
b _0802E126
.align 2, 0
_0802E0EC: .4byte gUnknown_02024BE0
_0802E0F0: .4byte gUnknown_02024A60
_0802E0F4: .4byte gSprites
_0802E0F8: .4byte gUnknown_02024E6D
_0802E0FC:
ldrh r0, [r4, 0x30]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _0802E120
adds r3, r4, 0
adds r3, 0x3E
ldrb r2, [r3]
lsls r0, r2, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_0802E120:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
_0802E126:
pop {r4}
pop {r0}
bx r0
thumb_func_end bx_blink_t1
thumb_func_start sub_802E12C
sub_802E12C: @ 802E12C
push {r4-r6,lr}
sub sp, 0x4
adds r6, r0, 0
ldr r0, _0802E180 @ =gUnknown_02024A60
ldrb r4, [r0]
lsls r4, 9
ldr r0, _0802E184 @ =gUnknown_02023A64
adds r4, r0
ldr r5, _0802E188 @ =gUnknown_020238CC
adds r0, r5, 0
bl StringCopy
lsls r0, r6, 1
adds r4, r0
ldrh r1, [r4]
movs r0, 0xD
muls r1, r0
ldr r0, _0802E18C @ =gMoveNames
adds r1, r0
adds r0, r5, 0
bl StringAppend
ldr r4, _0802E190 @ =gUnknown_03004210
adds r1, r5, 0
lsls r0, r6, 2
adds r0, r6
lsls r0, 18
movs r2, 0xC0
lsls r2, 18
adds r0, r2
lsrs r2, r0, 16
movs r0, 0x1
ands r0, r6
movs r3, 0x1
cmp r0, 0
beq _0802E176
movs r3, 0xB
_0802E176:
cmp r6, 0x1
bgt _0802E194
movs r0, 0x37
b _0802E196
.align 2, 0
_0802E180: .4byte gUnknown_02024A60
_0802E184: .4byte gUnknown_02023A64
_0802E188: .4byte gUnknown_020238CC
_0802E18C: .4byte gMoveNames
_0802E190: .4byte gUnknown_03004210
_0802E194:
movs r0, 0x39
_0802E196:
str r0, [sp]
adds r0, r4, 0
bl InitWindow
ldr r0, _0802E1AC @ =gUnknown_03004210
bl sub_8002F44
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802E1AC: .4byte gUnknown_03004210
thumb_func_end sub_802E12C
thumb_func_start sub_802E1B0
sub_802E1B0: @ 802E1B0
push {r4-r6,lr}
sub sp, 0x8
ldr r0, _0802E208 @ =gUnknown_02024A60
ldrb r4, [r0]
lsls r4, 9
ldr r0, _0802E20C @ =gUnknown_02023A64
adds r4, r0
ldr r5, _0802E210 @ =gUnknown_03004348
movs r0, 0
strb r0, [r5]
ldr r0, _0802E214 @ =gUnknown_03004210
ldr r1, _0802E218 @ =0x00001016
movs r2, 0x14
str r2, [sp]
movs r2, 0x3A
str r2, [sp, 0x4]
movs r2, 0x1
movs r3, 0x37
bl FillWindowRect
movs r6, 0
_0802E1DA:
lsls r0, r6, 24
lsrs r0, 24
bl nullsub_7
adds r0, r6, 0
ldr r1, _0802E21C @ =gUnknown_08400D49
bl sub_802E12C
ldrh r0, [r4]
cmp r0, 0
beq _0802E1F6
ldrb r0, [r5]
adds r0, 0x1
strb r0, [r5]
_0802E1F6:
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _0802E1DA
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802E208: .4byte gUnknown_02024A60
_0802E20C: .4byte gUnknown_02023A64
_0802E210: .4byte gUnknown_03004348
_0802E214: .4byte gUnknown_03004210
_0802E218: .4byte 0x00001016
_0802E21C: .4byte gUnknown_08400D49
thumb_func_end sub_802E1B0
thumb_func_start sub_802E220
sub_802E220: @ 802E220
push {r4-r6,lr}
sub sp, 0x4
ldr r4, _0802E2B8 @ =gUnknown_02023A60
ldr r6, _0802E2BC @ =gUnknown_02024A60
ldrb r0, [r6]
lsls r1, r0, 9
adds r0, r4, 0x2
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0x1
beq _0802E2B0
adds r4, 0x4
adds r4, r1, r4
ldr r2, _0802E2C0 @ =gUnknown_020238CC
ldr r1, _0802E2C4 @ =gUnknown_08400D49
adds r0, r2, 0
bl StringCopy
adds r2, r0, 0
movs r1, 0xFC
strb r1, [r2]
movs r0, 0x11
strb r0, [r2, 0x1]
movs r0, 0x2
strb r0, [r2, 0x2]
adds r2, 0x3
strb r1, [r2]
movs r0, 0x14
strb r0, [r2, 0x1]
movs r0, 0x6
strb r0, [r2, 0x2]
adds r2, 0x3
ldr r5, _0802E2C8 @ =gUnknown_02024E64
ldrb r1, [r6]
adds r1, r5
adds r0, r4, 0
adds r0, 0x8
ldrb r1, [r1]
adds r0, r1
ldrb r1, [r0]
adds r0, r2, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
adds r2, r0, 0
movs r0, 0xBA
strb r0, [r2]
adds r2, 0x1
ldrb r0, [r6]
adds r0, r5
adds r4, 0xC
ldrb r0, [r0]
adds r4, r0
ldrb r1, [r4]
adds r0, r2, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r4, _0802E2CC @ =gUnknown_03004210
ldr r1, _0802E2C0 @ =gUnknown_020238CC
ldr r2, _0802E2D0 @ =0x000002a2
movs r0, 0x37
str r0, [sp]
adds r0, r4, 0
movs r3, 0x19
bl InitWindow
adds r0, r4, 0
bl sub_8002F44
_0802E2B0:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0802E2B8: .4byte gUnknown_02023A60
_0802E2BC: .4byte gUnknown_02024A60
_0802E2C0: .4byte gUnknown_020238CC
_0802E2C4: .4byte gUnknown_08400D49
_0802E2C8: .4byte gUnknown_02024E64
_0802E2CC: .4byte gUnknown_03004210
_0802E2D0: .4byte 0x000002a2
thumb_func_end sub_802E220
thumb_func_start sub_802E2D4
sub_802E2D4: @ 802E2D4
push {r4,r5,lr}
sub sp, 0x8
ldr r4, _0802E314 @ =gUnknown_02023A60
ldr r5, _0802E318 @ =gUnknown_02024A60
ldrb r0, [r5]
lsls r1, r0, 9
adds r0, r4, 0x2
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0x1
bne _0802E328
ldr r4, _0802E31C @ =gUnknown_03004210
ldr r1, _0802E320 @ =0x00001016
movs r0, 0x1C
str r0, [sp]
movs r0, 0x3A
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x17
movs r3, 0x37
bl FillWindowRect
ldr r1, _0802E324 @ =gUnknown_08400D52
movs r2, 0xA4
lsls r2, 2
movs r0, 0x37
str r0, [sp]
adds r0, r4, 0
movs r3, 0x13
bl InitWindow
b _0802E388
.align 2, 0
_0802E314: .4byte gUnknown_02023A60
_0802E318: .4byte gUnknown_02024A60
_0802E31C: .4byte gUnknown_03004210
_0802E320: .4byte 0x00001016
_0802E324: .4byte gUnknown_08400D52
_0802E328:
adds r4, 0x4
adds r4, r1, r4
ldr r3, _0802E398 @ =gUnknown_020238CC
ldr r1, _0802E39C @ =gUnknown_08400D49
adds r0, r3, 0
bl StringCopy
adds r3, r0, 0
ldr r2, _0802E3A0 @ =gBattleMoves
ldr r1, _0802E3A4 @ =gUnknown_02024E64
ldrb r0, [r5]
adds r0, r1
ldrb r0, [r0]
lsls r0, 1
adds r4, r0
ldrh r1, [r4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r0, [r0, 0x2]
lsls r1, r0, 3
subs r1, r0
ldr r0, _0802E3A8 @ =gTypeNames
adds r1, r0
adds r0, r3, 0
bl StringCopy
ldr r4, _0802E3AC @ =gUnknown_03004210
ldr r1, _0802E3B0 @ =0x00001016
movs r0, 0x1C
str r0, [sp]
movs r0, 0x3A
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x17
movs r3, 0x39
bl FillWindowRect
ldr r1, _0802E398 @ =gUnknown_020238CC
movs r2, 0xB0
lsls r2, 2
movs r0, 0x39
str r0, [sp]
adds r0, r4, 0
movs r3, 0x17
bl InitWindow
_0802E388:
ldr r0, _0802E3AC @ =gUnknown_03004210
bl sub_8002F44
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0802E398: .4byte gUnknown_020238CC
_0802E39C: .4byte gUnknown_08400D49
_0802E3A0: .4byte gBattleMoves
_0802E3A4: .4byte gUnknown_02024E64
_0802E3A8: .4byte gTypeNames
_0802E3AC: .4byte gUnknown_03004210
_0802E3B0: .4byte 0x00001016
thumb_func_end sub_802E2D4
thumb_func_start sub_802E3B4
sub_802E3B4: @ 802E3B4
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x48
bl sub_814A958
ldr r1, _0802E3DC @ =gUnknown_081FAE89
lsls r4, 1
adds r0, r4, r1
ldrb r0, [r0]
adds r1, 0x1
adds r4, r1
ldrb r1, [r4]
bl sub_814A880
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802E3DC: .4byte gUnknown_081FAE89
thumb_func_end sub_802E3B4
thumb_func_start nullsub_7
nullsub_7: @ 802E3E0
bx lr
thumb_func_end nullsub_7
thumb_func_start sub_802E3E4
sub_802E3E4: @ 802E3E4
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
movs r0, 0x2A
bl sub_814A958
ldr r1, _0802E40C @ =gUnknown_081FAE91
lsls r4, 1
adds r0, r4, r1
ldrb r0, [r0]
adds r1, 0x1
adds r4, r1
ldrb r1, [r4]
bl sub_814A880
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0802E40C: .4byte gUnknown_081FAE91
thumb_func_end sub_802E3E4
thumb_func_start nullsub_8
nullsub_8: @ 802E410
bx lr
thumb_func_end nullsub_8
thumb_func_start sub_802E414
sub_802E414: @ 802E414
push {lr}
ldr r0, _0802E420 @ =ReshowBattleScreenAfterMenu
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0802E420: .4byte ReshowBattleScreenAfterMenu
thumb_func_end sub_802E414
thumb_func_start sub_802E424
sub_802E424: @ 802E424
push {lr}
ldr r0, _0802E430 @ =ReshowBattleScreenAfterMenu
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0802E430: .4byte ReshowBattleScreenAfterMenu
thumb_func_end sub_802E424
thumb_func_start sub_802E434
sub_802E434: @ 802E434
push {lr}
ldr r0, _0802E458 @ =gUnknown_02024A60
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _0802E45C @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _0802E452
bl dp01_tbl1_exec_completed
_0802E452:
pop {r0}
bx r0
.align 2, 0
_0802E458: .4byte gUnknown_02024A60
_0802E45C: .4byte 0x02017810
thumb_func_end sub_802E434
thumb_func_start sub_802E460
sub_802E460: @ 802E460
push {lr}
ldr r0, _0802E484 @ =gUnknown_02024A60
ldrb r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r1, _0802E488 @ =0x02017810
adds r0, r1
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _0802E47E
bl dp01_tbl1_exec_completed
_0802E47E:
pop {r0}
bx r0
.align 2, 0
_0802E484: .4byte gUnknown_02024A60
_0802E488: .4byte 0x02017810
thumb_func_end sub_802E460
thumb_func_start b_link_standby_message
b_link_standby_message: @ 802E48C
push {lr}
sub sp, 0x4
ldr r0, _0802E4BC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0802E4B6
ldr r0, _0802E4C0 @ =gUnknown_030042A4
movs r1, 0
strh r1, [r0]
ldr r0, _0802E4C4 @ =gUnknown_030042A0
strh r1, [r0]
ldr r0, _0802E4C8 @ =gUnknown_03004210
ldr r1, _0802E4CC @ =gUnknown_08400CE0
movs r2, 0xF
str r2, [sp]
movs r2, 0x90
movs r3, 0x2
bl sub_8002EB0
_0802E4B6:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0802E4BC: .4byte gBattleTypeFlags
_0802E4C0: .4byte gUnknown_030042A4
_0802E4C4: .4byte gUnknown_030042A0
_0802E4C8: .4byte gUnknown_03004210
_0802E4CC: .4byte gUnknown_08400CE0
thumb_func_end b_link_standby_message
.align 2, 0 @ Don't pad with nop.