pokefirered/asm/trainer_tower.s
2018-10-03 21:30:13 -04:00

2826 lines
49 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_815D7BC
sub_815D7BC: @ 815D7BC
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
movs r0, 0x1E
bl TryCopySpecialSaveSection
cmp r0, 0x1
bne _0815D804
ldr r2, _0815D800 @ =0x00000f88
adds r0, r5, 0
adds r1, r4, 0
bl memcpy
movs r0, 0x1F
adds r1, r4, 0
bl TryCopySpecialSaveSection
cmp r0, 0x1
bne _0815D804
ldr r1, _0815D800 @ =0x00000f88
adds r0, r5, r1
movs r2, 0xF8
lsls r2, 4
adds r1, r4, 0
bl memcpy
adds r0, r5, 0
bl sub_815D6B4
cmp r0, 0
beq _0815D804
movs r0, 0x1
b _0815D806
.align 2, 0
_0815D800: .4byte 0x00000f88
_0815D804:
movs r0, 0
_0815D806:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_815D7BC
thumb_func_start sub_815D80C
sub_815D80C: @ 815D80C
push {r4,r5,lr}
adds r4, r0, 0
movs r0, 0x80
lsls r0, 5
bl AllocZeroed
adds r5, r0, 0
adds r0, r4, 0
adds r1, r5, 0
bl sub_815D7BC
adds r4, r0, 0
adds r0, r5, 0
bl Free
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_815D80C
thumb_func_start sub_815D834
sub_815D834: @ 815D834
movs r0, 0
bx lr
thumb_func_end sub_815D834
thumb_func_start sub_815D838
sub_815D838: @ 815D838
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r2, 0
ldr r0, _0815D8C0 @ =gUnknown_8479D38
mov r10, r0
movs r1, 0xFA
lsls r1, 2
adds r5, r1, 0
_0815D84E:
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
adds r1, r0, 0
add r1, r10
mov r8, r1
mov r1, r10
adds r1, 0x8
adds r7, r0, r1
ldr r1, _0815D8C4 @ =gUnknown_8479D48
adds r6, r0, r1
movs r4, 0
adds r2, 0x1
mov r9, r2
_0815D86A:
mov r0, r8
adds r1, r0, r4
ldrb r0, [r1]
cmp r0, 0xFF
beq _0815D87C
ldrb r1, [r1]
adds r0, r5, r1
bl FlagSet
_0815D87C:
adds r1, r7, r4
ldrb r0, [r1]
cmp r0, 0xFF
beq _0815D88C
ldrb r1, [r1]
adds r0, r5, r1
bl FlagSet
_0815D88C:
adds r1, r6, r4
ldrb r0, [r1]
cmp r0, 0xFF
beq _0815D89C
ldrb r1, [r1]
adds r0, r5, r1
bl FlagSet
_0815D89C:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x7
bls _0815D86A
mov r1, r9
lsls r0, r1, 24
lsrs r2, r0, 24
cmp r2, 0xE
bls _0815D84E
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0815D8C0: .4byte gUnknown_8479D38
_0815D8C4: .4byte gUnknown_8479D48
thumb_func_end sub_815D838
thumb_func_start sub_815D8C8
sub_815D8C8: @ 815D8C8
push {r4,lr}
ldr r4, _0815D8F0 @ =0x00004023
adds r0, r4, 0
bl VarGet
lsls r0, 16
lsrs r1, r0, 16
ldr r0, _0815D8F4 @ =0x000005db
cmp r1, r0
bhi _0815D8E8
adds r1, 0x1
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl VarSet
_0815D8E8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815D8F0: .4byte 0x00004023
_0815D8F4: .4byte 0x000005db
thumb_func_end sub_815D8C8
thumb_func_start sub_815D8F8
sub_815D8F8: @ 815D8F8
push {r4-r6,lr}
movs r4, 0xFF
movs r2, 0
ldr r6, _0815D95C @ =gUnknown_8479D34
ldr r0, _0815D960 @ =gSaveBlock1Ptr
ldr r3, [r0]
movs r5, 0x4
ldrsb r5, [r3, r5]
_0815D908:
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
adds r1, r0, r6
movs r0, 0
ldrsb r0, [r1, r0]
cmp r0, r5
bne _0815D928
ldrb r1, [r1, 0x1]
lsls r1, 24
asrs r1, 24
movs r0, 0x5
ldrsb r0, [r3, r0]
cmp r1, r0
bne _0815D928
adds r4, r2, 0
_0815D928:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xE
bls _0815D908
cmp r4, 0xFF
beq _0815D956
ldr r4, _0815D964 @ =0x00004023
adds r0, r4, 0
bl VarGet
lsls r0, 16
ldr r1, _0815D968 @ =0x05db0000
cmp r0, r1
bls _0815D956
adds r0, r4, 0
movs r1, 0
bl VarSet
bl sub_815D838
bl sub_815D96C
_0815D956:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815D95C: .4byte gUnknown_8479D34
_0815D960: .4byte gSaveBlock1Ptr
_0815D964: .4byte 0x00004023
_0815D968: .4byte 0x05db0000
thumb_func_end sub_815D8F8
thumb_func_start sub_815D96C
sub_815D96C: @ 815D96C
push {r4-r6,lr}
movs r6, 0
_0815D970:
bl Random
lsls r0, 16
lsrs r0, 16
movs r1, 0x64
bl __umodsi3
lsls r0, 16
lsrs r0, 16
cmp r0, 0x59
bls _0815D994
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
ldr r1, _0815D990 @ =gUnknown_8479D38
b _0815D9B0
.align 2, 0
_0815D990: .4byte gUnknown_8479D38
_0815D994:
cmp r0, 0x3B
bls _0815D9A8
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
ldr r1, _0815D9A4 @ =gUnknown_8479D40
b _0815D9B0
.align 2, 0
_0815D9A4: .4byte gUnknown_8479D40
_0815D9A8:
lsls r0, r6, 3
subs r0, r6
lsls r0, 2
ldr r1, _0815D9E4 @ =gUnknown_8479D48
_0815D9B0:
adds r5, r0, r1
movs r4, 0
adds r6, 0x1
_0815D9B6:
adds r1, r5, r4
ldrb r0, [r1]
cmp r0, 0xFF
beq _0815D9CC
movs r2, 0xFA
lsls r2, 2
adds r0, r2, 0
ldrb r1, [r1]
adds r0, r1
bl FlagClear
_0815D9CC:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x7
bls _0815D9B6
lsls r0, r6, 24
lsrs r6, r0, 24
cmp r6, 0xE
bls _0815D970
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815D9E4: .4byte gUnknown_8479D48
thumb_func_end sub_815D96C
thumb_func_start sub_815D9E8
sub_815D9E8: @ 815D9E8
push {lr}
bl sub_815DC8C
ldr r1, _0815DA08 @ =gUnknown_847A230
ldr r0, _0815DA0C @ =gUnknown_20370C0
ldrh r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
bl _call_via_r0
bl sub_815DD2C
pop {r0}
bx r0
.align 2, 0
_0815DA08: .4byte gUnknown_847A230
_0815DA0C: .4byte gUnknown_20370C0
thumb_func_end sub_815D9E8
thumb_func_start sub_815DA10
sub_815DA10: @ 815DA10
ldr r1, _0815DA20 @ =gUnknown_825393E
ldr r0, _0815DA24 @ =gUnknown_203F45C
ldr r0, [r0]
adds r0, 0x3D
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0815DA20: .4byte gUnknown_825393E
_0815DA24: .4byte gUnknown_203F45C
thumb_func_end sub_815DA10
thumb_func_start sub_815DA28
sub_815DA28: @ 815DA28
push {lr}
ldr r1, _0815DA38 @ =gUnknown_203F45C
ldr r1, [r1]
movs r2, 0xB
bl StringCopyN
pop {r0}
bx r0
.align 2, 0
_0815DA38: .4byte gUnknown_203F45C
thumb_func_end sub_815DA28
thumb_func_start sub_815DA3C
sub_815DA3C: @ 815DA3C
ldr r1, _0815DA4C @ =gUnknown_82538A8
ldr r0, _0815DA50 @ =gUnknown_203F45C
ldr r0, [r0]
adds r0, 0x3D
ldrb r0, [r0]
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0815DA4C: .4byte gUnknown_82538A8
_0815DA50: .4byte gUnknown_203F45C
thumb_func_end sub_815DA3C
thumb_func_start sub_815DA54
sub_815DA54: @ 815DA54
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
bl sub_815DC8C
ldr r5, _0815DBC4 @ =gUnknown_203F45C
movs r0, 0x40
bl AllocZeroed
str r0, [r5]
ldr r0, _0815DBC8 @ =0x00004001
bl VarGet
lsls r0, 16
lsrs r0, 16
mov r10, r0
ldr r0, [r5]
ldr r1, _0815DBCC @ =gUnknown_203F458
ldr r1, [r1]
ldrb r3, [r1]
lsls r2, r3, 5
subs r2, r3
lsls r2, 5
adds r2, 0xC
adds r1, r2
mov r2, r10
lsls r6, r2, 2
adds r4, r6, r2
lsls r4, 3
add r4, r10
lsls r4, 3
adds r2, r4, 0x4
adds r1, r2
movs r2, 0xB
bl StringCopyN
movs r0, 0
mov r9, r0
str r6, [sp]
mov r12, r4
mov r1, r10
adds r1, 0x1
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r1
lsls r5, r0, 3
_0815DAB8:
ldr r0, _0815DBC4 @ =gUnknown_203F45C
ldr r0, [r0]
mov r8, r0
mov r1, r9
lsls r4, r1, 1
mov r2, r8
adds r2, 0xC
adds r2, r4
ldr r0, _0815DBCC @ =gUnknown_203F458
ldr r3, [r0]
ldrb r1, [r3]
lsls r0, r1, 5
subs r0, r1
lsls r0, 5
add r0, r12
adds r7, r3, 0
adds r7, 0x2A
adds r0, r7, r0
ldrh r0, [r0]
strh r0, [r2]
mov r2, r8
adds r2, 0x18
adds r2, r4
ldrb r1, [r3]
lsls r0, r1, 5
subs r0, r1
lsls r0, 5
add r0, r12
adds r6, r3, 0
adds r6, 0x36
adds r0, r6, r0
ldrh r0, [r0]
strh r0, [r2]
ldrb r1, [r3]
lsls r0, r1, 5
subs r0, r1
lsls r2, r0, 5
adds r0, r3, r2
ldrb r0, [r0, 0xE]
cmp r0, 0x1
bne _0815DB2E
mov r1, r8
adds r1, 0x24
adds r1, r4
adds r0, r5, r2
adds r0, r7, r0
ldrh r0, [r0]
strh r0, [r1]
mov r2, r8
adds r2, 0x30
adds r2, r4
ldrb r1, [r3]
lsls r0, r1, 5
subs r0, r1
lsls r0, 5
adds r0, r5, r0
adds r0, r6, r0
ldrh r0, [r0]
strh r0, [r2]
_0815DB2E:
movs r2, 0x2
add r12, r2
adds r5, 0x2
movs r0, 0x1
add r9, r0
mov r1, r9
cmp r1, 0x5
ble _0815DAB8
ldr r2, _0815DBC4 @ =gUnknown_203F45C
ldr r3, [r2]
ldr r0, _0815DBCC @ =gUnknown_203F458
ldr r1, [r0]
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
ldrb r0, [r1, 0xE]
adds r3, 0x3C
strb r0, [r3]
ldr r1, _0815DBC4 @ =gUnknown_203F45C
ldr r4, [r1]
ldr r2, _0815DBCC @ =gUnknown_203F458
ldr r3, [r2]
ldr r1, [sp]
add r1, r10
lsls r1, 3
add r1, r10
lsls r1, 3
ldrb r2, [r3]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r0, r1, r0
adds r3, r0
ldrb r0, [r3, 0x1B]
adds r4, 0x3D
strb r0, [r4]
ldr r0, _0815DBC4 @ =gUnknown_203F45C
ldr r4, [r0]
ldr r2, _0815DBCC @ =gUnknown_203F458
ldr r3, [r2]
ldrb r2, [r3]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
adds r3, r1
ldrb r0, [r3, 0x1C]
adds r4, 0x3E
strb r0, [r4]
ldr r0, _0815DBD0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _0815DBD4 @ =0x00003d34
adds r1, r0, r2
ldr r2, [r1]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
ldr r2, _0815DBD8 @ =0x00003d38
adds r1, r2
adds r0, r1
bl SetVBlankCounter1Ptr
bl sub_815DD2C
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0815DBC4: .4byte gUnknown_203F45C
_0815DBC8: .4byte 0x00004001
_0815DBCC: .4byte gUnknown_203F458
_0815DBD0: .4byte gSaveBlock1Ptr
_0815DBD4: .4byte 0x00003d34
_0815DBD8: .4byte 0x00003d38
thumb_func_end sub_815DA54
thumb_func_start sub_815DBDC
sub_815DBDC: @ 815DBDC
push {r4,lr}
ldr r4, _0815DBF0 @ =gUnknown_203F45C
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815DBF0: .4byte gUnknown_203F45C
thumb_func_end sub_815DBDC
thumb_func_start sub_815DBF4
sub_815DBF4: @ 815DBF4
push {r4-r6,lr}
adds r6, r0, 0
lsls r4, r1, 24
lsrs r4, 24
ldr r0, _0815DC28 @ =0x00004003
adds r1, r4, 0
bl VarSet
ldr r5, _0815DC2C @ =gUnknown_203F45C
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x3C
ldrb r0, [r0]
adds r1, 0x3D
ldrb r1, [r1]
bl sub_815E068
cmp r4, 0
bne _0815DC30
ldr r0, [r5]
adds r0, 0xC
adds r1, r6, 0
bl sub_815DEFC
b _0815DC3A
.align 2, 0
_0815DC28: .4byte 0x00004003
_0815DC2C: .4byte gUnknown_203F45C
_0815DC30:
ldr r0, [r5]
adds r0, 0x24
adds r1, r6, 0
bl sub_815DEFC
_0815DC3A:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_815DBF4
thumb_func_start sub_815DC40
sub_815DC40: @ 815DC40
push {r4-r6,lr}
adds r6, r0, 0
lsls r4, r1, 24
lsrs r4, 24
ldr r0, _0815DC74 @ =0x00004003
adds r1, r4, 0
bl VarSet
ldr r5, _0815DC78 @ =gUnknown_203F45C
ldr r1, [r5]
adds r0, r1, 0
adds r0, 0x3C
ldrb r0, [r0]
adds r1, 0x3D
ldrb r1, [r1]
bl sub_815E068
cmp r4, 0
bne _0815DC7C
ldr r0, [r5]
adds r0, 0x18
adds r1, r6, 0
bl sub_815DEFC
b _0815DC86
.align 2, 0
_0815DC74: .4byte 0x00004003
_0815DC78: .4byte gUnknown_203F45C
_0815DC7C:
ldr r0, [r5]
adds r0, 0x30
adds r1, r6, 0
bl sub_815DEFC
_0815DC86:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_815DC40
thumb_func_start sub_815DC8C
sub_815DC8C: @ 815DC8C
push {r4-r7,lr}
ldr r0, _0815DCBC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _0815DCC0 @ =0x00003d34
adds r0, r1
ldr r5, [r0]
ldr r4, _0815DCC4 @ =gUnknown_203F458
ldr r0, _0815DCC8 @ =0x00001f0c
bl AllocZeroed
str r0, [r4]
ldr r1, _0815DCCC @ =gUnknown_2036DFC
ldrb r1, [r1, 0x12]
subs r1, 0x2A
strb r1, [r0]
bl sub_815D834
cmp r0, 0x1
bne _0815DCD0
ldr r0, [r4]
adds r0, 0x4
bl sub_815D80C
b _0815DD18
.align 2, 0
_0815DCBC: .4byte gSaveBlock1Ptr
_0815DCC0: .4byte 0x00003d34
_0815DCC4: .4byte gUnknown_203F458
_0815DCC8: .4byte 0x00001f0c
_0815DCCC: .4byte gUnknown_2036DFC
_0815DCD0:
ldr r0, [r4]
ldr r1, _0815DD20 @ =gUnknown_84827AC
adds r0, 0x4
movs r2, 0x8
bl memcpy
lsls r1, r5, 5
ldr r0, _0815DD24 @ =gUnknown_84827B4
adds r7, r1, r0
movs r5, 0
movs r4, 0x7
_0815DCE6:
ldr r6, _0815DD28 @ =gUnknown_203F458
ldr r0, [r6]
adds r0, r5, r0
adds r0, 0xC
ldm r7!, {r1}
movs r2, 0xF8
lsls r2, 2
bl memcpy
movs r0, 0xF8
lsls r0, 2
adds r5, r0
subs r4, 0x1
cmp r4, 0
bge _0815DCE6
ldr r0, [r6]
adds r0, 0xC
movs r1, 0xF8
lsls r1, 5
bl CalcByteArraySum
ldr r1, [r6]
str r0, [r1, 0x8]
bl sub_815EC0C
_0815DD18:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0815DD20: .4byte gUnknown_84827AC
_0815DD24: .4byte gUnknown_84827B4
_0815DD28: .4byte gUnknown_203F458
thumb_func_end sub_815DC8C
thumb_func_start sub_815DD2C
sub_815DD2C: @ 815DD2C
push {r4,lr}
ldr r4, _0815DD40 @ =gUnknown_203F458
ldr r0, [r4]
bl Free
movs r0, 0
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815DD40: .4byte gUnknown_203F458
thumb_func_end sub_815DD2C
thumb_func_start sub_815DD44
sub_815DD44: @ 815DD44
push {r4,lr}
ldr r0, _0815DD68 @ =gUnknown_2036DFC
ldrh r0, [r0, 0x12]
ldr r1, _0815DD6C @ =0xfffffed7
adds r0, r1
ldr r1, _0815DD70 @ =gUnknown_203F458
ldr r4, [r1]
ldrb r1, [r4, 0x4]
cmp r0, r1
ble _0815DD78
ldr r0, _0815DD74 @ =gUnknown_20370D0
movs r1, 0x3
strh r1, [r0]
movs r0, 0x99
lsls r0, 1
bl sub_8055D40
b _0815DDA2
.align 2, 0
_0815DD68: .4byte gUnknown_2036DFC
_0815DD6C: .4byte 0xfffffed7
_0815DD70: .4byte gUnknown_203F458
_0815DD74: .4byte gUnknown_20370D0
_0815DD78:
ldr r3, _0815DDA8 @ =gUnknown_20370D0
ldrb r1, [r4]
lsls r0, r1, 5
subs r0, r1
lsls r0, 5
adds r0, r4, r0
ldrb r0, [r0, 0xE]
strh r0, [r3]
ldr r2, _0815DDAC @ =gUnknown_847A284
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r1
ldrh r3, [r3]
adds r0, r3
lsls r0, 1
adds r0, r2
ldrh r0, [r0]
bl sub_8055D40
bl sub_815DDB0
_0815DDA2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815DDA8: .4byte gUnknown_20370D0
_0815DDAC: .4byte gUnknown_847A284
thumb_func_end sub_815DD44
thumb_func_start sub_815DDB0
sub_815DDB0: @ 815DDB0
push {r4-r6,lr}
ldr r0, _0815DDD0 @ =gUnknown_203F458
ldr r2, [r0]
ldrb r1, [r2]
lsls r0, r1, 5
subs r0, r1
lsls r0, 5
adds r2, r0
ldrb r0, [r2, 0xE]
cmp r0, 0x1
beq _0815DE18
cmp r0, 0x1
bgt _0815DDD4
cmp r0, 0
beq _0815DDDA
b _0815DEF0
.align 2, 0
_0815DDD0: .4byte gUnknown_203F458
_0815DDD4:
cmp r0, 0x2
beq _0815DE64
b _0815DEF0
_0815DDDA:
ldrb r2, [r2, 0x1B]
movs r3, 0
ldr r0, _0815DE04 @ =gUnknown_8479ED8
ldrb r1, [r0, 0x1]
adds r6, r0, 0
cmp r1, r2
beq _0815DDF8
adds r1, r6, 0
_0815DDEA:
adds r1, 0x4
adds r3, 0x1
cmp r3, 0x52
bhi _0815DDF8
ldrb r0, [r1, 0x1]
cmp r0, r2
bne _0815DDEA
_0815DDF8:
cmp r3, 0x53
beq _0815DE08
lsls r0, r3, 2
adds r0, r6
ldrb r1, [r0]
b _0815DE0A
.align 2, 0
_0815DE04: .4byte gUnknown_8479ED8
_0815DE08:
movs r1, 0x12
_0815DE0A:
ldr r0, _0815DE14 @ =0x00004011
bl VarSet
b _0815DEF0
.align 2, 0
_0815DE14: .4byte 0x00004011
_0815DE18:
ldrb r2, [r2, 0x1B]
movs r3, 0
ldr r0, _0815DE44 @ =gUnknown_847A024
ldrb r1, [r0, 0x2]
adds r4, r0, 0
cmp r1, r2
beq _0815DE36
adds r1, r4, 0
_0815DE28:
adds r1, 0x8
adds r3, 0x1
cmp r3, 0x9
bhi _0815DE36
ldrb r0, [r1, 0x2]
cmp r0, r2
bne _0815DE28
_0815DE36:
cmp r3, 0xA
beq _0815DE48
lsls r0, r3, 3
adds r0, r4
ldrb r1, [r0]
ldrb r4, [r0, 0x1]
b _0815DE4C
.align 2, 0
_0815DE44: .4byte gUnknown_847A024
_0815DE48:
movs r1, 0x12
movs r4, 0x12
_0815DE4C:
ldr r0, _0815DE5C @ =0x00004010
bl VarSet
ldr r0, _0815DE60 @ =0x00004013
adds r1, r4, 0
bl VarSet
b _0815DEF0
.align 2, 0
_0815DE5C: .4byte 0x00004010
_0815DE60: .4byte 0x00004013
_0815DE64:
movs r4, 0
ldr r6, _0815DEAC @ =gUnknown_8479ED8
_0815DE68:
ldr r0, _0815DEB0 @ =gUnknown_203F458
ldr r3, [r0]
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 3
ldrb r2, [r3]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
adds r3, r1
ldrb r2, [r3, 0x1B]
movs r3, 0
ldr r1, _0815DEAC @ =gUnknown_8479ED8
ldrb r0, [r1, 0x1]
adds r5, r4, 0x1
cmp r0, r2
beq _0815DE9E
_0815DE90:
adds r1, 0x4
adds r3, 0x1
cmp r3, 0x52
bhi _0815DE9E
ldrb r0, [r1, 0x1]
cmp r0, r2
bne _0815DE90
_0815DE9E:
cmp r3, 0x53
beq _0815DEB4
lsls r0, r3, 2
adds r0, r6
ldrb r1, [r0]
b _0815DEB6
.align 2, 0
_0815DEAC: .4byte gUnknown_8479ED8
_0815DEB0: .4byte gUnknown_203F458
_0815DEB4:
movs r1, 0x12
_0815DEB6:
cmp r4, 0x1
beq _0815DED8
cmp r4, 0x1
bgt _0815DEC4
cmp r4, 0
beq _0815DECA
b _0815DEEA
_0815DEC4:
cmp r4, 0x2
beq _0815DEE4
b _0815DEEA
_0815DECA:
ldr r0, _0815DED4 @ =0x00004012
bl VarSet
b _0815DEEA
.align 2, 0
_0815DED4: .4byte 0x00004012
_0815DED8:
ldr r0, _0815DEE0 @ =0x00004010
bl VarSet
b _0815DEEA
.align 2, 0
_0815DEE0: .4byte 0x00004010
_0815DEE4:
ldr r0, _0815DEF8 @ =0x00004011
bl VarSet
_0815DEEA:
adds r4, r5, 0
cmp r4, 0x2
ble _0815DE68
_0815DEF0:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815DEF8: .4byte 0x00004011
thumb_func_end sub_815DDB0
thumb_func_start sub_815DEFC
sub_815DEFC: @ 815DEFC
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
movs r3, 0x2
bl ConvertEasyChatWordsToString
movs r2, 0x1
negs r2, r2
movs r0, 0x2
adds r1, r4, 0
bl GetStringWidth
cmp r0, 0xC4
bls _0815DF4E
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
movs r3, 0x3
bl ConvertEasyChatWordsToString
ldrb r0, [r4]
movs r1, 0x1
cmp r0, 0xFE
beq _0815DF40
_0815DF32:
adds r0, r4, r1
ldrb r0, [r0]
adds r1, 0x1
cmp r0, 0xFE
bne _0815DF32
b _0815DF40
_0815DF3E:
adds r1, 0x1
_0815DF40:
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0xFE
bne _0815DF3E
adds r1, r4, r1
movs r0, 0xFA
strb r0, [r1]
_0815DF4E:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_815DEFC
thumb_func_start sub_815DF54
sub_815DF54: @ 815DF54
push {r4,r5,lr}
ldr r0, _0815DF90 @ =gUnknown_20370C4
ldrh r4, [r0]
ldr r2, _0815DF94 @ =gUnknown_203F458
ldr r3, [r2]
ldrb r1, [r3]
lsls r0, r1, 5
subs r0, r1
lsls r1, r0, 5
adds r0, r3, r1
ldrb r5, [r0, 0xE]
cmp r5, 0x1
beq _0815DF7C
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r4
lsls r0, 3
adds r0, r1
adds r0, r3, r0
_0815DF7C:
ldrb r1, [r0, 0x1B]
ldr r0, _0815DF98 @ =gUnknown_20370C2
ldrh r0, [r0]
cmp r0, 0x3
beq _0815DFD4
cmp r0, 0x3
bgt _0815DF9C
cmp r0, 0x2
beq _0815DFA6
b _0815E05C
.align 2, 0
_0815DF90: .4byte gUnknown_20370C4
_0815DF94: .4byte gUnknown_203F458
_0815DF98: .4byte gUnknown_20370C2
_0815DF9C:
cmp r0, 0x4
beq _0815E000
cmp r0, 0x5
beq _0815E038
b _0815E05C
_0815DFA6:
adds r0, r5, 0
bl sub_815E068
ldr r0, _0815DFD0 @ =gUnknown_203F458
ldr r0, [r0]
ldrb r2, [r0]
lsls r1, r2, 5
subs r1, r2
lsls r1, 5
adds r1, 0xC
adds r0, r1
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 3
adds r1, 0x4
adds r0, r1
adds r0, 0xE
b _0815E026
.align 2, 0
_0815DFD0: .4byte gUnknown_203F458
_0815DFD4:
adds r0, r5, 0
bl sub_815E068
ldr r0, _0815DFFC @ =gUnknown_203F458
ldr r0, [r0]
ldrb r2, [r0]
lsls r1, r2, 5
subs r1, r2
lsls r1, 5
adds r1, 0xC
adds r0, r1
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 3
adds r1, 0x4
adds r0, r1
adds r0, 0x1A
b _0815E026
.align 2, 0
_0815DFFC: .4byte gUnknown_203F458
_0815E000:
adds r0, r5, 0
bl sub_815E068
ldr r0, _0815E030 @ =gUnknown_203F458
ldr r0, [r0]
ldrb r2, [r0]
lsls r1, r2, 5
subs r1, r2
lsls r1, 5
adds r1, 0xC
adds r0, r1
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 3
adds r1, 0x4
adds r0, r1
adds r0, 0x26
_0815E026:
ldr r1, _0815E034 @ =gStringVar4
bl sub_815DEFC
b _0815E05C
.align 2, 0
_0815E030: .4byte gUnknown_203F458
_0815E034: .4byte gStringVar4
_0815E038:
ldr r0, [r2]
ldrb r2, [r0]
lsls r1, r2, 5
subs r1, r2
lsls r1, 5
adds r1, 0xC
adds r0, r1
lsls r1, r4, 2
adds r1, r4
lsls r1, 3
adds r1, r4
lsls r1, 3
adds r1, 0x4
adds r0, r1
adds r0, 0x32
ldr r1, _0815E064 @ =gStringVar4
bl sub_815DEFC
_0815E05C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0815E064: .4byte gStringVar4
thumb_func_end sub_815DF54
thumb_func_start sub_815E068
sub_815E068: @ 815E068
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
adds r3, r0, 0
lsls r1, 24
lsrs r2, r1, 24
movs r5, 0
cmp r0, 0x1
beq _0815E0B4
cmp r0, 0x1
bgt _0815E084
cmp r0, 0
beq _0815E088
b _0815E0F8
_0815E084:
cmp r3, 0x2
bne _0815E0F8
_0815E088:
movs r4, 0
ldr r0, _0815E0B0 @ =gUnknown_8479ED8
ldrb r1, [r0, 0x1]
adds r3, r0, 0
cmp r1, r2
beq _0815E0A4
adds r1, r3, 0
_0815E096:
adds r1, 0x4
adds r4, 0x1
cmp r4, 0x52
bhi _0815E0A4
ldrb r0, [r1, 0x1]
cmp r0, r2
bne _0815E096
_0815E0A4:
cmp r4, 0x53
beq _0815E0F8
lsls r0, r4, 2
adds r0, r3
ldrb r5, [r0, 0x2]
b _0815E0F8
.align 2, 0
_0815E0B0: .4byte gUnknown_8479ED8
_0815E0B4:
movs r4, 0
ldr r1, _0815E0BC @ =gUnknown_847A024
b _0815E0C8
.align 2, 0
_0815E0BC: .4byte gUnknown_847A024
_0815E0C0:
adds r1, 0x8
adds r4, 0x1
cmp r4, 0x9
bhi _0815E0CE
_0815E0C8:
ldrb r0, [r1, 0x2]
cmp r0, r2
bne _0815E0C0
_0815E0CE:
cmp r4, 0xA
beq _0815E0F8
ldr r0, _0815E0E8 @ =0x00004003
bl VarGet
lsls r0, 16
cmp r0, 0
beq _0815E0F0
ldr r1, _0815E0EC @ =gUnknown_847A024
lsls r0, r4, 3
adds r0, r1
ldrb r5, [r0, 0x4]
b _0815E0F8
.align 2, 0
_0815E0E8: .4byte 0x00004003
_0815E0EC: .4byte gUnknown_847A024
_0815E0F0:
ldr r1, _0815E108 @ =gUnknown_847A024
lsls r0, r4, 3
adds r0, r1
ldrb r5, [r0, 0x3]
_0815E0F8:
ldr r2, _0815E10C @ =gUnknown_20370DC
ldr r1, _0815E110 @ =gUnknown_20370DA
ldrh r0, [r1]
strh r0, [r2]
strh r5, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0815E108: .4byte gUnknown_847A024
_0815E10C: .4byte gUnknown_20370DC
_0815E110: .4byte gUnknown_20370DA
thumb_func_end sub_815E068
thumb_func_start sub_815E114
sub_815E114: @ 815E114
push {lr}
ldr r0, _0815E120 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_0815E120: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_end sub_815E114
thumb_func_start sub_815E124
sub_815E124: @ 815E124
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_80D08F8
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0815E14C
ldr r0, _0815E154 @ =gMain
ldr r1, _0815E158 @ =sub_815E114
str r1, [r0, 0x8]
bl sub_80563F0
ldr r0, _0815E15C @ =sub_800FD9C
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
_0815E14C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815E154: .4byte gMain
_0815E158: .4byte sub_815E114
_0815E15C: .4byte sub_800FD9C
thumb_func_end sub_815E124
thumb_func_start sub_815E160
sub_815E160: @ 815E160
push {r4,lr}
ldr r4, _0815E1AC @ =gBattleTypeFlags
ldr r3, _0815E1B0 @ =0x00080008
str r3, [r4]
ldr r0, _0815E1B4 @ =gUnknown_203F458
ldr r1, [r0]
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
ldrb r0, [r1, 0xE]
cmp r0, 0x1
bne _0815E180
orrs r0, r3
str r0, [r4]
_0815E180:
ldr r1, _0815E1B8 @ =gTrainerBattleOpponent_A
movs r0, 0
strh r0, [r1]
bl sub_815E9FC
ldr r0, _0815E1BC @ =sub_815E124
movs r1, 0x1
bl CreateTask
movs r0, 0
bl PlayMapChosenOrBattleBGM
bl sub_8080060
lsls r0, 24
lsrs r0, 24
bl sub_80D08B8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815E1AC: .4byte gBattleTypeFlags
_0815E1B0: .4byte 0x00080008
_0815E1B4: .4byte gUnknown_203F458
_0815E1B8: .4byte gTrainerBattleOpponent_A
_0815E1BC: .4byte sub_815E124
thumb_func_end sub_815E160
thumb_func_start sub_815E1C0
sub_815E1C0: @ 815E1C0
push {lr}
ldr r0, _0815E1E4 @ =gUnknown_20370C2
ldrh r0, [r0]
cmp r0, 0
bne _0815E1DE
ldr r3, _0815E1E8 @ =gUnknown_20370D0
ldr r0, _0815E1EC @ =gUnknown_203F458
ldr r1, [r0]
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
ldrb r0, [r1, 0xE]
strh r0, [r3]
_0815E1DE:
pop {r0}
bx r0
.align 2, 0
_0815E1E4: .4byte gUnknown_20370C2
_0815E1E8: .4byte gUnknown_20370D0
_0815E1EC: .4byte gUnknown_203F458
thumb_func_end sub_815E1C0
thumb_func_start sub_815E1F0
sub_815E1F0: @ 815E1F0
ldr r0, _0815E210 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E214 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
movs r0, 0xF5
lsls r0, 6
adds r1, r0
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
bx lr
.align 2, 0
_0815E210: .4byte gSaveBlock1Ptr
_0815E214: .4byte 0x00003d34
thumb_func_end sub_815E1F0
thumb_func_start sub_815E218
sub_815E218: @ 815E218
push {lr}
ldr r0, _0815E260 @ =gUnknown_2036DFC
ldrh r0, [r0, 0x12]
mov r12, r0
ldr r3, _0815E264 @ =0xfffffed6
add r3, r12
ldr r0, _0815E268 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E26C @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
movs r0, 0xF5
lsls r0, 6
adds r1, r0
ldrb r1, [r1]
cmp r3, r1
bne _0815E27C
ldr r3, _0815E270 @ =0xfffffed7
add r3, r12
ldr r0, _0815E274 @ =gUnknown_203F458
ldr r1, [r0]
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
ldrb r1, [r1, 0xD]
cmp r3, r1
bgt _0815E27C
ldr r1, _0815E278 @ =gUnknown_20370D0
movs r0, 0
b _0815E280
.align 2, 0
_0815E260: .4byte gUnknown_2036DFC
_0815E264: .4byte 0xfffffed6
_0815E268: .4byte gSaveBlock1Ptr
_0815E26C: .4byte 0x00003d34
_0815E270: .4byte 0xfffffed7
_0815E274: .4byte gUnknown_203F458
_0815E278: .4byte gUnknown_20370D0
_0815E27C:
ldr r1, _0815E288 @ =gUnknown_20370D0
movs r0, 0x1
_0815E280:
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0815E288: .4byte gUnknown_20370D0
thumb_func_end sub_815E218
thumb_func_start sub_815E28C
sub_815E28C: @ 815E28C
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r4, _0815E2D0 @ =gSaveBlock1Ptr
ldr r0, [r4]
ldr r5, _0815E2D4 @ =0x00003d34
adds r1, r0, r5
ldr r0, _0815E2D8 @ =gUnknown_20370C2
ldrh r0, [r0]
str r0, [r1]
cmp r0, 0x3
bls _0815E2A8
movs r0, 0
str r0, [r1]
_0815E2A8:
bl sub_815EC0C
bl sub_815D834
cmp r0, 0
bne _0815E2E0
ldr r1, [r4]
adds r0, r1, r5
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815E2DC @ =0x00003d42
adds r1, r0
ldrb r0, [r1]
movs r2, 0x20
orrs r0, r2
b _0815E2FA
.align 2, 0
_0815E2D0: .4byte gSaveBlock1Ptr
_0815E2D4: .4byte 0x00003d34
_0815E2D8: .4byte gUnknown_20370C2
_0815E2DC: .4byte 0x00003d42
_0815E2E0:
ldr r1, [r4]
adds r0, r1, r5
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815E384 @ =0x00003d42
adds r1, r0
ldrb r2, [r1]
movs r0, 0x21
negs r0, r0
ands r0, r2
_0815E2FA:
strb r0, [r1]
ldr r6, _0815E388 @ =gSaveBlock1Ptr
ldr r2, [r6]
ldr r5, _0815E38C @ =0x00003d34
adds r0, r2, r5
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
movs r0, 0xF5
lsls r0, 6
adds r2, r0
movs r0, 0
mov r8, r0
mov r0, r8
strb r0, [r2]
ldr r0, [r6]
adds r1, r0, r5
ldr r2, [r1]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
ldr r4, _0815E390 @ =0x00003d38
adds r1, r4
adds r0, r1
bl SetVBlankCounter1Ptr
ldr r2, [r6]
adds r3, r2, r5
ldr r1, [r3]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r4, r2, r4
adds r4, r0
mov r0, r8
str r0, [r4]
ldr r1, [r3]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r3, _0815E384 @ =0x00003d42
adds r2, r3
ldrb r1, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r1
strb r0, [r2]
ldr r1, [r6]
adds r5, r1, r5
ldr r2, [r5]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
adds r1, r3
ldrb r2, [r1]
movs r0, 0x3
negs r0, r0
ands r0, r2
strb r0, [r1]
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815E384: .4byte 0x00003d42
_0815E388: .4byte gSaveBlock1Ptr
_0815E38C: .4byte 0x00003d34
_0815E390: .4byte 0x00003d38
thumb_func_end sub_815E28C
thumb_func_start sub_815E394
sub_815E394: @ 815E394
push {lr}
bl DisableVBlankCounter1
ldr r3, _0815E3F8 @ =gUnknown_20370D0
movs r0, 0
strh r0, [r3]
ldr r0, _0815E3FC @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _0815E400 @ =0x00003d34
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r0, _0815E404 @ =0x00003d42
adds r2, r0
ldrb r0, [r2]
lsls r0, 29
cmp r0, 0
bge _0815E3C2
movs r0, 0x1
strh r0, [r3]
_0815E3C2:
ldrb r2, [r2]
lsls r0, r2, 31
cmp r0, 0
beq _0815E3D6
lsls r0, r2, 30
cmp r0, 0
bge _0815E3D6
ldrh r0, [r3]
adds r0, 0x1
strh r0, [r3]
_0815E3D6:
ldr r0, _0815E3FC @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E400 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815E404 @ =0x00003d42
adds r1, r0
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0815E3F8: .4byte gUnknown_20370D0
_0815E3FC: .4byte gSaveBlock1Ptr
_0815E400: .4byte 0x00003d34
_0815E404: .4byte 0x00003d42
thumb_func_end sub_815E394
thumb_func_start sub_815E408
sub_815E408: @ 815E408
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r1, _0815E444 @ =gUnknown_847A2B4
ldr r0, _0815E448 @ =gUnknown_203F458
ldr r0, [r0]
ldrb r0, [r0, 0xF]
lsls r0, 1
adds r0, r1
ldrh r4, [r0]
ldr r0, _0815E44C @ =gSaveBlock1Ptr
mov r8, r0
ldr r2, [r0]
ldr r7, _0815E450 @ =0x00003d34
adds r0, r2, r7
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r6, _0815E454 @ =0x00003d42
adds r2, r6
ldrb r0, [r2]
lsls r0, 31
lsrs r5, r0, 31
cmp r5, 0
beq _0815E45C
ldr r1, _0815E458 @ =gUnknown_20370D0
movs r0, 0x2
b _0815E4A0
.align 2, 0
_0815E444: .4byte gUnknown_847A2B4
_0815E448: .4byte gUnknown_203F458
_0815E44C: .4byte gSaveBlock1Ptr
_0815E450: .4byte 0x00003d34
_0815E454: .4byte 0x00003d42
_0815E458: .4byte gUnknown_20370D0
_0815E45C:
adds r0, r4, 0
movs r1, 0x1
bl sub_809A084
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0815E49C
ldr r1, _0815E494 @ =gStringVar2
adds r0, r4, 0
bl sub_8099E90
mov r0, r8
ldr r1, [r0]
adds r0, r1, r7
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
adds r1, r6
ldrb r0, [r1]
movs r2, 0x1
orrs r0, r2
strb r0, [r1]
ldr r0, _0815E498 @ =gUnknown_20370D0
strh r5, [r0]
b _0815E4A2
.align 2, 0
_0815E494: .4byte gStringVar2
_0815E498: .4byte gUnknown_20370D0
_0815E49C:
ldr r1, _0815E4AC @ =gUnknown_20370D0
movs r0, 0x1
_0815E4A0:
strh r0, [r1]
_0815E4A2:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0815E4AC: .4byte gUnknown_20370D0
thumb_func_end sub_815E408
thumb_func_start sub_815E4B0
sub_815E4B0: @ 815E4B0
push {r4-r6,lr}
ldr r6, _0815E4D8 @ =gSaveBlock1Ptr
ldr r2, [r6]
ldr r1, _0815E4DC @ =0x00003d34
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r1, r0, 2
adds r0, r2, r1
ldr r3, _0815E4E0 @ =0x00003d42
adds r0, r3
ldrb r0, [r0]
lsls r0, 30
lsrs r5, r0, 31
cmp r5, 0
beq _0815E4E8
ldr r1, _0815E4E4 @ =gUnknown_20370D0
movs r0, 0x2
b _0815E534
.align 2, 0
_0815E4D8: .4byte gSaveBlock1Ptr
_0815E4DC: .4byte 0x00003d34
_0815E4E0: .4byte 0x00003d42
_0815E4E4: .4byte gUnknown_20370D0
_0815E4E8:
ldr r4, _0815E520 @ =0x00003d38
adds r0, r1, r4
adds r0, r2, r0
adds r0, 0x4
bl sub_815EDDC
ldr r3, [r6]
ldr r2, _0815E524 @ =0x00003d34
adds r1, r3, r2
ldr r2, [r1]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r4, r3, r4
adds r4, r1
ldr r4, [r4]
cmp r0, r4
bls _0815E530
adds r0, r1, r3
ldr r3, _0815E528 @ =0x00003d3c
adds r0, r3
adds r1, r4, 0
bl sub_815EDF4
ldr r0, _0815E52C @ =gUnknown_20370D0
strh r5, [r0]
b _0815E536
.align 2, 0
_0815E520: .4byte 0x00003d38
_0815E524: .4byte 0x00003d34
_0815E528: .4byte 0x00003d3c
_0815E52C: .4byte gUnknown_20370D0
_0815E530:
ldr r1, _0815E55C @ =gUnknown_20370D0
movs r0, 0x1
_0815E534:
strh r0, [r1]
_0815E536:
ldr r0, _0815E560 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E564 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r3, _0815E568 @ =0x00003d42
adds r1, r3
ldrb r0, [r1]
movs r2, 0x2
orrs r0, r2
strb r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815E55C: .4byte gUnknown_20370D0
_0815E560: .4byte gSaveBlock1Ptr
_0815E564: .4byte 0x00003d34
_0815E568: .4byte 0x00003d42
thumb_func_end sub_815E4B0
thumb_func_start sub_815E56C
sub_815E56C: @ 815E56C
push {r4,lr}
ldr r0, _0815E5A0 @ =gSaveBlock1Ptr
ldr r4, [r0]
ldr r1, _0815E5A4 @ =0x00003d34
adds r0, r4, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r3, r0, 2
adds r0, r4, r3
ldr r1, _0815E5A8 @ =0x00003d42
adds r0, r1
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
blt _0815E5BA
subs r1, 0xA
adds r0, r4, r1
adds r2, r0, r3
ldr r1, [r2]
ldr r0, _0815E5AC @ =0x00034bbe
cmp r1, r0
bls _0815E5B0
adds r0, 0x1
str r0, [r2]
b _0815E5BA
.align 2, 0
_0815E5A0: .4byte gSaveBlock1Ptr
_0815E5A4: .4byte 0x00003d34
_0815E5A8: .4byte 0x00003d42
_0815E5AC: .4byte 0x00034bbe
_0815E5B0:
ldr r1, _0815E5C0 @ =0x00003d38
adds r0, r3, r1
adds r0, r4, r0
bl SetVBlankCounter1Ptr
_0815E5BA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815E5C0: .4byte 0x00003d38
thumb_func_end sub_815E56C
thumb_func_start sub_815E5C4
sub_815E5C4: @ 815E5C4
ldr r0, _0815E5E4 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E5E8 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815E5EC @ =0x00003d42
adds r1, r0
ldrb r0, [r1]
movs r2, 0x8
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_0815E5E4: .4byte gSaveBlock1Ptr
_0815E5E8: .4byte 0x00003d34
_0815E5EC: .4byte 0x00003d42
thumb_func_end sub_815E5C4
thumb_func_start sub_815E5F0
sub_815E5F0: @ 815E5F0
push {lr}
ldr r0, _0815E620 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _0815E624 @ =0x00003d34
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r0, _0815E628 @ =0x00003d42
adds r2, r0
ldrb r1, [r2]
lsls r0, r1, 28
cmp r0, 0
bge _0815E630
movs r0, 0x9
negs r0, r0
ands r0, r1
strb r0, [r2]
ldr r1, _0815E62C @ =gUnknown_20370D0
movs r0, 0
b _0815E64C
.align 2, 0
_0815E620: .4byte gSaveBlock1Ptr
_0815E624: .4byte 0x00003d34
_0815E628: .4byte 0x00003d42
_0815E62C: .4byte gUnknown_20370D0
_0815E630:
lsls r0, r1, 27
cmp r0, 0
bge _0815E648
movs r0, 0x11
negs r0, r0
ands r0, r1
strb r0, [r2]
ldr r1, _0815E644 @ =gUnknown_20370D0
movs r0, 0x1
b _0815E64C
.align 2, 0
_0815E644: .4byte gUnknown_20370D0
_0815E648:
ldr r1, _0815E654 @ =gUnknown_20370D0
movs r0, 0x2
_0815E64C:
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0815E654: .4byte gUnknown_20370D0
thumb_func_end sub_815E5F0
thumb_func_start sub_815E658
sub_815E658: @ 815E658
push {r4-r6,lr}
ldr r4, _0815E700 @ =gSaveBlock1Ptr
ldr r2, [r4]
ldr r6, _0815E704 @ =0x00003d34
adds r0, r2, r6
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
ldr r5, _0815E708 @ =0x00003d38
adds r2, r5
adds r2, r0
ldr r1, [r2]
ldr r0, _0815E70C @ =0x00034bbe
cmp r1, r0
bls _0815E690
bl DisableVBlankCounter1
ldr r1, [r4]
adds r0, r1, r6
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r5
adds r1, r0
ldr r0, _0815E710 @ =0x00034bbf
str r0, [r1]
_0815E690:
ldr r1, [r4]
adds r0, r1, r6
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r5
adds r1, r0
ldr r4, [r1]
movs r5, 0xE1
lsls r5, 4
adds r0, r4, 0
adds r1, r5, 0
bl __divsi3
adds r6, r0, 0
adds r0, r4, 0
adds r1, r5, 0
bl __modsi3
adds r4, r0, 0
movs r1, 0x3C
bl __divsi3
adds r5, r0, 0
adds r0, r4, 0
movs r1, 0x3C
bl __modsi3
movs r1, 0xA8
muls r0, r1
movs r1, 0x64
bl __divsi3
adds r4, r0, 0
ldr r0, _0815E714 @ =gStringVar1
adds r1, r6, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0815E718 @ =gStringVar2
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0815E71C @ =gStringVar3
adds r1, r4, 0
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0815E700: .4byte gSaveBlock1Ptr
_0815E704: .4byte 0x00003d34
_0815E708: .4byte 0x00003d38
_0815E70C: .4byte 0x00034bbe
_0815E710: .4byte 0x00034bbf
_0815E714: .4byte gStringVar1
_0815E718: .4byte gStringVar2
_0815E71C: .4byte gStringVar3
thumb_func_end sub_815E658
thumb_func_start sub_815E720
sub_815E720: @ 815E720
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
bl sub_815EC0C
ldr r0, _0815E85C @ =gUnknown_847A218
bl AddWindow
lsls r0, 24
lsrs r7, r0, 24
bl sub_80F6E9C
adds r0, r7, 0
movs r1, 0
bl sub_80F6F1C
ldr r2, _0815E860 @ =gUnknown_83FE982
movs r1, 0
str r1, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
str r1, [sp, 0x8]
adds r0, r7, 0
movs r1, 0x2
movs r3, 0x4A
bl PrintTextOnWindow
movs r0, 0
mov r8, r0
movs r1, 0xB8
lsls r1, 22
mov r10, r1
movs r0, 0x90
lsls r0, 22
mov r9, r0
_0815E76C:
ldr r0, _0815E864 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r1, _0815E868 @ =0x00003d34
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r1, _0815E86C @ =0x00003d3c
adds r0, r1
bl sub_815EDDC
adds r4, r0, 0
movs r5, 0xE1
lsls r5, 4
adds r1, r5, 0
bl __divsi3
adds r6, r0, 0
adds r0, r4, 0
adds r1, r5, 0
bl __modsi3
adds r4, r0, 0
movs r1, 0x3C
bl __divsi3
adds r5, r0, 0
adds r0, r4, 0
movs r1, 0x3C
bl __modsi3
movs r1, 0xA8
muls r0, r1
movs r1, 0x64
bl __divsi3
adds r4, r0, 0
ldr r0, _0815E870 @ =gStringVar1
adds r1, r6, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0815E874 @ =gStringVar2
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0815E878 @ =gStringVar3
adds r1, r4, 0
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0815E87C @ =gStringVar4
ldr r1, _0815E880 @ =gUnknown_83FE998
bl StringExpandPlaceholders
ldr r1, _0815E884 @ =gUnknown_83FE9C4
mov r0, r8
subs r0, 0x1
lsls r0, 2
adds r0, r1
ldr r2, [r0]
mov r1, r9
lsrs r0, r1, 24
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
adds r0, r7, 0
movs r1, 0x2
movs r3, 0x18
bl PrintTextOnWindow
mov r1, r10
lsrs r0, r1, 24
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
adds r0, r7, 0
movs r1, 0x2
ldr r2, _0815E87C @ =gStringVar4
movs r3, 0x60
bl PrintTextOnWindow
movs r0, 0xA0
lsls r0, 21
add r10, r0
add r9, r0
movs r1, 0x1
add r8, r1
mov r0, r8
cmp r0, 0x3
ble _0815E76C
adds r0, r7, 0
bl PutWindowTilemap
adds r0, r7, 0
movs r1, 0x3
bl CopyWindowToVram
ldr r0, _0815E888 @ =0x00004001
adds r1, r7, 0
bl VarSet
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0815E85C: .4byte gUnknown_847A218
_0815E860: .4byte gUnknown_83FE982
_0815E864: .4byte gSaveBlock1Ptr
_0815E868: .4byte 0x00003d34
_0815E86C: .4byte 0x00003d3c
_0815E870: .4byte gStringVar1
_0815E874: .4byte gStringVar2
_0815E878: .4byte gStringVar3
_0815E87C: .4byte gStringVar4
_0815E880: .4byte gUnknown_83FE998
_0815E884: .4byte gUnknown_83FE9C4
_0815E888: .4byte 0x00004001
thumb_func_end sub_815E720
thumb_func_start sub_815E88C
sub_815E88C: @ 815E88C
push {r4,lr}
ldr r0, _0815E8B0 @ =0x00004001
bl VarGet
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_810F4D8
adds r0, r4, 0
bl RemoveWindow
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815E8B0: .4byte 0x00004001
thumb_func_end sub_815E88C
thumb_func_start sub_815E8B4
sub_815E8B4: @ 815E8B4
push {r4,lr}
ldr r4, _0815E8C8 @ =gUnknown_20370D0
bl GetMonsStateToDoubles
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815E8C8: .4byte gUnknown_20370D0
thumb_func_end sub_815E8B4
thumb_func_start sub_815E8CC
sub_815E8CC: @ 815E8CC
push {lr}
ldr r0, _0815E8EC @ =gUnknown_203F458
ldr r1, [r0]
ldrb r0, [r1, 0x4]
ldrb r2, [r1, 0xD]
cmp r0, r2
beq _0815E8F8
ldr r0, _0815E8F0 @ =gStringVar1
ldrb r1, [r1, 0x4]
movs r2, 0
movs r3, 0x1
bl ConvertIntToDecimalStringN
ldr r1, _0815E8F4 @ =gUnknown_20370D0
movs r0, 0x1
b _0815E8FC
.align 2, 0
_0815E8EC: .4byte gUnknown_203F458
_0815E8F0: .4byte gStringVar1
_0815E8F4: .4byte gUnknown_20370D0
_0815E8F8:
ldr r1, _0815E904 @ =gUnknown_20370D0
movs r0, 0
_0815E8FC:
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_0815E904: .4byte gUnknown_20370D0
thumb_func_end sub_815E8CC
thumb_func_start sub_815E908
sub_815E908: @ 815E908
push {lr}
ldr r0, _0815E928 @ =gUnknown_2036DFC
ldrh r1, [r0, 0x12]
ldr r0, _0815E92C @ =0x00000129
cmp r1, r0
bne _0815E938
ldr r0, _0815E930 @ =0x00004082
bl VarGet
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
bne _0815E938
ldr r0, _0815E934 @ =gUnknown_20370D0
strh r1, [r0]
b _0815E93E
.align 2, 0
_0815E928: .4byte gUnknown_2036DFC
_0815E92C: .4byte 0x00000129
_0815E930: .4byte 0x00004082
_0815E934: .4byte gUnknown_20370D0
_0815E938:
ldr r1, _0815E944 @ =gUnknown_20370D0
movs r0, 0
strh r0, [r1]
_0815E93E:
pop {r0}
bx r0
.align 2, 0
_0815E944: .4byte gUnknown_20370D0
thumb_func_end sub_815E908
thumb_func_start sub_815E948
sub_815E948: @ 815E948
push {r4,lr}
ldr r0, _0815E97C @ =0x00004001
bl VarGet
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _0815E980 @ =gUnknown_203F458
ldr r3, [r0]
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r2
lsls r1, 3
ldrb r2, [r3]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r1, r0
adds r3, r1
ldrb r1, [r3, 0x1B]
movs r3, 0
ldr r2, _0815E984 @ =gUnknown_847A074
ldr r0, _0815E988 @ =gUnknown_825393E
adds r1, r0
b _0815E994
.align 2, 0
_0815E97C: .4byte 0x00004001
_0815E980: .4byte gUnknown_203F458
_0815E984: .4byte gUnknown_847A074
_0815E988: .4byte gUnknown_825393E
_0815E98C:
adds r2, 0x4
adds r3, 0x1
cmp r3, 0x68
bhi _0815E99C
_0815E994:
ldrb r0, [r2]
ldrb r4, [r1]
cmp r0, r4
bne _0815E98C
_0815E99C:
cmp r3, 0x69
beq _0815E9B0
ldr r1, _0815E9AC @ =gUnknown_847A074
lsls r0, r3, 2
adds r0, r1
ldrb r2, [r0, 0x1]
b _0815E9B2
.align 2, 0
_0815E9AC: .4byte gUnknown_847A074
_0815E9B0:
movs r2, 0
_0815E9B2:
ldr r0, _0815E9C4 @ =gUnknown_847A2D2
lsls r1, r2, 1
adds r1, r0
ldrh r0, [r1]
bl PlayNewMapMusic
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815E9C4: .4byte gUnknown_847A2D2
thumb_func_end sub_815E948
thumb_func_start sub_815E9C8
sub_815E9C8: @ 815E9C8
ldr r3, _0815E9EC @ =gUnknown_20370D0
ldr r0, _0815E9F0 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815E9F4 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815E9F8 @ =0x00003d42
adds r1, r0
ldrb r0, [r1]
lsls r0, 29
lsrs r0, 31
strh r0, [r3]
bx lr
.align 2, 0
_0815E9EC: .4byte gUnknown_20370D0
_0815E9F0: .4byte gSaveBlock1Ptr
_0815E9F4: .4byte 0x00003d34
_0815E9F8: .4byte 0x00003d42
thumb_func_end sub_815E9C8
thumb_func_start sub_815E9FC
sub_815E9FC: @ 815E9FC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
ldr r0, _0815EABC @ =0x00004001
bl VarGet
lsls r0, 16
lsrs r4, r0, 16
bl sub_815EBB8
mov r9, r0
ldr r0, _0815EAC0 @ =gSaveBlock1Ptr
ldr r1, [r0]
ldr r2, _0815EAC4 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
movs r0, 0xF5
lsls r0, 6
adds r1, r0
ldrb r5, [r1]
bl ZeroEnemyPartyMons
ldr r1, _0815EAC8 @ =gUnknown_203F458
mov r10, r1
ldr r6, [r1]
ldrb r1, [r6]
lsls r0, r1, 5
subs r0, r1
lsls r7, r0, 5
adds r0, r6, r7
ldrb r0, [r0, 0xE]
cmp r0, 0x1
beq _0815EAD4
cmp r0, 0x1
ble _0815EA56
cmp r0, 0x2
bne _0815EA56
b _0815EB58
_0815EA56:
movs r6, 0
lsls r5, 1
str r5, [sp]
lsls r0, r4, 2
mov r5, r10
adds r0, r4
lsls r0, 3
adds r0, r4
lsls r7, r0, 3
adds r2, r7, 0x4
mov r8, r2
_0815EA6C:
ldr r1, _0815EACC @ =gUnknown_847A2EE
ldr r2, [sp]
adds r0, r6, r2
adds r0, r1
ldrb r2, [r0]
ldr r3, [r5]
movs r0, 0x2C
adds r4, r2, 0
muls r4, r0
adds r2, r4, r7
ldrb r1, [r3]
lsls r0, r1, 5
subs r0, r1
lsls r0, 5
adds r2, r0
adds r3, r2
adds r3, 0x5C
mov r0, r9
strb r0, [r3]
movs r0, 0x64
muls r0, r6
ldr r1, _0815EAD0 @ =gEnemyParty
adds r0, r1
ldr r1, [r5]
ldrb r3, [r1]
lsls r2, r3, 5
subs r2, r3
lsls r2, 5
adds r2, 0xC
adds r1, r2
add r1, r8
adds r4, 0x40
adds r1, r4
bl sub_803E0A4
adds r6, 0x1
cmp r6, 0x1
ble _0815EA6C
b _0815EB9E
.align 2, 0
_0815EABC: .4byte 0x00004001
_0815EAC0: .4byte gSaveBlock1Ptr
_0815EAC4: .4byte 0x00003d34
_0815EAC8: .4byte gUnknown_203F458
_0815EACC: .4byte gUnknown_847A2EE
_0815EAD0: .4byte gEnemyParty
_0815EAD4:
ldr r4, _0815EB50 @ =gUnknown_847A2FE
lsls r5, 1
adds r0, r5, r4
ldrb r2, [r0]
movs r1, 0x2C
mov r8, r1
mov r3, r8
muls r3, r2
adds r0, r3, r7
adds r0, r6, r0
adds r0, 0x5C
mov r2, r9
strb r2, [r0]
ldr r6, _0815EB54 @ =gEnemyParty
mov r0, r10
ldr r1, [r0]
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r0, 0xC
adds r1, r0
adds r3, 0x44
adds r1, r3
adds r0, r6, 0
bl sub_803E0A4
adds r4, 0x1
adds r5, r4
ldrb r2, [r5]
mov r0, r10
ldr r1, [r0]
mov r3, r8
muls r3, r2
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r0, r3, r0
adds r1, r0
movs r2, 0xD2
lsls r2, 1
adds r1, r2
mov r0, r9
strb r0, [r1]
adds r6, 0x64
mov r2, r10
ldr r1, [r2]
ldrb r2, [r1]
lsls r0, r2, 5
subs r0, r2
lsls r0, 5
adds r0, 0xC
adds r1, r0
movs r0, 0xC6
lsls r0, 1
adds r3, r0
adds r1, r3
adds r0, r6, 0
bl sub_803E0A4
b _0815EB9E
.align 2, 0
_0815EB50: .4byte gUnknown_847A2FE
_0815EB54: .4byte gEnemyParty
_0815EB58:
ldr r1, _0815EBB0 @ =gUnknown_847A30E
lsls r0, r5, 1
adds r0, r5
adds r0, r4, r0
adds r0, r1
ldrb r2, [r0]
movs r0, 0x2C
adds r5, r2, 0
muls r5, r0
lsls r3, r4, 2
adds r3, r4
lsls r3, 3
adds r3, r4
lsls r3, 3
adds r0, r5, r3
adds r0, r7
adds r0, r6, r0
adds r0, 0x5C
mov r1, r9
strb r1, [r0]
ldr r0, _0815EBB4 @ =gEnemyParty
mov r2, r10
ldr r1, [r2]
ldrb r4, [r1]
lsls r2, r4, 5
subs r2, r4
lsls r2, 5
adds r2, 0xC
adds r1, r2
adds r3, 0x4
adds r1, r3
adds r5, 0x40
adds r1, r5
bl sub_803E0A4
_0815EB9E:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0815EBB0: .4byte gUnknown_847A30E
_0815EBB4: .4byte gEnemyParty
thumb_func_end sub_815E9FC
thumb_func_start sub_815EBB8
sub_815EBB8: @ 815EBB8
push {r4-r6,lr}
movs r6, 0
movs r5, 0
_0815EBBE:
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _0815EC08 @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
movs r1, 0xB
movs r2, 0
bl GetMonData
cmp r0, 0
beq _0815EBF8
adds r0, r4, 0
movs r1, 0x41
movs r2, 0
bl GetMonData
movs r1, 0xCE
lsls r1, 1
cmp r0, r1
beq _0815EBF8
adds r0, r4, 0
movs r1, 0x38
movs r2, 0
bl GetMonData
cmp r0, r6
ble _0815EBF8
adds r6, r0, 0
_0815EBF8:
adds r5, 0x1
cmp r5, 0x5
ble _0815EBBE
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_0815EC08: .4byte gPlayerParty
thumb_func_end sub_815EBB8
thumb_func_start sub_815EC0C
sub_815EC0C: @ 815EC0C
push {r4,lr}
ldr r4, _0815EC70 @ =gSaveBlock1Ptr
ldr r2, [r4]
ldr r1, _0815EC74 @ =0x00003d34
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0
ldr r0, _0815EC78 @ =0x00003d41
adds r2, r0
ldr r0, _0815EC7C @ =gUnknown_203F458
ldr r0, [r0]
ldrb r1, [r0, 0x5]
ldrb r0, [r2]
cmp r0, r1
beq _0815EC6A
strb r1, [r2]
ldr r2, [r4]
ldr r1, _0815EC74 @ =0x00003d34
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r2, _0815EC80 @ =0x00003d3c
adds r0, r2
ldr r1, _0815EC84 @ =0x00034bbf
bl sub_815EDF4
ldr r1, [r4]
ldr r2, _0815EC74 @ =0x00003d34
adds r0, r1, r2
ldr r2, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r1, r0
ldr r0, _0815EC88 @ =0x00003d42
adds r1, r0
ldrb r2, [r1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1]
_0815EC6A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0815EC70: .4byte gSaveBlock1Ptr
_0815EC74: .4byte 0x00003d34
_0815EC78: .4byte 0x00003d41
_0815EC7C: .4byte gUnknown_203F458
_0815EC80: .4byte 0x00003d3c
_0815EC84: .4byte 0x00034bbf
_0815EC88: .4byte 0x00003d42
thumb_func_end sub_815EC0C
thumb_func_start sub_815EC8C
sub_815EC8C: @ 815EC8C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
movs r0, 0
mov r8, r0
bl sub_815DC8C
movs r0, 0xD8
str r0, [sp]
movs r0, 0x90
str r0, [sp, 0x4]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
bl sub_815EC0C
ldr r4, _0815EDB4 @ =gUnknown_847A22C
str r4, [sp]
mov r0, r8
str r0, [sp, 0x4]
ldr r0, _0815EDB8 @ =gUnknown_83FE982
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x2
movs r2, 0x4A
movs r3, 0
bl box_print
movs r7, 0
movs r0, 0x90
lsls r0, 22
mov r10, r0
ldr r0, _0815EDBC @ =0x00003d38
mov r9, r0
_0815ECDC:
ldr r0, _0815EDC0 @ =gSaveBlock1Ptr
ldr r0, [r0]
add r0, r9
adds r0, 0x4
bl sub_815EDDC
adds r4, r0, 0
movs r5, 0xE1
lsls r5, 4
adds r1, r5, 0
bl __divsi3
adds r6, r0, 0
adds r0, r4, 0
adds r1, r5, 0
bl __modsi3
adds r4, r0, 0
movs r1, 0x3C
bl __divsi3
adds r5, r0, 0
adds r0, r4, 0
movs r1, 0x3C
bl __modsi3
movs r1, 0xA8
muls r0, r1
movs r1, 0x64
bl __divsi3
adds r4, r0, 0
ldr r0, _0815EDC4 @ =gStringVar1
adds r1, r6, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0815EDC8 @ =gStringVar2
adds r1, r5, 0
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0815EDCC @ =gStringVar3
adds r1, r4, 0
movs r2, 0x2
movs r3, 0x2
bl ConvertIntToDecimalStringN
ldr r0, _0815EDD0 @ =gStringVar4
ldr r1, _0815EDD4 @ =gUnknown_83FE998
bl StringExpandPlaceholders
lsls r1, r7, 2
mov r0, r10
lsrs r4, r0, 24
ldr r0, _0815EDB4 @ =gUnknown_847A22C
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
ldr r0, _0815EDD8 @ =gUnknown_83FE9C4
adds r1, r0
ldr r0, [r1]
str r0, [sp, 0x8]
mov r0, r8
movs r1, 0x2
movs r2, 0x18
adds r3, r4, 0
bl box_print
ldr r0, _0815EDB4 @ =gUnknown_847A22C
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
ldr r0, _0815EDD0 @ =gStringVar4
str r0, [sp, 0x8]
mov r0, r8
movs r1, 0x2
movs r2, 0x60
adds r3, r4, 0
bl box_print
movs r0, 0xA0
lsls r0, 21
add r10, r0
movs r0, 0xC
add r9, r0
adds r7, 0x1
cmp r7, 0x3
ble _0815ECDC
mov r0, r8
bl PutWindowTilemap
mov r0, r8
movs r1, 0x3
bl CopyWindowToVram
bl sub_815DD2C
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0815EDB4: .4byte gUnknown_847A22C
_0815EDB8: .4byte gUnknown_83FE982
_0815EDBC: .4byte 0x00003d38
_0815EDC0: .4byte gSaveBlock1Ptr
_0815EDC4: .4byte gStringVar1
_0815EDC8: .4byte gStringVar2
_0815EDCC: .4byte gStringVar3
_0815EDD0: .4byte gStringVar4
_0815EDD4: .4byte gUnknown_83FE998
_0815EDD8: .4byte gUnknown_83FE9C4
thumb_func_end sub_815EC8C
.align 2, 0 @ Don't pad with nop.