```\nfunction point\_mul(dst,src,s, mPtr) {\n // let mPtr := add(mload(0x40), state\_last\_mem)\n let state := mload(0x40)\n mstore(mPtr,mload(src))\n mstore(add(mPtr,0x20),mload(add(src,0x20)))\n mstore(add(mPtr,0x40),s)\n let l\_success := staticcall(sub(gas(), 2000),7,mPtr,0x60,dst,0x40)\n mstore(add(state, state\_success), and(l\_success,mload(add(state, state\_success))))\n}\n\n// dst <- dst + [s]src (Elliptic curve)\nfunction point\_acc\_mul(dst,src,s, mPtr) {\n let state := mload(0x40)\n mstore(mPtr,mload(src))\n mstore(add(mPtr,0x20),mload(add(src,0x20)))\n mstore(add(mPtr,0x40),s)\n let l\_success := staticcall(sub(gas(), 2000),7,mPtr,0x60,mPtr,0x40)\n mstore(add(mPtr,0x40),mload(dst))\n mstore(add(mPtr,0x60),mload(add(dst,0x20)))\n l\_success := and(l\_success, staticcall(sub(gas(), 2000),6,mPtr,0x80,dst, 0x40))\n mstore(add(state, state\_success), and(l\_success,mload(add(state, state\_success))))\n}\n```\n