iVar3 = OpenDriverObjectByName(L"\\Driver\\pci", &lStack_e8);

if (iVar3 < 0) goto;        

if (lStack_e8 == 0) goto LAB_14000fa72;

lVar20 = *(longlong*)(lStack_e8 + 8);  


이 부분에서 pci 체인을 얻어와서 pci 체인 헤드를 IVar20에서 Set 한 다음


if (lVar20 == 0) {

    DAT_14002F488 = 1;  

} else {

    do {

        lVar18 = *(longlong*)(lVar20 + 0x138); 

        if (lVar18 != 0) {

        }

LAB_14000fa57:

        lVar20 = *(longlong*)(lVar20 + 0x10);   

        uVar13 = uVar11;                         

    } while (lVar20 != 0);

}

do while 루프로 체인을 순회해서

uStack_154 = 0; uStack_150 = 0;

iVar3 = ParseVendorDeviceIdFromHwId(psVar7, &uStack_154, &uStack_150);

if (iVar3 == 0) {                    

    (&DAT_14002F390)[i*0xC] = uStack_154; // VendorID 저장

    (&DAT_14002F394)[i*0xC] = uStack_150; // DeviceID 저장

}

유효한 디바이스면 디바이스 아이디랑 벤더 아이디를 별도의 바이트 시퀸스가 있는데 거따가 저장함

오직 PnP (하드웨어 장치들만) 순회해서 검사하고

랜카드 같은거면 따로 벤더 같은거 재검증하는 로직이 따로있고

이런 식으로 하드웨어 정보를 추출해서 바이트 시퀸스를 난독화 한 다음

별도의 링 버퍼에 보관 후 어디다 쏘는거 같은데 어딘진 모르겠음