Files
ddw3/asm/dw2003/exe/f5.s

27 lines
445 B
ArmAsm

.include "macros.s"
# Returns `&D0x80041844[idx + 0x1]`
# `fn f5(idx: i32) -> *Unknown1`
.section section_f5
.global f5
f5:
idx=$a0
# If `idx <= 0x0`, return NULL
blez idx, .Lexit_0
# Else calculate `offset = idx * 0xc`
offset=$v1
sll offset, idx, 0x1
addu offset, idx
sll offset, 0x2
# And return `D0x80041844 - 0xc + offset`
addr=$v0
la_ addr, D0x80041844 - 0xc
jr $ra
addu $v0, offset, addr
.Lexit_0:
jr $ra
move_ $v0, $zr