tmc/asm/mulldozer.s

1008 lines
16 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start Mulldozer
Mulldozer: @ 0x08032C74
push {r4, lr}
adds r4, r0, #0
ldr r1, _08032C90 @ =gUnk_080CEA1C
bl EnemyFunctionHandler
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r4, #0
movs r1, #0
movs r2, #1
bl SetChildOffset
pop {r4, pc}
.align 2, 0
_08032C90: .4byte gUnk_080CEA1C
thumb_func_start sub_08032C94
sub_08032C94: @ 0x08032C94
push {lr}
ldr r2, _08032CA8 @ =gUnk_080CEA34
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08032CA8: .4byte gUnk_080CEA34
thumb_func_start sub_08032CAC
sub_08032CAC: @ 0x08032CAC
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x43
ldrb r0, [r0]
cmp r0, #0
beq _08032CC0
adds r0, r4, #0
movs r1, #0x1c
bl sub_0804A9FC
_08032CC0:
ldr r1, _08032D18 @ =gUnk_080CEA1C
adds r0, r4, #0
bl sub_0804AA30
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08032D3A
movs r0, #0x3f
ands r0, r1
cmp r0, #3
bgt _08032D2C
cmp r0, #2
blt _08032D2C
movs r0, #6
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
movs r1, #0xc8
cmp r0, #0
beq _08032CF0
movs r1, #0x5a
_08032CF0:
strb r1, [r4, #0xe]
movs r0, #2
strb r0, [r4, #0xf]
adds r1, r4, #0
adds r1, #0x80
movs r0, #3
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
strb r0, [r4, #0x15]
ldrb r5, [r4, #0x15]
bl Random
movs r1, #0x40
ands r1, r0
cmp r1, #0
beq _08032D1C
adds r2, r5, #4
b _08032D20
.align 2, 0
_08032D18: .4byte gUnk_080CEA1C
_08032D1C:
adds r2, r5, #0
adds r2, #0x1c
_08032D20:
movs r1, #0
movs r0, #0x1f
ands r0, r2
strb r0, [r4, #0x15]
strh r1, [r4, #0x24]
b _08032D3A
_08032D2C:
movs r0, #5
strb r0, [r4, #0xc]
movs r0, #4
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_08033174
_08032D3A:
pop {r4, r5, pc}
thumb_func_start sub_08032D3C
sub_08032D3C: @ 0x08032D3C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08032D66
movs r0, #2
strb r0, [r4, #0xf]
ldrb r0, [r4, #0x14]
adds r0, #1
movs r1, #7
ands r0, r1
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08032F24
adds r0, r4, #0
bl sub_080331E8
_08032D66:
adds r0, r4, #0
bl sub_08001324
thumb_func_start nullsub_156
nullsub_156: @ 0x08032D6C
pop {r4, pc}
.align 2, 0
thumb_func_start nullsub_157
nullsub_157: @ 0x08032D70
bx lr
.align 2, 0
thumb_func_start sub_08032D74
sub_08032D74: @ 0x08032D74
push {r4, lr}
adds r4, r0, #0
bl sub_0804A720
adds r0, r4, #0
bl sub_08033058
pop {r4, pc}
thumb_func_start sub_08032D84
sub_08032D84: @ 0x08032D84
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08032D9C
adds r0, r4, #0
bl sub_080330C0
b _08032DAC
_08032D9C:
adds r0, r4, #0
bl sub_08033364
cmp r0, #0
beq _08032DAC
adds r0, r4, #0
bl sub_08033100
_08032DAC:
adds r0, r4, #0
bl sub_08032F64
pop {r4, pc}
thumb_func_start sub_08032DB4
sub_08032DB4: @ 0x08032DB4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08032DCA
adds r0, r4, #0
bl sub_08033058
_08032DCA:
adds r0, r4, #0
bl sub_08032F48
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08032DD4
sub_08032DD4: @ 0x08032DD4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08032E3C
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xf]
movs r0, #0xf0
lsls r0, r0, #1
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_080331B4
adds r2, r4, #0
adds r2, #0x82
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08032E18
ldrb r0, [r4, #0x15]
adds r0, #0x1c
movs r1, #0x1c
ands r0, r1
strb r0, [r4, #0x15]
ldrb r1, [r2]
movs r0, #0x7f
ands r0, r1
b _08032E28
_08032E18:
ldrb r0, [r4, #0x15]
adds r0, #4
movs r1, #0x1c
ands r0, r1
strb r0, [r4, #0x15]
ldrb r0, [r2]
movs r1, #0x80
orrs r0, r1
_08032E28:
strb r0, [r2]
ldrb r0, [r4, #0x15]
lsrs r0, r0, #2
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r1, #4
adds r0, r4, #0
bl InitializeAnimation
b _08032E4E
_08032E3C:
adds r0, r4, #0
bl sub_08032F90
adds r0, r4, #0
bl sub_080331E8
adds r0, r4, #0
bl sub_08032F64
_08032E4E:
pop {r4, pc}
thumb_func_start sub_08032E50
sub_08032E50: @ 0x08032E50
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08032E70
movs r0, #5
strb r0, [r4, #0xc]
movs r0, #4
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_08033174
b _08032E82
_08032E70:
adds r0, r4, #0
bl sub_08033000
adds r0, r4, #0
bl sub_080331E8
adds r0, r4, #0
bl sub_08032F64
_08032E82:
pop {r4, pc}
thumb_func_start sub_08032E84
sub_08032E84: @ 0x08032E84
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r1, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _08032EA4
adds r0, r4, #0
bl sub_08033320
adds r0, r4, #0
bl sub_080330C0
b _08032EC0
_08032EA4:
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08032EC0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r1
cmp r0, #0
bne _08032EC0
movs r0, #4
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_080332A8
_08032EC0:
adds r0, r4, #0
bl sub_080331E8
adds r0, r4, #0
bl ProcessMovement
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08032ED0
sub_08032ED0: @ 0x08032ED0
push {r4, r5, lr}
adds r4, r0, #0
bl ProcessMovement
adds r0, r4, #0
bl sub_08032F48
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
movs r5, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _08032F06
movs r0, #2
strb r0, [r4, #0xf]
ldrb r0, [r4, #0x14]
adds r0, #1
movs r1, #7
ands r0, r1
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08032F24
adds r0, r4, #0
bl sub_080331E8
_08032F06:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
ands r0, r5
cmp r0, #0
bne _08032F20
movs r0, #5
strb r0, [r4, #0xc]
movs r0, #4
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_08033174
_08032F20:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08032F24
sub_08032F24: @ 0x08032F24
push {lr}
adds r2, r0, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #0
bne _08032F38
movs r1, #0
ldrb r0, [r2, #0x14]
lsrs r0, r0, #1
b _08032F3C
_08032F38:
movs r1, #4
ldrb r0, [r2, #0x14]
_08032F3C:
adds r1, r1, r0
adds r0, r2, #0
bl InitializeAnimation
pop {pc}
.align 2, 0
thumb_func_start sub_08032F48
sub_08032F48: @ 0x08032F48
push {r4, lr}
adds r4, r0, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #2
bne _08032F5A
adds r0, r4, #0
bl GetNextFrame
_08032F5A:
adds r0, r4, #0
bl GetNextFrame
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08032F64
sub_08032F64: @ 0x08032F64
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x2a]
cmp r0, #0
beq _08032F82
adds r1, r0, #0
adds r0, r4, #0
bl sub_0800417E
ldrb r0, [r4, #0x15]
lsrs r0, r0, #2
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08032F24
_08032F82:
adds r0, r4, #0
bl sub_08032F48
adds r0, r4, #0
bl ProcessMovement
pop {r4, pc}
thumb_func_start sub_08032F90
sub_08032F90: @ 0x08032F90
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _08032FC0
ldrb r0, [r2, #0xe]
cmp r0, #0x10
bne _08032FA8
adds r1, r2, #0
adds r1, #0x80
movs r0, #2
strb r0, [r1]
_08032FA8:
ldrb r0, [r2, #0xf]
subs r0, #1
strb r0, [r2, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08032FFE
movs r0, #8
strb r0, [r2, #0xf]
adds r0, r2, #0
bl sub_08033280
b _08032FFE
_08032FC0:
ldrb r0, [r2, #0xf]
subs r0, #1
strb r0, [r2, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08032FFE
movs r0, #4
strb r0, [r2, #0xf]
adds r0, r2, #0
adds r0, #0x82
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08032FE4
ldrb r0, [r2, #0x15]
adds r0, #0x1c
b _08032FE8
_08032FE4:
ldrb r0, [r2, #0x15]
adds r0, #4
_08032FE8:
movs r1, #0x1c
ands r0, r1
strb r0, [r2, #0x15]
ldrb r0, [r2, #0x15]
lsrs r0, r0, #2
strb r0, [r2, #0x14]
ldrb r1, [r2, #0x14]
adds r1, #4
adds r0, r2, #0
bl InitializeAnimation
_08032FFE:
pop {pc}
thumb_func_start sub_08033000
sub_08033000: @ 0x08033000
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xf]
subs r0, #1
strb r0, [r2, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08033056
movs r0, #0x10
strb r0, [r2, #0xf]
adds r3, r2, #0
adds r3, #0x82
ldrb r1, [r3]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08033034
ldrb r0, [r2, #0x15]
adds r0, #0x18
movs r1, #0x1c
ands r0, r1
strb r0, [r2, #0x15]
ldrb r1, [r3]
movs r0, #0x7f
ands r0, r1
b _08033044
_08033034:
ldrb r0, [r2, #0x15]
adds r0, #8
movs r1, #0x1c
ands r0, r1
strb r0, [r2, #0x15]
ldrb r0, [r3]
movs r1, #0x80
orrs r0, r1
_08033044:
strb r0, [r3]
ldrb r0, [r2, #0x15]
lsrs r0, r0, #2
strb r0, [r2, #0x14]
ldrb r1, [r2, #0x14]
adds r1, #4
adds r0, r2, #0
bl InitializeAnimation
_08033056:
pop {pc}
thumb_func_start sub_08033058
sub_08033058: @ 0x08033058
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r6, #1
strb r6, [r5, #0xc]
adds r0, #0x80
strb r6, [r0]
bl Random
ldr r1, _080330A0 @ =gUnk_080CEA50
movs r4, #3
ands r0, r4
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r5, #0xe]
adds r0, r5, #0
bl sub_08049FA0
cmp r0, #0
bne _080330A8
bl Random
ands r0, r4
cmp r0, #0
beq _080330A8
adds r0, r5, #0
bl sub_08049EE4
adds r4, r0, #0
bl Random
ldr r1, _080330A4 @ =gUnk_080CEA54
ands r0, r6
adds r0, r0, r1
ldrb r0, [r0]
adds r0, r0, r4
b _080330AC
.align 2, 0
_080330A0: .4byte gUnk_080CEA50
_080330A4: .4byte gUnk_080CEA54
_080330A8:
bl Random
_080330AC:
movs r1, #0x18
ands r0, r1
strb r0, [r5, #0x15]
ldrb r0, [r5, #0x15]
lsrs r0, r0, #2
strb r0, [r5, #0x14]
adds r0, r5, #0
bl sub_08032F24
pop {r4, r5, r6, pc}
thumb_func_start sub_080330C0
sub_080330C0: @ 0x080330C0
push {r4, lr}
adds r4, r0, #0
movs r1, #0
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x80
strb r1, [r0]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080330E2
bl Random
movs r1, #0x38
ands r0, r1
adds r0, #0x18
b _080330E4
_080330E2:
movs r0, #6
_080330E4:
strb r0, [r4, #0xe]
movs r0, #0x60
strh r0, [r4, #0x24]
ldrb r0, [r4, #0x15]
adds r0, #4
movs r1, #0x18
ands r0, r1
strb r0, [r4, #0x15]
lsrs r0, r0, #2
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08032F24
pop {r4, pc}
thumb_func_start sub_08033100
sub_08033100: @ 0x08033100
push {r4, lr}
adds r4, r0, #0
movs r0, #3
strb r0, [r4, #0xc]
ldrb r2, [r4, #0xa]
cmp r2, #0
bne _08033132
adds r1, r4, #0
adds r1, #0x80
movs r0, #1
strb r0, [r1]
movs r0, #0x30
strb r0, [r4, #0xe]
movs r0, #8
strb r0, [r4, #0xf]
strh r2, [r4, #0x24]
adds r0, r4, #0
movs r1, #1
bl sub_08049F84
adds r0, #2
movs r1, #0x1c
ands r0, r1
strb r0, [r4, #0x15]
b _08033150
_08033132:
adds r1, r4, #0
adds r1, #0x80
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_080331B4
ldrb r0, [r4, #0xe]
adds r0, #0x10
strb r0, [r4, #0xe]
movs r0, #4
strb r0, [r4, #0xf]
movs r0, #0xb0
lsls r0, r0, #1
strh r0, [r4, #0x24]
_08033150:
adds r1, r4, #0
adds r1, #0x83
movs r0, #0
strb r0, [r1]
bl Random
movs r1, #0x80
ands r0, r1
adds r1, r4, #0
adds r1, #0x82
strb r0, [r1]
ldrb r0, [r4, #0x15]
lsrs r0, r0, #2
strb r0, [r4, #0x14]
adds r0, r4, #0
bl sub_08032F24
pop {r4, pc}
thumb_func_start sub_08033174
sub_08033174: @ 0x08033174
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x80
movs r2, #0
movs r0, #1
strb r0, [r1]
ldrb r0, [r4, #0x15]
adds r1, #1
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x82
strb r2, [r0]
adds r0, #1
strb r2, [r0]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080331A4
bl Random
movs r1, #0x18
ands r0, r1
adds r0, #0x18
b _080331A6
_080331A4:
movs r0, #0xc
_080331A6:
strb r0, [r4, #0xe]
movs r0, #0xa0
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_08032F24
pop {r4, pc}
thumb_func_start sub_080331B4
sub_080331B4: @ 0x080331B4
push {r4, lr}
adds r4, r0, #0
bl Random
adds r1, r0, #0
movs r0, #0xf0
ands r1, r0
movs r2, #0x1e
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080331D0
movs r2, #0x3c
b _080331E4
_080331D0:
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080331DA
movs r2, #0x2d
_080331DA:
movs r0, #0x20
ands r1, r0
cmp r1, #0
beq _080331E4
movs r2, #0x4b
_080331E4:
strb r2, [r4, #0xe]
pop {r4, pc}
thumb_func_start sub_080331E8
sub_080331E8: @ 0x080331E8
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r3, #0
ldrb r0, [r5, #0xc]
cmp r0, #5
beq _08033220
adds r1, r5, #0
adds r1, #0x83
ldrb r0, [r1]
adds r2, r0, #1
strb r2, [r1]
adds r0, r5, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #2
beq _0803320C
movs r0, #0xf
b _0803320E
_0803320C:
movs r0, #7
_0803320E:
ands r2, r0
strb r2, [r1]
ldrb r0, [r1]
cmp r0, #0
bne _08033238
movs r3, #1
ldrb r0, [r5, #0x14]
lsls r6, r0, #1
b _08033238
_08033220:
adds r2, r5, #0
adds r2, #0x83
ldrb r0, [r2]
adds r0, #1
movs r1, #0xf
ands r0, r1
strb r0, [r2]
cmp r0, #0
bne _08033238
movs r3, #1
ldrb r0, [r5, #0x15]
lsrs r6, r0, #1
_08033238:
cmp r3, #0
beq _08033278
adds r0, r5, #0
movs r1, #2
movs r2, #0x40
bl CreateFx
adds r4, r0, #0
cmp r4, #0
beq _08033278
ldr r2, _0803327C @ =gUnk_080CEA56
adds r2, r6, r2
adds r3, r5, #0
adds r3, #0x5a
ldrb r0, [r3]
movs r1, #0x20
eors r0, r1
strb r0, [r3]
movs r0, #0
ldrsb r0, [r2, r0]
ldrh r1, [r4, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
movs r0, #1
ldrsb r0, [r2, r0]
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
movs r0, #0x86
lsls r0, r0, #1
bl EnqueueSFX
_08033278:
pop {r4, r5, r6, pc}
.align 2, 0
_0803327C: .4byte gUnk_080CEA56
thumb_func_start sub_08033280
sub_08033280: @ 0x08033280
push {r4, lr}
adds r4, r0, #0
movs r1, #1
bl sub_08049F84
adds r0, #2
movs r1, #0x1c
ands r0, r1
strb r0, [r4, #0x15]
lsrs r0, r0, #2
ldrb r1, [r4, #0x14]
cmp r0, r1
beq _080332A4
strb r0, [r4, #0x14]
adds r1, r0, #4
adds r0, r4, #0
bl InitializeAnimation
_080332A4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080332A8
sub_080332A8: @ 0x080332A8
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r6, [r4, #0x15]
adds r5, r4, #0
adds r5, #0x81
ldrb r0, [r5]
strb r0, [r4, #0x15]
adds r0, r4, #0
movs r1, #1
bl sub_08049F84
adds r1, r0, #0
adds r0, r4, #0
bl sub_08004596
ldrb r0, [r4, #0x15]
strb r0, [r5]
strb r6, [r4, #0x15]
ldrb r0, [r5]
adds r0, #2
movs r1, #0x1c
ands r0, r1
asrs r6, r0, #2
ldrb r0, [r4, #0x14]
cmp r6, r0
beq _080332E4
adds r0, r4, #0
adds r1, r6, #0
bl sub_080332E8
_080332E4:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080332E8
sub_080332E8: @ 0x080332E8
push {r4, lr}
adds r4, r0, #0
adds r3, r4, #0
adds r3, #0x82
movs r0, #0
strb r0, [r3]
ldrb r0, [r4, #0x14]
subs r2, r1, r0
cmp r2, #0
ble _08033304
cmp r2, #4
bgt _08033310
movs r0, #1
b _08033312
_08033304:
movs r0, #4
rsbs r0, r0, #0
cmp r2, r0
bge _08033310
movs r0, #1
b _08033312
_08033310:
movs r0, #2
_08033312:
strb r0, [r3]
strb r1, [r4, #0x14]
adds r1, #4
adds r0, r4, #0
bl InitializeAnimation
pop {r4, pc}
thumb_func_start sub_08033320
sub_08033320: @ 0x08033320
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0x14]
lsls r5, r0, #2
movs r0, #4
ands r0, r5
cmp r0, #0
beq _08033360
adds r0, r4, #0
adds r0, #0x82
ldrb r0, [r0]
movs r1, #3
ands r1, r0
cmp r1, #1
beq _08033350
cmp r1, #2
beq _08033354
bl Random
movs r1, #0x10
ands r1, r0
movs r0, #0x1c
cmp r1, #0
beq _08033356
_08033350:
movs r0, #4
b _08033356
_08033354:
movs r0, #0x1c
_08033356:
adds r0, r0, r5
movs r1, #0x18
ands r0, r1
strb r0, [r4, #0x15]
b _08033362
_08033360:
strb r5, [r4, #0x15]
_08033362:
pop {r4, r5, pc}
thumb_func_start sub_08033364
sub_08033364: @ 0x08033364
push {r4, lr}
adds r4, r0, #0
movs r0, #1
bl sub_08049DF4
adds r1, r0, #0
cmp r1, #0
beq _080333B4
ldrb r0, [r4, #0xa]
movs r3, #0x38
cmp r0, #0
beq _0803337E
movs r3, #0x48
_0803337E:
adds r0, r4, #0
adds r2, r3, #0
bl sub_080041A0
cmp r0, #0
beq _080333B4
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080333AA
ldr r0, _080333B0 @ =gUnk_020000B0
ldr r1, [r0]
adds r0, r4, #0
bl GetFacingDirection
adds r1, r0, #0
adds r1, #2
movs r0, #0x1c
ands r1, r0
lsrs r1, r1, #2
ldrb r0, [r4, #0x14]
cmp r0, r1
bne _080333B4
_080333AA:
movs r0, #1
b _080333B6
.align 2, 0
_080333B0: .4byte gUnk_020000B0
_080333B4:
movs r0, #0
_080333B6:
pop {r4, pc}