tmc/asm/sensorBladeTrap.s

239 lines
3.8 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start SensorBladeTrap
SensorBladeTrap: @ 0x0802B9D4
push {lr}
ldr r2, _0802B9E8 @ =gUnk_080CD3C4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0802B9E8: .4byte gUnk_080CD3C4
thumb_func_start sub_0802B9EC
sub_0802B9EC: @ 0x0802B9EC
adds r2, r0, #0
movs r0, #1
strb r0, [r2, #0xc]
ldr r1, _0802BA14 @ =gUnk_080CD3D4
ldrb r0, [r2, #0xa]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x78
strh r1, [r0]
adds r0, #0xc
ldrh r1, [r0]
subs r0, #8
strh r1, [r0]
adds r0, #0xa
ldrh r1, [r0]
subs r0, #8
strh r1, [r0]
bx lr
.align 2, 0
_0802BA14: .4byte gUnk_080CD3D4
thumb_func_start sub_0802BA18
sub_0802BA18: @ 0x0802BA18
push {r4, r5, lr}
adds r4, r0, #0
movs r1, #1
movs r2, #0xe
bl sub_0804A024
adds r5, r0, #0
cmp r5, #0xff
beq _0802BA88
adds r0, r4, #0
adds r1, r5, #0
bl sub_0802BB2C
cmp r0, #0
bne _0802BA88
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x78
ldrh r0, [r0]
strh r0, [r4, #0x24]
strb r5, [r4, #0x15]
lsrs r0, r5, #3
cmp r0, #1
beq _0802BA60
cmp r0, #1
blo _0802BA58
cmp r0, #2
beq _0802BA6C
cmp r0, #3
beq _0802BA78
b _0802BA88
_0802BA58:
adds r1, r4, #0
adds r1, #0x7e
ldrh r0, [r4, #0x32]
b _0802BA7E
_0802BA60:
adds r0, r4, #0
adds r0, #0x7c
ldrh r0, [r0]
ldrh r1, [r4, #0x2e]
adds r0, r0, r1
b _0802BA82
_0802BA6C:
adds r0, r4, #0
adds r0, #0x7e
ldrh r0, [r0]
ldrh r1, [r4, #0x32]
adds r0, r0, r1
b _0802BA82
_0802BA78:
adds r1, r4, #0
adds r1, #0x7c
ldrh r0, [r4, #0x2e]
_0802BA7E:
ldrh r1, [r1]
subs r0, r0, r1
_0802BA82:
adds r1, r4, #0
adds r1, #0x7a
strh r0, [r1]
_0802BA88:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0802BA8C
sub_0802BA8C: @ 0x0802BA8C
push {r4, lr}
adds r4, r0, #0
bl sub_080AF038
cmp r0, #0
beq _0802BADE
ldrb r0, [r4, #0x15]
lsrs r0, r0, #3
cmp r0, #1
beq _0802BAC4
cmp r0, #1
bgt _0802BAAA
cmp r0, #0
beq _0802BAB4
b _0802BAFA
_0802BAAA:
cmp r0, #2
beq _0802BAD0
cmp r0, #3
beq _0802BAE6
b _0802BAFA
_0802BAB4:
adds r0, r4, #0
adds r0, #0x7a
ldrh r1, [r0]
movs r2, #0x32
ldrsh r0, [r4, r2]
cmp r1, r0
blt _0802BAFA
b _0802BADE
_0802BAC4:
adds r0, r4, #0
adds r0, #0x7a
ldrh r1, [r0]
movs r2, #0x2e
ldrsh r0, [r4, r2]
b _0802BADA
_0802BAD0:
adds r0, r4, #0
adds r0, #0x7a
ldrh r1, [r0]
movs r2, #0x32
ldrsh r0, [r4, r2]
_0802BADA:
cmp r1, r0
bgt _0802BAFA
_0802BADE:
adds r0, r4, #0
bl sub_0802BB10
b _0802BAFA
_0802BAE6:
adds r0, r4, #0
adds r0, #0x7a
ldrh r1, [r0]
movs r2, #0x2e
ldrsh r0, [r4, r2]
cmp r1, r0
blt _0802BAFA
adds r0, r4, #0
bl sub_0802BB10
_0802BAFA:
pop {r4, pc}
thumb_func_start sub_0802BAFC
sub_0802BAFC: @ 0x0802BAFC
push {r4, lr}
adds r4, r0, #0
bl sub_080AF038
cmp r0, #0
bne _0802BB0C
movs r0, #1
strb r0, [r4, #0xc]
_0802BB0C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0802BB10
sub_0802BB10: @ 0x0802BB10
push {lr}
movs r1, #3
strb r1, [r0, #0xc]
movs r1, #0xc0
strh r1, [r0, #0x24]
ldrb r1, [r0, #0x15]
movs r2, #0x10
eors r1, r2
strb r1, [r0, #0x15]
movs r0, #0x74
bl sub_08004488
pop {pc}
.align 2, 0
thumb_func_start sub_0802BB2C
sub_0802BB2C: @ 0x0802BB2C
push {r4, lr}
adds r2, r0, #0
adds r0, #0x38
ldrb r0, [r0]
ldr r4, _0802BB60 @ =gUnk_02027EB4
cmp r0, #2
bne _0802BB3C
ldr r4, _0802BB64 @ =gUnk_0200D654
_0802BB3C:
lsrs r3, r1, #2
ldr r0, _0802BB68 @ =gUnk_080CD3DC
adds r3, r3, r0
movs r0, #0x2e
ldrsh r1, [r2, r0]
movs r0, #0
ldrsb r0, [r3, r0]
adds r1, r1, r0
movs r0, #0x32
ldrsh r2, [r2, r0]
movs r0, #1
ldrsb r0, [r3, r0]
adds r2, r2, r0
adds r0, r4, #0
movs r3, #0
bl sub_080AE4CC
pop {r4, pc}
.align 2, 0
_0802BB60: .4byte gUnk_02027EB4
_0802BB64: .4byte gUnk_0200D654
_0802BB68: .4byte gUnk_080CD3DC