PopIdleWakeAreIdenticalWakeSources

bool __fastcall PopIdleWakeAreIdenticalWakeSources(int a1, _BYTE *a2, _QWORD *a3){
  char v3; 
  unsigned int v4; 
  signed __int64 v5; 
  char v6; 
  const wchar_t *v7; 
  const wchar_t *v8; 
  __int64 v9; 

  v3 = 0;
  if( a1 == 5 )
  {
    v3 = 1;
    v4 = 0;
    v5 = a2 - (_BYTE *)a3;
    while( *(_QWORD *)((char *)a3 + v5) == *a3 )
    {
      ++v4;
      ++a3;
      if( v4 >= 3 )
        return v3;
    }
    return 0;
  }
  else if( a1 == 6 )
  {
    v6 = *a2;
    if( *a2 == *(_BYTE *)a3 )
    {
      v7 = (const wchar_t *)(a2 + 2);
      v8 = (const wchar_t *)a3 + 1;
      if( v6 == 3 )
      {
        v9 = -1i64;
        do
          ++v9;
        while( v7[v9] );
        if( !wcsnicmp(v8, v7, v9) )
          return 1;
      }
      else
      {
        return *(_BYTE *)v7 == *(_BYTE *)v8;
      }
    }
  }
  return v3;
}

Referenced by:

PopIdleWakeFindOrAllocateWakeSource