https://www.rsdn.org/article/baseserv/pe_coff.xml
Microsoft lib файл это надстройка !<arch> и обычный coff(их может быть несколько штук в одной lib ) 
Если нашли 0x014C0000 то это не COFF. COFF = 0x014C и 2 байта >0 

lib file start IMAGE_ARCHIVE_MEMBER_HEADER
struct IMAGE_ARCHIVE_MEMBER_HEADER {
BYTE            Name[16];
BYTE            Date[12]; время и дата создания
BYTE            UserlD[6];всегда является строкой NULL
BYTE            GrouplD[6];
BYTE            Mode[8];
BYTE            Size[10];
BYTE            EndHeader[2];
}

BYTE Name[16] самая важная

Имя члена архива. Если символ "/" появляется после ASCII-строки (например, FOO.OBJ/), то строка
 перед символом "/" представляет имя члена. Если имя начинается с символа "/", за которым следует
 десятичное число (например, /104), то число является смещением имени члена архива внутри 
члена Longnames LIB-файла. 
В предыдущем примере имя члена начинается со 104-го байта от начала области Longname.

BYTE GroupID[6]

Десятичное ASCII-представление идентификатора группы. По-видимому, всегда является строкой NULL.
BYTE Mode[8]

Десятичное ASCII-представление файлового режима. По-видимому, всегда равно нулю.
BYTE Size[10]

Размер данных члена, представленный в десятичной ASCII-форме. Формат данных зависит от их типа (указан в уже описанном поле Name).
BYTE EndHeader[2]

ASCII строка \n.