Files
pokeruby/asm/battle_message.s
T
2017-03-18 04:00:15 +01:00

2404 lines
45 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8120AA8
sub_8120AA8: @ 8120AA8
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 16
lsrs r7, r0, 16
movs r6, 0
ldr r5, _08120B70 @ =gSelectedOrderFromParty
ldr r4, _08120B74 @ =gUnknown_02024A60
ldrb r1, [r4]
lsls r1, 9
ldr r0, _08120B78 @ =gUnknown_02023A64
adds r1, r0
str r1, [r5]
ldr r2, _08120B7C @ =gUnknown_02024C04
ldrh r0, [r1, 0x4]
strh r0, [r2]
ldr r2, _08120B80 @ =byte_2024C06
ldrb r0, [r1, 0x6]
strb r0, [r2]
ldr r3, _08120B84 @ =0x02000000
ldrb r0, [r1, 0x7]
mov r8, r0
ldr r2, _08120B88 @ =0x00016003
adds r0, r3, r2
mov r2, r8
strb r2, [r0]
ldrb r0, [r1, 0x8]
mov r8, r0
ldr r2, _08120B8C @ =0x0001605e
adds r0, r3, r2
mov r2, r8
strb r2, [r0]
ldrb r0, [r1, 0x9]
mov r8, r0
ldr r2, _08120B90 @ =0x000160c1
adds r0, r3, r2
mov r2, r8
strb r2, [r0]
ldr r2, _08120B94 @ =gUnknown_02024C0B
ldrb r0, [r1, 0xA]
strb r0, [r2]
ldrb r1, [r1, 0xB]
ldr r2, _08120B98 @ =0x000160a0
adds r0, r3, r2
strb r1, [r0]
movs r2, 0
mov r9, r3
ldr r3, _08120B9C @ =gUnknown_030041C0
mov r10, r3
ldr r3, _08120BA0 @ =gUnknown_0203926C
_08120B10:
adds r0, r2, r3
ldr r1, [r5]
adds r1, 0xC
adds r1, r2
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x3
ble _08120B10
movs r2, 0
ldr r0, _08120B9C @ =gUnknown_030041C0
mov r8, r0
ldr r3, _08120B70 @ =gSelectedOrderFromParty
ldr r1, _08120BA4 @ =gUnknown_03004290
mov r12, r1
ldr r5, _08120BA8 @ =gUnknown_030042B0
_08120B30:
mov r0, r8
adds r1, r2, r0
ldr r0, [r3]
adds r0, 0x10
adds r0, r2
ldrb r0, [r0]
strb r0, [r1]
mov r0, r12
adds r1, r2, r0
ldr r0, [r3]
adds r0, 0x20
adds r0, r2
ldrb r0, [r0]
strb r0, [r1]
adds r1, r2, r5
ldr r0, [r3]
adds r0, 0x30
adds r0, r2
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1
cmp r2, 0xF
ble _08120B30
cmp r7, 0x5
bls _08120B64
b _08120F50
_08120B64:
lsls r0, r7, 2
ldr r1, _08120BAC @ =_08120BB0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08120B70: .4byte gSelectedOrderFromParty
_08120B74: .4byte gUnknown_02024A60
_08120B78: .4byte gUnknown_02023A64
_08120B7C: .4byte gUnknown_02024C04
_08120B80: .4byte byte_2024C06
_08120B84: .4byte 0x02000000
_08120B88: .4byte 0x00016003
_08120B8C: .4byte 0x0001605e
_08120B90: .4byte 0x000160c1
_08120B94: .4byte gUnknown_02024C0B
_08120B98: .4byte 0x000160a0
_08120B9C: .4byte gUnknown_030041C0
_08120BA0: .4byte gUnknown_0203926C
_08120BA4: .4byte gUnknown_03004290
_08120BA8: .4byte gUnknown_030042B0
_08120BAC: .4byte _08120BB0
.align 2, 0
_08120BB0:
.4byte _08120BC8
.4byte _08120C40
.4byte _08120CCC
.4byte _08120D5C
.4byte _08120DE8
.4byte _08120E50
_08120BC8:
ldr r0, _08120BEC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08120C00
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08120BF8
movs r0, 0x40
ands r0, r1
ldr r6, _08120BF0 @ =gUnknown_084005C7
cmp r0, 0
bne _08120BE8
b _08120F70
_08120BE8:
ldr r6, _08120BF4 @ =gUnknown_084005DB
b _08120F70
.align 2, 0
_08120BEC: .4byte gBattleTypeFlags
_08120BF0: .4byte gUnknown_084005C7
_08120BF4: .4byte gUnknown_084005DB
_08120BF8:
ldr r6, _08120BFC @ =gUnknown_084005AA
b _08120F70
.align 2, 0
_08120BFC: .4byte gUnknown_084005AA
_08120C00:
movs r0, 0x80
lsls r0, 6
ands r0, r1
cmp r0, 0
beq _08120C14
ldr r6, _08120C10 @ =gUnknown_08400568
b _08120F70
.align 2, 0
_08120C10: .4byte gUnknown_08400568
_08120C14:
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08120C24
ldr r6, _08120C20 @ =gUnknown_08400590
b _08120F70
.align 2, 0
_08120C20: .4byte gUnknown_08400590
_08120C24:
movs r0, 0x80
lsls r0, 2
ands r0, r1
ldr r6, _08120C38 @ =gUnknown_08400555
cmp r0, 0
bne _08120C32
b _08120F70
_08120C32:
ldr r6, _08120C3C @ =gUnknown_0840057B
b _08120F70
.align 2, 0
_08120C38: .4byte gUnknown_08400555
_08120C3C: .4byte gUnknown_0840057B
_08120C40:
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08120C7C
ldr r0, _08120C68 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08120C74
movs r0, 0x40
ands r0, r1
ldr r6, _08120C6C @ =gUnknown_084006A4
cmp r0, 0
bne _08120C64
b _08120F70
_08120C64:
ldr r6, _08120C70 @ =gUnknown_084006F1
b _08120F70
.align 2, 0
_08120C68: .4byte gBattleTypeFlags
_08120C6C: .4byte gUnknown_084006A4
_08120C70: .4byte gUnknown_084006F1
_08120C74:
ldr r6, _08120C78 @ =gUnknown_0840069C
b _08120F70
.align 2, 0
_08120C78: .4byte gUnknown_0840069C
_08120C7C:
ldr r0, _08120C94 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08120CB4
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08120C9C
ldr r6, _08120C98 @ =gUnknown_0840065C
b _08120F70
.align 2, 0
_08120C94: .4byte gBattleTypeFlags
_08120C98: .4byte gUnknown_0840065C
_08120C9C:
movs r0, 0x2
ands r0, r1
ldr r6, _08120CAC @ =gUnknown_08400608
cmp r0, 0
bne _08120CA8
b _08120F70
_08120CA8:
ldr r6, _08120CB0 @ =gUnknown_08400645
b _08120F70
.align 2, 0
_08120CAC: .4byte gUnknown_08400608
_08120CB0: .4byte gUnknown_08400645
_08120CB4:
movs r0, 0x2
ands r0, r1
ldr r6, _08120CC4 @ =gUnknown_084005F5
cmp r0, 0
bne _08120CC0
b _08120F70
_08120CC0:
ldr r6, _08120CC8 @ =gUnknown_08400635
b _08120F70
.align 2, 0
_08120CC4: .4byte gUnknown_084005F5
_08120CC8: .4byte gUnknown_08400635
_08120CCC:
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08120D24
ldr r0, _08120CE8 @ =0x02000000
ldr r1, _08120CEC @ =0x000160c1
adds r0, r1
ldrb r2, [r0]
cmp r2, 0
bne _08120CF4
ldr r6, _08120CF0 @ =gUnknown_08400709
b _08120F70
.align 2, 0
_08120CE8: .4byte 0x02000000
_08120CEC: .4byte 0x000160c1
_08120CF0: .4byte gUnknown_08400709
_08120CF4:
cmp r2, 0x1
beq _08120D04
ldr r0, _08120D08 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08120D10
_08120D04:
ldr r6, _08120D0C @ =gUnknown_08400727
b _08120F70
.align 2, 0
_08120D08: .4byte gBattleTypeFlags
_08120D0C: .4byte gUnknown_08400727
_08120D10:
ldr r6, _08120D1C @ =gUnknown_08400749
cmp r2, 0x2
beq _08120D18
b _08120F70
_08120D18:
ldr r6, _08120D20 @ =gUnknown_08400736
b _08120F70
.align 2, 0
_08120D1C: .4byte gUnknown_08400749
_08120D20: .4byte gUnknown_08400736
_08120D24:
ldr r0, _08120D44 @ =gTrainerBattleOpponent
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 4
cmp r1, r0
bne _08120D54
ldr r0, _08120D48 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
ldr r6, _08120D4C @ =gUnknown_08400771
cmp r0, 0
bne _08120D40
b _08120F70
_08120D40:
ldr r6, _08120D50 @ =gUnknown_08400781
b _08120F70
.align 2, 0
_08120D44: .4byte gTrainerBattleOpponent
_08120D48: .4byte gBattleTypeFlags
_08120D4C: .4byte gUnknown_08400771
_08120D50: .4byte gUnknown_08400781
_08120D54:
ldr r6, _08120D58 @ =gUnknown_0840075E
b _08120F70
.align 2, 0
_08120D58: .4byte gUnknown_0840075E
_08120D5C:
ldr r0, _08120D88 @ =0x00016003
add r0, r9
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08120DB8
ldr r0, _08120D8C @ =0x000160c1
add r0, r9
ldrb r3, [r0]
cmp r3, 0
beq _08120D82
ldr r0, _08120D90 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08120D98
_08120D82:
ldr r6, _08120D94 @ =gUnknown_084006B3
b _08120F70
.align 2, 0
_08120D88: .4byte 0x00016003
_08120D8C: .4byte 0x000160c1
_08120D90: .4byte gBattleTypeFlags
_08120D94: .4byte gUnknown_084006B3
_08120D98:
cmp r3, 0x1
bne _08120DA4
ldr r6, _08120DA0 @ =gUnknown_084006BB
b _08120F70
.align 2, 0
_08120DA0: .4byte gUnknown_084006BB
_08120DA4:
ldr r6, _08120DB0 @ =gUnknown_084006D5
cmp r3, 0x2
beq _08120DAC
b _08120F70
_08120DAC:
ldr r6, _08120DB4 @ =gUnknown_084006C6
b _08120F70
.align 2, 0
_08120DB0: .4byte gUnknown_084006D5
_08120DB4: .4byte gUnknown_084006C6
_08120DB8:
ldr r0, _08120DD4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08120DE0
movs r0, 0x40
ands r0, r1
ldr r6, _08120DD8 @ =gUnknown_0840067C
cmp r0, 0
bne _08120DD0
b _08120F70
_08120DD0:
ldr r6, _08120DDC @ =gUnknown_0840068C
b _08120F70
.align 2, 0
_08120DD4: .4byte gBattleTypeFlags
_08120DD8: .4byte gUnknown_0840067C
_08120DDC: .4byte gUnknown_0840068C
_08120DE0:
ldr r6, _08120DE4 @ =gUnknown_08400622
b _08120F70
.align 2, 0
_08120DE4: .4byte gUnknown_08400622
_08120DE8:
mov r0, r10
bl sub_8121D1C
ldr r0, _08120E14 @ =gSelectedOrderFromParty
ldr r2, [r0]
ldrh r1, [r2]
movs r0, 0xB1
lsls r0, 1
cmp r1, r0
bls _08120E28
ldr r0, _08120E18 @ =gUnknown_03004290
ldr r2, _08120E1C @ =gUnknown_08401674
ldr r1, _08120E20 @ =0x02000000
ldr r3, _08120E24 @ =0x000160a0
adds r1, r3
ldrb r1, [r1]
lsls r1, 2
adds r1, r2
ldr r1, [r1]
bl StringCopy
b _08120E38
.align 2, 0
_08120E14: .4byte gSelectedOrderFromParty
_08120E18: .4byte gUnknown_03004290
_08120E1C: .4byte gUnknown_08401674
_08120E20: .4byte 0x02000000
_08120E24: .4byte 0x000160a0
_08120E28:
ldr r0, _08120E44 @ =gUnknown_03004290
ldrh r2, [r2]
movs r1, 0xD
muls r1, r2
ldr r2, _08120E48 @ =gMoveNames
adds r1, r2
bl StringCopy
_08120E38:
ldr r0, _08120E44 @ =gUnknown_03004290
bl sub_8121D74
ldr r6, _08120E4C @ =gUnknown_084007BD
b _08120F70
.align 2, 0
_08120E44: .4byte gUnknown_03004290
_08120E48: .4byte gMoveNames
_08120E4C: .4byte gUnknown_084007BD
_08120E50:
ldr r5, _08120E90 @ =gUnknown_030041C0
ldrb r1, [r5]
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _08120EB8
movs r0, 0x7F
ands r0, r1
strb r0, [r5]
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08120E7C
ldrb r1, [r5]
cmp r1, 0x3
beq _08120E7C
movs r0, 0x3
eors r0, r1
strb r0, [r5]
_08120E7C:
ldr r0, _08120E90 @ =gUnknown_030041C0
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _08120E98
ldr r6, _08120E94 @ =gUnknown_083FFEFC
b _08120F70
.align 2, 0
_08120E90: .4byte gUnknown_030041C0
_08120E94: .4byte gUnknown_083FFEFC
_08120E98:
ldr r0, _08120EAC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
ldr r6, _08120EB0 @ =gUnknown_083FFFEA
cmp r0, 0
beq _08120F70
ldr r6, _08120EB4 @ =gUnknown_083FFFF7
b _08120F70
.align 2, 0
_08120EAC: .4byte gBattleTypeFlags
_08120EB0: .4byte gUnknown_083FFFEA
_08120EB4: .4byte gUnknown_083FFFF7
_08120EB8:
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _08120ED2
ldrb r1, [r5]
cmp r1, 0x3
beq _08120ED2
movs r0, 0x3
eors r0, r1
strb r0, [r5]
_08120ED2:
ldr r0, _08120EF0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _08120F18
ldr r0, _08120EF4 @ =gUnknown_030041C0
ldrb r0, [r0]
cmp r0, 0x2
beq _08120F08
cmp r0, 0x2
bgt _08120EF8
cmp r0, 0x1
beq _08120EFE
b _08120F70
.align 2, 0
_08120EF0: .4byte gBattleTypeFlags
_08120EF4: .4byte gUnknown_030041C0
_08120EF8:
cmp r0, 0x3
beq _08120F10
b _08120F70
_08120EFE:
ldr r6, _08120F04 @ =gUnknown_083FFF6A
b _08120F70
.align 2, 0
_08120F04: .4byte gUnknown_083FFF6A
_08120F08:
ldr r6, _08120F0C @ =gUnknown_083FFF99
b _08120F70
.align 2, 0
_08120F0C: .4byte gUnknown_083FFF99
_08120F10:
ldr r6, _08120F14 @ =gUnknown_083FFFCB
b _08120F70
.align 2, 0
_08120F14: .4byte gUnknown_083FFFCB
_08120F18:
ldr r0, _08120F2C @ =gUnknown_030041C0
ldrb r0, [r0]
cmp r0, 0x2
beq _08120F40
cmp r0, 0x2
bgt _08120F30
cmp r0, 0x1
beq _08120F36
b _08120F70
.align 2, 0
_08120F2C: .4byte gUnknown_030041C0
_08120F30:
cmp r0, 0x3
beq _08120F48
b _08120F70
_08120F36:
ldr r6, _08120F3C @ =gUnknown_083FFF56
b _08120F70
.align 2, 0
_08120F3C: .4byte gUnknown_083FFF56
_08120F40:
ldr r6, _08120F44 @ =gUnknown_083FFF81
b _08120F70
.align 2, 0
_08120F44: .4byte gUnknown_083FFF81
_08120F48:
ldr r6, _08120F4C @ =gUnknown_083FFFB3
b _08120F70
.align 2, 0
_08120F4C: .4byte gUnknown_083FFFB3
_08120F50:
movs r0, 0xB5
lsls r0, 1
cmp r7, r0
bls _08120F64
ldr r1, _08120F60 @ =gUnknown_020238CC
movs r0, 0xFF
strb r0, [r1]
b _08120F76
.align 2, 0
_08120F60: .4byte gUnknown_020238CC
_08120F64:
ldr r1, _08120F84 @ =gUnknown_08400F8C
adds r0, r7, 0
subs r0, 0xC
lsls r0, 2
adds r0, r1
ldr r6, [r0]
_08120F70:
adds r0, r6, 0
bl get_battle_strings_
_08120F76:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08120F84: .4byte gUnknown_08400F8C
thumb_func_end sub_8120AA8
thumb_func_start get_battle_strings_
get_battle_strings_: @ 8120F88
push {lr}
ldr r1, _08120F94 @ =gUnknown_020238CC
bl sub_8120FFC
pop {r1}
bx r1
.align 2, 0
_08120F94: .4byte gUnknown_020238CC
thumb_func_end get_battle_strings_
thumb_func_start sub_8120F98
sub_8120F98: @ 8120F98
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
ldr r1, _08120FB0 @ =gUnknown_084017A8
mov r0, sp
movs r2, 0x8
bl memcpy
mov r2, sp
movs r3, 0
b _08120FC0
.align 2, 0
_08120FB0: .4byte gUnknown_084017A8
_08120FB4:
strb r1, [r2]
adds r4, 0x1
adds r2, 0x1
adds r3, 0x1
cmp r3, 0x7
bhi _08120FC8
_08120FC0:
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _08120FB4
_08120FC8:
ldr r5, [sp]
ldr r4, [sp, 0x4]
movs r3, 0
ldr r2, _08120FE4 @ =gUnknown_081FA6D4
_08120FD0:
ldr r1, [r2]
ldr r0, [r1]
cmp r5, r0
bne _08120FE8
ldr r0, [r1, 0x4]
cmp r4, r0
bne _08120FE8
ldr r0, [r2, 0x4]
b _08120FF2
.align 2, 0
_08120FE4: .4byte gUnknown_081FA6D4
_08120FE8:
adds r2, 0x8
adds r3, 0x1
cmp r3, 0x6
bls _08120FD0
movs r0, 0
_08120FF2:
add sp, 0x8
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8120F98
thumb_func_start sub_8120FFC
sub_8120FFC: @ 8120FFC
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xC
mov r9, r0
mov r8, r1
movs r6, 0
movs r4, 0
bl GetMultiplayerId
lsls r0, 24
lsrs r7, r0, 24
mov r0, r9
ldrb r1, [r0]
bl _08121A40
_0812101E:
cmp r1, 0xFD
beq _08121026
bl _08121A30
_08121026:
movs r1, 0x1
add r9, r1
mov r2, r9
ldrb r0, [r2]
cmp r0, 0x2A
bls _08121036
bl _081219E6
_08121036:
lsls r0, 2
ldr r1, _08121040 @ =_08121044
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08121040: .4byte _08121044
.align 2, 0
_08121044:
.4byte _081210F0
.4byte _0812111E
.4byte _0812115A
.4byte _08121180
.4byte _081211A4
.4byte _081211C8
.4byte _081211EC
.4byte _08121218
.4byte _08121248
.4byte _08121278
.4byte _081212A8
.4byte _0812133C
.4byte _081213A8
.4byte _0812141C
.4byte _08121490
.4byte _08121504
.4byte _08121578
.4byte _081215F8
.4byte _08121620
.4byte _08121660
.4byte _081216EC
.4byte _081216F4
.4byte _08121704
.4byte _08121714
.4byte _0812172C
.4byte _0812174C
.4byte _081217C0
.4byte _08121830
.4byte _08121840
.4byte _08121854
.4byte _08121868
.4byte _0812188C
.4byte _081218B0
.4byte _081218B8
.4byte _081218C0
.4byte _0812195C
.4byte _081219A4
.4byte _081219AC
.4byte _0812197C
.4byte _08121984
.4byte _081219CC
.4byte _081219D4
.4byte _08121134
_081210F0:
ldr r5, _08121100 @ =gUnknown_030041C0
ldrb r0, [r5]
cmp r0, 0xFD
bne _08121108
ldr r4, _08121104 @ =gStringVar1
adds r0, r5, 0
b _08121140
.align 2, 0
_08121100: .4byte gUnknown_030041C0
_08121104: .4byte gStringVar1
_08121108:
adds r0, r5, 0
bl sub_8120F98
adds r4, r0, 0
cmp r4, 0
beq _08121118
bl _081219E6
_08121118:
adds r4, r5, 0
bl _081219E6
_0812111E:
ldr r1, _0812112C @ =gUnknown_03004290
ldrb r0, [r1]
cmp r0, 0xFD
bne _08121154
ldr r4, _08121130 @ =gStringVar2
b _0812113E
.align 2, 0
_0812112C: .4byte gUnknown_03004290
_08121130: .4byte gStringVar2
_08121134:
ldr r1, _0812114C @ =gUnknown_030042B0
ldrb r0, [r1]
cmp r0, 0xFD
bne _08121154
ldr r4, _08121150 @ =gStringVar3
_0812113E:
adds r0, r1, 0
_08121140:
adds r1, r4, 0
bl sub_8121A68
bl _081219E6
.align 2, 0
_0812114C: .4byte gUnknown_030042B0
_08121150: .4byte gStringVar3
_08121154:
adds r4, r1, 0
bl _081219E6
_0812115A:
movs r0, 0
bl battle_get_side_with_given_state
ldr r1, _08121178 @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _0812117C @ =gPlayerParty
adds r0, r1
bl _0812190E
.align 2, 0
_08121178: .4byte gUnknown_02024A6A
_0812117C: .4byte gPlayerParty
_08121180:
movs r0, 0x1
bl battle_get_side_with_given_state
ldr r1, _0812119C @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _081211A0 @ =gEnemyParty
adds r0, r1
b _0812190E
.align 2, 0
_0812119C: .4byte gUnknown_02024A6A
_081211A0: .4byte gEnemyParty
_081211A4:
movs r0, 0x2
bl battle_get_side_with_given_state
ldr r1, _081211C0 @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _081211C4 @ =gPlayerParty
adds r0, r1
b _0812190E
.align 2, 0
_081211C0: .4byte gUnknown_02024A6A
_081211C4: .4byte gPlayerParty
_081211C8:
movs r0, 0x3
bl battle_get_side_with_given_state
ldr r1, _081211E4 @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _081211E8 @ =gEnemyParty
adds r0, r1
b _0812190E
.align 2, 0
_081211E4: .4byte gUnknown_02024A6A
_081211E8: .4byte gEnemyParty
_081211EC:
ldr r2, _0812120C @ =gUnknown_02024A6A
ldr r1, _08121210 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
adds r0, r1
ldrh r0, [r0, 0x18]
lsls r0, 1
adds r0, r2
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08121214 @ =gPlayerParty
adds r0, r1
b _0812190E
.align 2, 0
_0812120C: .4byte gUnknown_02024A6A
_08121210: .4byte gLinkPlayers
_08121214: .4byte gPlayerParty
_08121218:
ldr r2, _0812123C @ =gUnknown_02024A6A
ldr r1, _08121240 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x18]
movs r0, 0x1
eors r0, r1
lsls r0, 1
adds r0, r2
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08121244 @ =gEnemyParty
adds r0, r1
b _0812190E
.align 2, 0
_0812123C: .4byte gUnknown_02024A6A
_08121240: .4byte gLinkPlayers
_08121244: .4byte gEnemyParty
_08121248:
ldr r2, _0812126C @ =gUnknown_02024A6A
ldr r1, _08121270 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x18]
movs r0, 0x2
eors r0, r1
lsls r0, 1
adds r0, r2
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08121274 @ =gPlayerParty
adds r0, r1
b _0812190E
.align 2, 0
_0812126C: .4byte gUnknown_02024A6A
_08121270: .4byte gLinkPlayers
_08121274: .4byte gPlayerParty
_08121278:
ldr r2, _0812129C @ =gUnknown_02024A6A
ldr r1, _081212A0 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
adds r0, r1
ldrh r1, [r0, 0x18]
movs r0, 0x3
eors r0, r1
lsls r0, 1
adds r0, r2
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _081212A4 @ =gEnemyParty
adds r0, r1
b _0812190E
.align 2, 0
_0812129C: .4byte gUnknown_02024A6A
_081212A0: .4byte gLinkPlayers
_081212A4: .4byte gEnemyParty
_081212A8:
ldr r4, _081212CC @ =gPlayerMonIndex
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
adds r2, r4, 0
cmp r0, 0
beq _0812131C
ldr r0, _081212D0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
ldr r4, _081212D4 @ =gUnknown_08400791
cmp r0, 0
beq _081212E6
ldr r4, _081212D8 @ =gUnknown_08400797
b _081212E6
.align 2, 0
_081212CC: .4byte gPlayerMonIndex
_081212D0: .4byte gBattleTypeFlags
_081212D4: .4byte gUnknown_08400791
_081212D8: .4byte gUnknown_08400797
_081212DC:
mov r3, r8
adds r0, r3, r6
strb r1, [r0]
adds r6, 0x1
adds r4, 0x1
_081212E6:
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _081212DC
ldrb r0, [r2]
bl battle_get_per_side_status
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
bl battle_get_side_with_given_state
ldr r1, _08121314 @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08121318 @ =gEnemyParty
adds r0, r1
b _0812190E
.align 2, 0
_08121314: .4byte gUnknown_02024A6A
_08121318: .4byte gEnemyParty
_0812131C:
ldrb r0, [r2]
bl battle_get_per_side_status
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
bl battle_get_side_with_given_state
ldr r1, _08121338 @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
_08121338: .4byte gUnknown_02024A6A
_0812133C:
ldr r4, _08121370 @ =gPlayerMonIndex
ldrb r0, [r4]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _0812137C
ldrb r0, [r4]
bl battle_get_per_side_status
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
bl battle_get_side_with_given_state
ldr r1, _08121374 @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, 0x4
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08121378 @ =gPlayerParty
adds r0, r1
b _0812190E
.align 2, 0
_08121370: .4byte gPlayerMonIndex
_08121374: .4byte gUnknown_02024A6A
_08121378: .4byte gPlayerParty
_0812137C:
ldrb r0, [r4]
bl battle_get_per_side_status
adds r1, r0, 0
movs r0, 0x1
ands r0, r1
bl battle_get_side_with_given_state
ldr r1, _081213A0 @ =gUnknown_02024A6A
lsls r0, 24
lsrs r0, 23
adds r0, 0x4
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _081213A4 @ =gEnemyParty
b _08121940
.align 2, 0
_081213A0: .4byte gUnknown_02024A6A
_081213A4: .4byte gEnemyParty
_081213A8:
ldr r5, _081213F4 @ =gPlayerMonIndex
ldrb r0, [r5]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _0812140C
ldr r0, _081213F8 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
ldr r4, _081213FC @ =gUnknown_08400791
cmp r0, 0
beq _081213C6
ldr r4, _08121400 @ =gUnknown_08400797
_081213C6:
ldrb r1, [r4]
adds r0, r1, 0
ldr r3, _08121404 @ =gUnknown_02024A6A
ldr r2, _08121408 @ =gEnemyParty
mov r12, r2
adds r2, r5, 0
cmp r0, 0xFF
beq _081213E8
_081213D6:
mov r5, r8
adds r0, r5, r6
strb r1, [r0]
adds r6, 0x1
adds r4, 0x1
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _081213D6
_081213E8:
ldrb r0, [r2]
lsls r0, 1
adds r0, r3
ldrh r1, [r0]
b _08121908
.align 2, 0
_081213F4: .4byte gPlayerMonIndex
_081213F8: .4byte gBattleTypeFlags
_081213FC: .4byte gUnknown_08400791
_08121400: .4byte gUnknown_08400797
_08121404: .4byte gUnknown_02024A6A
_08121408: .4byte gEnemyParty
_0812140C:
ldr r1, _08121418 @ =gUnknown_02024A6A
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
_08121418: .4byte gUnknown_02024A6A
_0812141C:
ldr r5, _08121468 @ =gEnemyMonIndex
ldrb r0, [r5]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08121480
ldr r0, _0812146C @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
ldr r4, _08121470 @ =gUnknown_08400791
cmp r0, 0
beq _0812143A
ldr r4, _08121474 @ =gUnknown_08400797
_0812143A:
ldrb r1, [r4]
adds r0, r1, 0
ldr r3, _08121478 @ =gUnknown_02024A6A
ldr r2, _0812147C @ =gEnemyParty
mov r12, r2
adds r2, r5, 0
cmp r0, 0xFF
beq _0812145C
_0812144A:
mov r5, r8
adds r0, r5, r6
strb r1, [r0]
adds r6, 0x1
adds r4, 0x1
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _0812144A
_0812145C:
ldrb r0, [r2]
lsls r0, 1
adds r0, r3
ldrh r1, [r0]
b _08121908
.align 2, 0
_08121468: .4byte gEnemyMonIndex
_0812146C: .4byte gBattleTypeFlags
_08121470: .4byte gUnknown_08400791
_08121474: .4byte gUnknown_08400797
_08121478: .4byte gUnknown_02024A6A
_0812147C: .4byte gEnemyParty
_08121480:
ldr r1, _0812148C @ =gUnknown_02024A6A
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
_0812148C: .4byte gUnknown_02024A6A
_08121490:
ldr r5, _081214DC @ =gUnknown_02024C0A
ldrb r0, [r5]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _081214F4
ldr r0, _081214E0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
ldr r4, _081214E4 @ =gUnknown_08400791
cmp r0, 0
beq _081214AE
ldr r4, _081214E8 @ =gUnknown_08400797
_081214AE:
ldrb r1, [r4]
adds r0, r1, 0
ldr r3, _081214EC @ =gUnknown_02024A6A
ldr r2, _081214F0 @ =gEnemyParty
mov r12, r2
adds r2, r5, 0
cmp r0, 0xFF
beq _081214D0
_081214BE:
mov r5, r8
adds r0, r5, r6
strb r1, [r0]
adds r6, 0x1
adds r4, 0x1
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _081214BE
_081214D0:
ldrb r0, [r2]
lsls r0, 1
adds r0, r3
ldrh r1, [r0]
b _08121908
.align 2, 0
_081214DC: .4byte gUnknown_02024C0A
_081214E0: .4byte gBattleTypeFlags
_081214E4: .4byte gUnknown_08400791
_081214E8: .4byte gUnknown_08400797
_081214EC: .4byte gUnknown_02024A6A
_081214F0: .4byte gEnemyParty
_081214F4:
ldr r1, _08121500 @ =gUnknown_02024A6A
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
_08121500: .4byte gUnknown_02024A6A
_08121504:
ldr r5, _08121550 @ =gUnknown_02024A60
ldrb r0, [r5]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08121568
ldr r0, _08121554 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
ldr r4, _08121558 @ =gUnknown_08400791
cmp r0, 0
beq _08121522
ldr r4, _0812155C @ =gUnknown_08400797
_08121522:
ldrb r1, [r4]
adds r0, r1, 0
ldr r3, _08121560 @ =gUnknown_02024A6A
ldr r2, _08121564 @ =gEnemyParty
mov r12, r2
adds r2, r5, 0
cmp r0, 0xFF
beq _08121544
_08121532:
mov r5, r8
adds r0, r5, r6
strb r1, [r0]
adds r6, 0x1
adds r4, 0x1
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _08121532
_08121544:
ldrb r0, [r2]
lsls r0, 1
adds r0, r3
ldrh r1, [r0]
b _08121908
.align 2, 0
_08121550: .4byte gUnknown_02024A60
_08121554: .4byte gBattleTypeFlags
_08121558: .4byte gUnknown_08400791
_0812155C: .4byte gUnknown_08400797
_08121560: .4byte gUnknown_02024A6A
_08121564: .4byte gEnemyParty
_08121568:
ldr r1, _08121574 @ =gUnknown_02024A6A
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
_08121574: .4byte gUnknown_02024A6A
_08121578:
ldr r4, _081215CC @ =0x02000000
ldr r0, _081215D0 @ =0x00016003
adds r5, r4, r0
ldrb r0, [r5]
bl battle_side_get_owner
lsls r0, 24
adds r2, r4, 0
cmp r0, 0
beq _081215E8
ldr r0, _081215D4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
ldr r4, _081215D8 @ =gUnknown_08400791
cmp r0, 0
beq _0812159C
ldr r4, _081215DC @ =gUnknown_08400797
_0812159C:
ldrb r1, [r4]
adds r0, r1, 0
ldr r3, _081215E0 @ =gUnknown_02024A6A
ldr r5, _081215E4 @ =gEnemyParty
mov r12, r5
cmp r0, 0xFF
beq _081215BC
_081215AA:
mov r5, r8
adds r0, r5, r6
strb r1, [r0]
adds r6, 0x1
adds r4, 0x1
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _081215AA
_081215BC:
ldr r1, _081215D0 @ =0x00016003
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, 1
adds r0, r3
ldrh r1, [r0]
b _08121908
.align 2, 0
_081215CC: .4byte 0x02000000
_081215D0: .4byte 0x00016003
_081215D4: .4byte gBattleTypeFlags
_081215D8: .4byte gUnknown_08400791
_081215DC: .4byte gUnknown_08400797
_081215E0: .4byte gUnknown_02024A6A
_081215E4: .4byte gEnemyParty
_081215E8:
ldr r1, _081215F4 @ =gUnknown_02024A6A
ldrb r0, [r5]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
b _0812193A
.align 2, 0
_081215F4: .4byte gUnknown_02024A6A
_081215F8:
ldr r0, _08121610 @ =gSelectedOrderFromParty
ldr r2, [r0]
ldrh r1, [r2]
movs r0, 0xB1
lsls r0, 1
cmp r1, r0
bls _0812161C
ldr r0, _08121614 @ =0x02000000
ldr r2, _08121618 @ =0x000160a0
adds r0, r2
b _08121634
.align 2, 0
_08121610: .4byte gSelectedOrderFromParty
_08121614: .4byte 0x02000000
_08121618: .4byte 0x000160a0
_0812161C:
ldrh r1, [r2]
b _08121652
_08121620:
ldr r0, _08121640 @ =gSelectedOrderFromParty
ldr r2, [r0]
ldrh r1, [r2, 0x2]
movs r0, 0xB1
lsls r0, 1
cmp r1, r0
bls _08121650
ldr r0, _08121644 @ =0x02000000
ldr r3, _08121648 @ =0x000160a0
adds r0, r3
_08121634:
ldrb r0, [r0]
lsls r0, 2
ldr r1, _0812164C @ =gUnknown_08401674
adds r4, r0, r1
b _081219E6
.align 2, 0
_08121640: .4byte gSelectedOrderFromParty
_08121644: .4byte 0x02000000
_08121648: .4byte 0x000160a0
_0812164C: .4byte gUnknown_08401674
_08121650:
ldrh r1, [r2, 0x2]
_08121652:
movs r0, 0xD
muls r1, r0
ldr r0, _0812165C @ =gMoveNames
adds r4, r1, r0
b _081219E6
.align 2, 0
_0812165C: .4byte gMoveNames
_08121660:
ldr r0, _081216AC @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081216D8
ldr r1, _081216B0 @ =gUnknown_02024C04
ldrh r0, [r1]
cmp r0, 0xAF
bne _081216D4
ldr r2, _081216B4 @ =gLinkPlayers
ldr r0, _081216B8 @ =0x02000000
ldr r5, _081216BC @ =0x000160cb
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r0, r2
ldr r1, _081216C0 @ =gUnknown_02024C0B
ldrb r2, [r1]
ldrh r0, [r0, 0x18]
cmp r0, r2
bne _081216CC
lsls r1, r2, 3
subs r1, r2
lsls r1, 2
ldr r0, _081216C4 @ =gEnigmaBerries
adds r1, r0
mov r0, sp
bl StringCopy
ldr r1, _081216C8 @ =gUnknown_08400A85
mov r0, sp
bl StringAppend
mov r4, sp
b _081219E6
.align 2, 0
_081216AC: .4byte gBattleTypeFlags
_081216B0: .4byte gUnknown_02024C04
_081216B4: .4byte gLinkPlayers
_081216B8: .4byte 0x02000000
_081216BC: .4byte 0x000160cb
_081216C0: .4byte gUnknown_02024C0B
_081216C4: .4byte gEnigmaBerries
_081216C8: .4byte gUnknown_08400A85
_081216CC:
ldr r4, _081216D0 @ =gUnknown_08400A78
b _081219E6
.align 2, 0
_081216D0: .4byte gUnknown_08400A78
_081216D4:
ldrh r0, [r1]
b _081216DC
_081216D8:
ldr r0, _081216E8 @ =gUnknown_02024C04
ldrh r0, [r0]
_081216DC:
mov r1, sp
bl CopyItemName
mov r4, sp
b _081219E6
.align 2, 0
_081216E8: .4byte gUnknown_02024C04
_081216EC:
ldr r0, _081216F0 @ =byte_2024C06
b _08121734
.align 2, 0
_081216F0: .4byte byte_2024C06
_081216F4:
ldr r1, _081216FC @ =gUnknown_0203926C
ldr r0, _08121700 @ =gPlayerMonIndex
b _08121730
.align 2, 0
_081216FC: .4byte gUnknown_0203926C
_08121700: .4byte gPlayerMonIndex
_08121704:
ldr r1, _0812170C @ =gUnknown_0203926C
ldr r0, _08121710 @ =gEnemyMonIndex
b _08121730
.align 2, 0
_0812170C: .4byte gUnknown_0203926C
_08121710: .4byte gEnemyMonIndex
_08121714:
ldr r1, _08121720 @ =gUnknown_0203926C
ldr r0, _08121724 @ =0x02000000
ldr r2, _08121728 @ =0x00016003
adds r0, r2
b _08121730
.align 2, 0
_08121720: .4byte gUnknown_0203926C
_08121724: .4byte 0x02000000
_08121728: .4byte 0x00016003
_0812172C:
ldr r1, _08121740 @ =gUnknown_0203926C
ldr r0, _08121744 @ =gUnknown_02024C0A
_08121730:
ldrb r0, [r0]
adds r0, r1
_08121734:
ldrb r1, [r0]
movs r0, 0xD
muls r1, r0
ldr r0, _08121748 @ =gAbilityNames
adds r4, r1, r0
b _081219E6
.align 2, 0
_08121740: .4byte gUnknown_0203926C
_08121744: .4byte gUnknown_02024C0A
_08121748: .4byte gAbilityNames
_0812174C:
ldr r3, _08121764 @ =gTrainerBattleOpponent
ldrh r1, [r3]
movs r0, 0x80
lsls r0, 3
cmp r1, r0
bne _08121768
bl GetSecretBaseTrainerNameIndex
lsls r0, 24
lsrs r0, 24
movs r1, 0xD
b _081217AE
.align 2, 0
_08121764: .4byte gTrainerBattleOpponent
_08121768:
ldr r0, _08121784 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08121788
bl get_trainer_class_name_index
lsls r0, 24
lsrs r0, 24
movs r1, 0xD
b _081217AE
.align 2, 0
_08121784: .4byte gBattleTypeFlags
_08121788:
movs r0, 0x80
lsls r0, 4
ands r0, r1
cmp r0, 0
beq _0812179E
bl sub_8135FD8
lsls r0, 24
lsrs r0, 24
movs r1, 0xD
b _081217AE
_0812179E:
ldr r2, _081217B8 @ =gTrainers
ldrh r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrb r1, [r0, 0x1]
movs r0, 0xD
_081217AE:
muls r1, r0
ldr r0, _081217BC @ =gTrainerClassNames
adds r4, r1, r0
b _081219E6
.align 2, 0
_081217B8: .4byte gTrainers
_081217BC: .4byte gTrainerClassNames
_081217C0:
ldr r2, _081217E4 @ =gTrainerBattleOpponent
ldrh r1, [r2]
movs r0, 0x80
lsls r0, 3
cmp r1, r0
bne _081217EC
mov r0, sp
movs r1, 0xFF
movs r2, 0x8
bl memset
ldr r1, _081217E8 @ =0x02017002
mov r0, sp
movs r2, 0x7
bl memcpy
mov r4, sp
b _081219E6
.align 2, 0
_081217E4: .4byte gTrainerBattleOpponent
_081217E8: .4byte 0x02017002
_081217EC:
ldr r0, _08121804 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08121808
mov r0, sp
bl get_trainer_name
mov r4, sp
b _081219E6
.align 2, 0
_08121804: .4byte gBattleTypeFlags
_08121808:
movs r0, 0x80
lsls r0, 4
ands r0, r1
cmp r0, 0
beq _0812181C
mov r0, sp
bl sub_8135FF4
mov r4, sp
b _081219E6
_0812181C:
ldrh r0, [r2]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _0812182C @ =gTrainers + 0x4
adds r4, r1, r0
b _081219E6
.align 2, 0
_0812182C: .4byte gTrainers + 0x4
_08121830:
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
ldr r1, _0812183C @ =gLinkPlayers + 0x8
adds r4, r0, r1
b _081219E6
.align 2, 0
_0812183C: .4byte gLinkPlayers + 0x8
_08121840:
ldr r4, _08121850 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x18]
movs r0, 0x2
b _08121876
.align 2, 0
_08121850: .4byte gLinkPlayers
_08121854:
ldr r4, _08121864 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x18]
movs r0, 0x1
b _08121876
.align 2, 0
_08121864: .4byte gLinkPlayers
_08121868:
ldr r4, _08121888 @ =gLinkPlayers
lsls r0, r7, 3
subs r0, r7
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x18]
movs r0, 0x3
_08121876:
eors r0, r1
bl sub_803FC34
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
adds r4, 0x8
adds r4, r1, r4
b _081219E6
.align 2, 0
_08121888: .4byte gLinkPlayers
_0812188C:
ldr r0, _081218A4 @ =0x02000000
ldr r3, _081218A8 @ =0x00016003
adds r0, r3
ldrb r0, [r0]
bl sub_803FC34
lsls r1, r0, 3
subs r1, r0
lsls r1, 2
ldr r0, _081218AC @ =gLinkPlayers + 0x8
adds r4, r1, r0
b _081219E6
.align 2, 0
_081218A4: .4byte 0x02000000
_081218A8: .4byte 0x00016003
_081218AC: .4byte gLinkPlayers + 0x8
_081218B0:
ldr r4, _081218B4 @ =gSaveBlock2
b _081219E6
.align 2, 0
_081218B4: .4byte gSaveBlock2
_081218B8:
bl sub_8082830
adds r4, r0, 0
b _081219E6
_081218C0:
ldr r5, _08121918 @ =0x02000000
ldr r1, _0812191C @ =0x00016003
adds r0, r5, r1
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
beq _08121934
ldr r0, _08121920 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
ldr r4, _08121924 @ =gUnknown_08400791
cmp r0, 0
beq _081218E2
ldr r4, _08121928 @ =gUnknown_08400797
_081218E2:
ldrb r1, [r4]
adds r0, r1, 0
ldr r2, _0812192C @ =gEnemyParty
mov r12, r2
adds r2, r5, 0
cmp r0, 0xFF
beq _08121902
_081218F0:
mov r3, r8
adds r0, r3, r6
strb r1, [r0]
adds r6, 0x1
adds r4, 0x1
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _081218F0
_08121902:
ldr r5, _08121930 @ =0x0001605e
adds r0, r2, r5
ldrb r1, [r0]
_08121908:
movs r0, 0x64
muls r0, r1
add r0, r12
_0812190E:
movs r1, 0x2
mov r2, sp
bl GetMonData
b _0812194A
.align 2, 0
_08121918: .4byte 0x02000000
_0812191C: .4byte 0x00016003
_08121920: .4byte gBattleTypeFlags
_08121924: .4byte gUnknown_08400791
_08121928: .4byte gUnknown_08400797
_0812192C: .4byte gEnemyParty
_08121930: .4byte 0x0001605e
_08121934:
ldr r1, _08121954 @ =0x0001605e
adds r0, r5, r1
ldrb r1, [r0]
_0812193A:
movs r0, 0x64
muls r0, r1
ldr r1, _08121958 @ =gPlayerParty
_08121940:
adds r0, r1
movs r1, 0x2
mov r2, sp
bl GetMonData
_0812194A:
mov r0, sp
bl StringGetEnd10
mov r4, sp
b _081219E6
.align 2, 0
_08121954: .4byte 0x0001605e
_08121958: .4byte gPlayerParty
_0812195C:
ldr r0, _08121970 @ =0x0000084b
bl FlagGet
lsls r0, 24
ldr r4, _08121974 @ =gUnknown_084009ED
cmp r0, 0
beq _081219E6
ldr r4, _08121978 @ =gUnknown_084009F7
b _081219E6
.align 2, 0
_08121970: .4byte 0x0000084b
_08121974: .4byte gUnknown_084009ED
_08121978: .4byte gUnknown_084009F7
_0812197C:
ldr r0, _08121980 @ =gPlayerMonIndex
b _08121986
.align 2, 0
_08121980: .4byte gPlayerMonIndex
_08121984:
ldr r0, _08121998 @ =gEnemyMonIndex
_08121986:
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
ldr r4, _0812199C @ =gUnknown_084007A7
cmp r0, 0
bne _081219E6
ldr r4, _081219A0 @ =gUnknown_084007AC
b _081219E6
.align 2, 0
_08121998: .4byte gEnemyMonIndex
_0812199C: .4byte gUnknown_084007A7
_081219A0: .4byte gUnknown_084007AC
_081219A4:
ldr r0, _081219A8 @ =gPlayerMonIndex
b _081219AE
.align 2, 0
_081219A8: .4byte gPlayerMonIndex
_081219AC:
ldr r0, _081219C0 @ =gEnemyMonIndex
_081219AE:
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
ldr r4, _081219C4 @ =gUnknown_0840079C
cmp r0, 0
bne _081219E6
ldr r4, _081219C8 @ =gUnknown_084007A1
b _081219E6
.align 2, 0
_081219C0: .4byte gEnemyMonIndex
_081219C4: .4byte gUnknown_0840079C
_081219C8: .4byte gUnknown_084007A1
_081219CC:
ldr r0, _081219D0 @ =gPlayerMonIndex
b _081219D6
.align 2, 0
_081219D0: .4byte gPlayerMonIndex
_081219D4:
ldr r0, _08121A24 @ =gEnemyMonIndex
_081219D6:
ldrb r0, [r0]
bl battle_side_get_owner
lsls r0, 24
ldr r4, _08121A28 @ =gUnknown_084007B2
cmp r0, 0
bne _081219E6
ldr r4, _08121A2C @ =gUnknown_084007B7
_081219E6:
ldrb r1, [r4]
adds r0, r1, 0
mov r3, r9
ldrb r2, [r3]
adds r3, 0x1
cmp r0, 0xFF
beq _08121A06
_081219F4:
mov r5, r8
adds r0, r5, r6
strb r1, [r0]
adds r6, 0x1
adds r4, 0x1
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _081219F4
_08121A06:
lsls r0, r2, 24
lsrs r0, 24
cmp r0, 0x21
bne _08121A3C
mov r0, r8
adds r1, r0, r6
movs r0, 0xFC
strb r0, [r1]
adds r6, 0x1
mov r2, r8
adds r1, r2, r6
movs r0, 0x9
strb r0, [r1]
adds r6, 0x1
b _08121A3C
.align 2, 0
_08121A24: .4byte gEnemyMonIndex
_08121A28: .4byte gUnknown_084007B2
_08121A2C: .4byte gUnknown_084007B7
_08121A30:
mov r3, r8
adds r0, r3, r6
strb r1, [r0]
adds r6, 0x1
mov r3, r9
adds r3, 0x1
_08121A3C:
mov r9, r3
ldrb r1, [r3]
_08121A40:
adds r0, r1, 0
cmp r0, 0xFF
beq _08121A4A
bl _0812101E
_08121A4A:
mov r5, r8
adds r1, r5, r6
mov r2, r9
ldrb r0, [r2]
strb r0, [r1]
adds r6, 0x1
adds r0, r6, 0
add sp, 0xC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8120FFC
thumb_func_start sub_8121A68
sub_8121A68: @ 8121A68
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
adds r7, r0, 0
adds r6, r1, 0
movs r5, 0x1
movs r0, 0
mov r8, r0
movs r0, 0xFF
strb r0, [r6]
ldrb r0, [r7, 0x1]
cmp r0, 0xFF
bne _08121A86
b _08121D0E
_08121A86:
adds r0, r7, r5
ldrb r1, [r0]
adds r4, r0, 0
cmp r1, 0xA
bls _08121A92
b _08121D04
_08121A92:
lsls r0, r1, 2
ldr r1, _08121A9C @ =_08121AA0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08121A9C: .4byte _08121AA0
.align 2, 0
_08121AA0:
.4byte _08121ACC
.4byte _08121AE8
.4byte _08121B3C
.4byte _08121B54
.4byte _08121B64
.4byte _08121BDC
.4byte _08121BF0
.4byte _08121C02
.4byte _08121C48
.4byte _08121C5C
.4byte _08121C78
_08121ACC:
adds r0, r5, r7
ldrb r1, [r0, 0x1]
ldrb r0, [r0, 0x2]
lsls r0, 8
orrs r1, r0
ldr r0, _08121AE4 @ =gUnknown_08400F8C
subs r1, 0xC
lsls r1, 2
adds r1, r0
ldr r1, [r1]
b _08121CE2
.align 2, 0
_08121AE4: .4byte gUnknown_08400F8C
_08121AE8:
ldrb r0, [r4, 0x1]
cmp r0, 0x2
beq _08121B04
cmp r0, 0x2
bgt _08121AF8
cmp r0, 0x1
beq _08121AFE
b _08121B26
_08121AF8:
cmp r0, 0x4
beq _08121B0C
b _08121B26
_08121AFE:
ldrb r4, [r4, 0x3]
mov r8, r4
b _08121B26
_08121B04:
ldrb r1, [r4, 0x3]
ldrb r0, [r4, 0x4]
lsls r0, 8
b _08121B22
_08121B0C:
ldrb r0, [r4, 0x3]
mov r8, r0
ldrb r0, [r4, 0x4]
lsls r0, 8
mov r1, r8
orrs r1, r0
ldrb r0, [r4, 0x5]
lsls r0, 16
orrs r1, r0
ldrb r0, [r4, 0x6]
lsls r0, 24
_08121B22:
orrs r1, r0
mov r8, r1
_08121B26:
adds r4, r5, r7
ldrb r3, [r4, 0x2]
adds r0, r6, 0
mov r1, r8
movs r2, 0
bl ConvertIntToDecimalStringN
adds r0, r5, 0x3
ldrb r4, [r4, 0x1]
adds r5, r0, r4
b _08121D04
_08121B3C:
adds r0, r5, r7
ldrb r1, [r0, 0x1]
ldrb r0, [r0, 0x2]
lsls r0, 8
orrs r1, r0
movs r0, 0xD
muls r1, r0
ldr r0, _08121B50 @ =gMoveNames
adds r1, r0
b _08121CE2
.align 2, 0
_08121B50: .4byte gMoveNames
_08121B54:
adds r0, r5, r7
ldrb r0, [r0, 0x1]
lsls r1, r0, 3
subs r1, r0
ldr r0, _08121B60 @ =gTypeNames
b _08121C66
.align 2, 0
_08121B60: .4byte gTypeNames
_08121B64:
ldrb r0, [r4, 0x1]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08121B88
ldrb r1, [r4, 0x2]
movs r0, 0x64
muls r0, r1
ldr r1, _08121B84 @ =gPlayerParty
adds r0, r1
movs r1, 0x2
mov r2, sp
bl GetMonData
b _08121BC4
.align 2, 0
_08121B84: .4byte gPlayerParty
_08121B88:
ldr r0, _08121BA0 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08121BA8
ldr r1, _08121BA4 @ =gUnknown_08400797
adds r0, r6, 0
bl StringAppend
b _08121BB0
.align 2, 0
_08121BA0: .4byte gBattleTypeFlags
_08121BA4: .4byte gUnknown_08400797
_08121BA8:
ldr r1, _08121BD4 @ =gUnknown_08400791
adds r0, r6, 0
bl StringAppend
_08121BB0:
adds r0, r5, r7
ldrb r1, [r0, 0x2]
movs r0, 0x64
muls r0, r1
ldr r1, _08121BD8 @ =gEnemyParty
adds r0, r1
movs r1, 0x2
mov r2, sp
bl GetMonData
_08121BC4:
mov r0, sp
bl StringGetEnd10
adds r0, r6, 0
mov r1, sp
bl StringAppend
b _08121D02
.align 2, 0
_08121BD4: .4byte gUnknown_08400791
_08121BD8: .4byte gEnemyParty
_08121BDC:
ldr r1, _08121BEC @ =gUnknown_08400F58
adds r0, r5, r7
ldrb r0, [r0, 0x1]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
b _08121C68
.align 2, 0
_08121BEC: .4byte gUnknown_08400F58
_08121BF0:
adds r0, r5, r7
ldrb r1, [r0, 0x1]
ldrb r0, [r0, 0x2]
lsls r0, 8
orrs r1, r0
adds r0, r6, 0
bl GetSpeciesName
b _08121D02
_08121C02:
adds r4, r5, r7
ldrb r0, [r4, 0x1]
bl battle_side_get_owner
lsls r0, 24
cmp r0, 0
bne _08121C28
ldrb r1, [r4, 0x2]
movs r0, 0x64
muls r0, r1
ldr r1, _08121C24 @ =gPlayerParty
adds r0, r1
movs r1, 0x2
adds r2, r6, 0
bl GetMonData
b _08121C3A
.align 2, 0
_08121C24: .4byte gPlayerParty
_08121C28:
ldrb r1, [r4, 0x2]
movs r0, 0x64
muls r0, r1
ldr r1, _08121C44 @ =gEnemyParty
adds r0, r1
movs r1, 0x2
adds r2, r6, 0
bl GetMonData
_08121C3A:
adds r0, r6, 0
bl StringGetEnd10
b _08121D02
.align 2, 0
_08121C44: .4byte gEnemyParty
_08121C48:
ldr r1, _08121C58 @ =gUnknown_08400F78
adds r0, r5, r7
ldrb r0, [r0, 0x1]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
b _08121C68
.align 2, 0
_08121C58: .4byte gUnknown_08400F78
_08121C5C:
adds r0, r5, r7
ldrb r1, [r0, 0x1]
movs r0, 0xD
muls r1, r0
ldr r0, _08121C74 @ =gAbilityNames
_08121C66:
adds r1, r0
_08121C68:
adds r0, r6, 0
bl StringAppend
adds r5, 0x2
b _08121D04
.align 2, 0
_08121C74: .4byte gAbilityNames
_08121C78:
adds r0, r5, r7
ldrb r2, [r0, 0x1]
ldrb r0, [r0, 0x2]
lsls r0, 8
orrs r2, r0
ldr r0, _08121CC4 @ =gBattleTypeFlags
ldrh r1, [r0]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08121CFA
cmp r2, 0xAF
bne _08121CF0
ldr r2, _08121CC8 @ =gLinkPlayers
ldr r0, _08121CCC @ =0x02000000
ldr r1, _08121CD0 @ =0x000160cb
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
adds r0, r2
ldr r1, _08121CD4 @ =gUnknown_02024C0B
ldrb r2, [r1]
ldrh r0, [r0, 0x18]
cmp r0, r2
bne _08121CE0
lsls r1, r2, 3
subs r1, r2
lsls r1, 2
ldr r0, _08121CD8 @ =gEnigmaBerries
adds r1, r0
adds r0, r6, 0
bl StringCopy
ldr r1, _08121CDC @ =gUnknown_08400A85
b _08121CE2
.align 2, 0
_08121CC4: .4byte gBattleTypeFlags
_08121CC8: .4byte gLinkPlayers
_08121CCC: .4byte 0x02000000
_08121CD0: .4byte 0x000160cb
_08121CD4: .4byte gUnknown_02024C0B
_08121CD8: .4byte gEnigmaBerries
_08121CDC: .4byte gUnknown_08400A85
_08121CE0:
ldr r1, _08121CEC @ =gUnknown_08400A78
_08121CE2:
adds r0, r6, 0
bl StringAppend
b _08121D02
.align 2, 0
_08121CEC: .4byte gUnknown_08400A78
_08121CF0:
adds r0, r2, 0
adds r1, r6, 0
bl CopyItemName
b _08121D02
_08121CFA:
adds r0, r2, 0
adds r1, r6, 0
bl CopyItemName
_08121D02:
adds r5, 0x3
_08121D04:
adds r0, r7, r5
ldrb r0, [r0]
cmp r0, 0xFF
beq _08121D0E
b _08121A86
_08121D0E:
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8121A68
thumb_func_start sub_8121D1C
sub_8121D1C: @ 8121D1C
push {r4,r5,lr}
adds r4, r0, 0
movs r2, 0
ldr r5, _08121D50 @ =gSelectedOrderFromParty
ldr r3, _08121D54 @ =gUnknown_084016BC
_08121D26:
cmp r2, 0x4
beq _08121D3C
ldrh r1, [r3]
cmp r1, 0
bne _08121D32
adds r2, 0x1
_08121D32:
ldr r0, [r5]
adds r3, 0x2
ldrh r0, [r0]
cmp r1, r0
bne _08121D26
_08121D3C:
cmp r2, 0
blt _08121D68
cmp r2, 0x2
bgt _08121D5C
ldr r1, _08121D58 @ =gUnknown_08400E5E
adds r0, r4, 0
bl StringCopy
b _08121D68
.align 2, 0
_08121D50: .4byte gSelectedOrderFromParty
_08121D54: .4byte gUnknown_084016BC
_08121D58: .4byte gUnknown_08400E5E
_08121D5C:
cmp r2, 0x4
bgt _08121D68
ldr r1, _08121D70 @ =gUnknown_08400E62
adds r0, r4, 0
bl StringCopy
_08121D68:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08121D70: .4byte gUnknown_08400E62
thumb_func_end sub_8121D1C
thumb_func_start sub_8121D74
sub_8121D74: @ 8121D74
push {r4,r5,lr}
adds r3, r0, 0
movs r4, 0
b _08121D7E
_08121D7C:
adds r3, 0x1
_08121D7E:
ldrb r0, [r3]
cmp r0, 0xFF
bne _08121D7C
ldr r1, _08121DB4 @ =gUnknown_084016BC
ldr r5, _08121DB8 @ =gSelectedOrderFromParty
movs r0, 0
lsls r0, 1
adds r2, r0, r1
_08121D8E:
cmp r4, 0x4
beq _08121DA8
ldrh r1, [r2]
cmp r1, 0
bne _08121D9A
adds r4, 0x1
_08121D9A:
ldr r0, [r5]
adds r2, 0x2
ldrh r0, [r0]
cmp r1, r0
bne _08121D8E
cmp r4, 0x4
bhi _08121E04
_08121DA8:
lsls r0, r4, 2
ldr r1, _08121DBC @ =_08121DC0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08121DB4: .4byte gUnknown_084016BC
_08121DB8: .4byte gSelectedOrderFromParty
_08121DBC: .4byte _08121DC0
.align 2, 0
_08121DC0:
.4byte _08121DD4
.4byte _08121DDC
.4byte _08121DE4
.4byte _08121DEC
.4byte _08121DFC
_08121DD4:
ldr r1, _08121DD8 @ =gUnknown_084007C8
b _08121DEE
.align 2, 0
_08121DD8: .4byte gUnknown_084007C8
_08121DDC:
ldr r1, _08121DE0 @ =gUnknown_084007CA
b _08121DEE
.align 2, 0
_08121DE0: .4byte gUnknown_084007CA
_08121DE4:
ldr r1, _08121DE8 @ =gUnknown_084007CC
b _08121DEE
.align 2, 0
_08121DE8: .4byte gUnknown_084007CC
_08121DEC:
ldr r1, _08121DF8 @ =gUnknown_084007CE
_08121DEE:
adds r0, r3, 0
bl StringCopy
b _08121E04
.align 2, 0
_08121DF8: .4byte gUnknown_084007CE
_08121DFC:
ldr r1, _08121E0C @ =gUnknown_084007D0
adds r0, r3, 0
bl StringCopy
_08121E04:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08121E0C: .4byte gUnknown_084007D0
thumb_func_end sub_8121D74
.align 2, 0 @ Don't pad with nop.