;       called function must preserve rbx, rbp, r12-r15