code: def modexp(computation: BaseComputation) -> BaseComputation:
      
      data = computation.msg.data_as_bytes
  
      gas_fee = _compute_modexp_gas_fee(data)
      computation.consume_gas(gas_fee, reason='MODEXP Precompile')
  
      result = _modexp(data)
  
      _, _, modulus_length = _extract_lengths(data)
  
      # Modulo 0 is undefined, return zero
      # https://math.stackexchange.com/questions/516251/why-is-n-mod-0-undefined
      result_bytes = b'' if modulus_length == 0 else zpad_left(
          int_to_big_endian(result),
          to_size=modulus_length
      )
  
      computation.output = result_bytes
      return computation
docs: https://github.com/ethereum/EIPs/pull/198