ResFwpPageOutBackground

VOID __stdcall ResFwpPageOutBackground(){
  INT64 v0; 
  UINT8 *PoolWithTag; 
  INT64 v2; 
  UINT8 *v3; 
  INT64 v4; 
  if( (dword_140C13310 & 0xC00) != 3072 )
  {
    v0 = qword_140C13358;
    if( qword_140C13358 )
    {
      if( qword_140C13360 )
      {
LABEL_9:
        _InterlockedExchange64(&qword_140C13358, 0i64);
        BgpFwFreeMemory(v0);
        return;
      }
      BgpFwReleaseLock();
      PoolWithTag = (UINT8 *)ExAllocatePoolWithTag(PagedPool, *(unsigned int *)Size, 0x4B494742ui64);
      v3 = PoolWithTag;
      if( PoolWithTag )
        memmove(PoolWithTag, (UINT8 *)qword_140C13358, *(unsigned int *)Size);
      BgpFwAcquireLock(v2);
      if( v3 )
      {
        if( qword_140C13360 )
        {
          BgpFwReleaseLock();
          ExFreePoolWithTag(v3, 0x4B494742u);
          BgpFwAcquireLock(v4);
          return;
        }
        _InterlockedExchange64((volatile __int64 *)&qword_140C13360, (__int64)v3);
        goto LABEL_9;
      }
    }
  }
}

Referenced by:

ResFwBackgroundTransition