tmc/asm/non_matching/playerUtils/sub_0807A8D8.inc

210 lines
3.4 KiB
PHP

.syntax unified
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r5, r0, #0
ldr r0, _0807AA5C @ =gPlayerState
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0807A8F0
b _0807A9F6
_0807A8F0:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r7, _0807AA60 @ =gRoomControls
ldrh r1, [r7, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r6, #0x3f
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
adds r2, #1
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
ldr r1, _0807AA64 @ =gPlayerEntity
adds r1, #0x38
mov sb, r1
ldrb r1, [r1]
bl sub_080B1B84
adds r4, r0, #0
movs r0, #0x20
mov r8, r0
ands r4, r0
cmp r4, #0
beq _0807A94E
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldrh r0, [r7, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r5, r2]
ldrh r2, [r7, #8]
adds r2, #1
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
bl sub_0807AAF8
_0807A94E:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldrh r1, [r7, #6]
subs r1, #2
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
mov r2, sb
ldrb r1, [r2]
bl sub_080B1B84
adds r4, r0, #0
mov r0, r8
ands r4, r0
cmp r4, #0
beq _0807A9A2
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldrh r0, [r7, #6]
subs r0, #2
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r5, r2]
ldrh r2, [r7, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
bl sub_0807AAF8
_0807A9A2:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldrh r1, [r7, #6]
adds r1, #2
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
mov r2, sb
ldrb r1, [r2]
bl sub_080B1B84
adds r4, r0, #0
mov r0, r8
ands r4, r0
cmp r4, #0
beq _0807A9F6
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldrh r0, [r7, #6]
adds r0, #2
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r5, r2]
ldrh r2, [r7, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
bl sub_0807AAF8
_0807A9F6:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r7, _0807AA60 @ =gRoomControls
ldrh r1, [r7, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r6, #0x3f
ands r0, r6
movs r2, #0x32
ldrsh r1, [r5, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
ldr r1, _0807AA64 @ =gPlayerEntity
adds r1, #0x38
ldrb r1, [r1]
bl sub_080B1B84
adds r4, r0, #0
movs r0, #0x20
ands r0, r4
cmp r0, #0
beq _0807AA4C
movs r0, #0x2e
ldrsh r1, [r5, r0]
ldrh r0, [r7, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r5, r2]
ldrh r2, [r7, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
bl sub_0807AAF8
_0807AA4C:
movs r0, #2
ands r0, r4
cmp r0, #0
beq _0807AA68
adds r0, r5, #0
bl sub_0807AABC
b _0807AA76
.align 2, 0
_0807AA5C: .4byte gPlayerState
_0807AA60: .4byte gRoomControls
_0807AA64: .4byte gPlayerEntity
_0807AA68:
movs r0, #4
ands r0, r4
cmp r0, #0
beq _0807AA76
adds r0, r5, #0
bl sub_0807AA80
_0807AA76:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
.syntax divided