tmc/asm/non_matching/pushableStatue/sub_080896B0.inc

92 lines
1.6 KiB
PHP

.syntax unified
push {r4, r5, r6, r7, lr}
ldr r0, _08089750 @ =gPlayerState
ldrb r1, [r0, #5]
movs r0, #0x1f
ands r0, r1
cmp r0, #0x12
bne _08089768
ldr r6, _08089754 @ =gPlayerEntity
adds r0, r6, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08089768
ldrb r3, [r6, #0x14]
movs r2, #6
ands r2, r3
lsls r2, r2, #1
ldr r0, _08089758 @ =gUnk_080B4468
adds r2, r2, r0
ldr r0, _0808975C @ =gUnk_080B4488
lsrs r3, r3, #1
lsls r3, r3, #1
adds r3, r3, r0
movs r0, #0x2e
ldrsh r1, [r6, r0]
movs r4, #0
ldrsh r0, [r2, r4]
adds r1, r1, r0
ldr r5, _08089760 @ =gRoomControls
ldrh r0, [r5, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r7, #0x32
ldrsh r0, [r6, r7]
movs r7, #2
ldrsh r2, [r2, r7]
adds r0, r0, r2
ldrh r2, [r5, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r1, r0
movs r0, #0
ldrsh r7, [r3, r0]
subs r1, r1, r7
lsls r4, r1, #0x10
lsrs r0, r4, #0x10
adds r5, r6, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080B1AE0
adds r1, r0, #0
subs r0, #0x26
cmp r0, #1
bls _08089768
cmp r1, #0x29
beq _08089768
ldrb r0, [r5]
bl GetLayerByIndex
asrs r1, r4, #0x10
ldr r2, _08089764 @ =0x00002004
adds r0, r0, r2
adds r2, r0, r1
ldrb r2, [r2]
subs r1, r1, r7
adds r0, r0, r1
ldrb r0, [r0]
cmp r2, #0
bne _08089768
cmp r0, #0
bne _08089768
movs r0, #1
b _0808976A
.align 2, 0
_08089750: .4byte gPlayerState
_08089754: .4byte gPlayerEntity
_08089758: .4byte gUnk_080B4468
_0808975C: .4byte gUnk_080B4488
_08089760: .4byte gRoomControls
_08089764: .4byte 0x00002004
_08089768:
movs r0, #0
_0808976A:
pop {r4, r5, r6, r7, pc}
.syntax divided