It won't work with a callasm, unfortunately. the function takes a pokemon data structure input: void CalculateMonStats(struct Pokemon *mon). So you could write an asm routine like so:
main:
push {r0-r1, lr}
ldr r0, =(0x20370C0) @var 0x8004 = party slot number
ldrb r0, [r0]
mov r1, #0x64
mul r1, r0
ldr r0, =(0x2024284)
add r0, r0, r1
bl CalculateMonStats
pop {r0-r1, pc}
CalculateMonStats:
ldr r1, =(0x803E47C + 1)
bx r1