def METHOD_NAME(self, data: bytes, ndata: int):
    """reads the SORT1 version of table 4 (the data table)"""
    op2 = self.op2
    #table_name_bytes = op2.table_name
    #is_vectorized = True
    if op2.table_code == 401:
        # Peak Displacement Vector
        result_name = 'rms.displacements'
        obj = RealDisplacementArray
    elif op2.table_code == 410:
        # Peak Velocity Vector
        result_name = 'rms.velocities'
        obj = RealVelocityArray
    elif op2.table_code == 411:
        # Peak Acceleration Vector
        obj = RealAccelerationArray
        result_name = 'rms.accelerations'
    else:
        raise RuntimeError(op2.table_code)
    if op2._results.is_not_saved(result_name):
        return ndata
    op2._results._found_result(result_name)
    storage_obj = op2.get_result(result_name)
    assert op2.format_code == 1, op2.format_code
    assert op2.num_wide == 8, op2.num_wide
    op2.random_code
    n = op2._read_random_table(data, ndata, result_name, storage_obj,
                                obj, 'node',
                                random_code=op2.random_code)
    return n