Hi, sviodo!
Please describe more the problem if possible. If you have straight waveguide with arbitrary cross section, it can be made by your own..
If you're familiar with with Matlab programing and solving PDE's, you can solve Helmholz the equation for transverse eigenvalues and eigenfunctions. If you compute enough number of modes (very fast), it's possible to build S matrix.
Similar method is used in MWS (eigenmode solver). Look into manual how it works. This solver is appropriate and efficient for this task.
Regards,
Eirp