BiTranslateFilePath

NTSTATUS __stdcall BiTranslateFilePath(_FILE_PATH *InputFilePath, UINT64 OutputType, _FILE_PATH **OutputFilePath){
  _FILE_PATH *PoolWithTag; 
  int v5; 
  int v6; 
  int v7; 
  __int64 v9[5]; 
  v9[0] = 0i64;
  PoolWithTag = 0i64;
  v5 = BiAcquirePrivilege(0x16u, (__int64)v9);
  if( v5 >= 0 )
  {
    ZwTranslateFilePath();
    v5 = v6;
    if( v6 == -1073741789 )
    {
      PoolWithTag = (_FILE_PATH *)ExAllocatePoolWithTag(PagedPool, 0i64, 0x4B444342ui64);
      if( PoolWithTag )
      {
        ZwTranslateFilePath();
        v5 = v7;
      }
      else
      {
        v5 = -1073741670;
      }
    }
    else if( v6 >= 0 )
    {
      v5 = -1073741811;
    }
    BiReleasePrivilege((__int64)v9);
    if( v5 < 0 )
    {
      if( PoolWithTag )
        ExFreePoolWithTag(PoolWithTag, 0x4B444342u);
    }
    else
    {
      *OutputFilePath = PoolWithTag;
    }
  }
  return v5;
}

Referenced by:

BiCreateBootEntry
BiCreateMergedBootEntry
BiGetDeviceFromEfiPath