mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-06 22:28:44 -05:00
921 lines
17 KiB
ArmAsm
921 lines
17 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_815C27C
|
|
sub_815C27C: @ 815C27C
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_815C8C8
|
|
movs r7, 0x2
|
|
ldr r4, _0815C2BC @ =gUnknown_3003F84
|
|
_0815C28C:
|
|
bl sub_815C898
|
|
ldr r0, _0815C2C0 @ =gUnknown_3002062
|
|
ldrh r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0815C29E
|
|
strb r7, [r4]
|
|
_0815C29E:
|
|
movs r0, 0x1
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
movs r3, 0
|
|
bl sub_815C498
|
|
adds r1, r0, 0
|
|
ldr r0, _0815C2C4 @ =gUnknown_3002064
|
|
strh r1, [r0]
|
|
movs r0, 0x13
|
|
ands r0, r1
|
|
cmp r0, 0x10
|
|
bne _0815C2C8
|
|
movs r4, 0
|
|
b _0815C2EA
|
|
.align 2, 0
|
|
_0815C2BC: .4byte gUnknown_3003F84
|
|
_0815C2C0: .4byte gUnknown_3002062
|
|
_0815C2C4: .4byte gUnknown_3002064
|
|
_0815C2C8:
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0815C2D4
|
|
movs r4, 0x1
|
|
b _0815C2EA
|
|
_0815C2D4:
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
bne _0815C2E8
|
|
strb r0, [r4]
|
|
bl VBlankIntrWait
|
|
b _0815C28C
|
|
_0815C2E8:
|
|
movs r4, 0x2
|
|
_0815C2EA:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r1, _0815C308 @ =gUnknown_3002048
|
|
ldr r2, _0815C30C @ =0x05000006
|
|
mov r0, sp
|
|
bl CpuSet
|
|
bl sub_815C91C
|
|
adds r0, r4, 0
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0815C308: .4byte gUnknown_3002048
|
|
_0815C30C: .4byte 0x05000006
|
|
thumb_func_end sub_815C27C
|
|
|
|
thumb_func_start sub_815C310
|
|
sub_815C310: @ 815C310
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
bl sub_815C8C8
|
|
movs r6, 0x2
|
|
ldr r4, _0815C350 @ =gUnknown_3003F84
|
|
_0815C31E:
|
|
bl sub_815C898
|
|
ldr r0, _0815C354 @ =gUnknown_3002062
|
|
ldrh r1, [r0]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0815C330
|
|
strb r6, [r4]
|
|
_0815C330:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
adds r3, r5, 0
|
|
bl sub_815C498
|
|
adds r1, r0, 0
|
|
ldr r0, _0815C358 @ =gUnknown_3002064
|
|
strh r1, [r0]
|
|
movs r0, 0x13
|
|
ands r0, r1
|
|
cmp r0, 0x10
|
|
bne _0815C35C
|
|
movs r4, 0
|
|
b _0815C37E
|
|
.align 2, 0
|
|
_0815C350: .4byte gUnknown_3003F84
|
|
_0815C354: .4byte gUnknown_3002062
|
|
_0815C358: .4byte gUnknown_3002064
|
|
_0815C35C:
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0815C368
|
|
movs r4, 0x1
|
|
b _0815C37E
|
|
_0815C368:
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
bne _0815C37C
|
|
strb r0, [r4]
|
|
bl VBlankIntrWait
|
|
b _0815C31E
|
|
_0815C37C:
|
|
movs r4, 0x2
|
|
_0815C37E:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r1, _0815C39C @ =gUnknown_3002048
|
|
ldr r2, _0815C3A0 @ =0x05000006
|
|
mov r0, sp
|
|
bl CpuSet
|
|
bl sub_815C91C
|
|
adds r0, r4, 0
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0815C39C: .4byte gUnknown_3002048
|
|
_0815C3A0: .4byte 0x05000006
|
|
thumb_func_end sub_815C310
|
|
|
|
thumb_func_start sub_815C3A4
|
|
sub_815C3A4: @ 815C3A4
|
|
push {r4,lr}
|
|
ldr r4, _0815C3D0 @ =0x04000208
|
|
movs r3, 0
|
|
strh r3, [r4]
|
|
ldr r2, _0815C3D4 @ =0x04000200
|
|
ldrh r1, [r2]
|
|
ldr r0, _0815C3D8 @ =0x0000ff3f
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
movs r0, 0x1
|
|
strh r0, [r4]
|
|
ldr r0, _0815C3DC @ =0x04000128
|
|
strh r3, [r0]
|
|
subs r0, 0x1A
|
|
strh r3, [r0]
|
|
ldr r1, _0815C3E0 @ =0x04000202
|
|
movs r0, 0xC0
|
|
strh r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815C3D0: .4byte 0x04000208
|
|
_0815C3D4: .4byte 0x04000200
|
|
_0815C3D8: .4byte 0x0000ff3f
|
|
_0815C3DC: .4byte 0x04000128
|
|
_0815C3E0: .4byte 0x04000202
|
|
thumb_func_end sub_815C3A4
|
|
|
|
thumb_func_start sub_815C3E4
|
|
sub_815C3E4: @ 815C3E4
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
ldr r5, _0815C43C @ =0x04000208
|
|
movs r4, 0
|
|
strh r4, [r5]
|
|
ldr r3, _0815C440 @ =0x04000200
|
|
ldrh r1, [r3]
|
|
ldr r0, _0815C444 @ =0x0000ff3f
|
|
ands r0, r1
|
|
strh r0, [r3]
|
|
movs r6, 0x1
|
|
strh r6, [r5]
|
|
ldr r0, _0815C448 @ =0x04000134
|
|
strh r4, [r0]
|
|
ldr r2, _0815C44C @ =0x04000128
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
adds r0, r1, 0
|
|
strh r0, [r2]
|
|
ldrh r0, [r2]
|
|
ldr r7, _0815C450 @ =0x00004003
|
|
adds r1, r7, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
strh r4, [r5]
|
|
ldrh r0, [r3]
|
|
movs r1, 0x80
|
|
orrs r0, r1
|
|
strh r0, [r3]
|
|
strh r6, [r5]
|
|
ldr r1, _0815C454 @ =gUnknown_3002048
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0
|
|
bne _0815C432
|
|
str r0, [sp]
|
|
ldr r2, _0815C458 @ =0x05000006
|
|
mov r0, sp
|
|
bl CpuSet
|
|
_0815C432:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815C43C: .4byte 0x04000208
|
|
_0815C440: .4byte 0x04000200
|
|
_0815C444: .4byte 0x0000ff3f
|
|
_0815C448: .4byte 0x04000134
|
|
_0815C44C: .4byte 0x04000128
|
|
_0815C450: .4byte 0x00004003
|
|
_0815C454: .4byte gUnknown_3002048
|
|
_0815C458: .4byte 0x05000006
|
|
thumb_func_end sub_815C3E4
|
|
|
|
thumb_func_start sub_815C45C
|
|
sub_815C45C: @ 815C45C
|
|
ldr r0, _0815C484 @ =0x04000134
|
|
movs r3, 0
|
|
strh r3, [r0]
|
|
ldr r2, _0815C488 @ =0x04000128
|
|
movs r1, 0xA0
|
|
lsls r1, 7
|
|
adds r0, r1, 0
|
|
strh r0, [r2]
|
|
ldrh r0, [r2]
|
|
movs r1, 0x8
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _0815C48C @ =gUnknown_3003F84
|
|
strb r3, [r0]
|
|
ldr r0, _0815C490 @ =gUnknown_3002066
|
|
strh r3, [r0]
|
|
ldr r1, _0815C494 @ =gUnknown_3002068
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0815C484: .4byte 0x04000134
|
|
_0815C488: .4byte 0x04000128
|
|
_0815C48C: .4byte gUnknown_3003F84
|
|
_0815C490: .4byte gUnknown_3002066
|
|
_0815C494: .4byte gUnknown_3002068
|
|
thumb_func_end sub_815C45C
|
|
|
|
thumb_func_start sub_815C498
|
|
sub_815C498: @ 815C498
|
|
push {r4-r6,lr}
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _0815C4B8 @ =gUnknown_3002048
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x6
|
|
bls _0815C4AE
|
|
b _0815C5F4
|
|
_0815C4AE:
|
|
lsls r0, 2
|
|
ldr r1, _0815C4BC @ =_0815C4C0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0815C4B8: .4byte gUnknown_3002048
|
|
_0815C4BC: .4byte _0815C4C0
|
|
.align 2, 0
|
|
_0815C4C0:
|
|
.4byte _0815C4DC
|
|
.4byte _0815C4F0
|
|
.4byte _0815C510
|
|
.4byte _0815C524
|
|
.4byte _0815C59C
|
|
.4byte _0815C5AC
|
|
.4byte _0815C5E4
|
|
_0815C4DC:
|
|
bl sub_815C3E4
|
|
ldr r1, _0815C4EC @ =gUnknown_3002048
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x2]
|
|
strb r0, [r1, 0x1]
|
|
b _0815C5F4
|
|
.align 2, 0
|
|
_0815C4EC: .4byte gUnknown_3002048
|
|
_0815C4F0:
|
|
adds r0, r2, 0
|
|
bl sub_815C610
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
beq _0815C500
|
|
bl sub_815C864
|
|
_0815C500:
|
|
ldr r0, _0815C50C @ =gUnknown_3003F84
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
beq _0815C50A
|
|
b _0815C5F4
|
|
_0815C50A:
|
|
b _0815C52C
|
|
.align 2, 0
|
|
_0815C50C: .4byte gUnknown_3003F84
|
|
_0815C510:
|
|
bl sub_815C45C
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_815C644
|
|
ldr r1, _0815C538 @ =gUnknown_3002048
|
|
movs r0, 0x3
|
|
strb r0, [r1, 0x1]
|
|
_0815C524:
|
|
ldr r0, _0815C53C @ =gUnknown_3003F84
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _0815C540
|
|
_0815C52C:
|
|
ldr r1, _0815C538 @ =gUnknown_3002048
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x6
|
|
strb r0, [r1, 0x1]
|
|
b _0815C5F4
|
|
.align 2, 0
|
|
_0815C538: .4byte gUnknown_3002048
|
|
_0815C53C: .4byte gUnknown_3003F84
|
|
_0815C540:
|
|
ldr r2, _0815C580 @ =gUnknown_3002066
|
|
ldrh r0, [r2]
|
|
adds r0, 0x1
|
|
strh r0, [r2]
|
|
ldr r1, _0815C584 @ =gUnknown_3002068
|
|
ldr r0, [r1]
|
|
adds r3, r0, 0x1
|
|
str r3, [r1]
|
|
ldr r1, _0815C588 @ =gUnknown_3002048
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0815C564
|
|
cmp r3, 0x3C
|
|
bls _0815C564
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x4]
|
|
movs r0, 0x6
|
|
strb r0, [r1, 0x1]
|
|
_0815C564:
|
|
ldr r4, _0815C588 @ =gUnknown_3002048
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x2
|
|
beq _0815C5F4
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0815C58C
|
|
ldrh r0, [r2]
|
|
cmp r0, 0x2
|
|
bls _0815C58C
|
|
bl sub_815C864
|
|
movs r0, 0x2
|
|
b _0815C5F2
|
|
.align 2, 0
|
|
_0815C580: .4byte gUnknown_3002066
|
|
_0815C584: .4byte gUnknown_3002068
|
|
_0815C588: .4byte gUnknown_3002048
|
|
_0815C58C:
|
|
bl sub_815C864
|
|
ldr r1, _0815C598 @ =gUnknown_3002048
|
|
movs r0, 0x2
|
|
strb r0, [r1, 0x2]
|
|
b _0815C5F4
|
|
.align 2, 0
|
|
_0815C598: .4byte gUnknown_3002048
|
|
_0815C59C:
|
|
bl sub_815C3E4
|
|
ldr r1, _0815C5A8 @ =gUnknown_3002048
|
|
movs r0, 0x5
|
|
strb r0, [r1, 0x1]
|
|
b _0815C5F4
|
|
.align 2, 0
|
|
_0815C5A8: .4byte gUnknown_3002048
|
|
_0815C5AC:
|
|
ldr r0, _0815C5DC @ =gUnknown_3002048
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0815C5C0
|
|
ldr r0, _0815C5E0 @ =gUnknown_3002066
|
|
ldrh r0, [r0]
|
|
cmp r0, 0x2
|
|
bls _0815C5C0
|
|
bl sub_815C864
|
|
_0815C5C0:
|
|
ldr r1, _0815C5E0 @ =gUnknown_3002066
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x3C
|
|
bls _0815C5F4
|
|
ldr r0, _0815C5DC @ =gUnknown_3002048
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x4]
|
|
movs r1, 0x6
|
|
strb r1, [r0, 0x1]
|
|
b _0815C5F4
|
|
.align 2, 0
|
|
_0815C5DC: .4byte gUnknown_3002048
|
|
_0815C5E0: .4byte gUnknown_3002066
|
|
_0815C5E4:
|
|
ldr r4, _0815C60C @ =gUnknown_3002048
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
beq _0815C5F4
|
|
bl sub_815C3A4
|
|
movs r0, 0
|
|
_0815C5F2:
|
|
strb r0, [r4, 0x2]
|
|
_0815C5F4:
|
|
ldr r2, _0815C60C @ =gUnknown_3002048
|
|
ldrb r0, [r2, 0x2]
|
|
ldrb r1, [r2, 0x4]
|
|
lsls r1, 2
|
|
orrs r0, r1
|
|
ldrb r1, [r2, 0x3]
|
|
lsls r1, 4
|
|
orrs r0, r1
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0815C60C: .4byte gUnknown_3002048
|
|
thumb_func_end sub_815C498
|
|
|
|
thumb_func_start sub_815C610
|
|
sub_815C610: @ 815C610
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
ldr r0, _0815C62C @ =0x04000128
|
|
ldr r0, [r0]
|
|
movs r1, 0xC
|
|
ands r0, r1
|
|
cmp r0, 0x8
|
|
bne _0815C634
|
|
cmp r2, 0
|
|
beq _0815C634
|
|
ldr r1, _0815C630 @ =gUnknown_3002048
|
|
movs r0, 0x1
|
|
b _0815C638
|
|
.align 2, 0
|
|
_0815C62C: .4byte 0x04000128
|
|
_0815C630: .4byte gUnknown_3002048
|
|
_0815C634:
|
|
ldr r1, _0815C640 @ =gUnknown_3002048
|
|
movs r0, 0
|
|
_0815C638:
|
|
strb r0, [r1]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0815C640: .4byte gUnknown_3002048
|
|
thumb_func_end sub_815C610
|
|
|
|
thumb_func_start sub_815C644
|
|
sub_815C644: @ 815C644
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r3, _0815C670 @ =gUnknown_3002048
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _0815C67C
|
|
ldr r2, _0815C674 @ =0x04000128
|
|
ldrh r0, [r2]
|
|
movs r1, 0x1
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
str r5, [r3, 0x8]
|
|
ldr r0, _0815C678 @ =0x04000120
|
|
str r4, [r0]
|
|
lsrs r0, r4, 2
|
|
adds r0, 0x1
|
|
str r0, [r3, 0x10]
|
|
bl sub_815C690
|
|
b _0815C684
|
|
.align 2, 0
|
|
_0815C670: .4byte gUnknown_3002048
|
|
_0815C674: .4byte 0x04000128
|
|
_0815C678: .4byte 0x04000120
|
|
_0815C67C:
|
|
ldr r1, _0815C68C @ =0x04000128
|
|
ldrh r0, [r1]
|
|
strh r0, [r1]
|
|
str r2, [r3, 0x8]
|
|
_0815C684:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815C68C: .4byte 0x04000128
|
|
thumb_func_end sub_815C644
|
|
|
|
thumb_func_start sub_815C690
|
|
sub_815C690: @ 815C690
|
|
ldr r1, _0815C6B4 @ =0x0400010c
|
|
ldr r2, _0815C6B8 @ =0x0000fda7
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0815C6BC @ =0x0400010e
|
|
movs r2, 0x40
|
|
strh r2, [r0]
|
|
ldr r3, _0815C6C0 @ =0x04000208
|
|
movs r0, 0
|
|
strh r0, [r3]
|
|
adds r1, 0xF4
|
|
ldrh r0, [r1]
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
strh r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0815C6B4: .4byte 0x0400010c
|
|
_0815C6B8: .4byte 0x0000fda7
|
|
_0815C6BC: .4byte 0x0400010e
|
|
_0815C6C0: .4byte 0x04000208
|
|
thumb_func_end sub_815C690
|
|
|
|
thumb_func_start sub_815C6C4
|
|
sub_815C6C4: @ 815C6C4
|
|
push {lr}
|
|
bl sub_815C874
|
|
bl sub_815C864
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_815C6C4
|
|
|
|
thumb_func_start sub_815C6D4
|
|
sub_815C6D4: @ 815C6D4
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
ldr r2, _0815C6EC @ =gUnknown_3002048
|
|
ldrb r0, [r2, 0x1]
|
|
adds r3, r2, 0
|
|
cmp r0, 0x3
|
|
beq _0815C75C
|
|
cmp r0, 0x3
|
|
bgt _0815C6F0
|
|
cmp r0, 0x1
|
|
beq _0815C6F8
|
|
b _0815C852
|
|
.align 2, 0
|
|
_0815C6EC: .4byte gUnknown_3002048
|
|
_0815C6F0:
|
|
cmp r0, 0x5
|
|
bne _0815C6F6
|
|
b _0815C824
|
|
_0815C6F6:
|
|
b _0815C852
|
|
_0815C6F8:
|
|
ldr r1, _0815C728 @ =0x0400012a
|
|
ldr r2, _0815C72C @ =0x0000ccd0
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
ldr r0, _0815C730 @ =0x04000120
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r4, 0
|
|
ldr r6, _0815C72C @ =0x0000ccd0
|
|
ldr r5, _0815C734 @ =0x0000ffff
|
|
_0815C714:
|
|
lsls r0, r1, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
cmp r0, r6
|
|
bne _0815C738
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
b _0815C742
|
|
.align 2, 0
|
|
_0815C728: .4byte 0x0400012a
|
|
_0815C72C: .4byte 0x0000ccd0
|
|
_0815C730: .4byte 0x04000120
|
|
_0815C734: .4byte 0x0000ffff
|
|
_0815C738:
|
|
cmp r0, r5
|
|
beq _0815C742
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_0815C742:
|
|
adds r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
cmp r1, 0x3
|
|
bls _0815C714
|
|
cmp r2, 0x2
|
|
beq _0815C752
|
|
b _0815C852
|
|
_0815C752:
|
|
cmp r4, 0
|
|
beq _0815C758
|
|
b _0815C852
|
|
_0815C758:
|
|
strb r2, [r3, 0x1]
|
|
b _0815C852
|
|
_0815C75C:
|
|
ldr r0, _0815C798 @ =0x04000120
|
|
ldr r4, [r0]
|
|
ldr r0, [r2, 0xC]
|
|
cmp r0, 0
|
|
bne _0815C772
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _0815C772
|
|
lsrs r0, r4, 2
|
|
adds r0, 0x1
|
|
str r0, [r2, 0x10]
|
|
_0815C772:
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x1
|
|
bne _0815C7A8
|
|
ldr r1, [r3, 0xC]
|
|
ldr r0, [r3, 0x10]
|
|
cmp r1, r0
|
|
bge _0815C79C
|
|
ldr r2, _0815C798 @ =0x04000120
|
|
ldr r0, [r3, 0x8]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
ldr r0, [r3, 0x14]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [r3, 0x14]
|
|
b _0815C7E2
|
|
.align 2, 0
|
|
_0815C798: .4byte 0x04000120
|
|
_0815C79C:
|
|
ldr r1, _0815C7A4 @ =0x04000120
|
|
ldr r0, [r3, 0x14]
|
|
b _0815C7E0
|
|
.align 2, 0
|
|
_0815C7A4: .4byte 0x04000120
|
|
_0815C7A8:
|
|
ldr r1, [r3, 0xC]
|
|
cmp r1, 0
|
|
ble _0815C7C8
|
|
ldr r0, [r3, 0x10]
|
|
adds r0, 0x1
|
|
cmp r1, r0
|
|
bge _0815C7C8
|
|
ldr r0, [r3, 0x8]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
subs r1, 0x4
|
|
str r4, [r1]
|
|
ldr r0, [r3, 0x14]
|
|
adds r0, r4
|
|
str r0, [r3, 0x14]
|
|
b _0815C7DC
|
|
_0815C7C8:
|
|
ldr r0, [r3, 0xC]
|
|
cmp r0, 0
|
|
beq _0815C7DC
|
|
ldr r0, [r3, 0x14]
|
|
cmp r0, r4
|
|
bne _0815C7D8
|
|
movs r0, 0x1
|
|
b _0815C7DA
|
|
_0815C7D8:
|
|
movs r0, 0x2
|
|
_0815C7DA:
|
|
strb r0, [r3, 0x3]
|
|
_0815C7DC:
|
|
ldr r1, _0815C804 @ =gUnknown_3002068
|
|
movs r0, 0
|
|
_0815C7E0:
|
|
str r0, [r1]
|
|
_0815C7E2:
|
|
ldr r1, [r3, 0xC]
|
|
adds r1, 0x1
|
|
str r1, [r3, 0xC]
|
|
ldr r0, [r3, 0x10]
|
|
adds r0, 0x2
|
|
cmp r1, r0
|
|
bge _0815C812
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _0815C80C
|
|
ldr r0, _0815C808 @ =0x0400010e
|
|
ldrh r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
b _0815C852
|
|
.align 2, 0
|
|
_0815C804: .4byte gUnknown_3002068
|
|
_0815C808: .4byte 0x0400010e
|
|
_0815C80C:
|
|
bl sub_815C864
|
|
b _0815C852
|
|
_0815C812:
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
strb r1, [r3, 0x1]
|
|
ldr r1, _0815C820 @ =gUnknown_3002066
|
|
strh r0, [r1]
|
|
b _0815C852
|
|
.align 2, 0
|
|
_0815C820: .4byte gUnknown_3002066
|
|
_0815C824:
|
|
ldrb r3, [r2]
|
|
cmp r3, 0
|
|
bne _0815C830
|
|
ldr r1, _0815C85C @ =0x0400012a
|
|
ldrb r0, [r2, 0x3]
|
|
strh r0, [r1]
|
|
_0815C830:
|
|
ldr r0, _0815C860 @ =0x04000120
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
mov r0, sp
|
|
ldrh r1, [r0, 0x2]
|
|
subs r0, r1, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _0815C852
|
|
cmp r3, 0x1
|
|
bne _0815C84E
|
|
strb r1, [r2, 0x3]
|
|
_0815C84E:
|
|
movs r0, 0x6
|
|
strb r0, [r2, 0x1]
|
|
_0815C852:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815C85C: .4byte 0x0400012a
|
|
_0815C860: .4byte 0x04000120
|
|
thumb_func_end sub_815C6D4
|
|
|
|
thumb_func_start sub_815C864
|
|
sub_815C864: @ 815C864
|
|
ldr r0, _0815C870 @ =0x04000128
|
|
ldrh r1, [r0]
|
|
movs r2, 0x80
|
|
orrs r1, r2
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0815C870: .4byte 0x04000128
|
|
thumb_func_end sub_815C864
|
|
|
|
thumb_func_start sub_815C874
|
|
sub_815C874: @ 815C874
|
|
ldr r2, _0815C888 @ =0x0400010e
|
|
ldrh r1, [r2]
|
|
ldr r0, _0815C88C @ =0x0000ff7f
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
ldr r1, _0815C890 @ =0x0400010c
|
|
ldr r2, _0815C894 @ =0x0000fda7
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0815C888: .4byte 0x0400010e
|
|
_0815C88C: .4byte 0x0000ff7f
|
|
_0815C890: .4byte 0x0400010c
|
|
_0815C894: .4byte 0x0000fda7
|
|
thumb_func_end sub_815C874
|
|
|
|
thumb_func_start sub_815C898
|
|
sub_815C898: @ 815C898
|
|
push {r4,lr}
|
|
ldr r0, _0815C8B8 @ =0x04000130
|
|
ldrh r0, [r0]
|
|
ldr r2, _0815C8BC @ =0x000003ff
|
|
adds r1, r2, 0
|
|
eors r1, r0
|
|
ldr r4, _0815C8C0 @ =gUnknown_3002062
|
|
ldr r3, _0815C8C4 @ =gUnknown_3002060
|
|
ldrh r2, [r3]
|
|
adds r0, r1, 0
|
|
bics r0, r2
|
|
strh r0, [r4]
|
|
strh r1, [r3]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815C8B8: .4byte 0x04000130
|
|
_0815C8BC: .4byte 0x000003ff
|
|
_0815C8C0: .4byte gUnknown_3002062
|
|
_0815C8C4: .4byte gUnknown_3002060
|
|
thumb_func_end sub_815C898
|
|
|
|
thumb_func_start sub_815C8C8
|
|
sub_815C8C8: @ 815C8C8
|
|
ldr r1, _0815C8F4 @ =gUnknown_300206C
|
|
ldr r0, _0815C8F8 @ =0x04000208
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r1, _0815C8FC @ =gUnknown_300206E
|
|
ldr r0, _0815C900 @ =0x04000200
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r1, _0815C904 @ =gUnknown_3002070
|
|
ldr r0, _0815C908 @ =0x0400010e
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r1, _0815C90C @ =gUnknown_3002072
|
|
ldr r0, _0815C910 @ =0x04000128
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
ldr r1, _0815C914 @ =gUnknown_3002074
|
|
ldr r0, _0815C918 @ =0x04000134
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0815C8F4: .4byte gUnknown_300206C
|
|
_0815C8F8: .4byte 0x04000208
|
|
_0815C8FC: .4byte gUnknown_300206E
|
|
_0815C900: .4byte 0x04000200
|
|
_0815C904: .4byte gUnknown_3002070
|
|
_0815C908: .4byte 0x0400010e
|
|
_0815C90C: .4byte gUnknown_3002072
|
|
_0815C910: .4byte 0x04000128
|
|
_0815C914: .4byte gUnknown_3002074
|
|
_0815C918: .4byte 0x04000134
|
|
thumb_func_end sub_815C8C8
|
|
|
|
thumb_func_start sub_815C91C
|
|
sub_815C91C: @ 815C91C
|
|
ldr r1, _0815C948 @ =0x04000208
|
|
ldr r0, _0815C94C @ =gUnknown_300206C
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
subs r1, 0x8
|
|
ldr r0, _0815C950 @ =gUnknown_300206E
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
subs r1, 0xF2
|
|
ldr r0, _0815C954 @ =gUnknown_3002070
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, 0x1A
|
|
ldr r0, _0815C958 @ =gUnknown_3002072
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
adds r1, 0xC
|
|
ldr r0, _0815C95C @ =gUnknown_3002074
|
|
ldrh r0, [r0]
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0815C948: .4byte 0x04000208
|
|
_0815C94C: .4byte gUnknown_300206C
|
|
_0815C950: .4byte gUnknown_300206E
|
|
_0815C954: .4byte gUnknown_3002070
|
|
_0815C958: .4byte gUnknown_3002072
|
|
_0815C95C: .4byte gUnknown_3002074
|
|
thumb_func_end sub_815C91C
|
|
|
|
thumb_func_start sub_815C960
|
|
sub_815C960: @ 815C960
|
|
push {lr}
|
|
sub sp, 0x4
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
ldr r1, _0815C978 @ =gUnknown_3002048
|
|
ldr r2, _0815C97C @ =0x05000006
|
|
mov r0, sp
|
|
bl CpuSet
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0815C978: .4byte gUnknown_3002048
|
|
_0815C97C: .4byte 0x05000006
|
|
thumb_func_end sub_815C960
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|