def METHOD_NAME(nvram):
    nvram = bytearray(nvram)
    # extract startup config
    offset = 0
    if len(nvram) < offset + 36:
        raise ValueError('invalid length')
    if get_uint16(nvram, offset + 0) != 0xABCD:
        raise ValueError('no startup config')
    format = get_uint16(nvram, offset + 2)
    length = get_uint32(nvram, offset + 16)
    offset += 36
    if len(nvram) < offset + length:
        raise ValueError('invalid length')
    startup = nvram[offset:offset + length]
    # compressed startup config
    if format == 2:
        try:
            startup = uncompress_LZC(startup)
        except ValueError as err:
            raise ValueError('uncompress startup: ' + str(err))
    offset += length
    # alignment to multiple of 4
    offset = (offset + 3) & ~3
    # check for additonal offset of 4
    if len(nvram) >= offset + 8 and \
       get_uint16(nvram, offset + 4) == 0xFEDC and \
       get_uint16(nvram, offset + 6) == 1:
        offset += 4
    # extract private config
    private = None
    if len(nvram) >= offset + 16 and get_uint16(nvram, offset + 0) == 0xFEDC:
        length = get_uint32(nvram, offset + 12)
        offset += 16
        if len(nvram) >= offset + length:
            private = nvram[offset:offset + length]
    return (startup, private)