tmc/asm/minishEzlo.s

335 lines
5.5 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MinishEzlo
MinishEzlo: @ 0x08062F70
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08062FA0
ldr r1, _08062FE8 @ =gUnk_0810C48C
adds r0, r4, #0
bl LoadExtraSpriteData
cmp r0, #0
beq _08062FE4
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
lsls r0, r0, #1
strb r0, [r4, #0x14]
adds r0, r4, #0
movs r1, #2
bl sub_0805E3A0
adds r0, r4, #0
bl sub_0807DD50
_08062FA0:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl GetNextFrame
adds r4, #0x5b
ldrb r1, [r4]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08062FCC
movs r0, #0xef
ands r0, r1
strb r0, [r4]
ldr r0, _08062FEC @ =0x000001CF
bl sub_08004488
_08062FCC:
ldrb r1, [r4]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _08062FE4
movs r0, #0xdf
ands r0, r1
strb r0, [r4]
movs r0, #0x88
lsls r0, r0, #2
bl sub_08004488
_08062FE4:
pop {r4, pc}
.align 2, 0
_08062FE8: .4byte gUnk_0810C48C
_08062FEC: .4byte 0x000001CF
thumb_func_start MinishEzlo_Head
MinishEzlo_Head: @ 0x08062FF0
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r0, #0x5b
ldrb r1, [r0]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _08063006
movs r6, #1
movs r5, #0
b _0806300A
_08063006:
movs r6, #0
movs r5, #1
_0806300A:
adds r0, r4, #0
adds r0, #0x5b
ldrb r1, [r0]
movs r0, #8
ands r0, r1
movs r7, #0x8e
lsls r7, r7, #1
cmp r0, #0
beq _0806301E
movs r7, #0x16
_0806301E:
adds r0, r4, #0
adds r0, #0x5a
ldrb r2, [r0]
movs r0, #0x81
rsbs r0, r0, #0
ands r2, r0
subs r2, #1
adds r0, r4, #0
adds r1, r6, #0
bl SetExtraSpriteFrame
ldrb r2, [r4, #0x1e]
adds r0, r4, #0
adds r1, r5, #0
bl SetExtraSpriteFrame
adds r0, r4, #0
adds r1, r5, #0
adds r2, r7, #0
bl sub_0806FF10
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl SetSpriteSubEntryOffsetData1
adds r0, r4, #0
bl sub_0807000C
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0806305C
sub_0806305C: @ 0x0806305C
push {r4, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
movs r2, #0x80
lsls r2, r2, #1
str r2, [r4, #0x6c]
str r2, [r4, #0x70]
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
adds r0, r4, #0
movs r1, #0x10
bl InitAnimationForceUpdate
adds r4, #0x80
movs r0, #0x10
strh r0, [r4]
ldr r0, _080630A0 @ =0x0000016F
bl PlaySFX
pop {r4, pc}
.align 2, 0
_080630A0: .4byte 0x0000016F
thumb_func_start sub_080630A4
sub_080630A4: @ 0x080630A4
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r0, #0x6d
ldrb r0, [r0]
cmp r0, #0
beq _080630BA
ldr r0, [r4, #0x6c]
adds r0, #0x80
lsls r0, r0, #0x14
lsrs r5, r0, #0x17
b _080630D0
_080630BA:
adds r0, r4, #0
adds r0, #0x6c
ldrb r1, [r0]
lsrs r1, r1, #6
movs r0, #3
eors r1, r0
adds r1, #1
movs r0, #0x10
bl __divsi3
asrs r5, r0, #1
_080630D0:
movs r0, #0x80
lsls r0, r0, #1
ldr r2, [r4, #0x70]
cmp r2, r0
bls _080630E4
adds r0, r2, #0
adds r0, #0x80
lsls r0, r0, #0x14
lsrs r3, r0, #0x17
b _080630F4
_080630E4:
cmp r2, r0
bne _080630EC
movs r3, #0x10
b _080630F4
_080630EC:
ldr r1, _08063110 @ =gUnk_0810C498
lsrs r0, r2, #5
adds r0, r0, r1
ldrb r3, [r0]
_080630F4:
movs r6, #0x80
lsls r6, r6, #9
adds r0, r4, #0
adds r0, #0x5b
ldrb r0, [r0]
movs r1, #3
ands r1, r0
cmp r1, #2
beq _08063144
cmp r1, #2
bgt _08063114
cmp r1, #1
beq _0806311A
b _080631CA
.align 2, 0
_08063110: .4byte gUnk_0810C498
_08063114:
cmp r1, #3
beq _0806317A
b _080631CA
_0806311A:
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldr r0, [r4, #0x6c]
cmp r0, #0x80
bls _08063132
subs r0, r0, r5
str r0, [r4, #0x6c]
_08063132:
lsls r1, r3, #1
ldr r0, [r4, #0x70]
adds r0, r0, r1
str r0, [r4, #0x70]
lsls r1, r6, #1
ldr r0, [r4, #0x30]
adds r0, r0, r1
str r0, [r4, #0x30]
b _080631CA
_08063144:
ldr r0, [r4, #0x6c]
adds r0, r0, r5
str r0, [r4, #0x6c]
ldr r1, [r4, #0x70]
movs r2, #0x80
lsls r2, r2, #1
cmp r1, r2
bls _0806316C
ldr r0, _08063168 @ =0x0000017F
cmp r1, r0
bhi _0806315C
lsrs r3, r3, #1
_0806315C:
subs r0, r1, r3
cmp r0, #0xff
bhi _08063172
str r2, [r4, #0x70]
b _08063174
.align 2, 0
_08063168: .4byte 0x0000017F
_0806316C:
cmp r1, #0x80
bls _08063174
subs r0, r1, r3
_08063172:
str r0, [r4, #0x70]
_08063174:
ldr r0, [r4, #0x34]
subs r0, r0, r6
b _080631C8
_0806317A:
ldr r0, [r4, #0x6c]
ldr r1, _080631B4 @ =0x0000033F
cmp r0, r1
bhi _08063186
adds r0, r0, r5
str r0, [r4, #0x6c]
_08063186:
cmp r2, r1
bls _080631BC
movs r2, #0x80
lsls r2, r2, #1
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
adds r0, r4, #0
movs r1, #0x11
bl InitAnimationForceUpdate
adds r1, r4, #0
adds r1, #0x80
movs r0, #0x11
strh r0, [r1]
ldr r2, _080631B8 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
b _080631DC
.align 2, 0
_080631B4: .4byte 0x0000033F
_080631B8: .4byte gUnk_02033280
_080631BC:
lsls r0, r3, #1
adds r0, r2, r0
str r0, [r4, #0x70]
ldr r0, [r4, #0x34]
ldr r1, _080631E0 @ =0xFFFE0000
adds r0, r0, r1
_080631C8:
str r0, [r4, #0x34]
_080631CA:
ldr r1, [r4, #0x6c]
ldr r2, [r4, #0x70]
adds r0, r4, #0
movs r3, #0
bl sub_0805EC9C
ldr r1, _080631E4 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_080631DC:
pop {r4, r5, r6, pc}
.align 2, 0
_080631E0: .4byte 0xFFFE0000
_080631E4: .4byte gUnk_02033280