Adding on to Paul's advice, afni_proc.py offers a "surf" block option that will do this kind of operation for you. A processing script generated by afni_proc.py for a surface analysis in our example class data includes the following lines for SurfSmooth.
SurfSmooth -spec $surface_dir/std.60.FT_${hemi}.spec \
-surf_A smoothwm \
-input pb03.$subj.$hemi.r$run.surf.niml.dset \
-met HEAT_07 \
-target_fwhm 6.0 \
-blurmaster pb03.$subj.$hemi.r$run.surf.niml.dset \
-detrend_master \
-output pb04.$subj.$hemi.r$run.blur.niml.dset \
| tee surf.smooth.params.1D
You'll notice a couple extra options there for smoothing based on a reference noise dataset, instead of the statistical dataset itself. The blur method is HEAT_07 here. Make sure to look at the input surfaces and datasets to see if they look reasonable. If HEAT_07 doesn't work, then you might consider HEAT_05, the older method included in SurfSmooth.
The .asc output you are using hints at the possibility you are using an older version of AFNI. Convert your FreeSurfer data with @SUMA_Make_Spec_FS (which will call MapIcosahedron too). That will generate a 141 standard mesh that can then be used as input to afni_proc.py. Then use the afni_proc.py to do your analysis along with the smoothing on the surface as long as you include a "blur" block too.