HalpDpInitDiscard

VOID __stdcall HalpDpInitDiscard(_LOADER_PARAMETER_BLOCK *LoaderBlock){
  _LARGE_INTEGER *Table; 
  _LARGE_INTEGER *v3; 
  _LARGE_INTEGER *v4; 
  unsigned __int64 v5; 
  __int64 v6; 
  _LARGE_INTEGER *v7; 
  _LARGE_INTEGER v8; 

  Table = HalpAcpiGetTable(LoaderBlock, (const UINT8 *)0x54415253, 0i64);
  v3 = HalpAcpiGetTable(LoaderBlock, (const UINT8 *)0x5443534D, 0i64);
  if( Table )
  {
    v4 = Table + 6;
    v5 = (unsigned __int64)Table + (unsigned int)Table->anonymous_0.HighPart;
    if( (unsigned __int64)&Table[6] + 2 <= v5 )
    {
      do
      {
        v6 = BYTE1(v4->anonymous_0.LowPart);
        if( (unsigned __int8)v6 < 2u )
          break;
        v7 = (_LARGE_INTEGER *)((char *)v4 + v6);
        if( (unsigned __int64)v4 + v6 > v5 )
          break;
        if( LOBYTE(v4->anonymous_0.LowPart) == 1 && (unsigned __int8)v6 >= 0x28u )
        {
          v8 = v4[2];
          if( (BYTE4(v4[3].QuadPart) & 3) == 3 && v8.QuadPart && v8.QuadPart + v4[1].QuadPart - 1 > qword_140C4AD20 )
            qword_140C4AD20 = v8.QuadPart + v4[1].QuadPart - 1;
        }
        v4 = v7;
      }
      while( (unsigned __int64)v7 + 2 <= v5 );
    }
    if( v3 && v3[6].QuadPart > qword_140C4AD20 )
      qword_140C4AD20 = v3[6].QuadPart;
  }
  if( qword_140C4AD20 > (unsigned __int64)qword_140C4BA18 )
    qword_140C4BA18 = qword_140C4AD20;
}

Referenced by:

HalpDpInitSystem