PnpGetObjectPropertyLocales

NTSTATUS __stdcall PnpGetObjectPropertyLocales(
        WCHAR *ObjectName,
        PNP_OBJECT_TYPE ObjectType,
        VOID *ObjectBaseKey,
        _DEVPROPKEY *PropertyKey,
        WCHAR *Buffer,
        UINT64 BufferLength,
        UINT64 *RequiredLength){
  HPNPCTX *v7; 
  WCHAR *v8; 
  unsigned int v9; 
  __int64(__fastcall *v11)(HPNPCTX *, WCHAR *, _QWORD, __int64, int, INT64 *); 
  int v12; 
  NTSTATUS ObjectPropertyLocalesWorker; 
  NTSTATUS v14; 
  int v15; 
  int v16; 
  NTSTATUS v17; 
  UINT64 v19; 
  INT64 v20; 
  INT64 v21[10]; 
  INT64 v22; 

  v7 = (HPNPCTX *)*(&stru_140CF2E80 + 607);
  v8 = *(WCHAR **)&ObjectType;
  v9 = (unsigned int)ObjectBaseKey;
  memset(v21, 0i64, sizeof(v21));
  v11 = *(__int64(__fastcall **)(HPNPCTX *, WCHAR *, _QWORD, __int64, int, INT64 *))(*(&stru_140CF2E80 + 607) + 488i64);
  LODWORD(v21[7]) = 0;
  v21[3] = (INT64)Buffer;
  v21[4] = BufferLength;
  LODWORD(v21[5]) = (_DWORD)RequiredLength;
  v21[6] = v22;
  v21[2] = (INT64)PropertyKey;
  if( v11 )
  {
    v12 = v11((HPNPCTX *)*(&stru_140CF2E80 + 607), v8, v9, 7i64, 1, v21);
    if( v12 == -1073741822 )
    {
      v11 = 0i64;
    }
    else
    {
      if( v12 == -1073741536 )
        return v21[0];
      if( v12 )
        return -1073741595;
    }
  }
  LODWORD(v20) = v21[7];
  LODWORD(v19) = v21[5];
  ObjectPropertyLocalesWorker = PnpGetObjectPropertyLocalesWorker(
                                  v7,
                                  v8,
                                  v9,
                                  (VOID *)v21[2],
                                  (_DEVPROPKEY *)v21[3],
                                  (WCHAR *)v21[4],
                                  v19,
                                  (UINT64 *)v21[6],
                                  v20);
  v14 = ObjectPropertyLocalesWorker;
  if( !v11 )
    return v14;
  LODWORD(v21[0]) = ObjectPropertyLocalesWorker;
  v15 = v11(v7, v8, v9, 7i64, 2, v21);
  v16 = v15;
  if( v15 == -1073741822 )
    return v14;
  if( v15 == -1073741536 )
    return v21[0];
  v17 = v14;
  if( v16 )
    return -1073741595;
  return v17;
}

Referenced by:

PiDqPnPGetObjectPropertyLocales