<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def dump_message(obj, msg, field_archiver=None):
 """ Dumps message to the object. Returns message popo representation. :param obj: :param msg: :param field_archiver: :return: """

    mtype = msg.__class__
    fields = mtype.f_specs()

    obj = collections.OrderedDict() if obj is None else get_elem(obj)
    for field in fields:
        await dump_message_field(obj, msg=msg, field=field, field_archiver=field_archiver)
    return obj