It works like this:
In "eax" is stored the level of character - 1 because in address
0048FC8B was decremented 1 of eax,
whereas the character's level is 80, then 79 + 79 * 4 + 05 = 400, change "4" would be simple but "lea" does not allow it.
my knowledge is basic, but I think the best solution is:
Code:
inc eax
mov edx,#17 // points per level
mul edx
mov [esi+0000013A],ax