A first try at de-obfuscate the structure, mainly in ./loessf.f :

  ehg182(): warning(message) generator, defined in ./loessc.c
	    called from almost any non-trivial function in loessf.f
	    and hence *NOT* in the following calling structure


loess()		        [R] ../R/loess.R
|
\-> simpleLoess()	[R]
    |
    |-> loess_raw	      loessc.c
    |	 |
    |	 |--> lowess_workspace   "
    |	 |    |
    |	 |    \--> lowesd
    |	 |
    |	 |
    |	 |--> lowesf
    |	 |    |
    |	 |    \--> ehg136
    |	 |         |
    |	 |         \--> ehg127	{fit at one new x}
    |	 |              |
    |	 |              |--> ehg106	{partial sort (for median etc)}
    |	 |              |
    |	 |              |--> "LINPACK" [QR,SVD..]
    |	 |              |
    |    |              \--> ehg184	{warning}
    |	 |
    |    |
    |	 |
    |	 |
    |	 |
    |	 |
    |	 |--> lowesb
    |    |    |
    |    |    |--> ehg183		{warning}
    |    |    |
    |    |    \--> ehg131
    |    |         |
    |    |         \--> ehg139
    |    |              |
    |    |              |--> ehg127  [see above]
    |    |              |
    |    |              \--> ehg137
    |	 |
    |
    |
    |
    |-> loessp






predict.loess() 	[R] ../R/loess.R
|
\-> predLoess()		[R]
    |
    \-> loess_raw	      loessc.c
