Here is some code that may help you:
m_PortalContext = PortalApplication.GetContext(this.Context);
Guid guidHome = AreaManager.GetSystemAreaGuid(m_PortalContext, SystemArea.Home);
Area areaHome = AreaManager.GetArea(m_PortalContext, guidHome);
foreach(Area area in areaHome.Areas) {
//Call recursive function here, passing in the area object, from which you can get area.Areas//
}
Please remember that we are all contributing on here as a volunteer effort. Some times we get overwhelmed with our day-to-day activities and are not able to respond right away.