A way to get started with this would be the following:
DECLARE @TableName VARCHAR(50)
DECLARE @ObjectID INT
SET @TableName = '' -- the name of the objects you want to investigate
SELECT @ObjectID = [id] FROM sysobjects WHERE name=@TableName
SELECT * FROM sysobjects WHERE name=@TableName
SELECT * FROM sysobjects WHERE id in (SELECT id FROM sysdepends WHERE depid= @ObjectID)
The SysDepends "table" will tell you which objects are dependent upon another. It is hierarchical, so you may have to recursively run through SysDepends until you start getting nulls. Sometimes, sysdepends is incomplete, here is an article with some other suggestions.
The SysObjects "table" will tell you some stuff about the objects in the database. The type (also xtype) columns tell you what the item is: user-defined table, stored proc, trigger, etc.
Then you will want sp_helptext to spit out the text of a stored procedure. This will not reproduce the text of an encrypted stored procedure.
Any full and complete solution will involve programming something, especially when encrypted stored procedures and triggers are involved. One sample article on programatically determining the items in the DB. The datatype needed to decrypt SQL Server 2000 stored procs showed up in SQL Server 2005, so you could not use SQL in SQL Server 2000 to decrypt its own encrypted stored procs (but you could decrypt them in SQL in SQL Server 2005) and it would not surprise me if the same were true for the 2005 to 2008 transition. I lost interest in decrypting stored procedures several years ago.