tmc/asm/objectB.s

305 lines
5.3 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start ObjectB
ObjectB: @ 0x08083B88
push {r4, lr}
adds r4, r0, #0
ldr r1, _08083BDC @ =gUnk_0811F7D8
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r0, [r4, #0x50]
adds r0, #0x5a
ldrb r1, [r0]
lsrs r1, r1, #6
movs r0, #1
ands r1, r0
ldrb r2, [r4, #0x18]
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_08080CB4
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x1b]
movs r2, #0x3f
adds r0, r2, #0
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r2, r0
strb r2, [r4, #0x19]
pop {r4, pc}
.align 2, 0
_08083BDC: .4byte gUnk_0811F7D8
thumb_func_start sub_08083BE0
sub_08083BE0: @ 0x08083BE0
push {r4, lr}
adds r4, r0, #0
movs r1, #6
bl sub_0805E3A0
movs r0, #1
strb r0, [r4, #0xc]
pop {r4, pc}
thumb_func_start sub_08083BF0
sub_08083BF0: @ 0x08083BF0
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0x41
bne _08083C98
movs r0, #2
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
cmp r0, #5
bhi _08083C98
lsls r0, r0, #2
ldr r1, _08083C14 @ =_08083C18
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08083C14: .4byte _08083C18
_08083C18: @ jump table
.4byte _08083C30 @ case 0
.4byte _08083C30 @ case 1
.4byte _08083C4A @ case 2
.4byte _08083C98 @ case 3
.4byte _08083C98 @ case 4
.4byte _08083C74 @ case 5
_08083C30:
ldrb r0, [r4, #0xa]
ldrb r1, [r4, #0xb]
bl GiveItem
adds r1, r4, #0
adds r1, #0x68
strh r0, [r1]
ldrb r0, [r4, #0xa]
cmp r0, #0x43
bgt _08083C62
cmp r0, #0x40
bge _08083C98
b _08083C62
_08083C4A:
ldrb r0, [r4, #0xa]
ldrb r1, [r4, #0xb]
bl GiveItem
ldr r1, _08083C6C @ =gUnk_080FD964
ldrb r0, [r4, #0xa]
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #6]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
_08083C62:
ldr r0, _08083C70 @ =0x00000109
bl PlaySFX
b _08083C98
.align 2, 0
_08083C6C: .4byte gUnk_080FD964
_08083C70: .4byte 0x00000109
_08083C74:
ldrb r0, [r4, #0xa]
bl GetInventoryValue
ldrb r1, [r4, #0xa]
lsls r1, r1, #3
ldr r2, _08083C8C @ =gUnk_080FD5B4
adds r1, r1, r2
cmp r0, #0
bne _08083C90
ldrh r1, [r1, #4]
b _08083C92
.align 2, 0
_08083C8C: .4byte gUnk_080FD5B4
_08083C90:
ldrh r1, [r1, #6]
_08083C92:
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
_08083C98:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08083C9C
sub_08083C9C: @ 0x08083C9C
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0x42
bne _08083D22
movs r0, #3
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
cmp r0, #5
bhi _08083D22
lsls r0, r0, #2
ldr r1, _08083CC0 @ =_08083CC4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08083CC0: .4byte _08083CC4
_08083CC4: @ jump table
.4byte _08083CDC @ case 0
.4byte _08083D22 @ case 1
.4byte _08083CDC @ case 2
.4byte _08083D22 @ case 3
.4byte _08083D22 @ case 4
.4byte _08083CDC @ case 5
_08083CDC:
adds r0, r4, #0
adds r0, #0x68
ldrh r1, [r0]
cmp r1, #0
beq _08083D22
ldrb r0, [r4, #0xa]
cmp r0, #0x3f
beq _08083D00
cmp r0, #0x63
bne _08083D16
ldr r0, _08083CFC @ =gUnk_02002A40
adds r0, #0xa9
ldrb r0, [r0]
adds r1, r1, r0
b _08083D16
.align 2, 0
_08083CFC: .4byte gUnk_02002A40
_08083D00:
ldrb r0, [r4, #0xb]
cmp r0, #1
bls _08083D16
ldr r0, _08083D10 @ =0x00000577
cmp r1, r0
bne _08083D14
subs r1, #1
b _08083D16
.align 2, 0
_08083D10: .4byte 0x00000577
_08083D14:
adds r1, #1
_08083D16:
adds r0, r1, #0
bl TextboxNoOverlapFollow
ldr r1, _08083D24 @ =gTextBox
ldrb r0, [r4, #0xb]
str r0, [r1, #0x10]
_08083D22:
pop {r4, pc}
.align 2, 0
_08083D24: .4byte gTextBox
thumb_func_start sub_08083D28
sub_08083D28: @ 0x08083D28
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldrb r0, [r0, #0xc]
cmp r0, #8
beq _08083DD4
ldrb r0, [r4, #0xe]
cmp r0, #5
bhi _08083DD0
lsls r0, r0, #2
ldr r1, _08083D44 @ =_08083D48
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08083D44: .4byte _08083D48
_08083D48: @ jump table
.4byte _08083D60 @ case 0
.4byte _08083D60 @ case 1
.4byte _08083D60 @ case 2
.4byte _08083DAC @ case 3
.4byte _08083DD0 @ case 4
.4byte _08083DD0 @ case 5
_08083D60:
ldrb r0, [r4, #0xa]
cmp r0, #0x62
beq _08083D88
cmp r0, #0x63
bne _08083DD0
movs r0, #0xa0
bl ModHealth
ldr r0, _08083DA8 @ =gUnk_02002A40
adds r1, r0, #0
adds r1, #0xa9
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bls _08083DD0
movs r0, #0
strb r0, [r1]
_08083D88:
ldr r0, _08083DA8 @ =gUnk_02002A40
adds r1, r0, #0
adds r1, #0xab
ldrb r0, [r1]
adds r0, #8
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xa0
bls _08083DA0
movs r0, #0xa0
strb r0, [r1]
_08083DA0:
movs r0, #0xa0
bl ModHealth
b _08083DD0
.align 2, 0
_08083DA8: .4byte gUnk_02002A40
_08083DAC:
ldrb r0, [r4, #0xa]
bl sub_080544DC
adds r1, r0, #0
cmp r1, #0
beq _08083DC8
ldr r0, _08083DC4 @ =gUnk_02002A40
adds r0, r0, r1
adds r0, #0xb5
movs r1, #0x20
strb r1, [r0]
b _08083DD0
.align 2, 0
_08083DC4: .4byte gUnk_02002A40
_08083DC8:
ldrb r0, [r4, #0xa]
movs r1, #2
bl sub_0807CAA0
_08083DD0:
bl DeleteThisEntity
_08083DD4:
pop {r4, pc}
.align 2, 0