{
    "Function": "scalar_mul",
    "File": "src/contracts/libraries/BN254.sol",
    "Parent Contracts": [],
    "High-Level Calls": [],
    "Internal Calls": [
        "require(bool,string)",
        "invalid()",
        "staticcall(uint256,uint256,uint256,uint256,uint256,uint256)",
        "gas()"
    ],
    "Library Calls": [],
    "Low-Level Calls": [],
    "Code": "function scalar_mul(\n        G1Point memory p,\n        uint256 s\n    ) internal view returns (G1Point memory r) {\n        uint256[3] memory input;\n        input[0] = p.X;\n        input[1] = p.Y;\n        input[2] = s;\n        bool success;\n        // solium-disable-next-line security/no-inline-assembly\n        assembly {\n            success := staticcall(sub(gas(), 2000), 7, input, 0x60, r, 0x40)\n            // Use \"invalid\" to make gas estimation work\n            switch success\n            case 0 {\n                invalid()\n            }\n        }\n        require(success, \"ec-mul-failed\");\n    }"
}