tmc/asm/code_0804AEB0.s

180 lines
3.0 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0804AEB0
sub_0804AEB0: @ 0x0804AEB0
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
ldrb r0, [r6, #1]
movs r1, #0xf
adds r2, r1, #0
ands r2, r0
ldrb r0, [r6]
adds r4, r1, #0
ands r4, r0
ldr r0, [r5]
cmp r0, #0
bne _0804AEF6
cmp r2, #0xf
bne _0804AEE0
ldr r0, _0804AEDC @ =gUnk_081091E4
adds r0, r4, r0
ldrb r1, [r0]
adds r0, r5, #0
bl sub_0805EA2C
b _0804AEF6
.align 2, 0
_0804AEDC: .4byte gUnk_081091E4
_0804AEE0:
cmp r2, #8
bne _0804AEEE
adds r0, r5, #0
movs r1, #8
bl sub_0805EA2C
b _0804AEF6
_0804AEEE:
adds r0, r5, #0
adds r1, r2, #0
bl sub_0805EA2C
_0804AEF6:
adds r1, r5, #0
adds r1, #0x78
cmp r4, #9
bne _0804AF00
subs r1, #0x48
_0804AF00:
adds r0, r6, #0
movs r2, #0x10
bl sub_0801D66C
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0804AF0C
sub_0804AF0C: @ 0x0804AF0C
push {r4, lr}
adds r4, r0, #0
adds r2, r1, #0
ldrb r0, [r2, #1]
movs r1, #0xf0
ands r1, r0
cmp r1, #0x20
beq _0804AF40
cmp r1, #0x20
bgt _0804AF26
cmp r1, #0
beq _0804AF2C
b _0804AF88
_0804AF26:
cmp r1, #0x40
beq _0804AF64
b _0804AF88
_0804AF2C:
ldr r0, _0804AF3C @ =gRoomControls
ldrh r1, [r0, #6]
ldrh r3, [r2, #8]
adds r1, r1, r3
strh r1, [r4, #0x2e]
ldrh r0, [r0, #8]
b _0804AF58
.align 2, 0
_0804AF3C: .4byte gRoomControls
_0804AF40:
adds r3, r4, #0
adds r3, #0x6d
ldrb r1, [r3]
movs r0, #0x20
orrs r0, r1
strb r0, [r3]
ldr r1, _0804AF60 @ =gRoomControls
ldrh r0, [r1, #6]
ldrh r3, [r2, #8]
adds r0, r0, r3
strh r0, [r4, #0x2e]
ldrh r0, [r1, #8]
_0804AF58:
ldrh r2, [r2, #0xa]
adds r0, r0, r2
strh r0, [r4, #0x32]
b _0804AF88
.align 2, 0
_0804AF60: .4byte gRoomControls
_0804AF64:
ldr r1, _0804AF8C @ =gRoomControls
ldrh r0, [r1, #6]
ldrh r3, [r2, #8]
adds r0, r0, r3
strh r0, [r4, #0x2e]
ldrh r0, [r1, #8]
ldrh r1, [r2, #0xa]
adds r0, r0, r1
strh r0, [r4, #0x32]
ldr r1, [r2, #0xc]
adds r0, r4, #0
bl sub_0807DAD0
cmp r0, #0
bne _0804AF88
adds r0, r4, #0
bl DeleteEntity
_0804AF88:
pop {r4, pc}
.align 2, 0
_0804AF8C: .4byte gRoomControls
thumb_func_start sub_0804AF90
sub_0804AF90: @ 0x0804AF90
push {lr}
ldr r0, _0804AFA8 @ =gUnk_02033A90
ldr r1, _0804AFAC @ =0x0000085C
adds r0, r0, r1
ldr r0, [r0]
ldr r0, [r0, #0x1c]
bl sub_0804AFB0
bl sub_080A7C7C
pop {pc}
.align 2, 0
_0804AFA8: .4byte gUnk_02033A90
_0804AFAC: .4byte 0x0000085C
thumb_func_start sub_0804AFB0
sub_0804AFB0: @ 0x0804AFB0
push {r4, lr}
ldr r1, _0804AFD4 @ =gUnk_02017654
str r0, [r1]
movs r2, #0
ldr r0, _0804AFD8 @ =gRoomVars
adds r3, r1, #0
adds r4, r0, #0
adds r4, #0x6c
_0804AFC0:
lsls r0, r2, #2
ldr r1, [r3]
adds r0, r0, r1
ldr r0, [r0]
stm r4!, {r0}
adds r2, #1
cmp r2, #7
bls _0804AFC0
pop {r4, pc}
.align 2, 0
_0804AFD4: .4byte gUnk_02017654
_0804AFD8: .4byte gRoomVars
thumb_func_start sub_0804AFDC
sub_0804AFDC: @ 0x0804AFDC
push {r4, lr}
movs r4, #1
movs r0, #6
bl sub_0804B128
cmp r0, #0
beq _0804AFF0
bl _call_via_r0
adds r4, r0, #0
_0804AFF0:
adds r0, r4, #0
pop {r4, pc}