HalpNumaQueryProcessorNode

NTSTATUS __stdcall HalpNumaQueryProcessorNode(UINT64 ProcessorIndex, UINT64 *Identifier, UINT16 *Node){
  int v3; 
  unsigned int v4; 
  NTSTATUS result; 
  unsigned int v8; 
  unsigned int v9; 
  unsigned int v10; 
  int a2; 
  v3 = *(_DWORD *)Identifier;
  v4 = 0;
  a2 = 0;
  if( v3 == -1 )
  {
    result = HalpInterruptGetIdentifiers(ProcessorIndex, &a2, 0i64);
    if( result < 0 )
      return result;
    v3 = a2;
    *(_DWORD *)Identifier = a2;
  }
  if( HalpAcpiSrat )
  {
    v8 = 0;
    v9 = *(_DWORD *)(HalpNumaConfig + 60);
    if( !v9 )
      return -1073741275;
    while( *(_DWORD *)(*(_QWORD *)HalpNumaConfig + 4i64 * v8) != v3 )
    {
      if( ++v8 >= v9 )
        return -1073741275;
    }
    v10 = *(_DWORD *)(HalpNumaConfig + 56);
    if( !v10 )
      return -1073741275;
    while( *(_DWORD *)(*(_QWORD *)(HalpNumaConfig + 24) + 4i64 * v4) != *(_DWORD *)(*(_QWORD *)(HalpNumaConfig + 16)
                                                                                   + 4i64 * v8) )
    {
      if( ++v4 >= v10 )
        return -1073741275;
    }
    *Node = v4;
  }
  else
  {
    *Node = -1;
  }
  return 0;
}

Referenced by:

No references.